Commit 9baff6f6 authored by Mike Lewis's avatar Mike Lewis

Merge branch 'docs-SSOT-misc-1' into 'master'

Docs: SSOT edits to docs that are alone in root directories

See merge request gitlab-org/gitlab-ce!28694
parents ee87aa5a 014ab2eb
---
type: howto
---
# Migrate GitLab CI to GitLab CE or EE # Migrate GitLab CI to GitLab CE or EE
Beginning with version 8.0 of GitLab Community Edition (CE) and Enterprise Beginning with version 8.0 of GitLab Community Edition (CE) and Enterprise
...@@ -333,7 +337,9 @@ restoration](../raketasks/backup_restore.md) guide. ...@@ -333,7 +337,9 @@ restoration](../raketasks/backup_restore.md) guide.
## Troubleshooting ## Troubleshooting
### show:secrets problem (Omnibus-only) ### show:secrets problem (Omnibus-only)
If you see errors like this: If you see errors like this:
``` ```
Missing `secret_key_base` or `db_key_base` for 'production' environment. The secrets will be generated and stored in `config/secrets.yml` Missing `secret_key_base` or `db_key_base` for 'production' environment. The secrets will be generated and stored in `config/secrets.yml`
rake aborted! rake aborted!
...@@ -344,6 +350,7 @@ This can happen if you are updating from versions prior to 7.13 straight to 8.0. ...@@ -344,6 +350,7 @@ This can happen if you are updating from versions prior to 7.13 straight to 8.0.
The fix for this is to update to Omnibus 7.14 first and then update it to 8.0. The fix for this is to update to Omnibus 7.14 first and then update it to 8.0.
### Permission denied when accessing /var/opt/gitlab/gitlab-ci/builds ### Permission denied when accessing /var/opt/gitlab/gitlab-ci/builds
To fix that issue you have to change builds/ folder permission before doing final backup: To fix that issue you have to change builds/ folder permission before doing final backup:
``` ```
sudo chown -R gitlab-ci:gitlab-ci /var/opt/gitlab/gitlab-ci/builds sudo chown -R gitlab-ci:gitlab-ci /var/opt/gitlab/gitlab-ci/builds
...@@ -355,8 +362,10 @@ sudo chown git:git /var/opt/gitlab/gitlab-ci/builds ...@@ -355,8 +362,10 @@ sudo chown git:git /var/opt/gitlab/gitlab-ci/builds
``` ```
### Problems when importing CI database to GitLab ### Problems when importing CI database to GitLab
If you were migrating CI database from MySQL to PostgreSQL manually you can see errors during import about missing sequences: If you were migrating CI database from MySQL to PostgreSQL manually you can see errors during import about missing sequences:
```
```sql
ALTER SEQUENCE ALTER SEQUENCE
ERROR: relation "ci_builds_id_seq" does not exist ERROR: relation "ci_builds_id_seq" does not exist
ERROR: relation "ci_commits_id_seq" does not exist ERROR: relation "ci_commits_id_seq" does not exist
...@@ -373,9 +382,9 @@ CREATE TABLE ...@@ -373,9 +382,9 @@ CREATE TABLE
To fix that you need to apply this SQL statement before doing final backup: To fix that you need to apply this SQL statement before doing final backup:
```sql Omnibus GitLab installations:
## Omnibus GitLab
```sql
gitlab-ci-rails dbconsole <<EOF gitlab-ci-rails dbconsole <<EOF
-- ALTER TABLES - DROP DEFAULTS -- ALTER TABLES - DROP DEFAULTS
ALTER TABLE ONLY ci_application_settings ALTER COLUMN id DROP DEFAULT; ALTER TABLE ONLY ci_application_settings ALTER COLUMN id DROP DEFAULT;
...@@ -428,9 +437,11 @@ ALTER TABLE ONLY ci_triggers ALTER COLUMN id SET DEFAULT nextval('ci_triggers_id ...@@ -428,9 +437,11 @@ ALTER TABLE ONLY ci_triggers ALTER COLUMN id SET DEFAULT nextval('ci_triggers_id
ALTER TABLE ONLY ci_variables ALTER COLUMN id SET DEFAULT nextval('ci_variables_id_seq'::regclass); ALTER TABLE ONLY ci_variables ALTER COLUMN id SET DEFAULT nextval('ci_variables_id_seq'::regclass);
ALTER TABLE ONLY ci_web_hooks ALTER COLUMN id SET DEFAULT nextval('ci_web_hooks_id_seq'::regclass); ALTER TABLE ONLY ci_web_hooks ALTER COLUMN id SET DEFAULT nextval('ci_web_hooks_id_seq'::regclass);
EOF EOF
```
## Source installations Source installations:
```
cd /home/gitlab_ci/gitlab-ci cd /home/gitlab_ci/gitlab-ci
sudo -u gitlab_ci -H bundle exec rails dbconsole production <<EOF sudo -u gitlab_ci -H bundle exec rails dbconsole production <<EOF
... COPY SQL STATEMENTS FROM ABOVE ... ... COPY SQL STATEMENTS FROM ABOVE ...
......
# GitLab Maintenance Policy ---
type: concepts
---
# GitLab Release and Maintenance Policy
GitLab has strict policies governing version naming, as well as release pace for major, minor,
patch and security releases. New releases are usually announced on the [GitLab blog](https://about.gitlab.com/blog/categories/releases/).
## Versioning ## Versioning
GitLab follows the [Semantic Versioning](http://semver.org/) for its releases: GitLab uses [Semantic Versioning](http://semver.org/) for its releases:
`(Major).(Minor).(Patch)` in a [pragmatic way](https://gist.github.com/jashkenas/cbd2b088e20279ae2c8e). `(Major).(Minor).(Patch)` in a [pragmatic way](https://gist.github.com/jashkenas/cbd2b088e20279ae2c8e).
For example, for GitLab version 10.5.7: For example, for GitLab version 10.5.7:
...@@ -15,9 +22,9 @@ Any part of the version number can increment into multiple digits, for example, ...@@ -15,9 +22,9 @@ Any part of the version number can increment into multiple digits, for example,
The following table describes the version types and their release cadence: The following table describes the version types and their release cadence:
| Version type | Description | Cadence | | Version type | Description | Cadence |
|:-------------|:----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------| |:-------------|:------------|:--------|
| Major | For significant changes, or when any backward-incompatible changes are introduced to the public API. | Yearly. The next major release is GitLab 12.0 on June 22, 2019. Subsequent major releases will be scheduled for May 22 each year, by default. | | | Major | For significant changes, or when any backward-incompatible changes are introduced to the public API. | Yearly. The next major release is GitLab 12.0 on June 22, 2019. Subsequent major releases will be scheduled for May 22 each year, by default. |
| Minor | For when new backward-compatible functionality is introduced to the public API, a minor feature is introduced, or when a set of smaller features is rolled out. | Monthly on the 22nd. | | Minor | For when new backward-compatible functionality is introduced to the public API, a minor feature is introduced, or when a set of smaller features is rolled out. | Monthly on the 22nd. |
| Patch | For backward-compatible bug fixes that fix incorrect behavior. See [Patch releases](#patch-releases). | As needed. | | Patch | For backward-compatible bug fixes that fix incorrect behavior. See [Patch releases](#patch-releases). | As needed. |
...@@ -75,10 +82,10 @@ that could change behavior in the next major release. ...@@ -75,10 +82,10 @@ that could change behavior in the next major release.
Please see the table below for some examples: Please see the table below for some examples:
| Latest stable version | Your version | Recommended upgrade path | Note | | Latest stable version | Your version | Recommended upgrade path | Note |
| -------------- | ------------ | ------------------------ | ---------------- | | --------------------- | ------------ | ------------------------ | ---- |
| 9.4.5 | 8.13.4 | `8.13.4` -> `8.17.7` -> `9.4.5` | `8.17.7` is the last version in version `8` | | 9.4.5 | 8.13.4 | `8.13.4` -> `8.17.7` -> `9.4.5` | `8.17.7` is the last version in version `8` |
| 10.1.4 | 8.13.4 | `8.13.4 -> 8.17.7 -> 9.5.10 -> 10.1.4` | `8.17.7` is the last version in version `8`, `9.5.10` is the last version in version `9` | | 10.1.4 | 8.13.4 | `8.13.4 -> 8.17.7 -> 9.5.10 -> 10.1.4` | `8.17.7` is the last version in version `8`, `9.5.10` is the last version in version `9` |
| 11.3.4 | 8.13.4 | `8.13.4` -> `8.17.7` -> `9.5.10` -> `10.8.7` -> `11.3.4` | `8.17.7` is the last version in version `8`, `9.5.10` is the last version in version `9`, `10.8.7` is the last version in version `10` | | 11.3.4 | 8.13.4 | `8.13.4` -> `8.17.7` -> `9.5.10` -> `10.8.7` -> `11.3.4` | `8.17.7` is the last version in version `8`, `9.5.10` is the last version in version `9`, `10.8.7` is the last version in version `10` |
More information about the release procedures can be found in our More information about the release procedures can be found in our
[release documentation](https://gitlab.com/gitlab-org/release/docs). You may also want to read our [release documentation](https://gitlab.com/gitlab-org/release/docs). You may also want to read our
......
# Public access ---
type: reference
GitLab allows [Owners](../user/permissions.md) to change a projects' visibility in order to be accessed ---
**publicly** or **internally**.
Projects with either of these visibility levels will be listed in the # Public access
public access directory (`/public` under your GitLab instance).
Here is the [GitLab.com example](https://gitlab.com/public).
Internal projects will only be available to authenticated users. GitLab allows [Owners](../user/permissions.md) to set a projects' visibility as **public**, **internal**
or **private**. These visibility levels affect who can see the project in the
public access directory (`/public` under your GitLab instance), like at [https://gitlab.com/public]().
## Visibility of projects ## Visibility of projects
...@@ -15,26 +14,26 @@ Internal projects will only be available to authenticated users. ...@@ -15,26 +14,26 @@ Internal projects will only be available to authenticated users.
Public projects can be cloned **without any** authentication. Public projects can be cloned **without any** authentication.
They will also be listed on the public access directory (`/public`). They will be listed in the public access directory (`/public`) for all users.
**Any logged in user** will have [Guest](../user/permissions.md) **Any logged in user** will have [Guest permissions](../user/permissions.md)
permissions on the repository. on the repository.
### Internal projects ### Internal projects
Internal projects can be cloned by any logged in user. Internal projects can be cloned by any logged in user.
They will also be listed on the public access directory (`/public`) for logged They will also be listed in the public access directory (`/public`), but only for logged
in users. in users.
Any logged in user will have [Guest](../user/permissions.md) permissions Any logged in user will have [Guest permissions](../user/permissions.md)
on the repository. on the repository.
### Private projects ### Private projects
Private projects can only be cloned and viewed by project members, and Private projects can only be cloned and viewed by project members.
they will only appear to project members on the public access directory
(`https://gitlab.example.com/public`). They will appear in the public access directory (`/public`) for project members only.
### How to change project visibility ### How to change project visibility
...@@ -43,10 +42,10 @@ they will only appear to project members on the public access directory ...@@ -43,10 +42,10 @@ they will only appear to project members on the public access directory
## Visibility of groups ## Visibility of groups
>**Note:** NOTE: **Note:**
[Starting with][3323] GitLab 8.6, the group visibility has changed and can be [Starting with](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3323) GitLab 8.6,
configured the same way as projects. In previous versions, a group's page was the group visibility has changed and can be configured the same way as projects.
always visible to all users. In previous versions, a group's page was always visible to all users.
Like with projects, the visibility of a group can be set to dictate whether Like with projects, the visibility of a group can be set to dictate whether
anonymous users, all signed in users, or only explicit group members can view anonymous users, all signed in users, or only explicit group members can view
...@@ -54,8 +53,6 @@ it. The restriction for visibility levels on the application setting level also ...@@ -54,8 +53,6 @@ it. The restriction for visibility levels on the application setting level also
applies to groups, so if that's set to internal, the explore page will be empty applies to groups, so if that's set to internal, the explore page will be empty
for anonymous users. The group page now has a visibility level icon. for anonymous users. The group page now has a visibility level icon.
[3323]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3323
## Visibility of users ## Visibility of users
The public page of a user, located at `/username`, is always visible whether The public page of a user, located at `/username`, is always visible whether
...@@ -76,3 +73,15 @@ snippet: ...@@ -76,3 +73,15 @@ snippet:
This is useful to prevent people exposing their repositories to public This is useful to prevent people exposing their repositories to public
by accident. The restricted visibility settings do not apply to admin users. by accident. The restricted visibility settings do not apply to admin users.
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.
Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->
---
type: reference, howto
---
# Push Rules **[STARTER]** # Push Rules **[STARTER]**
Gain additional control over pushes to your repository. Gain additional control over what can and can't be pushed to your repository by using
regular expressions to reject pushes based on commit contents, branch names or file details.
## Overview ## Overview
...@@ -33,7 +38,7 @@ will be accepted. ...@@ -33,7 +38,7 @@ will be accepted.
### Restrict branch names ### Restrict branch names
Let's assume there's a strictly policy for branch names in your company, and Let's assume there's a strict policy for branch names in your company, and
you want the branches to start with a certain name because you have different you want the branches to start with a certain name because you have different
GitLab CI jobs (`feature`, `hotfix`, `docker`, `android`, etc.) that rely on the GitLab CI jobs (`feature`, `hotfix`, `docker`, `android`, etc.) that rely on the
branch name. branch name.
...@@ -46,7 +51,7 @@ will get rejected. ...@@ -46,7 +51,7 @@ will get rejected.
## Enabling push rules ## Enabling push rules
>**Note:** NOTE: **Note:**
GitLab administrators can set push rules globally under GitLab administrators can set push rules globally under
**Admin area > Push Rules** that all new projects will inherit. You can later **Admin area > Push Rules** that all new projects will inherit. You can later
override them in a project's settings. override them in a project's settings.
...@@ -71,8 +76,8 @@ The following options are available. ...@@ -71,8 +76,8 @@ The following options are available.
| Prohibited file names | **Starter** 7.10 | Any committed filenames that match this regular expression are not allowed to be pushed. Leave empty to allow any filenames. | | Prohibited file names | **Starter** 7.10 | Any committed filenames that match this regular expression are not allowed to be pushed. Leave empty to allow any filenames. |
| Maximum file size | **Starter** 7.12 | Pushes that contain added or updated files that exceed this file size (in MB) are rejected. Set to 0 to allow files of any size. | | Maximum file size | **Starter** 7.12 | Pushes that contain added or updated files that exceed this file size (in MB) are rejected. Set to 0 to allow files of any size. |
>**Tip:** TIP: **Tip:**
GitLab uses [RE2 syntax](https://github.com/google/re2/wiki/Syntax) for regular expressions in push rules. You can check your regular expressions at <https://regex-golang.appspot.com>. GitLab uses [RE2 syntax](https://github.com/google/re2/wiki/Syntax) for regular expressions in push rules, and you can test them at the [GoLang regex tester](https://regex-golang.appspot.com).
## Prevent pushing secrets to the repository ## Prevent pushing secrets to the repository
...@@ -86,7 +91,7 @@ pushes to the repository when a file matches a regular expression as read from ...@@ -86,7 +91,7 @@ pushes to the repository when a file matches a regular expression as read from
[`files_blacklist.yml`][list] (make sure you are at the right branch [`files_blacklist.yml`][list] (make sure you are at the right branch
as your GitLab version when viewing this file). as your GitLab version when viewing this file).
NOTE: **Note**: NOTE: **Note:**
Files already committed won't get restricted by this push rule. Files already committed won't get restricted by this push rule.
Below is an example list of what will be rejected by these regular expressions: Below is an example list of what will be rejected by these regular expressions:
...@@ -148,6 +153,18 @@ pry.history ...@@ -148,6 +153,18 @@ pry.history
bash_history bash_history
``` ```
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.
Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->
[protected-branches]: ../user/project/protected_branches.md [protected-branches]: ../user/project/protected_branches.md
[signing-commits]: ../user/project/repository/gpg_signed_commits/index.md [signing-commits]: ../user/project/repository/gpg_signed_commits/index.md
[ee-385]: https://gitlab.com/gitlab-org/gitlab-ee/issues/385 [ee-385]: https://gitlab.com/gitlab-org/gitlab-ee/issues/385
......
---
type: howto, reference
---
# GitLab and SSH keys # GitLab and SSH keys
Git is a distributed version control system, which means you can work locally Git is a distributed version control system, which means you can work locally
...@@ -50,8 +54,7 @@ more information, you can read this ...@@ -50,8 +54,7 @@ more information, you can read this
We'll focus on ED25519 and RSA and here. We'll focus on ED25519 and RSA and here.
NOTE: **Note:** NOTE: **Note:**
As an admin, you can restrict As an admin, you can [restrict which keys should be permitted and their minimum length](../security/ssh_keys_restrictions.md).
[which keys should be permitted and their minimum length](../security/ssh_keys_restrictions.md).
By default, all keys are permitted, which is also the case for By default, all keys are permitted, which is also the case for
[GitLab.com](../user/gitlab_com/index.md#ssh-host-keys-fingerprints). [GitLab.com](../user/gitlab_com/index.md#ssh-host-keys-fingerprints).
...@@ -91,9 +94,8 @@ ssh-keygen -o -f ~/.ssh/id_rsa ...@@ -91,9 +94,8 @@ ssh-keygen -o -f ~/.ssh/id_rsa
## Generating a new SSH key pair ## Generating a new SSH key pair
Before creating an SSH key pair, make sure to read about the Before creating an SSH key pair, make sure to understand the
[different types of keys](#types-of-ssh-keys-and-which-to-choose) to understand [different types of keys](#types-of-ssh-keys-and-which-to-choose).
their differences.
To create a new SSH key pair: To create a new SSH key pair:
...@@ -332,7 +334,7 @@ not implicitly give any access just by setting them up. ...@@ -332,7 +334,7 @@ not implicitly give any access just by setting them up.
### Eclipse ### Eclipse
How to add your SSH key to Eclipse: <https://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration> If you are using [EGit](https://www.eclipse.org/egit/), you can [add your SSH key to Eclipse](https://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration).
## SSH on the GitLab server ## SSH on the GitLab server
......
---
type: index, reference
---
# Subscription setup and management # Subscription setup and management
This page will help get you started with your new subscription or manage an existing one, whether you have subscribed to GitLab.com or self-managed GitLab. This page will help get you started with your new subscription or manage an existing one, whether you have subscribed to GitLab.com or self-managed GitLab.
...@@ -42,7 +46,8 @@ After purchase, the license file is sent to the email address tied to the Custom ...@@ -42,7 +46,8 @@ After purchase, the license file is sent to the email address tied to the Custom
### Link your GitLab.com account with your Customers Portal account ### Link your GitLab.com account with your Customers Portal account
NOTE: **Note:** This is *required* for GitLab.com subscriptions. NOTE: **Note:**
This is *required* for GitLab.com subscriptions.
Once signed into the customers portal, if your account is not already linked, you should be prompted to link your account with a "Link my GitLab Account" button. Once signed into the customers portal, if your account is not already linked, you should be prompted to link your account with a "Link my GitLab Account" button.
...@@ -109,3 +114,15 @@ These issues are the best avenue for getting updates on specific product plans a ...@@ -109,3 +114,15 @@ These issues are the best avenue for getting updates on specific product plans a
### Contacting Support ### Contacting Support
Learn more about the tiers of [GitLab Support](https://about.gitlab.com/support/) or [submit a request via the Support Portal](https://support.gitlab.com/hc/en-us/requests/new). Learn more about the tiers of [GitLab Support](https://about.gitlab.com/support/) or [submit a request via the Support Portal](https://support.gitlab.com/hc/en-us/requests/new).
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.
Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->
---
type: reference
---
# System hooks # System hooks
Your GitLab instance can perform HTTP POST requests on the following events: Your GitLab instance can perform HTTP POST requests on the following events:
...@@ -27,11 +31,9 @@ The triggers for most of these are self-explanatory, but `project_update` and `p ...@@ -27,11 +31,9 @@ The triggers for most of these are self-explanatory, but `project_update` and `p
System hooks can be used, e.g. for logging or changing information in a LDAP server. System hooks can be used, e.g. for logging or changing information in a LDAP server.
> **Note:** NOTE: **Note:**
> We follow the same structure and deprecations as [Webhooks](../user/project/integrations/webhooks.md)
> We follow the same structure from Webhooks for Push and Tag events, but we never display commits. for Push and Tag events, but we never display commits.
>
> Same deprecations from Webhooks are valid here.
## Hooks request example ## Hooks request example
...@@ -640,3 +642,15 @@ X-Gitlab-Event: System Hook ...@@ -640,3 +642,15 @@ X-Gitlab-Event: System Hook
"refs":["refs/heads/master"] "refs":["refs/heads/master"]
} }
``` ```
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.
Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->
# Email from GitLab **[STARTER ONLY]** ---
type: howto, reference
As a GitLab administrator you can email GitLab users from within GitLab. ---
## Overview # Email from GitLab **[STARTER ONLY]**
GitLab provides a simple tool to email all users or users of a chosen group or GitLab provides a simple tool to administrators for emailing all users, or users of
project right from the admin area. Users will receive the email to their primary a chosen group or project, right from the admin area. Users will receive the email
email address. at their primary email address.
## Use-cases ## Use-cases
...@@ -28,11 +28,21 @@ email address. ...@@ -28,11 +28,21 @@ email address.
## Unsubscribing from emails ## Unsubscribing from emails
User can choose to unsubscribe from receiving emails from GitLab by following Users can choose to unsubscribe from receiving emails from GitLab by following
the unsubscribe link from the email. Unsubscribing is unauthenticated in order the unsubscribe link in the email. Unsubscribing is unauthenticated in order
to keep the simplicity of this feature. to keep this feature simple.
On unsubscribe, user will receive an email notifying that unsubscribe happened. On unsubscribe, users will receive an email notification that unsubscribe happened.
The endpoint that provides the unsubscribe option is rate-limited. The endpoint that provides the unsubscribe option is rate-limited.
[ee]: https://about.gitlab.com/pricing/ <!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.
Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->
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