Commit 6517134b authored by Suzanne Selhorn's avatar Suzanne Selhorn Committed by Marcel Amirault
parent 5f67ce3e
...@@ -93,7 +93,6 @@ exceptions: ...@@ -93,7 +93,6 @@ exceptions:
- NFS - NFS
- NGINX - NGINX
- NOTE - NOTE
- NPM
- NTP - NTP
- ONLY - ONLY
- OWASP - OWASP
......
...@@ -589,7 +589,7 @@ On GitLab.com, the maximum file size for a package that's uploaded to the [GitLa ...@@ -589,7 +589,7 @@ On GitLab.com, the maximum file size for a package that's uploaded to the [GitLa
- Conan: 5GB - Conan: 5GB
- Generic: 5GB - Generic: 5GB
- Maven: 5GB - Maven: 5GB
- NPM: 5GB - npm: 5GB
- NuGet: 5GB - NuGet: 5GB
- PyPI: 5GB - PyPI: 5GB
...@@ -602,7 +602,7 @@ To set this limit on a self-managed installation, run the following in the ...@@ -602,7 +602,7 @@ To set this limit on a self-managed installation, run the following in the
# For Conan Packages # For Conan Packages
Plan.default.actual_limits.update!(conan_max_file_size: 100.megabytes) Plan.default.actual_limits.update!(conan_max_file_size: 100.megabytes)
# For NPM Packages # For npm Packages
Plan.default.actual_limits.update!(npm_max_file_size: 100.megabytes) Plan.default.actual_limits.update!(npm_max_file_size: 100.megabytes)
# For NuGet Packages # For NuGet Packages
......
...@@ -22,7 +22,7 @@ The Package Registry supports the following formats: ...@@ -22,7 +22,7 @@ The Package Registry supports the following formats:
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/conan_repository/index.html">Conan</a></td><td>12.6+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/conan_repository/index.html">Conan</a></td><td>12.6+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/go_proxy/index.html">Go</a></td><td>13.1+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/go_proxy/index.html">Go</a></td><td>13.1+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/maven_repository/index.html">Maven</a></td><td>11.3+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/maven_repository/index.html">Maven</a></td><td>11.3+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/npm_registry/index.html">NPM</a></td><td>11.7+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/npm_registry/index.html">npm</a></td><td>11.7+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html">NuGet</a></td><td>12.8+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html">NuGet</a></td><td>12.8+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/pypi_repository/index.html">PyPI</a></td><td>12.10+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/pypi_repository/index.html">PyPI</a></td><td>12.10+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/generic_packages/index.html">Generic packages</a></td><td>13.5+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/generic_packages/index.html">Generic packages</a></td><td>13.5+</td></tr>
......
...@@ -200,16 +200,16 @@ With a few API endpoints you can use a [GitLab CI/CD job token](../user/project/ ...@@ -200,16 +200,16 @@ With a few API endpoints you can use a [GitLab CI/CD job token](../user/project/
to authenticate with the API: to authenticate with the API:
- Packages: - Packages:
- [Composer Repository](../user/packages/composer_repository/index.md) - [Package Registry for Composer](../user/packages/composer_repository/index.md)
- [Conan Repository](../user/packages/conan_repository/index.md) - [Package Registry for Conan](../user/packages/conan_repository/index.md)
- [Container Registry](../user/packages/container_registry/index.md) - [Container Registry](../user/packages/container_registry/index.md)
(`$CI_REGISTRY_PASSWORD` is `$CI_JOB_TOKEN`) (`$CI_REGISTRY_PASSWORD` is `$CI_JOB_TOKEN`)
- [Go Proxy](../user/packages/go_proxy/index.md) - [Go Proxy](../user/packages/go_proxy/index.md)
- [Maven Repository](../user/packages/maven_repository/index.md#authenticate-with-a-ci-job-token-in-maven) - [Package Registry for Maven](../user/packages/maven_repository/index.md#authenticate-with-a-ci-job-token-in-maven)
- [NPM Repository](../user/packages/npm_registry/index.md#authenticate-with-a-ci-job-token) - [Package Registry for npm](../user/packages/npm_registry/index.md#authenticate-with-a-ci-job-token)
- [NuGet Repository](../user/packages/nuget_repository/index.md) - [Package Registry for NuGet](../user/packages/nuget_repository/index.md)
- [PyPI Repository](../user/packages/pypi_repository/index.md#authenticate-with-a-ci-job-token) - [Package Registry for PyPI](../user/packages/pypi_repository/index.md#authenticate-with-a-ci-job-token)
- [Generic packages](../user/packages/generic_packages/index.md#publish-a-generic-package-by-using-cicd) - [Package Registry for generic packages](../user/packages/generic_packages/index.md#publish-a-generic-package-by-using-cicd)
- [Get job artifacts](job_artifacts.md#get-job-artifacts) - [Get job artifacts](job_artifacts.md#get-job-artifacts)
- [Pipeline triggers](pipeline_triggers.md) (using the `token=` parameter) - [Pipeline triggers](pipeline_triggers.md) (using the `token=` parameter)
- [Release creation](releases/index.md#create-a-release) - [Release creation](releases/index.md#create-a-release)
......
...@@ -320,7 +320,7 @@ listed in the descriptions of the relevant settings. ...@@ -320,7 +320,7 @@ listed in the descriptions of the relevant settings.
| `mirror_capacity_threshold` | integer | no | **(PREMIUM)** Minimum capacity to be available before scheduling more mirrors preemptively | | `mirror_capacity_threshold` | integer | no | **(PREMIUM)** Minimum capacity to be available before scheduling more mirrors preemptively |
| `mirror_max_capacity` | integer | no | **(PREMIUM)** Maximum number of mirrors that can be synchronizing at the same time. | | `mirror_max_capacity` | integer | no | **(PREMIUM)** Maximum number of mirrors that can be synchronizing at the same time. |
| `mirror_max_delay` | integer | no | **(PREMIUM)** Maximum time (in minutes) between updates that a mirror can have when scheduled to synchronize. | | `mirror_max_delay` | integer | no | **(PREMIUM)** Maximum time (in minutes) between updates that a mirror can have when scheduled to synchronize. |
| `npm_package_requests_forwarding` | boolean | no | **(PREMIUM)** Use npmjs.org as a default remote repository when the package is not found in the GitLab NPM Registry | | `npm_package_requests_forwarding` | boolean | no | **(PREMIUM)** Use npmjs.org as a default remote repository when the package is not found in the GitLab Package Registry for npm |
| `outbound_local_requests_whitelist` | array of strings | no | Define a list of trusted domains or IP addresses to which local requests are allowed when local requests for hooks and services are disabled. | `outbound_local_requests_whitelist` | array of strings | no | Define a list of trusted domains or IP addresses to which local requests are allowed when local requests for hooks and services are disabled.
| `pages_domain_verification_enabled` | boolean | no | Require users to prove ownership of custom domains. Domain verification is an essential security measure for public GitLab sites. Users are required to demonstrate they control a domain before it is enabled. | | `pages_domain_verification_enabled` | boolean | no | Require users to prove ownership of custom domains. Domain verification is an essential security measure for public GitLab sites. Users are required to demonstrate they control a domain before it is enabled. |
| `password_authentication_enabled_for_git` | boolean | no | Enable authentication for Git over HTTP(S) via a GitLab account password. Default is `true`. | | `password_authentication_enabled_for_git` | boolean | no | Enable authentication for Git over HTTP(S) via a GitLab account password. Default is `true`. |
......
...@@ -31,9 +31,9 @@ The following table lists examples with step-by-step tutorials that are containe ...@@ -31,9 +31,9 @@ The following table lists examples with step-by-step tutorials that are containe
| End-to-end testing | [End-to-end testing with GitLab CI/CD and WebdriverIO](end_to_end_testing_webdriverio/index.md). | | End-to-end testing | [End-to-end testing with GitLab CI/CD and WebdriverIO](end_to_end_testing_webdriverio/index.md). |
| Load performance testing | [Load Performance Testing with the k6 container](../../user/project/merge_requests/load_performance_testing.md). | | Load performance testing | [Load Performance Testing with the k6 container](../../user/project/merge_requests/load_performance_testing.md). |
| Multi project pipeline | [Build, test deploy using multi project pipeline](https://gitlab.com/gitlab-examples/upstream-project). | | Multi project pipeline | [Build, test deploy using multi project pipeline](https://gitlab.com/gitlab-examples/upstream-project). |
| NPM with semantic-release | [Publish NPM packages to the GitLab Package Registry using semantic-release](semantic-release.md). | | npm with semantic-release | [Publish npm packages to the GitLab Package Registry using semantic-release](semantic-release.md). |
| PHP with Laravel, Envoy | [Test and deploy Laravel applications with GitLab CI/CD and Envoy](laravel_with_gitlab_and_envoy/index.md). | | PHP with Laravel, Envoy | [Test and deploy Laravel applications with GitLab CI/CD and Envoy](laravel_with_gitlab_and_envoy/index.md). |
| PHP with NPM, SCP | [Running Composer and NPM scripts with deployment via SCP in GitLab CI/CD](deployment/composer-npm-deploy.md). | | PHP with npm, SCP | [Running Composer and npm scripts with deployment via SCP in GitLab CI/CD](deployment/composer-npm-deploy.md). |
| PHP with PHPunit, `atoum` | [Testing PHP projects](php.md). | | PHP with PHPunit, `atoum` | [Testing PHP projects](php.md). |
| Python on Heroku | [Test and deploy a Python application with GitLab CI/CD](test-and-deploy-python-application-to-heroku.md). | | Python on Heroku | [Test and deploy a Python application with GitLab CI/CD](test-and-deploy-python-application-to-heroku.md). |
| Ruby on Heroku | [Test and deploy a Ruby application with GitLab CI/CD](test-and-deploy-ruby-application-to-heroku.md). | | Ruby on Heroku | [Test and deploy a Ruby application with GitLab CI/CD](test-and-deploy-ruby-application-to-heroku.md). |
...@@ -85,7 +85,7 @@ choose one of these templates: ...@@ -85,7 +85,7 @@ choose one of these templates:
- [LaTeX (`LaTeX.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/LaTeX.gitlab-ci.yml) - [LaTeX (`LaTeX.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/LaTeX.gitlab-ci.yml)
- [Maven (`Maven.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Maven.gitlab-ci.yml) - [Maven (`Maven.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Maven.gitlab-ci.yml)
- [Mono (`Mono.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Mono.gitlab-ci.yml) - [Mono (`Mono.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Mono.gitlab-ci.yml)
- [NPM (`npm.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/npm.gitlab-ci.yml) - [npm (`npm.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/npm.gitlab-ci.yml)
- [Node.js (`Nodejs.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml) - [Node.js (`Nodejs.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml)
- [OpenShift (`OpenShift.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/OpenShift.gitlab-ci.yml) - [OpenShift (`OpenShift.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/OpenShift.gitlab-ci.yml)
- [Packer (`Packer.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Packer.gitlab-ci.yml) - [Packer (`Packer.gitlab-ci.yml`)](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Packer.gitlab-ci.yml)
......
...@@ -5,9 +5,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w ...@@ -5,9 +5,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
type: tutorial type: tutorial
--- ---
# Running Composer and NPM scripts with deployment via SCP in GitLab CI/CD # Running Composer and npm scripts with deployment via SCP in GitLab CI/CD
This guide covers the building of dependencies of a PHP project while compiling assets via an NPM script using [GitLab CI/CD](../../README.md). This guide covers the building of dependencies of a PHP project while compiling assets via an npm script using [GitLab CI/CD](../../README.md).
While it is possible to create your own image with custom PHP and Node.js versions, for brevity we use an existing [Docker image](https://hub.docker.com/r/tetraweb/php/) that contains both PHP and Node.js installed. While it is possible to create your own image with custom PHP and Node.js versions, for brevity we use an existing [Docker image](https://hub.docker.com/r/tetraweb/php/) that contains both PHP and Node.js installed.
......
...@@ -4,9 +4,9 @@ group: Package ...@@ -4,9 +4,9 @@ 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 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
--- ---
# Publish NPM packages to the GitLab Package Registry using semantic-release # Publish npm packages to the GitLab Package Registry using semantic-release
This guide demonstrates how to automatically publish NPM packages to the [GitLab Package Registry](../../user/packages/npm_registry/index.md) by using [semantic-release](https://github.com/semantic-release/semantic-release). This guide demonstrates how to automatically publish npm packages to the [GitLab Package Registry](../../user/packages/npm_registry/index.md) by using [semantic-release](https://github.com/semantic-release/semantic-release).
You can also view or fork the complete [example source](https://gitlab.com/gitlab-examples/semantic-release-npm). You can also view or fork the complete [example source](https://gitlab.com/gitlab-examples/semantic-release-npm).
...@@ -15,7 +15,7 @@ You can also view or fork the complete [example source](https://gitlab.com/gitla ...@@ -15,7 +15,7 @@ You can also view or fork the complete [example source](https://gitlab.com/gitla
1. Open a terminal and navigate to the project's repository 1. Open a terminal and navigate to the project's repository
1. Run `npm init`. Name the module according to [the Package Registry's naming conventions](../../user/packages/npm_registry/index.md#package-naming-convention). For example, if the project's path is `gitlab-examples/semantic-release-npm`, name the module `@gitlab-examples/semantic-release-npm`. 1. Run `npm init`. Name the module according to [the Package Registry's naming conventions](../../user/packages/npm_registry/index.md#package-naming-convention). For example, if the project's path is `gitlab-examples/semantic-release-npm`, name the module `@gitlab-examples/semantic-release-npm`.
1. Install the following NPM packages: 1. Install the following npm packages:
```shell ```shell
npm install semantic-release @semantic-release/git @semantic-release/gitlab @semantic-release/npm --save-dev npm install semantic-release @semantic-release/git @semantic-release/gitlab @semantic-release/npm --save-dev
...@@ -35,7 +35,7 @@ You can also view or fork the complete [example source](https://gitlab.com/gitla ...@@ -35,7 +35,7 @@ You can also view or fork the complete [example source](https://gitlab.com/gitla
} }
``` ```
1. Update the `files` key with glob pattern(s) that selects all files that should be included in the published module. More information about `files` can be found [in NPM's documentation](https://docs.npmjs.com/cli/v6/configuring-npm/package-json/#files). 1. Update the `files` key with glob pattern(s) that selects all files that should be included in the published module. More information about `files` can be found [in npm's documentation](https://docs.npmjs.com/cli/v6/configuring-npm/package-json/#files).
1. Add a `.gitignore` file to the project to avoid committing `node_modules`: 1. Add a `.gitignore` file to the project to avoid committing `node_modules`:
...@@ -80,7 +80,7 @@ publish: ...@@ -80,7 +80,7 @@ publish:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
``` ```
This example configures the pipeline with a single job, `publish`, which runs `semantic-release`. The semantic-release library publishes new versions of the NPM package and creates new GitLab releases (if necessary). This example configures the pipeline with a single job, `publish`, which runs `semantic-release`. The semantic-release library publishes new versions of the npm package and creates new GitLab releases (if necessary).
The default `before_script` generates a temporary `.npmrc` that is used to authenticate to the Package Registry during the `publish` job. The default `before_script` generates a temporary `.npmrc` that is used to authenticate to the Package Registry during the `publish` job.
......
...@@ -188,7 +188,7 @@ pdf: ...@@ -188,7 +188,7 @@ pdf:
expire_in: 1 week expire_in: 1 week
``` ```
Additionally, we have package management features like a built-in container, NPM, and Maven registry that you Additionally, we have package management features like built-in container and package registries that you
can leverage. You can see the complete list of packaging features in the can leverage. You can see the complete list of packaging features in the
[Packages & Registries](../../user/packages/index.md) documentation. [Packages & Registries](../../user/packages/index.md) documentation.
......
...@@ -147,7 +147,7 @@ documentation includes [a full list of their linters](https://github.com/sds/scs ...@@ -147,7 +147,7 @@ documentation includes [a full list of their linters](https://github.com/sds/scs
If you want to automate changing a large portion of the codebase to conform to If you want to automate changing a large portion of the codebase to conform to
the SCSS style guide, you can use [CSSComb](https://github.com/csscomb/csscomb.js). First install the SCSS style guide, you can use [CSSComb](https://github.com/csscomb/csscomb.js). First install
[Node](https://github.com/nodejs/node) and [NPM](https://www.npmjs.com/), then run `npm install csscomb -g` to install [Node](https://github.com/nodejs/node) and [npm](https://www.npmjs.com/), then run `npm install csscomb -g` to install
CSSComb globally (system-wide). Run it in the GitLab directory with CSSComb globally (system-wide). Run it in the GitLab directory with
`csscomb app/assets/stylesheets` to automatically fix issues with CSS/SCSS. `csscomb app/assets/stylesheets` to automatically fix issues with CSS/SCSS.
......
...@@ -27,7 +27,7 @@ When upgrading the Rails gem and its dependencies, you also should update the fo ...@@ -27,7 +27,7 @@ When upgrading the Rails gem and its dependencies, you also should update the fo
- The [`Gemfile` in Gitaly Ruby](https://gitlab.com/gitlab-org/gitaly/-/blob/master/ruby/Gemfile), - The [`Gemfile` in Gitaly Ruby](https://gitlab.com/gitlab-org/gitaly/-/blob/master/ruby/Gemfile),
to ensure that we ship only one version of these gems. to ensure that we ship only one version of these gems.
You should also update NPM packages that follow the current version of Rails: You should also update npm packages that follow the current version of Rails:
- `@rails/ujs` - `@rails/ujs`
- `@rails/actioncable` - `@rails/actioncable`
...@@ -42,7 +42,7 @@ Before using CodeSandbox with your local GitLab instance, you must: ...@@ -42,7 +42,7 @@ Before using CodeSandbox with your local GitLab instance, you must:
GitLab integrates with two parts of CodeSandbox: GitLab integrates with two parts of CodeSandbox:
- An NPM package called `smooshpack` (called `sandpack` in the `codesandbox-client` project). - An npm package called `smooshpack` (called `sandpack` in the `codesandbox-client` project).
This exposes an entrypoint for us to kick off Codesandbox's bundler. This exposes an entrypoint for us to kick off Codesandbox's bundler.
- A server that houses CodeSandbox assets for bundling and previewing. This is hosted - A server that houses CodeSandbox assets for bundling and previewing. This is hosted
on a separate server for security. on a separate server for security.
......
...@@ -12,7 +12,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w ...@@ -12,7 +12,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
In order to comply with the terms the libraries we use are licensed under, we have to make sure to check new gems for compatible licenses whenever they're added. To automate this process, we use the [license_finder](https://github.com/pivotal/LicenseFinder) gem by Pivotal. It runs every time a new commit is pushed and verifies that all gems and node modules in the bundle use a license that doesn't conflict with the licensing of either GitLab Community Edition or GitLab Enterprise Edition. In order to comply with the terms the libraries we use are licensed under, we have to make sure to check new gems for compatible licenses whenever they're added. To automate this process, we use the [license_finder](https://github.com/pivotal/LicenseFinder) gem by Pivotal. It runs every time a new commit is pushed and verifies that all gems and node modules in the bundle use a license that doesn't conflict with the licensing of either GitLab Community Edition or GitLab Enterprise Edition.
There are some limitations with the automated testing, however. CSS, JavaScript, or Ruby libraries which are not included by way of Bundler, NPM, or Yarn (for instance those manually copied into our source tree in the `vendor` directory), must be verified manually and independently. Take care whenever one such library is used, as automated tests don't catch problematic licenses from them. There are some limitations with the automated testing, however. CSS, JavaScript, or Ruby libraries which are not included by way of Bundler, npm, or Yarn (for instance those manually copied into our source tree in the `vendor` directory), must be verified manually and independently. Take care whenever one such library is used, as automated tests don't catch problematic licenses from them.
Some gems may not include their license information in their `gemspec` file, and some node modules may not include their license information in their `package.json` file. These aren't detected by License Finder, and must be verified manually. Some gems may not include their license information in their `gemspec` file, and some node modules may not include their license information in their `package.json` file. These aren't detected by License Finder, and must be verified manually.
......
...@@ -15,7 +15,7 @@ package system support with solely backend changes. This guide is superficial an ...@@ -15,7 +15,7 @@ package system support with solely backend changes. This guide is superficial an
not cover the way the code should be written. However, you can find a good example not cover the way the code should be written. However, you can find a good example
by looking at the following merge requests: by looking at the following merge requests:
- [NPM registry support](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8673). - [npm registry support](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8673).
- [Maven repository](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607). - [Maven repository](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607).
- [Composer repository for PHP dependencies](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/22415). - [Composer repository for PHP dependencies](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/22415).
- [Terraform modules registry](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18834). - [Terraform modules registry](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18834).
...@@ -33,7 +33,7 @@ The existing database model requires the following: ...@@ -33,7 +33,7 @@ The existing database model requires the following:
### API endpoints ### API endpoints
Package systems work with GitLab via API. For example `lib/api/npm_packages.rb` Package systems work with GitLab via API. For example `lib/api/npm_packages.rb`
implements API endpoints to work with NPM clients. So, the first thing to do is to implements API endpoints to work with npm clients. So, the first thing to do is to
add a new `lib/api/your_name_packages.rb` file with API endpoints that are add a new `lib/api/your_name_packages.rb` file with API endpoints that are
necessary to make the package system client to work. Usually that means having necessary to make the package system client to work. Usually that means having
endpoints like: endpoints like:
...@@ -69,7 +69,7 @@ The current state of existing package registries availability is: ...@@ -69,7 +69,7 @@ The current state of existing package registries availability is:
|------------------|---------------|-------------|----------------| |------------------|---------------|-------------|----------------|
| Maven | Yes | Yes | Yes | | Maven | Yes | Yes | Yes |
| Conan | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/11679) | Yes | | Conan | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/11679) | Yes |
| NPM | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/36853) | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/36853) | | npm | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/36853) | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/36853) |
| NuGet | Yes | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/36425) | | NuGet | Yes | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/36425) |
| PyPI | Yes | No | No | | PyPI | Yes | No | No |
| Go | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/213900) | No - [open-issue](https://gitlab.com/gitlab-org/gitlab/-/issues/213902) | | Go | Yes | No - [open issue](https://gitlab.com/gitlab-org/gitlab/-/issues/213900) | No - [open-issue](https://gitlab.com/gitlab-org/gitlab/-/issues/213902) |
...@@ -77,7 +77,7 @@ The current state of existing package registries availability is: ...@@ -77,7 +77,7 @@ The current state of existing package registries availability is:
| Generic | Yes | No | No | | Generic | Yes | No | No |
NOTE: NOTE:
NPM is currently a hybrid of the instance level and group level. npm is currently a hybrid of the instance level and group level.
It is using the top-level group or namespace as the defining portion of the name It is using the top-level group or namespace as the defining portion of the name
(for example, `@my-group-name/my-package-name`). (for example, `@my-group-name/my-package-name`).
...@@ -124,7 +124,7 @@ The way new package systems are integrated in GitLab is using an [MVC](https://a ...@@ -124,7 +124,7 @@ The way new package systems are integrated in GitLab is using an [MVC](https://a
Required actions are all the additional requests that GitLab needs to handle so the corresponding package manager CLI can work properly. It could be a search feature or an endpoint providing meta information about a package. For example: Required actions are all the additional requests that GitLab needs to handle so the corresponding package manager CLI can work properly. It could be a search feature or an endpoint providing meta information about a package. For example:
- For NuGet, the search request was implemented during the first MVC iteration, to support Visual Studio. - For NuGet, the search request was implemented during the first MVC iteration, to support Visual Studio.
- For NPM, there is a metadata endpoint used by `npm` to get the tarball URL. - For npm, there is a metadata endpoint used by `npm` to get the tarball URL.
For the first MVC iteration, it's recommended to stay at the project level of the [remote hierarchy](#remote-hierarchy). Other levels can be tackled with [future Merge Requests](#future-work). For the first MVC iteration, it's recommended to stay at the project level of the [remote hierarchy](#remote-hierarchy). Other levels can be tackled with [future Merge Requests](#future-work).
......
...@@ -211,18 +211,18 @@ To set required pipeline configuration: ...@@ -211,18 +211,18 @@ To set required pipeline configuration:
## Package Registry configuration ## Package Registry configuration
### NPM Forwarding **(PREMIUM SELF)** ### npm Forwarding **(PREMIUM SELF)**
GitLab administrators can disable the forwarding of NPM requests to [npmjs.com](https://www.npmjs.com/). GitLab administrators can disable the forwarding of npm requests to [npmjs.com](https://www.npmjs.com/).
To disable it: To disable it:
1. Go to **Admin Area > Settings > CI/CD**. 1. Go to **Admin Area > Settings > CI/CD**.
1. Expand the **Package Registry** section. 1. Expand the **Package Registry** section.
1. Uncheck **Enable forwarding of NPM package requests to npmjs.org**. 1. Uncheck **Enable forwarding of npm package requests to npmjs.org**.
1. Click **Save changes**. 1. Click **Save changes**.
![NPM package requests forwarding](img/admin_package_registry_npm_package_requests_forward.png) ![npm package requests forwarding](img/admin_package_registry_npm_package_requests_forward.png)
### Package file size limits ### Package file size limits
......
...@@ -110,7 +110,7 @@ The scanning tools and vulnerabilities database are updated regularly. ...@@ -110,7 +110,7 @@ The scanning tools and vulnerabilities database are updated regularly.
| Secure scanning tool | Vulnerabilities database updates | | Secure scanning tool | Vulnerabilities database updates |
|:-------------------------------------------------------------|-------------------------------------------| |:-------------------------------------------------------------|-------------------------------------------|
| [Container Scanning](container_scanning/index.md) | Uses `clair`. The latest `clair-db` version is used for each job by running the [`latest` Docker image tag](https://gitlab.com/gitlab-org/gitlab/blob/438a0a56dc0882f22bdd82e700554525f552d91b/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml#L37). The `clair-db` database [is updated daily according to the author](https://github.com/arminc/clair-local-scan#clair-server-or-local). | | [Container Scanning](container_scanning/index.md) | Uses `clair`. The latest `clair-db` version is used for each job by running the [`latest` Docker image tag](https://gitlab.com/gitlab-org/gitlab/blob/438a0a56dc0882f22bdd82e700554525f552d91b/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml#L37). The `clair-db` database [is updated daily according to the author](https://github.com/arminc/clair-local-scan#clair-server-or-local). |
| [Dependency Scanning](dependency_scanning/index.md) | Relies on `bundler-audit` (for Ruby gems), `retire.js` (for NPM packages), and `gemnasium` (the GitLab tool for all libraries). Both `bundler-audit` and `retire.js` fetch their vulnerabilities data from GitHub repositories, so vulnerabilities added to `ruby-advisory-db` and `retire.js` are immediately available. The tools themselves are updated once per month if there's a new version. The [Gemnasium DB](https://gitlab.com/gitlab-org/security-products/gemnasium-db) is updated at least once a week. See our [current measurement of time from CVE being issued to our product being updated](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#cve-issue-to-update). | | [Dependency Scanning](dependency_scanning/index.md) | Relies on `bundler-audit` (for Ruby gems), `retire.js` (for npm packages), and `gemnasium` (the GitLab tool for all libraries). Both `bundler-audit` and `retire.js` fetch their vulnerabilities data from GitHub repositories, so vulnerabilities added to `ruby-advisory-db` and `retire.js` are immediately available. The tools themselves are updated once per month if there's a new version. The [Gemnasium DB](https://gitlab.com/gitlab-org/security-products/gemnasium-db) is updated at least once a week. See our [current measurement of time from CVE being issued to our product being updated](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#cve-issue-to-update). |
| [Dynamic Application Security Testing (DAST)](dast/index.md) | The scanning engine is updated on a periodic basis. See the [version of the underlying tool `zaproxy`](https://gitlab.com/gitlab-org/security-products/dast/blob/master/Dockerfile#L1). The scanning rules are downloaded at scan runtime. | | [Dynamic Application Security Testing (DAST)](dast/index.md) | The scanning engine is updated on a periodic basis. See the [version of the underlying tool `zaproxy`](https://gitlab.com/gitlab-org/security-products/dast/blob/master/Dockerfile#L1). The scanning rules are downloaded at scan runtime. |
| [Static Application Security Testing (SAST)](sast/index.md) | Relies exclusively on [the tools GitLab wraps](sast/index.md#supported-languages-and-frameworks). The underlying analyzers are updated at least once per month if a relevant update is available. The vulnerabilities database is updated by the upstream tools. | | [Static Application Security Testing (SAST)](sast/index.md) | Relies exclusively on [the tools GitLab wraps](sast/index.md#supported-languages-and-frameworks). The underlying analyzers are updated at least once per month if a relevant update is available. The vulnerabilities database is updated by the upstream tools. |
......
...@@ -132,7 +132,7 @@ License Compliance can be configured using environment variables. ...@@ -132,7 +132,7 @@ License Compliance can be configured using environment variables.
| Environment variable | Required | Description | | Environment variable | Required | Description |
|-----------------------------|----------|-------------| |-----------------------------|----------|-------------|
| `ADDITIONAL_CA_CERT_BUNDLE` | no | Bundle of trusted CA certificates (currently supported in Pip, Pipenv, Maven, Gradle, Yarn, and NPM projects). | | `ADDITIONAL_CA_CERT_BUNDLE` | no | Bundle of trusted CA certificates (currently supported in Pip, Pipenv, Maven, Gradle, Yarn, and npm projects). |
| `ASDF_JAVA_VERSION` | no | Version of Java to use for the scan. | | `ASDF_JAVA_VERSION` | no | Version of Java to use for the scan. |
| `ASDF_NODEJS_VERSION` | no | Version of Node.js to use for the scan. | | `ASDF_NODEJS_VERSION` | no | Version of Node.js to use for the scan. |
| `ASDF_PYTHON_VERSION` | no | Version of Python to use for the scan. | | `ASDF_PYTHON_VERSION` | no | Version of Python to use for the scan. |
...@@ -269,14 +269,14 @@ You can supply a custom root certificate to complete TLS verification by using t ...@@ -269,14 +269,14 @@ You can supply a custom root certificate to complete TLS verification by using t
If you have a private Python repository you can use the `PIP_INDEX_URL` [environment variable](#available-variables) If you have a private Python repository you can use the `PIP_INDEX_URL` [environment variable](#available-variables)
to specify its location. to specify its location.
### Configuring NPM projects ### Configuring npm projects
You can configure NPM projects by using an [`.npmrc`](https://docs.npmjs.com/configuring-npm/npmrc.html/) You can configure npm projects by using an [`.npmrc`](https://docs.npmjs.com/configuring-npm/npmrc.html/)
file. file.
#### Using private NPM registries #### Using private npm registries
If you have a private NPM registry you can use the If you have a private npm registry you can use the
[`registry`](https://docs.npmjs.com/using-npm/config/#registry) [`registry`](https://docs.npmjs.com/using-npm/config/#registry)
setting to specify its location. setting to specify its location.
...@@ -286,7 +286,7 @@ For example: ...@@ -286,7 +286,7 @@ For example:
registry = https://npm.example.com registry = https://npm.example.com
``` ```
#### Custom root certificates for NPM #### Custom root certificates for npm
You can supply a custom root certificate to complete TLS verification by using the You can supply a custom root certificate to complete TLS verification by using the
`ADDITIONAL_CA_CERT_BUNDLE` [environment variable](#available-variables). `ADDITIONAL_CA_CERT_BUNDLE` [environment variable](#available-variables).
...@@ -663,7 +663,7 @@ Additional configuration may be needed for connecting to ...@@ -663,7 +663,7 @@ Additional configuration may be needed for connecting to
[private Conan registries](#using-private-bower-registries), [private Conan registries](#using-private-bower-registries),
[private Go registries](#using-private-go-registries), [private Go registries](#using-private-go-registries),
[private Maven repositories](#using-private-maven-repositories), [private Maven repositories](#using-private-maven-repositories),
[private NPM registries](#using-private-npm-registries), [private npm registries](#using-private-npm-registries),
[private Python repositories](#using-private-python-repositories), [private Python repositories](#using-private-python-repositories),
and [private Yarn registries](#using-private-yarn-registries). and [private Yarn registries](#using-private-yarn-registries).
......
...@@ -20,7 +20,7 @@ The Package Registry supports the following formats: ...@@ -20,7 +20,7 @@ The Package Registry supports the following formats:
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/conan_repository/index.html">Conan</a></td><td>12.6+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/conan_repository/index.html">Conan</a></td><td>12.6+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/go_proxy/index.html">Go</a></td><td>13.1+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/go_proxy/index.html">Go</a></td><td>13.1+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/maven_repository/index.html">Maven</a></td><td>11.3+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/maven_repository/index.html">Maven</a></td><td>11.3+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/npm_registry/index.html">NPM</a></td><td>11.7+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/npm_registry/index.html">npm</a></td><td>11.7+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html">NuGet</a></td><td>12.8+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html">NuGet</a></td><td>12.8+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/pypi_repository/index.html">PyPI</a></td><td>12.10+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/pypi_repository/index.html">PyPI</a></td><td>12.10+</td></tr>
<tr><td><a href="https://docs.gitlab.com/ee/user/packages/generic_packages/index.html">Generic packages</a></td><td>13.5+</td></tr> <tr><td><a href="https://docs.gitlab.com/ee/user/packages/generic_packages/index.html">Generic packages</a></td><td>13.5+</td></tr>
......
This diff is collapsed.
...@@ -32,7 +32,7 @@ For information on how to create and upload a package, view the GitLab documenta ...@@ -32,7 +32,7 @@ For information on how to create and upload a package, view the GitLab documenta
## Use GitLab CI/CD to build packages ## Use GitLab CI/CD to build packages
You can use [GitLab CI/CD](../../../ci/README.md) to build packages. You can use [GitLab CI/CD](../../../ci/README.md) to build packages.
For Maven, NuGet, NPM, Conan, and PyPI packages, and Composer dependencies, you can For Maven, NuGet, npm, Conan, and PyPI packages, and Composer dependencies, you can
authenticate with GitLab by using the `CI_JOB_TOKEN`. authenticate with GitLab by using the `CI_JOB_TOKEN`.
CI/CD templates, which you can use to get started, are in [this repository](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates). CI/CD templates, which you can use to get started, are in [this repository](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates).
...@@ -43,7 +43,7 @@ Learn more about using CI/CD to build: ...@@ -43,7 +43,7 @@ Learn more about using CI/CD to build:
- [Conan packages](../conan_repository/index.md#publish-a-conan-package-by-using-cicd) - [Conan packages](../conan_repository/index.md#publish-a-conan-package-by-using-cicd)
- [Generic packages](../generic_packages/index.md#publish-a-generic-package-by-using-cicd) - [Generic packages](../generic_packages/index.md#publish-a-generic-package-by-using-cicd)
- [Maven packages](../maven_repository/index.md#create-maven-packages-with-gitlab-cicd) - [Maven packages](../maven_repository/index.md#create-maven-packages-with-gitlab-cicd)
- [NPM packages](../npm_registry/index.md#publish-an-npm-package-by-using-cicd) - [npm packages](../npm_registry/index.md#publish-an-npm-package-by-using-cicd)
- [NuGet packages](../nuget_repository/index.md#publish-a-nuget-package-by-using-cicd) - [NuGet packages](../nuget_repository/index.md#publish-a-nuget-package-by-using-cicd)
If you use CI/CD to build a package, extended activity information is displayed If you use CI/CD to build a package, extended activity information is displayed
......
...@@ -13,7 +13,7 @@ Then you can configure your remote repositories to point to the project in GitLa ...@@ -13,7 +13,7 @@ Then you can configure your remote repositories to point to the project in GitLa
You might want to do this because: You might want to do this because:
- You want to publish your packages in GitLab, but to a different project from where your code is stored. - You want to publish your packages in GitLab, but to a different project from where your code is stored.
- You want to group packages together in one project. For example, you might want to put all NPM packages, - You want to group packages together in one project. For example, you might want to put all npm packages,
or all packages for a specific department, or all private packages in the same project. or all packages for a specific department, or all private packages in the same project.
- When you install packages for other projects, you want to use one remote. - When you install packages for other projects, you want to use one remote.
- You want to migrate your packages from a third-party package registry to a single place in GitLab and do not - You want to migrate your packages from a third-party package registry to a single place in GitLab and do not
...@@ -27,7 +27,7 @@ No functionality is specific to this feature. Instead, we're taking advantage of ...@@ -27,7 +27,7 @@ No functionality is specific to this feature. Instead, we're taking advantage of
of each package management system to publish different package types to the same place. of each package management system to publish different package types to the same place.
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> - <i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
Watch a video of how to add Maven, NPM, and Conan packages to [the same project](https://youtu.be/ui2nNBwN35c). Watch a video of how to add Maven, npm, and Conan packages to [the same project](https://youtu.be/ui2nNBwN35c).
- [View an example project](https://gitlab.com/sabrams/my-package-registry/-/packages). - [View an example project](https://gitlab.com/sabrams/my-package-registry/-/packages).
## Store different package types in one GitLab project ## Store different package types in one GitLab project
...@@ -44,14 +44,14 @@ Let's take a look at how you might create a public place to hold all of your pub ...@@ -44,14 +44,14 @@ Let's take a look at how you might create a public place to hold all of your pub
You can upload all types of packages to the same project, or You can upload all types of packages to the same project, or
split things up based on package type or package visibility level. split things up based on package type or package visibility level.
### NPM ### npm
If you're using NPM, create an `.npmrc` file. Add the appropriate URL for publishing If you're using npm, create an `.npmrc` file. Add the appropriate URL for publishing
packages to your project. Finally, add a section to your `package.json` file. packages to your project. Finally, add a section to your `package.json` file.
Follow the instructions in the Follow the instructions in the
[GitLab NPM Registry documentation](../npm_registry/index.md#authenticate-to-the-package-registry). After [GitLab Package Registry npm documentation](../npm_registry/index.md#authenticate-to-the-package-registry). After
you do this, you can publish your NPM package to your project using `npm publish`, as described in the you do this, you can publish your npm package to your project using `npm publish`, as described in the
[publishing packages](../npm_registry/index.md#publish-an-npm-package) section. [publishing packages](../npm_registry/index.md#publish-an-npm-package) section.
### Maven ### Maven
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment