Commit 0bdee4c2 authored by Evan Read's avatar Evan Read

Merge branch 'docs-lists-cleanup-4' into 'master'

Standardize markdown in /development and /workflow

See merge request gitlab-org/gitlab-ce!31705
parents a749fcbe 3bc0a118
...@@ -38,7 +38,7 @@ Advantages over [`spyOn()`]: ...@@ -38,7 +38,7 @@ Advantages over [`spyOn()`]:
- no need to create response objects - no need to create response objects
- does not allow call through (which we want to avoid) - does not allow call through (which we want to avoid)
- simple API to test error cases - simple API to test error cases
- provides `replyOnce()` to allow for different responses - provides `replyOnce()` to allow for different responses
We have also decided against using [axios interceptors] because they are not suitable for mocking. We have also decided against using [axios interceptors] because they are not suitable for mocking.
......
This diff is collapsed.
...@@ -313,7 +313,7 @@ export default { ...@@ -313,7 +313,7 @@ export default {
1. Do not call a mutation directly. Always use an action to commit a mutation. Doing so will keep consistency throughout the application. From Vuex docs: 1. Do not call a mutation directly. Always use an action to commit a mutation. Doing so will keep consistency throughout the application. From Vuex docs:
> why don't we just call store.commit('action') directly? Well, remember that mutations must be synchronous? Actions aren't. We can perform asynchronous operations inside an action. > Why don't we just call store.commit('action') directly? Well, remember that mutations must be synchronous? Actions aren't. We can perform asynchronous operations inside an action.
```javascript ```javascript
// component.vue // component.vue
......
...@@ -9,8 +9,8 @@ when making _backend_ changes that might involve multiple features or [component ...@@ -9,8 +9,8 @@ when making _backend_ changes that might involve multiple features or [component
## Uploads ## Uploads
GitLab supports uploads to [object storage]. That means every feature and GitLab supports uploads to [object storage]. That means every feature and
change that affects uploads should also be tested against [object storage], change that affects uploads should also be tested against [object storage],
which is _not_ enabled by default in [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit). which is _not_ enabled by default in [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit).
When working on a related feature, make sure to enable and test it When working on a related feature, make sure to enable and test it
......
# Dirty Submit # Dirty Submit
> [Introduced][ce-21115] in GitLab 11.3. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21115) in GitLab 11.3.
> [dirty_submit][dirty-submit]
## Summary ## Summary
...@@ -9,6 +8,9 @@ Prevent submitting forms with no changes. ...@@ -9,6 +8,9 @@ Prevent submitting forms with no changes.
Currently handles `input`, `textarea` and `select` elements. Currently handles `input`, `textarea` and `select` elements.
Also, see [the code](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/dirty_submit/)
within the GitLab project.
## Usage ## Usage
```js ```js
...@@ -18,6 +20,3 @@ new DirtySubmitForm(document.querySelector('form')); ...@@ -18,6 +20,3 @@ new DirtySubmitForm(document.querySelector('form'));
// or // or
new DirtySubmitForm(document.querySelectorAll('form')); new DirtySubmitForm(document.querySelectorAll('form'));
``` ```
[ce-21115]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21115
[dirty-submit]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/dirty_submit/
\ No newline at end of file
...@@ -192,4 +192,4 @@ rules only if you are invoking/instantiating existing code modules. ...@@ -192,4 +192,4 @@ rules only if you are invoking/instantiating existing code modules.
- [class-method-use-this](http://eslint.org/docs/rules/class-methods-use-this) - [class-method-use-this](http://eslint.org/docs/rules/class-methods-use-this)
> Note: Disable these rules on a per line basis. This makes it easier to refactor > Note: Disable these rules on a per line basis. This makes it easier to refactor
in the future. E.g. use `eslint-disable-next-line` or `eslint-disable-line`. > in the future. E.g. use `eslint-disable-next-line` or `eslint-disable-line`.
...@@ -24,7 +24,8 @@ Having said all of the above, we recommend staying away from shell scripts ...@@ -24,7 +24,8 @@ Having said all of the above, we recommend staying away from shell scripts
as much as possible. A language like Ruby or Python (if required for as much as possible. A language like Ruby or Python (if required for
consistency with codebases that we leverage) is almost always a better choice. consistency with codebases that we leverage) is almost always a better choice.
The high-level interpreted languages have more readable syntax, offer much more The high-level interpreted languages have more readable syntax, offer much more
mature capabilities for unit-testing, linting, and error reporting. mature capabilities for unit-testing, linting, and error reporting.
Use shell scripts only if there's a strong restriction on project's Use shell scripts only if there's a strong restriction on project's
dependencies size or any other requirements that are more important dependencies size or any other requirements that are more important
in a particular case. in a particular case.
...@@ -48,12 +49,12 @@ that is: ...@@ -48,12 +49,12 @@ that is:
This section describes the tools that should be made a mandatory part of This section describes the tools that should be made a mandatory part of
a project's CI pipeline if it contains shell scripts. These tools a project's CI pipeline if it contains shell scripts. These tools
automate shell code formatting, checking for errors or vulnerabilities, etc. automate shell code formatting, checking for errors or vulnerabilities, etc.
### Linting ### Linting
We're using the [ShellCheck](https://www.shellcheck.net/) utility in its default configuration to lint our We're using the [ShellCheck](https://www.shellcheck.net/) utility in its default configuration to lint our
shell scripts. shell scripts.
All projects with shell scripts should use this GitLab CI/CD job: All projects with shell scripts should use this GitLab CI/CD job:
...@@ -98,7 +99,7 @@ NOTE: **Note:** ...@@ -98,7 +99,7 @@ NOTE: **Note:**
This is a work in progress. This is a work in progress.
It is an [ongoing effort](https://gitlab.com/gitlab-org/gitlab-ce/issues/64016) to evaluate different tools for the It is an [ongoing effort](https://gitlab.com/gitlab-org/gitlab-ce/issues/64016) to evaluate different tools for the
automated testing of shell scripts (like [BATS](https://github.com/sstephenson/bats)). automated testing of shell scripts (like [BATS](https://github.com/sstephenson/bats)).
## Code Review ## Code Review
......
...@@ -255,8 +255,8 @@ that a machine will hit the "too many mount points" problem in the future. ...@@ -255,8 +255,8 @@ that a machine will hit the "too many mount points" problem in the future.
thousands of unused Docker images.** thousands of unused Docker images.**
> We have to start somewhere and improve later. Also, we're using the > We have to start somewhere and improve later. Also, we're using the
CNG-mirror project to store these Docker images so that we can just wipe out > CNG-mirror project to store these Docker images so that we can just wipe out
the registry at some point, and use a new fresh, empty one. > the registry at some point, and use a new fresh, empty one.
**How do we secure this from abuse? Apps are open to the world so we need to **How do we secure this from abuse? Apps are open to the world so we need to
find a way to limit it to only us.** find a way to limit it to only us.**
......
...@@ -46,8 +46,7 @@ In `config/gitlab.yml`: ...@@ -46,8 +46,7 @@ In `config/gitlab.yml`:
## Storing LFS objects in remote object storage ## Storing LFS objects in remote object storage
> [Introduced][ee-2760] in [GitLab Premium][eep] 10.0. Brought to GitLab Core > [Introduced][ee-2760] in [GitLab Premium][eep] 10.0. Brought to GitLab Core in 10.7.
in 10.7.
It is possible to store LFS objects in remote object storage which allows you It is possible to store LFS objects in remote object storage which allows you
to offload local hard disk R/W operations, and free up disk space significantly. to offload local hard disk R/W operations, and free up disk space significantly.
...@@ -91,7 +90,7 @@ Here is a configuration example with S3. ...@@ -91,7 +90,7 @@ Here is a configuration example with S3.
| `aws_access_key_id` | AWS credentials, or compatible | `ABC123DEF456` | | `aws_access_key_id` | AWS credentials, or compatible | `ABC123DEF456` |
| `aws_secret_access_key` | AWS credentials, or compatible | `ABC123DEF456ABC123DEF456ABC123DEF456` | | `aws_secret_access_key` | AWS credentials, or compatible | `ABC123DEF456ABC123DEF456ABC123DEF456` |
| `aws_signature_version` | AWS signature version to use. 2 or 4 are valid options. Digital Ocean Spaces and other providers may need 2. | 4 | | `aws_signature_version` | AWS signature version to use. 2 or 4 are valid options. Digital Ocean Spaces and other providers may need 2. | 4 |
| `enable_signature_v4_streaming` | Set to true to enable HTTP chunked transfers with AWS v4 signatures (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html). Oracle Cloud S3 needs this to be false | true | `enable_signature_v4_streaming` | Set to true to enable HTTP chunked transfers with [AWS v4 signatures](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html). Oracle Cloud S3 needs this to be false | true |
| `region` | AWS region | us-east-1 | | `region` | AWS region | us-east-1 |
| `host` | S3 compatible host for when not using AWS, e.g. `localhost` or `storage.example.com` | s3.amazonaws.com | | `host` | S3 compatible host for when not using AWS, e.g. `localhost` or `storage.example.com` | s3.amazonaws.com |
| `endpoint` | Can be used when configuring an S3 compatible service such as [Minio](https://www.minio.io), by entering a URL such as `http://127.0.0.1:9000` | (optional) | | `endpoint` | Can be used when configuring an S3 compatible service such as [Minio](https://www.minio.io), by entering a URL such as `http://127.0.0.1:9000` | (optional) |
...@@ -107,7 +106,9 @@ Here is a configuration example with GCS. ...@@ -107,7 +106,9 @@ Here is a configuration example with GCS.
| `google_client_email` | The email address of the service account | `foo@gcp-project-12345.iam.gserviceaccount.com` | | `google_client_email` | The email address of the service account | `foo@gcp-project-12345.iam.gserviceaccount.com` |
| `google_json_key_location` | The json key path | `/path/to/gcp-project-12345-abcde.json` | | `google_json_key_location` | The json key path | `/path/to/gcp-project-12345-abcde.json` |
_NOTE: The service account must have permission to access the bucket. [See more](https://cloud.google.com/storage/docs/authentication)_ NOTE: **Note:**
The service account must have permission to access the bucket.
[See more](https://cloud.google.com/storage/docs/authentication)
Here is a configuration example with Rackspace Cloud Files. Here is a configuration example with Rackspace Cloud Files.
...@@ -119,7 +120,13 @@ Here is a configuration example with Rackspace Cloud Files. ...@@ -119,7 +120,13 @@ Here is a configuration example with Rackspace Cloud Files.
| `rackspace_region` | The Rackspace storage region to use, a three letter code from the [list of service access endpoints](https://developer.rackspace.com/docs/cloud-files/v1/general-api-info/service-access/) | `iad` | | `rackspace_region` | The Rackspace storage region to use, a three letter code from the [list of service access endpoints](https://developer.rackspace.com/docs/cloud-files/v1/general-api-info/service-access/) | `iad` |
| `rackspace_temp_url_key` | The private key you have set in the Rackspace API for temporary URLs. Read more [here](https://developer.rackspace.com/docs/cloud-files/v1/use-cases/public-access-to-your-cloud-files-account/#tempurl) | `ABC123DEF456ABC123DEF456ABC123DE` | | `rackspace_temp_url_key` | The private key you have set in the Rackspace API for temporary URLs. Read more [here](https://developer.rackspace.com/docs/cloud-files/v1/use-cases/public-access-to-your-cloud-files-account/#tempurl) | `ABC123DEF456ABC123DEF456ABC123DE` |
_NOTES: Regardless of whether the container has public access enabled or disabled, Fog will use the TempURL method to grant access to LFS objects. If you see errors in logs referencing instantiating storage with a temp-url-key, ensure that you have set they key properly on the Rackspace API and in gitlab.rb. You can verify the value of the key Rackspace has set by sending a GET request with token header to the service access endpoint URL and comparing the output of the returned headers._ NOTE: **Note:**
Regardless of whether the container has public access enabled or disabled, Fog will
use the TempURL method to grant access to LFS objects. If you see errors in logs referencing
instantiating storage with a temp-url-key, ensure that you have set they key properly
on the Rackspace API and in gitlab.rb. You can verify the value of the key Rackspace
has set by sending a GET request with token header to the service access endpoint URL
and comparing the output of the returned headers.
### Manual uploading to an object storage ### Manual uploading to an object storage
...@@ -167,13 +174,13 @@ On Omnibus installations, the settings are prefixed by `lfs_object_store_`: ...@@ -167,13 +174,13 @@ On Omnibus installations, the settings are prefixed by `lfs_object_store_`:
1. Save the file and [reconfigure GitLab]s for the changes to take effect. 1. Save the file and [reconfigure GitLab]s for the changes to take effect.
1. Migrate any existing local LFS objects to the object storage: 1. Migrate any existing local LFS objects to the object storage:
```bash ```bash
gitlab-rake gitlab:lfs:migrate gitlab-rake gitlab:lfs:migrate
``` ```
This will migrate existing LFS objects to object storage. New LFS objects This will migrate existing LFS objects to object storage. New LFS objects
will be forwarded to object storage unless will be forwarded to object storage unless
`gitlab_rails['lfs_object_store_background_upload']` is set to false. `gitlab_rails['lfs_object_store_background_upload']` is set to false.
### S3 for installations from source ### S3 for installations from source
...@@ -203,13 +210,13 @@ For source installations the settings are nested under `lfs:` and then ...@@ -203,13 +210,13 @@ For source installations the settings are nested under `lfs:` and then
1. Save the file and [restart GitLab][] for the changes to take effect. 1. Save the file and [restart GitLab][] for the changes to take effect.
1. Migrate any existing local LFS objects to the object storage: 1. Migrate any existing local LFS objects to the object storage:
```bash ```bash
sudo -u git -H bundle exec rake gitlab:lfs:migrate RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:lfs:migrate RAILS_ENV=production
``` ```
This will migrate existing LFS objects to object storage. New LFS objects This will migrate existing LFS objects to object storage. New LFS objects
will be forwarded to object storage unless `background_upload` is set to will be forwarded to object storage unless `background_upload` is set to
false. false.
## Storage statistics ## Storage statistics
......
...@@ -35,9 +35,10 @@ Documentation for GitLab instance administrators is under [LFS administration do ...@@ -35,9 +35,10 @@ Documentation for GitLab instance administrators is under [LFS administration do
- Git LFS always assumes HTTPS so if you have GitLab server on HTTP you will have - Git LFS always assumes HTTPS so if you have GitLab server on HTTP you will have
to add the URL to Git config manually (see [troubleshooting](#troubleshooting)) to add the URL to Git config manually (see [troubleshooting](#troubleshooting))
>**Note**: With 8.12 GitLab added LFS support to SSH. The Git LFS communication NOTE: **Note:**
still goes over HTTP, but now the SSH client passes the correct credentials With 8.12 GitLab added LFS support to SSH. The Git LFS communication
to the Git LFS client, so no action is required by the user. still goes over HTTP, but now the SSH client passes the correct credentials
to the Git LFS client, so no action is required by the user.
## Using Git LFS ## Using Git LFS
...@@ -61,12 +62,13 @@ git commit -am "Added Debian iso" # commit the file meta data ...@@ -61,12 +62,13 @@ git commit -am "Added Debian iso" # commit the file meta data
git push origin master # sync the git repo and large file to the GitLab server git push origin master # sync the git repo and large file to the GitLab server
``` ```
> **Note**: Make sure that `.gitattributes` is tracked by git. Otherwise Git NOTE: **Note:**
> LFS will not be working properly for people cloning the project. **Make sure** that `.gitattributes` is tracked by Git. Otherwise Git
> LFS will not be working properly for people cloning the project.
> ```bash
> git add .gitattributes ```bash
> ``` git add .gitattributes
```
Cloning the repository works the same as before. Git automatically detects the Cloning the repository works the same as before. Git automatically detects the
LFS-tracked files and clones them via HTTP. If you performed the git clone LFS-tracked files and clones them via HTTP. If you performed the git clone
...@@ -216,9 +218,10 @@ git config --add lfs.url "http://gitlab.example.com/group/project.git/info/lfs" ...@@ -216,9 +218,10 @@ git config --add lfs.url "http://gitlab.example.com/group/project.git/info/lfs"
### Credentials are always required when pushing an object ### Credentials are always required when pushing an object
>**Note**: With 8.12 GitLab added LFS support to SSH. The Git LFS communication NOTE: **Note:**
still goes over HTTP, but now the SSH client passes the correct credentials With 8.12 GitLab added LFS support to SSH. The Git LFS communication
to the Git LFS client, so no action is required by the user. still goes over HTTP, but now the SSH client passes the correct credentials
to the Git LFS client, so no action is required by the user.
Given that Git LFS uses HTTP Basic Authentication to authenticate the user pushing Given that Git LFS uses HTTP Basic Authentication to authenticate the user pushing
the LFS object on every push for every object, user HTTPS credentials are required. the LFS object on every push for every object, user HTTPS credentials are required.
......
...@@ -76,7 +76,7 @@ Here you'll find a guide on ...@@ -76,7 +76,7 @@ Here you'll find a guide on
Since Annex files are stored as objects with symlinks and cannot be directly Since Annex files are stored as objects with symlinks and cannot be directly
modified, we need to first remove those symlinks. modified, we need to first remove those symlinks.
>**Note:** NOTE: **Note:**
Make sure the you read about the [`direct` mode][annex-direct] as it contains Make sure the you read about the [`direct` mode][annex-direct] as it contains
useful information that may fit in your use case. Note that `annex direct` is useful information that may fit in your use case. Note that `annex direct` is
deprecated in Git Annex version 6, so you may need to upgrade your repository deprecated in Git Annex version 6, so you may need to upgrade your repository
......
...@@ -37,8 +37,7 @@ The following are some possible use cases for repository mirroring: ...@@ -37,8 +37,7 @@ The following are some possible use cases for repository mirroring:
## Pushing to a remote repository **(CORE)** ## Pushing to a remote repository **(CORE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/249) in GitLab Enterprise > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/249) in GitLab Enterprise Edition 8.7. [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18715) in 10.8.
> Edition 8.7. [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18715) in 10.8.
For an existing project, you can set up push mirroring as follows: For an existing project, you can set up push mirroring as follows:
...@@ -67,8 +66,7 @@ section. ...@@ -67,8 +66,7 @@ section.
### Push only protected branches **(CORE)** ### Push only protected branches **(CORE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3350) in > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3350) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18715) in 10.8.
> [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. [Moved to GitLab Core](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18715) in 10.8.
You can choose to only push your protected branches from GitLab to your remote repository. You can choose to only push your protected branches from GitLab to your remote repository.
...@@ -98,8 +96,7 @@ The repository will push soon. To force a push, click the appropriate button. ...@@ -98,8 +96,7 @@ The repository will push soon. To force a push, click the appropriate button.
## Pulling from a remote repository **(STARTER)** ## Pulling from a remote repository **(STARTER)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/51) in GitLab Enterprise Edition 8.2. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/51) in GitLab Enterprise Edition 8.2. [Added Git LFS support](https://gitlab.com/gitlab-org/gitlab-ee/issues/10871) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.11.
> [Added Git LFS support](https://gitlab.com/gitlab-org/gitlab-ee/issues/10871) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.11.
NOTE: **Note:** This feature [is available for free](https://gitlab.com/gitlab-org/gitlab-ee/issues/10361) to NOTE: **Note:** This feature [is available for free](https://gitlab.com/gitlab-org/gitlab-ee/issues/10361) to
GitLab.com users until September 22nd, 2019. GitLab.com users until September 22nd, 2019.
...@@ -157,8 +154,7 @@ Repository mirrors are updated as Sidekiq becomes available to process them. If ...@@ -157,8 +154,7 @@ Repository mirrors are updated as Sidekiq becomes available to process them. If
### SSH authentication ### SSH authentication
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2551) for Pull mirroring in [GitLab Starter](https://about.gitlab.com/pricing/) 9.5. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2551) for Pull mirroring in [GitLab Starter](https://about.gitlab.com/pricing/) 9.5. [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22982) for Push mirroring in [GitLab Core](https://about.gitlab.com/pricing/) 11.6
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22982) for Push mirroring in [GitLab Core](https://about.gitlab.com/pricing/) 11.6
SSH authentication is mutual: SSH authentication is mutual:
...@@ -245,8 +241,7 @@ key to keep the mirror running. ...@@ -245,8 +241,7 @@ key to keep the mirror running.
### Overwrite diverged branches **(STARTER)** ### Overwrite diverged branches **(STARTER)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4559) in > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4559) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.6.
> [GitLab Starter](https://about.gitlab.com/pricing/) 10.6.
You can choose to always update your local branches with remote versions, even if they have You can choose to always update your local branches with remote versions, even if they have
diverged from the remote. diverged from the remote.
...@@ -258,8 +253,7 @@ To use this option, check the **Overwrite diverged branches** box when creating ...@@ -258,8 +253,7 @@ To use this option, check the **Overwrite diverged branches** box when creating
### Only mirror protected branches **(STARTER)** ### Only mirror protected branches **(STARTER)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3326) in > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3326) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3.
> [GitLab Starter](https://about.gitlab.com/pricing/) 10.3.
You can choose to pull mirror only the protected branches from your remote repository to GitLab. You can choose to pull mirror only the protected branches from your remote repository to GitLab.
Non-protected branches are not mirrored and can diverge. Non-protected branches are not mirrored and can diverge.
...@@ -268,8 +262,7 @@ To use this option, check the **Only mirror protected branches** box when creati ...@@ -268,8 +262,7 @@ To use this option, check the **Only mirror protected branches** box when creati
### Hard failure **(STARTER)** ### Hard failure **(STARTER)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3117) in > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3117) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.2.
> [GitLab Starter](https://about.gitlab.com/pricing/) 10.2.
Once the mirroring process is unsuccessfully retried 14 times in a row, it will get marked as hard Once the mirroring process is unsuccessfully retried 14 times in a row, it will get marked as hard
failed. This will become visible in either the: failed. This will become visible in either the:
...@@ -282,8 +275,7 @@ project mirroring again by [Forcing an update](#forcing-an-update-core). ...@@ -282,8 +275,7 @@ project mirroring again by [Forcing an update](#forcing-an-update-core).
### Trigger update using API **(STARTER)** ### Trigger update using API **(STARTER)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3453) in > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3453) in [GitLab Starter](https://about.gitlab.com/pricing/) 10.3.
[GitLab Starter](https://about.gitlab.com/pricing/) 10.3.
Pull mirroring uses polling to detect new branches and commits added upstream, often minutes Pull mirroring uses polling to detect new branches and commits added upstream, often minutes
afterwards. If you notify GitLab by [API](../api/projects.md#start-the-pull-mirroring-process-for-a-project-starter), afterwards. If you notify GitLab by [API](../api/projects.md#start-the-pull-mirroring-process-for-a-project-starter),
...@@ -325,9 +317,10 @@ protected branches. ...@@ -325,9 +317,10 @@ protected branches.
### Preventing conflicts using a `pre-receive` hook ### Preventing conflicts using a `pre-receive` hook
> **Warning:** The solution proposed will negatively impact the performance of CAUTION: **Warning:**
> Git push operations because they will be proxied to the upstream Git The solution proposed will negatively impact the performance of
> repository. Git push operations because they will be proxied to the upstream Git
repository.
A server-side `pre-receive` hook can be used to prevent the race condition A server-side `pre-receive` hook can be used to prevent the race condition
described above by only accepting the push after first pushing the commit to described above by only accepting the push after first pushing the commit to
......
...@@ -35,8 +35,8 @@ A To Do displays on your To-Do List when: ...@@ -35,8 +35,8 @@ A To Do displays on your To-Do List when:
- You are `@mentioned` in a comment on a commit - You are `@mentioned` in a comment on a commit
- A job in the CI pipeline running for your merge request failed, but this - A job in the CI pipeline running for your merge request failed, but this
job is not allowed to fail job is not allowed to fail
- An open merge request becomes unmergeable due to conflict, and you are either: - An open merge request becomes unmergeable due to conflict, and you are either:
- The author - The author
- Have set it to automatically merge once the pipeline succeeds - Have set it to automatically merge once the pipeline succeeds
To-do triggers are not affected by [GitLab Notification Email settings](notifications.md). To-do triggers are not affected by [GitLab Notification Email settings](notifications.md).
......
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