From 1911283d5c6d55f1fbef30309fb458e9785a3e83 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 14 Nov 2018 09:44:16 +0100 Subject: Clarify wiki permissions --- doc/user/permissions.md | 3 ++- doc/user/project/wiki/index.md | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 1fd230a41aa..0ccc934183f 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -42,6 +42,8 @@ The following table depicts the various user permission levels in a project. | See a job log | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | | Download and browse job artifacts | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | | View wiki pages | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | +| Create and edit wiki pages | | | ✓ | ✓ | ✓ | +| Delete wiki pages | | | | ✓ | ✓ | | View license management reports **[ULTIMATE]** | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | | View Security reports **[ULTIMATE]** | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | | Pull project code | [^1] | ✓ | ✓ | ✓ | ✓ | @@ -70,7 +72,6 @@ The following table depicts the various user permission levels in a project. | Force push to non-protected branches | | | ✓ | ✓ | ✓ | | Remove non-protected branches | | | ✓ | ✓ | ✓ | | Add tags | | | ✓ | ✓ | ✓ | -| Write a wiki | | | ✓ | ✓ | ✓ | | Cancel and retry jobs | | | ✓ | ✓ | ✓ | | Create or update commit status | | | ✓ | ✓ | ✓ | | Update a container registry | | | ✓ | ✓ | ✓ | diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md index 127a30d6669..532247a98cd 100644 --- a/doc/user/project/wiki/index.md +++ b/doc/user/project/wiki/index.md @@ -12,10 +12,6 @@ You can create Wiki pages in the web interface or [locally using Git](#adding-and-editing-wiki-pages-locally) since every Wiki is a separate Git repository. ->**Note:** -A [permission level][permissions] of **Guest** is needed to view a Wiki and -**Developer** is needed to create and edit Wiki pages. - ## First time creating the Home page The first time you visit a Wiki, you will be directed to create the Home page. @@ -28,6 +24,9 @@ message. ## Creating a new wiki page +NOTE: **Note:** +A [permission level][permissions] of **Developer** is needed to create Wiki pages. + Create a new page by clicking the **New page** button that can be found in all wiki pages. You will be asked to fill in the page name from which GitLab will create the path to the page. You can specify a full path for the new file @@ -58,12 +57,18 @@ repository, you will have to upload them again. ## Editing a wiki page +NOTE: **Note:** +A [permission level][permissions] of **Developer** is needed to edit Wiki pages. + To edit a page, simply click on the **Edit** button. From there on, you can change its content. When done, click **Save changes** for the changes to take effect. ## Deleting a wiki page +NOTE: **Note:** +A [permission level][permissions] of **Maintainer** is needed to delete Wiki pages. + You can find the **Delete** button only when editing a page. Click on it and confirm you want the page to be deleted. -- cgit v1.2.3 From 04daa0b9701cd5b53c3c1fd6529aba05e4189114 Mon Sep 17 00:00:00 2001 From: Yauhen Kotau Date: Mon, 18 Feb 2019 20:08:36 +0300 Subject: Added YouTrack integration Fixes gitlab-org/gitlab-ce#42595 --- doc/user/project/integrations/project_services.md | 1 + doc/user/project/integrations/youtrack.md | 28 +++++++++++++++++++++++ doc/user/project/issues/index.md | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 doc/user/project/integrations/youtrack.md (limited to 'doc/user') diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index cec9018b67f..e2f23827360 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -50,6 +50,7 @@ Click on the service links to see further configuration instructions and details | [Prometheus](prometheus.md) | Monitor the performance of your deployed apps | | Pushover | Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop | | [Redmine](redmine.md) | Redmine issue tracker | +| [YouTrack](youtrack.md) | YouTrack issue tracker | ## Services templates diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md new file mode 100644 index 00000000000..85c339d5fa9 --- /dev/null +++ b/doc/user/project/integrations/youtrack.md @@ -0,0 +1,28 @@ +# YouTrack Service + +1. To enable the YouTrack integration in a project, navigate to the +[Integrations page](project_services.md#accessing-the-project-services), click +the **YouTrack** service, and fill in the required details on the page as described +in the table below. + + | Field | Description | + | ----- | ----------- | + | `description` | A name for the issue tracker (to differentiate between instances, for example) | + | `project_url` | The URL to the project in YouTrack which is being linked to this GitLab project | + | `issues_url` | The URL to the issue in YouTrack project that is linked to this GitLab project. Note that the `issues_url` requires `:id` in the URL. This ID is used by GitLab as a placeholder to replace the issue number. | + | `new_issue_url` | This is the URL to create a new issue in YouTrack for the project linked to this GitLab project. **This is currently not being used and will be removed in a future release.** | + + Once you have configured and enabled YouTrack you'll see the YouTrack link on the GitLab project pages that takes you to the appropriate YouTrack project. + +1. To disable the internal issue tracking system in a project, navigate to the General page, expand [Permissions](../settings/index.md#sharing-and-permissions), and slide the Issues switch invalid. + + ![Issue configuration](img/issue_configuration.png) + +## Referencing issues in YouTrack + +Issues in YouTrack can be referenced as `-` where `` +starts with a capital letter which is then followed by capital letters, numbers +or underscores, and `` is a number (example `API_32-143`). + +`` part is included into issue_id and links can point any YouTrack +project (`issues_url` + issue_id) diff --git a/doc/user/project/issues/index.md b/doc/user/project/issues/index.md index 5a3ac9c175b..907a305fe23 100644 --- a/doc/user/project/issues/index.md +++ b/doc/user/project/issues/index.md @@ -155,7 +155,7 @@ For further details, see [Importing issues from CSV](csv_import.md) Alternatively to GitLab's built-in Issue Tracker, you can also use an [external tracker](../../../integration/external-issue-tracker.md) such as Jira, Redmine, -or Bugzilla. +YouTrack, or Bugzilla. ### Issue API -- cgit v1.2.3 From d5e38b00cffacf2f0599c99a1bb1515b6f56aa9b Mon Sep 17 00:00:00 2001 From: Kotau Yauhen Date: Thu, 21 Feb 2019 10:39:44 +0000 Subject: Remove new_issue_url field from YouTrack integration service --- doc/user/project/integrations/youtrack.md | 1 - 1 file changed, 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index 85c339d5fa9..3e9295dfcbd 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -10,7 +10,6 @@ in the table below. | `description` | A name for the issue tracker (to differentiate between instances, for example) | | `project_url` | The URL to the project in YouTrack which is being linked to this GitLab project | | `issues_url` | The URL to the issue in YouTrack project that is linked to this GitLab project. Note that the `issues_url` requires `:id` in the URL. This ID is used by GitLab as a placeholder to replace the issue number. | - | `new_issue_url` | This is the URL to create a new issue in YouTrack for the project linked to this GitLab project. **This is currently not being used and will be removed in a future release.** | Once you have configured and enabled YouTrack you'll see the YouTrack link on the GitLab project pages that takes you to the appropriate YouTrack project. -- cgit v1.2.3 From c0009b088fd7fe463679b530e56ed162824df071 Mon Sep 17 00:00:00 2001 From: Yauhen Kotau Date: Mon, 25 Feb 2019 14:37:22 +0300 Subject: Update YouTrack integration service documentation --- doc/user/project/integrations/youtrack.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index 3e9295dfcbd..1186a75f8bb 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -1,5 +1,9 @@ # YouTrack Service +JetBrains YouTrack is a web-based issue tracking and project management platform. +Please refer official [documentation]([YouTrack](https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Documentation.html)) for details about YouTrack itself. + + 1. To enable the YouTrack integration in a project, navigate to the [Integrations page](project_services.md#accessing-the-project-services), click the **YouTrack** service, and fill in the required details on the page as described @@ -20,8 +24,8 @@ in the table below. ## Referencing issues in YouTrack Issues in YouTrack can be referenced as `-` where `` -starts with a capital letter which is then followed by capital letters, numbers -or underscores, and `` is a number (example `API_32-143`). +starts with a capital letter which is then followed by capital or lower case +letters, numbers or underscores, and `` is a number (example `Api_32-143`). `` part is included into issue_id and links can point any YouTrack project (`issues_url` + issue_id) -- cgit v1.2.3 From 1d388205d52f129bda6890edf3f3fa95d4d63b7c Mon Sep 17 00:00:00 2001 From: Yauhen Kotau Date: Mon, 25 Feb 2019 14:56:10 +0300 Subject: Fix docs-link test --- doc/user/project/integrations/youtrack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index 1186a75f8bb..2ab14a8db2c 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -1,7 +1,7 @@ # YouTrack Service JetBrains YouTrack is a web-based issue tracking and project management platform. -Please refer official [documentation]([YouTrack](https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Documentation.html)) for details about YouTrack itself. +Please refer official [documentation](https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Documentation.html) for details about YouTrack itself. 1. To enable the YouTrack integration in a project, navigate to the -- cgit v1.2.3 From 038d530565bc64729706bbd9afad275699be459d Mon Sep 17 00:00:00 2001 From: Imre Farkas Date: Mon, 25 Feb 2019 14:52:40 +0100 Subject: Remove ability to revoke active session Session ID is used as a parameter for the revoke session endpoint but it should never be included in the HTML as an attacker could obtain it via XSS. --- doc/user/profile/active_sessions.md | 8 +------- doc/user/profile/img/active_sessions_list.png | Bin 22266 -> 19360 bytes 2 files changed, 1 insertion(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/profile/active_sessions.md b/doc/user/profile/active_sessions.md index 5119c0e30d0..28e3f4904a9 100644 --- a/doc/user/profile/active_sessions.md +++ b/doc/user/profile/active_sessions.md @@ -4,7 +4,7 @@ > in GitLab 10.8. GitLab lists all devices that have logged into your account. This allows you to -review the sessions and revoke any of it that you don't recognize. +review the sessions. ## Listing all active sessions @@ -12,9 +12,3 @@ review the sessions and revoke any of it that you don't recognize. 1. Navigate to the **Active Sessions** tab. ![Active sessions list](img/active_sessions_list.png) - -## Revoking a session - -1. Navigate to your [profile's](#profile-settings) **Settings > Active Sessions**. -1. Click on **Revoke** besides a session. The current session cannot be - revoked, as this would sign you out of GitLab. diff --git a/doc/user/profile/img/active_sessions_list.png b/doc/user/profile/img/active_sessions_list.png index 5d94dca69cc..1e242ac4710 100644 Binary files a/doc/user/profile/img/active_sessions_list.png and b/doc/user/profile/img/active_sessions_list.png differ -- cgit v1.2.3 From 5ae9a44aa17c8929627cc450f936cd960c143e25 Mon Sep 17 00:00:00 2001 From: Jacopo Date: Thu, 13 Dec 2018 20:26:56 +0100 Subject: Add project http fetch statistics API The API get projects/:id/traffic/fetches allows user with write access to the repository to get the number of clones for the last 30 days. --- doc/user/permissions.md | 1 + doc/user/project/index.md | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 74a966f3a17..5fc24e175ae 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -111,6 +111,7 @@ The following table depicts the various user permission levels in a project. | Force push to protected branches [^4] | | | | | | | Remove protected branches [^4] | | | | | | | View project Audit Events | | | | ✓ | ✓ | +| View project statistics | | | | ✓ | ✓ | ## Project features permissions diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 6a1aadf058e..4a1b164bf37 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -8,7 +8,7 @@ Your projects can be [available](../../public_access/public_access.md) publicly, internally, or privately, at your choice. GitLab does not limit the number of private projects you create. -## Project's features +## Project features When you create a project in GitLab, you'll have access to a large number of [features](https://about.gitlab.com/features/): @@ -82,7 +82,7 @@ your code blocks, overriding GitLab's default choice of language. the source, build output, and other metadata or artifacts associated with a released version of your code. -### Project's integrations +### Project integrations [Integrate your project](integrations/index.md) with Jira, Mattermost, Kubernetes, Slack, and a lot more. @@ -116,7 +116,7 @@ Read through the documentation on [project settings](settings/index.md). - [Export a project from GitLab](settings/import_export.md#exporting-a-project-and-its-data) - [Importing and exporting projects between GitLab instances](settings/import_export.md) -## Project's members +## Project members Learn how to [add members to your projects](members/index.md). @@ -170,3 +170,23 @@ password To quickly access a project from the GitLab UI using the project ID, visit the `/projects/:id` URL in your browser or other tool accessing the project. + +## Project APIs + +There are numerous [APIs](../../api/README.md) to use with your projects: + +- [Badges](../../api/project_badges.md) +- [Clusters](../../api/project_clusters.md) +- [Discussions](../../api/discussions.md) +- [General](../../api/projects.md) +- [Import/export](../../api/project_import_export.md) +- [Issue Board](../../api/boards.md) +- [Labels](../../api/labels.md) +- [Markdown](../../api/markdown.md) +- [Merge Requests](../../api/merge_requests.md) +- [Milestones](../../api/milestones.md) +- [Services](../../api/services.md) +- [Snippets](../../api/project_snippets.md) +- [Templates](../../api/project_templates.md) +- [Traffic](../../api/project_statistics.md) +- [Variables](../../api/project_level_variables.md) -- cgit v1.2.3 From 9a06ce50e7c836bdc606c0901cec6c63d7de6a41 Mon Sep 17 00:00:00 2001 From: caleb Date: Wed, 27 Feb 2019 20:41:38 -0600 Subject: Update convdev.md for clarity Clarified how instance statistics are presented. --- doc/user/instance_statistics/convdev.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/instance_statistics/convdev.md b/doc/user/instance_statistics/convdev.md index 52b99b69a02..ddf34b19a5a 100644 --- a/doc/user/instance_statistics/convdev.md +++ b/doc/user/instance_statistics/convdev.md @@ -2,25 +2,27 @@ > [Introduced][ce-30469] in GitLab 9.3. +NOTE: **NOTE** +Your GitLab instance's [usage ping][ping] must be activated in order to use this feature. + The Conversational Development Index (ConvDev Index) gives you an overview of your entire instance's adoption of [Concurrent DevOps](https://about.gitlab.com/concurrent-devops/) -from planning to monitoring. It displays the usage of these GitLab features over +from planning to monitoring. + +This displays the usage of these GitLab features over the last 30 days, averaged over the number of active users in that time period. It also provides a Lead score per feature, which is calculated based on GitLab's analysis of top-performing instances based on [usage ping data][ping] that GitLab has -collected. Your score is compared to the lead score, expressed as a percentage. -Your overall index score is an average of all your feature score percentages. +collected. Your score is compared to the lead score of each feature and then expressed as a percentage at the bottom of said feature. +Your overall index score is an average of all your feature score percentages - this percentage value is presented above all the of features on the page. ![ConvDev index](img/convdev_index.png) The page also provides helpful links to articles and GitLab docs, to help you improve your scores. -Your GitLab instance's [usage ping][ping] must be activated in order to use this feature. Usage ping data is aggregated on GitLab's servers for analysis. Your usage -information is **not sent** to any other GitLab instances. - -If you have just started using GitLab, it may take a few weeks for data to be +information is **not sent** to any other GitLab instances. If you have just started using GitLab, it may take a few weeks for data to be collected before this feature is available. [ce-30469]: https://gitlab.com/gitlab-org/gitlab-ce/issues/30469 -- cgit v1.2.3 From c7623c8abf1bc418da9425786900814a6bbfa2d4 Mon Sep 17 00:00:00 2001 From: Constance Okoghenun Date: Thu, 28 Feb 2019 09:30:32 +0100 Subject: Created documentation for replying to comments Added documentation for starting a discussion from a non-discussion comment feature. --- doc/user/discussions/img/reply_to_comment.gif | Bin 0 -> 508115 bytes doc/user/discussions/img/reply_to_comment_button.png | Bin 0 -> 17224 bytes doc/user/discussions/index.md | 19 +++++++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 doc/user/discussions/img/reply_to_comment.gif create mode 100644 doc/user/discussions/img/reply_to_comment_button.png (limited to 'doc/user') diff --git a/doc/user/discussions/img/reply_to_comment.gif b/doc/user/discussions/img/reply_to_comment.gif new file mode 100644 index 00000000000..c62f7fdb5fe Binary files /dev/null and b/doc/user/discussions/img/reply_to_comment.gif differ diff --git a/doc/user/discussions/img/reply_to_comment_button.png b/doc/user/discussions/img/reply_to_comment_button.png new file mode 100644 index 00000000000..d362b19785c Binary files /dev/null and b/doc/user/discussions/img/reply_to_comment_button.png differ diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 1e2fad1efe9..80ec31076c5 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -339,6 +339,25 @@ and push the suggested change directly into the codebase in the merge request's Custom commit messages will be introduced by [#54404](https://gitlab.com/gitlab-org/gitlab-ce/issues/54404). +## Start a discussion from a non-discussion comment + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 + +To reply a non-discussion comment, you can use the **Reply to comment** button. + +![Reply to comment button](img/reply_to_comment_button.png) + +The **Reply to comment** button is only displayed if you have permissions to reply to an existing discussion, or start a discussion from a standalone comment. + +Clicking on the **Reply to comment** button will bring the reply area into focus and you can type your reply. + +![Reply to comment feature](img/reply_to_comment.gif) + +Relying to a non-discussion comment will convert the non-discussion comment to a +threaded discussion once the reply is submitted. + +This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported. + [ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 [ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 [ce-7527]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7527 -- cgit v1.2.3 From 2b7cddcf8ad7a2ae803f2b1b8584bf6c4487a749 Mon Sep 17 00:00:00 2001 From: Victor Wu Date: Thu, 28 Feb 2019 10:03:47 +0000 Subject: Apply suggestion to doc/user/discussions/index.md --- doc/user/discussions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 80ec31076c5..9838fdeff6d 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -356,7 +356,7 @@ Clicking on the **Reply to comment** button will bring the reply area into focus Relying to a non-discussion comment will convert the non-discussion comment to a threaded discussion once the reply is submitted. -This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported. +This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported yet. [ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 [ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 -- cgit v1.2.3 From 2c7e6223b926f08bc5eb949d217ba1b38796fd8d Mon Sep 17 00:00:00 2001 From: Daniel Gruesso Date: Thu, 28 Feb 2019 20:23:31 +0000 Subject: Increase jupyter seo --- doc/user/project/clusters/runbooks/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/runbooks/index.md b/doc/user/project/clusters/runbooks/index.md index 512a4cb32f4..54c475a1762 100644 --- a/doc/user/project/clusters/runbooks/index.md +++ b/doc/user/project/clusters/runbooks/index.md @@ -4,6 +4,10 @@ Runbooks are a collection of documented procedures that explain how to carry out a particular process, be it starting, stopping, debugging, or troubleshooting a particular system. +Using [Jupyter Notebooks](https://jupyter.org/) and the [Rubix library](https://github.com/Nurtch/rubix), +users can get started writing their own executable runbooks. + + ## Overview Historically, runbooks took the form of a decision tree or a detailed @@ -36,7 +40,7 @@ To create an executable runbook, you will need: can run the helm CLI in a safe environment. 1. **Ingress** - Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications. -1. **JupyterHub** - JupyterHub is a multi-user service for managing notebooks across +1. **JupyterHub** - [JupyterHub](https://jupyterhub.readthedocs.io/) is a multi-user service for managing notebooks across a team. Jupyter Notebooks provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. -- cgit v1.2.3 From aca533234500537437cb95d20bed77f7117a49d5 Mon Sep 17 00:00:00 2001 From: Daniel Gruesso Date: Fri, 1 Mar 2019 15:45:17 +0000 Subject: Update Serverless docs with livestream feedback --- doc/user/project/clusters/index.md | 20 ++++++++++++++------ doc/user/project/clusters/serverless/index.md | 26 +++++++++++++++++++------- 2 files changed, 33 insertions(+), 13 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index e601d7b2ccc..0c514e005b2 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -41,7 +41,7 @@ integration, make sure the following requirements are met: - A [billing account](https://cloud.google.com/billing/docs/how-to/manage-billing-account) is set up and you have permissions to access it. -- The Kubernetes Engine API is enabled. Follow the steps as outlined in the +- The Kubernetes Engine API and related service are enabled. It should work immediately but may take up to 10 minutes after you create a project. For more information see the ["Before you begin" section of the Kubernetes Engine docs](https://cloud.google.com/kubernetes-engine/docs/quickstart#before-you-begin). ### Creating the cluster @@ -69,6 +69,7 @@ new Kubernetes cluster to your project: - **Number of nodes** - Enter the number of nodes you wish the cluster to have. - **Machine type** - The [machine type](https://cloud.google.com/compute/docs/machine-types) of the Virtual Machine instance that the cluster will be based on. + - **RBAC-enabled cluster** - Leave this checked if using default GKE creation options, see the [RBAC section](#role-based-access-control-rbac-core-only) for more information. 1. Finally, click the **Create Kubernetes cluster** button. After a couple of minutes, your cluster will be ready to go. You can now proceed @@ -226,12 +227,19 @@ applications running on the cluster. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24580) in GitLab 11.8. -Domains at the cluster level permit support for multiple domains -per [multiple Kubernetes clusters](#multiple-kubernetes-clusters-premium). When specifying a domain, -this will be automatically set as an environment variable (`KUBE_INGRESS_BASE_DOMAIN`) during -the [Auto DevOps](../../../topics/autodevops/index.md) stages. +NOTE: **Note:** +You do not need to specify a base domain on cluster settings when using GitLab Serverless. The domain in that case +will be specified as part of the Knative installation. See [Installing Applications](#installing-applications). + +Specifying a base domain will automatically set `KUBE_INGRESS_BASE_DOMAIN` as an environment variable. +If you are using [Auto DevOps](../../../topics/autodevops/index.md), this domain will be used for the different +stages. For example, Auto Review Apps and Auto Deploy. + +The domain should have a wildcard DNS configured to the Ingress IP address. After ingress has been installed (see [Installing Applications](#installing-applications)), +you can either: -The domain should have a wildcard DNS configured to the Ingress IP address. +- Create an `A` record that points to the Ingress IP address with your domain provider. +- Enter a wildcard DNS address using a service such as nip.io or xip.io. For example, `192.168.1.1.xip.io`. ## Access controls diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index f7e72efa2ba..2871510d5ed 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -19,10 +19,15 @@ For more information on Knative, visit the [Knative docs repo](https://github.co With GitLab serverless, you can deploy both functions-as-a-service (FaaS) and serverless applications. -## Requirements +## Prerequisites To run Knative on Gitlab, you will need: +1. **Existing GitLab project:** You will need a GitLab project to associate all resources. The simplest way to get started: + + - If you are planning on deploying functions, clone the [functions example project](https://gitlab.com/knative-examples/functions) to get started. + - If you are planning on deploying a serverless application, clone the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) to get started. + 1. **Kubernetes Cluster:** An RBAC-enabled Kubernetes cluster is required to deploy Knative. The simplest way to get started is to add a cluster using [GitLab's GKE integration](../index.md#adding-and-creating-a-new-gke-cluster-via-gitlab). The set of minimum recommended cluster specifications to run Knative is 3 nodes, 6 vCPUs, and 22.50 GB memory. @@ -43,6 +48,8 @@ To run Knative on Gitlab, you will need: runtime being used. 1. **`Dockerfile`** (for [applications only](#deploying-serverless-applications): Knative requires a `Dockerfile` in order to build your application. It should be included at the root of your project's repo and expose port `8080`. +1. **Prometheus** (optional): Installing Prometheus allows you to monitor the scale and traffic of your serverless function/application. + See [Installing Applications](../index.md#installing-applications) for more information. ## Installing Knative via GitLab's Kubernetes integration @@ -56,7 +63,7 @@ The minimum recommended cluster size to run Knative is 3-nodes, 6 vCPUs, and 22. ![install-knative](img/install-knative.png) 1. After the Knative installation has finished, you can wait for the IP address to be displayed in the - **Knative IP Address** field or retrieve the Istio Ingress IP address by running the following command: + **Knative IP Address** field (takes up to 5 minutes) or retrieve the Istio Ingress IP address by running the following command: ```bash kubectl get svc --namespace=istio-system knative-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' @@ -68,6 +75,11 @@ The minimum recommended cluster size to run Knative is 3-nodes, 6 vCPUs, and 22. 35.161.143.124 my-machine-name:~ my-user$ ``` + NOTE: **Note:** + Running `kubectl` commands on your cluster requires setting up access to the cluster first. + For clusters created on GKE, see [GKE Cluster Access](https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl), + for other platforms [Install kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). + 1. The ingress is now available at this address and will route incoming requests to the proper service based on the DNS name in the request. To support this, a wildcard DNS A record should be created for the desired domain name. For example, if your Knative base domain is `example.com` then you need to create an A record with domain `*.example.com` @@ -94,7 +106,7 @@ Currently the following [runtimes](https://gitlab.com/triggermesh/runtimes) are You can find and import all the files referenced in this doc in the **[functions example project](https://gitlab.com/knative-examples/functions)**. -Follow these steps to deploy a function using the Node.js runtime to your Knative instance: +Follow these steps to deploy a function using the Node.js runtime to your Knative instance (you can skip these steps if you've cloned the example project): 1. Create a directory that will house the function. In this example we will create a directory called `echo` at the root of the project. @@ -188,7 +200,7 @@ appear under **Operations > Serverless**. This page contains all functions available for the project, the description for accessing the function, and, if available, the function's runtime information. The details are derived from the Knative installation inside each of the project's -Kubernetes cluster. +Kubernetes cluster. Click on each function to obtain detailed scale and invocation data. The function details can be retrieved directly from Knative on the cluster: @@ -198,14 +210,14 @@ kubectl -n "$KUBE_NAMESPACE" get services.serving.knative.dev The sample function can now be triggered from any HTTP client using a simple `POST` call: - 1. Using curl + 1. Using curl (replace the URL on the last line with the URL of your application): ```bash curl \ --header "Content-Type: application/json" \ --request POST \ --data '{"GitLab":"FaaS"}' \ - http://functions-echo.functions-1.functions.example.net/ + ``` 2. Using a web-based tool (ie. postman, restlet, etc) @@ -219,7 +231,7 @@ NOTE: **Note:** You can reference and import the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) to get started. Add the following `.gitlab-ci.yml` to the root of your repository -(you may skip this step if using the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) mentioned above): +(you may skip this step if you've previously cloned the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) mentioned above): ```yaml stages: -- cgit v1.2.3 From 337fcb797f1354c0272357238344b0c1930de5f4 Mon Sep 17 00:00:00 2001 From: Takuya Noguchi Date: Sat, 2 Mar 2019 02:22:09 +0900 Subject: Fix a wrong link on group-level cluster doc page Signed-off-by: Takuya Noguchi --- doc/user/group/clusters/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 8d223d1c5f0..7422a30ff3c 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -133,4 +133,4 @@ The following features are not currently available for group-level clusters: 1. Terminals (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55487)). 1. Pod logs (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55488)). -1. Deployment boards (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55488)). +1. Deployment boards (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55489)). -- cgit v1.2.3 From dea631545f580d22e63ff09f9d9f194a559d2612 Mon Sep 17 00:00:00 2001 From: Peter Marko Date: Tue, 26 Feb 2019 00:27:16 +0100 Subject: fix group without owner after transfer --- doc/user/group/index.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 300e0115c60..1325a529fa1 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -181,6 +181,7 @@ Please make sure to understand that: - You can only transfer the group to a group you manage. - You will need to update your local repositories to point to the new location. - If the parent group's visibility is lower than the group current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility. +- Only explicit group membership is transferred, not the inherited membership. If this would leave the group without an owner, the transferring user is added as owner instead. ## Group settings -- cgit v1.2.3 From c77d3ee31406512c9c87705eabe6c996e94db640 Mon Sep 17 00:00:00 2001 From: Reuben Pereira Date: Sun, 3 Mar 2019 22:36:50 +0000 Subject: Update error tracking settings docs --- doc/user/project/operations/error_tracking.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/operations/error_tracking.md b/doc/user/project/operations/error_tracking.md index 41aa5b91aa7..1b319c5641c 100644 --- a/doc/user/project/operations/error_tracking.md +++ b/doc/user/project/operations/error_tracking.md @@ -22,8 +22,12 @@ GitLab provides an easy way to connect Sentry to your project: 1. Sign up to Sentry.io or [deploy your own](#deploying-sentry) Sentry instance. 1. [Find or generate](https://docs.sentry.io/api/auth/) a Sentry auth token for your Sentry project. Make sure to give the token at least the following scopes: `event:read` and `project:read`. -1. Navigate to your project’s **Settings > Operations** and provide the Sentry API URL and auth token. -1. Ensure that the 'Active' checkbox is set. +1. Navigate to your project’s **Settings > Operations**. +1. Ensure that the **Active** checkbox is set. +1. In the **Sentry API URL** field, enter your Sentry hostname. For example, `https://sentry.example.com`. +1. In the **Auth Token** field, enter the token you previously generated. +1. Click the **Connect** button to test the connection to Sentry and populate the **Project** dropdown. +1. From the **Project** dropdown, choose a Sentry project to link to your GitLab project. 1. Click **Save changes** for the changes to take effect. 1. You can now visit **Operations > Error Tracking** in your project's sidebar to [view a list](#error-tracking-list) of Sentry errors. -- cgit v1.2.3 From fd8234856e9aadf10dfc46791c8aad7161a083d6 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 4 Mar 2019 00:17:57 +0000 Subject: Docs: Fix all anchors in Admin docs --- doc/user/admin_area/monitoring/health_check.md | 7 +++---- doc/user/index.md | 4 ++-- doc/user/instance_statistics/convdev.md | 9 +++------ doc/user/permissions.md | 2 +- 4 files changed, 9 insertions(+), 13 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index c22982ac190..91e2aafc682 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -2,10 +2,9 @@ > **Notes:** > - Liveness and readiness probes were [introduced][ce-10416] in GitLab 9.1. -> - The `health_check` endpoint was [introduced][ce-3888] in GitLab 8.8 and will -> be deprecated in GitLab 9.1. Read more in the [old behavior](#old-behavior) -> section. -> - [Access token](#access-token) has been deprecated in GitLab 9.4 +> - The `health_check` endpoint was [introduced][ce-3888] in GitLab 8.8 and was +> be deprecated in GitLab 9.1. +> - [Access token](#access-token-deprecated) has been deprecated in GitLab 9.4 > in favor of [IP whitelist](#ip-whitelist) GitLab provides liveness and readiness probes to indicate service health and diff --git a/doc/user/index.md b/doc/user/index.md index 71378920ed4..b84879601ff 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -8,13 +8,13 @@ Welcome to GitLab! We're glad to have you here! As a GitLab user you'll have access to all the features your [subscription](https://about.gitlab.com/pricing/) -includes, except [GitLab administrator](../README.md#administrator-documentation) +includes, except [GitLab administrator](../administration/index.md) settings, unless you have admin privileges to install, configure, and upgrade your GitLab instance. Admin privileges for [GitLab.com](https://gitlab.com/) are restricted to the GitLab team. -For more information on configuring GitLab self-managed instances, see [Administrator documentation](../README.md#administrator-documentation). +For more information on configuring GitLab self-managed instances, see [Administrator documentation](../administration/index.md). ## Overview diff --git a/doc/user/instance_statistics/convdev.md b/doc/user/instance_statistics/convdev.md index ddf34b19a5a..247be1fb392 100644 --- a/doc/user/instance_statistics/convdev.md +++ b/doc/user/instance_statistics/convdev.md @@ -1,9 +1,9 @@ # Conversational Development Index -> [Introduced][ce-30469] in GitLab 9.3. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30469) in GitLab 9.3. NOTE: **NOTE** -Your GitLab instance's [usage ping][ping] must be activated in order to use this feature. +Your GitLab instance's [usage ping](../admin_area/settings/usage_statistics.md#usage-ping-core-only) must be activated in order to use this feature. The Conversational Development Index (ConvDev Index) gives you an overview of your entire instance's adoption of [Concurrent DevOps](https://about.gitlab.com/concurrent-devops/) @@ -12,7 +12,7 @@ from planning to monitoring. This displays the usage of these GitLab features over the last 30 days, averaged over the number of active users in that time period. It also provides a Lead score per feature, which is calculated based on GitLab's analysis -of top-performing instances based on [usage ping data][ping] that GitLab has +of top-performing instances based on [usage ping data](../admin_area/settings/usage_statistics.md#usage-ping-core-only) that GitLab has collected. Your score is compared to the lead score of each feature and then expressed as a percentage at the bottom of said feature. Your overall index score is an average of all your feature score percentages - this percentage value is presented above all the of features on the page. @@ -24,6 +24,3 @@ improve your scores. Usage ping data is aggregated on GitLab's servers for analysis. Your usage information is **not sent** to any other GitLab instances. If you have just started using GitLab, it may take a few weeks for data to be collected before this feature is available. - -[ce-30469]: https://gitlab.com/gitlab-org/gitlab-ce/issues/30469 -[ping]: ../admin_area/settings/usage_statistics.md#usage-ping diff --git a/doc/user/permissions.md b/doc/user/permissions.md index ea3e9d0cce9..ee3367f193c 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -14,7 +14,7 @@ be able to create issues, leave comments, and clone or download the project code When a member leaves the team all the assigned [Issues](project/issues/index.md) and [Merge Requests](project/merge_requests/index.md) will be unassigned automatically. -GitLab [administrators](../README.md#administrator-documentation) receive all permissions. +GitLab [administrators](../administration/index.md) receive all permissions. To add or import a user, you can follow the [project members documentation](../user/project/members/index.md). -- cgit v1.2.3 From e915d962f0217895c7eeb5e4cdf31398dfd15d2a Mon Sep 17 00:00:00 2001 From: caleb Date: Sun, 3 Mar 2019 20:06:35 -0600 Subject: updated health check typo Removed the `/-/health/` typo (results in 404) and adjusted some formatting. --- doc/user/admin_area/monitoring/health_check.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index c22982ac190..8d5113ac469 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -16,21 +16,19 @@ traffic until the system is ready or restart the container as needed. ## IP whitelist -To access monitoring resources, the client IP needs to be included in a whitelist. +To access monitoring resources, the requesting client IP needs to be included in a whitelist. [Read how to add IPs to a whitelist for the monitoring endpoints][admin]. ## Using the endpoints -With default whitelist settings, the probes can be accessed from localhost: +With default whitelist settings, the probes can be accessed from localhost using the following format: - `http://localhost/-/health` - `http://localhost/-/readiness` - `http://localhost/-/liveness` -The first endpoint, `/-/health/`, only checks whether the application server is running. It does --not verify the database or other services are running. A successful response will return -a 200 status code with the following message: +The first endpoint, `health`, only checks whether the application server is running. It does not verify the database or other services are running. A successful response will return a 200 status code with the following message: ``` GitLab OK @@ -38,9 +36,9 @@ GitLab OK The readiness and liveness probes will provide a report of system health in JSON format. -Readiness example output: +`Readiness` probe example output: -``` +```json { "queues_check" : { "status" : "ok" @@ -60,9 +58,9 @@ Readiness example output: } ``` -Liveness example output: +`Liveness` probe example output: -``` +```json { "cache_check" : { "status" : "ok" -- cgit v1.2.3 From cf4bbd4fe18222234e21c9bc4a12ea195a4bd11d Mon Sep 17 00:00:00 2001 From: haghighi_ahmad Date: Sun, 24 Feb 2019 09:12:22 +0330 Subject: Add Saturday to first day of the week fix #58023 docs for adding Saturday for first day of the week add related settings for Saturday as first day of the week firstDayOfWeek: Use enumeration, replace day's numbers with corresponding names make some variables lowercase (follow camelCase) add CHANGELOG entry Author: haghighi_ahmad modified: app/assets/javascripts/pages/users/activity_calendar.js modified: app/helpers/preferences_helper.rb new file: changelogs/unreleased/58023-add-Saturday-to-localization-first-day-of-the-week.yml modified: doc/api/settings.md modified: doc/user/profile/preferences.md modified: locale/gitlab.pot modified: spec/helpers/preferences_helper_spec.rb --- doc/user/profile/preferences.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/profile/preferences.md b/doc/user/profile/preferences.md index db68510c46d..f399dc40164 100644 --- a/doc/user/profile/preferences.md +++ b/doc/user/profile/preferences.md @@ -103,4 +103,10 @@ Select your preferred language from a list of supported languages. The first day of the week can be customised for calendar views and date pickers. -You can choose **Sunday** or **Monday** as the first day of the week. If you select **System Default**, the system-wide default setting will be used. +You can choose one of the following options as the first day of the week: + +- Saturday +- Sunday +- Monday + +If you select **System Default**, the system-wide default setting will be used. -- cgit v1.2.3 From 714c77a6fa216f9a1aa20baa6e7ea4fe6712bb29 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 27 Feb 2019 18:25:00 +0100 Subject: Add basic documentation about Serverless template --- doc/user/project/clusters/serverless/index.md | 60 +++++++++++---------------- 1 file changed, 25 insertions(+), 35 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 2871510d5ed..2d587dd7ffe 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -114,28 +114,29 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ - Public, continue to the next step. - Private, you will need to [create a GitLab deploy token](../../deploy_tokens/index.md#creating-a-deploy-token) with `gitlab-deploy-token` as the name and the `read_registry` scope. -1. `.gitlab-ci.yml`: This template allows to define the stage, environment, and - image to be used for your functions. It must be included at the root of your repository: +1. `.gitlab-ci.yml`: this configuration allows to define the environment to be + used to deploy your functions. It must be included at the root of your repository: ```yaml - stages: - - deploy + include: + template: Serverless.gitlab-ci.yml functions: - stage: deploy - environment: test - image: gcr.io/triggermesh/tm:v0.0.9 - script: - - tm -n "$KUBE_NAMESPACE" set registry-auth gitlab-registry --registry "$CI_REGISTRY" --username "$CI_REGISTRY_USER" --password "$CI_JOB_TOKEN" --push - - tm -n "$KUBE_NAMESPACE" set registry-auth gitlab-registry --registry "$CI_REGISTRY" --username "$CI_DEPLOY_USER" --password "$CI_DEPLOY_PASSWORD" --pull - - tm -n "$KUBE_NAMESPACE" deploy --wait - + extends: .serverless:deploy:functions + environment: production ``` - The `gitlab-ci.yml` template creates a `Deploy` stage with a `functions` job that invokes the `tm` CLI with the required parameters. + This `.gitlab-ci.yml` creates a `Deploy` stage with the `functions` job + that invokes some predefined commands to deploy your functions to Knative. + +2. `serverless.yml`: this file contains the metadata for your functions, + such as name, runtime, and environment. -2. `serverless.yml`: This file contains the metadata for your functions, - such as name, runtime, and environment. It must be included at the root of your repository. The following is a sample `echo` function which shows the required structure for the file. You can find the relevant files for this project in the [functions example project](https://gitlab.com/knative-examples/functions). + It must be included at the root of your repository. + The following is a sample `echo` function which shows the required structure + for the file. + + You can find the relevant files for this project in the [functions example project](https://gitlab.com/knative-examples/functions). ```yaml service: my-functions @@ -234,32 +235,21 @@ Add the following `.gitlab-ci.yml` to the root of your repository (you may skip this step if you've previously cloned the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) mentioned above): ```yaml -stages: - - build - - deploy +include: + template: Serverless.gitlab-ci.yml build: - stage: build - image: - name: gcr.io/kaniko-project/executor:debug - entrypoint: [""] - only: - - master - script: - - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE + extends: .serverless:build:image deploy: - stage: deploy - image: gcr.io/triggermesh/tm@sha256:e3ee74db94d215bd297738d93577481f3e4db38013326c90d57f873df7ab41d5 - only: - - master - environment: production - script: - - echo "$CI_REGISTRY_IMAGE" - - tm -n "$KUBE_NAMESPACE" --config "$KUBECONFIG" deploy service "$CI_PROJECT_NAME" --from-image "$CI_REGISTRY_IMAGE" --wait + extends: .serverless:deploy:image ``` +`Serverless.gitlab-ci.yml` is a template that allows customization. +You can either import it with `include:` directive and use `extends` to +customize your jobs, or you can inline entire template by choosing it +from "Templates" dropdown. (TODO: link to docs about templates). + ### Deploy the application with Knative With all the pieces in place, the next time a CI pipeline runs, the Knative application will be deployed. Navigate to -- cgit v1.2.3 From 21a1f0971706b51ecbecfd2ada855aba6d7454a4 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 28 Feb 2019 14:32:15 +0100 Subject: Copy-edit new serverless CI/CD configuration docs --- doc/user/project/clusters/serverless/index.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 2d587dd7ffe..947e92273a4 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -114,8 +114,8 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ - Public, continue to the next step. - Private, you will need to [create a GitLab deploy token](../../deploy_tokens/index.md#creating-a-deploy-token) with `gitlab-deploy-token` as the name and the `read_registry` scope. -1. `.gitlab-ci.yml`: this configuration allows to define the environment to be - used to deploy your functions. It must be included at the root of your repository: +1. `.gitlab-ci.yml`: this defines a pipeline used to deploy your functions. + It must be included at the root of your repository: ```yaml include: @@ -126,8 +126,14 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ environment: production ``` - This `.gitlab-ci.yml` creates a `Deploy` stage with the `functions` job - that invokes some predefined commands to deploy your functions to Knative. + This `.gitlab-ci.yml` creates a `functions` job that invokes some + predefined commands to deploy your functions to Knative. + + `Serverless.gitlab-ci.yml` is a template that allows customization. + You can either import it with `include` parameter and use `extends` to + customize your jobs, or you can inline entire template by choosing it + from "Apply a template" dropdown when editing `.gitlab-ci.yml` file through + the User Interface. 2. `serverless.yml`: this file contains the metadata for your functions, such as name, runtime, and environment. @@ -246,9 +252,10 @@ deploy: ``` `Serverless.gitlab-ci.yml` is a template that allows customization. -You can either import it with `include:` directive and use `extends` to +You can either import it with `include` parameter and use `extends` to customize your jobs, or you can inline entire template by choosing it -from "Templates" dropdown. (TODO: link to docs about templates). +from "Apply a template" dropdown when editing `.gitlab-ci.yml` file through +the User Interface. ### Deploy the application with Knative -- cgit v1.2.3 From ae0fe4882469bc3c7ceb29bc72f12815ce648733 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:08:51 +0000 Subject: Apply suggestion to doc/user/project/clusters/serverless/index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 947e92273a4..b14fdf09f7f 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -255,7 +255,7 @@ deploy: You can either import it with `include` parameter and use `extends` to customize your jobs, or you can inline entire template by choosing it from "Apply a template" dropdown when editing `.gitlab-ci.yml` file through -the User Interface. +the user interface. ### Deploy the application with Knative -- cgit v1.2.3 From 73e78b7faf4d976f60a9247df11a233fe055747b Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:09:09 +0000 Subject: Apply suggestion to doc/user/project/clusters/serverless/index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index b14fdf09f7f..6454155419c 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -254,7 +254,7 @@ deploy: `Serverless.gitlab-ci.yml` is a template that allows customization. You can either import it with `include` parameter and use `extends` to customize your jobs, or you can inline entire template by choosing it -from "Apply a template" dropdown when editing `.gitlab-ci.yml` file through +from **Apply a template** dropdown when editing the `.gitlab-ci.yml` file through the user interface. ### Deploy the application with Knative -- cgit v1.2.3 From f0ba91fd833e15c6a4cdbecea88641d966a2a498 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:09:22 +0000 Subject: Apply suggestion to doc/user/project/clusters/serverless/index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 6454155419c..190f5df31ec 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -253,7 +253,7 @@ deploy: `Serverless.gitlab-ci.yml` is a template that allows customization. You can either import it with `include` parameter and use `extends` to -customize your jobs, or you can inline entire template by choosing it +customize your jobs, or you can inline the entire template by choosing it from **Apply a template** dropdown when editing the `.gitlab-ci.yml` file through the user interface. -- cgit v1.2.3 From 085b8189c5041d08ec3476aa2390f518cbfa3fae Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:09:32 +0000 Subject: Apply suggestion to doc/user/project/clusters/serverless/index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 190f5df31ec..91236fd0803 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -133,7 +133,7 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ You can either import it with `include` parameter and use `extends` to customize your jobs, or you can inline entire template by choosing it from "Apply a template" dropdown when editing `.gitlab-ci.yml` file through - the User Interface. + the user interface. 2. `serverless.yml`: this file contains the metadata for your functions, such as name, runtime, and environment. -- cgit v1.2.3 From e2a5d369b54c42ca6e600f21dce31a5c595aedcc Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:09:53 +0000 Subject: Apply suggestion to doc/user/project/clusters/serverless/index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 91236fd0803..03119c0db48 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -132,7 +132,7 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ `Serverless.gitlab-ci.yml` is a template that allows customization. You can either import it with `include` parameter and use `extends` to customize your jobs, or you can inline entire template by choosing it - from "Apply a template" dropdown when editing `.gitlab-ci.yml` file through + from **Apply a template** dropdown when editing the `.gitlab-ci.yml` file through the user interface. 2. `serverless.yml`: this file contains the metadata for your functions, -- cgit v1.2.3 From f4c87aa3b21b8cdead7a6b6acdebcbb0eff9bd55 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:10:06 +0000 Subject: Apply suggestion to doc/user/project/clusters/serverless/index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 03119c0db48..438e2beb059 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -131,7 +131,7 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ `Serverless.gitlab-ci.yml` is a template that allows customization. You can either import it with `include` parameter and use `extends` to - customize your jobs, or you can inline entire template by choosing it + customize your jobs, or you can inline the entire template by choosing it from **Apply a template** dropdown when editing the `.gitlab-ci.yml` file through the user interface. -- cgit v1.2.3 From 248fe72c6591b7ad85600817a2320f3cd7534e19 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 1 Mar 2019 08:55:51 +0000 Subject: Update index.md --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 438e2beb059..856ae03f4bc 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -127,7 +127,7 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ ``` This `.gitlab-ci.yml` creates a `functions` job that invokes some - predefined commands to deploy your functions to Knative. + predefined commands to deploy your functions to your cluster. `Serverless.gitlab-ci.yml` is a template that allows customization. You can either import it with `include` parameter and use `extends` to -- cgit v1.2.3 From c4349575aaa5899c32497595ef25337716a2ce6b Mon Sep 17 00:00:00 2001 From: caleb Date: Mon, 4 Mar 2019 09:13:06 -0600 Subject: adjusted per Evan R suggestions in open MR Adjusted a few different areas per Evan R's suggestions within the open MR for this branch. --- doc/user/admin_area/monitoring/health_check.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index 8d5113ac469..a0c51739814 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -1,6 +1,7 @@ # Health Check > **Notes:** + > - Liveness and readiness probes were [introduced][ce-10416] in GitLab 9.1. > - The `health_check` endpoint was [introduced][ce-3888] in GitLab 8.8 and will > be deprecated in GitLab 9.1. Read more in the [old behavior](#old-behavior) @@ -22,7 +23,7 @@ To access monitoring resources, the requesting client IP needs to be included in ## Using the endpoints -With default whitelist settings, the probes can be accessed from localhost using the following format: +With default whitelist settings, the probes can be accessed from localhost using the following URLs: - `http://localhost/-/health` - `http://localhost/-/readiness` @@ -36,7 +37,7 @@ GitLab OK The readiness and liveness probes will provide a report of system health in JSON format. -`Readiness` probe example output: +`readiness` probe example output: ```json { @@ -58,7 +59,7 @@ The readiness and liveness probes will provide a report of system health in JSON } ``` -`Liveness` probe example output: +`liveness` probe example output: ```json { -- cgit v1.2.3 From 64118cea280f094aba8b071c292b05dd0dd7ec93 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 4 Mar 2019 21:13:00 +0000 Subject: Change header of section on replying to a non-discussion comment --- doc/user/discussions/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 9838fdeff6d..58d30643746 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -339,7 +339,7 @@ and push the suggested change directly into the codebase in the merge request's Custom commit messages will be introduced by [#54404](https://gitlab.com/gitlab-org/gitlab-ce/issues/54404). -## Start a discussion from a non-discussion comment +## Start a discussion by replying to a non-discussion comment > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 @@ -356,7 +356,7 @@ Clicking on the **Reply to comment** button will bring the reply area into focus Relying to a non-discussion comment will convert the non-discussion comment to a threaded discussion once the reply is submitted. -This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported yet. +This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported yet. [ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 [ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 -- cgit v1.2.3 From a987ca0f5126b35acee8e8b7285148c61bbf0f80 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 4 Mar 2019 21:16:32 +0000 Subject: Added sentence about why 'edited just now' appears under the converted comment --- doc/user/discussions/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 58d30643746..6a5ee5bbcc4 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -354,7 +354,8 @@ Clicking on the **Reply to comment** button will bring the reply area into focus ![Reply to comment feature](img/reply_to_comment.gif) Relying to a non-discussion comment will convert the non-discussion comment to a -threaded discussion once the reply is submitted. +threaded discussion once the reply is submitted. This conversion is considered an edit +to the original comment, so a note about when it was last edited will appear underneath it. This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported yet. -- cgit v1.2.3 From ccae921fbf6f54919287bd94288b9a0a1c17a0a2 Mon Sep 17 00:00:00 2001 From: Heinrich Lee Yu Date: Tue, 5 Mar 2019 12:20:08 +0800 Subject: Add docs and update screenshot --- doc/user/project/img/issue_boards_multiple.png | Bin 22623 -> 7049 bytes doc/user/project/issue_board.md | 10 ++++++---- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/img/issue_boards_multiple.png b/doc/user/project/img/issue_boards_multiple.png index 242460925f7..de7b04d6e36 100644 Binary files a/doc/user/project/img/issue_boards_multiple.png and b/doc/user/project/img/issue_boards_multiple.png differ diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index 0bd565547c3..9d4dfd56a4b 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -173,10 +173,14 @@ or in situations where a repository is used to host the code of multiple products. Clicking on the current board name in the upper left corner will reveal a -menu from where you can create another Issue Board and rename or delete the -existing one. +menu from where you can create another Issue Board or delete the existing one. Using the search box at the top of the menu, you can filter the listed boards. +When you have 10 or more boards available, a "Recent" section is also shown in the menu. +These are shortcuts to your last 5 visited boards. + +![Multiple Issue Boards](img/issue_boards_multiple.png) + When you're revisiting an issue board in a project or group with multiple boards, GitLab will automatically load the last board you visited. @@ -184,8 +188,6 @@ NOTE: **Note:** The Multiple Issue Boards feature is available for **projects in GitLab Starter Edition** and for **groups in GitLab Premium Edition**. -![Multiple Issue Boards](img/issue_boards_multiple.png) - ### Configurable Issue Boards **[STARTER]** > Introduced in [GitLab Starter Edition 10.2](https://about.gitlab.com/2017/11/22/gitlab-10-2-released/#issue-boards-configuration). -- cgit v1.2.3 From 084d16a8fa4edf29a25969a17c70efd9832fcc49 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Tue, 5 Mar 2019 12:55:30 +0000 Subject: Docs: Fix all anchors in /user docs --- doc/user/group/clusters/index.md | 2 +- doc/user/group/index.md | 2 +- doc/user/group/subgroups/index.md | 12 ++++++------ doc/user/profile/index.md | 2 +- doc/user/project/clusters/index.md | 4 ++-- doc/user/project/import/svn.md | 2 +- doc/user/project/index.md | 2 +- doc/user/project/integrations/mattermost_slash_commands.md | 2 +- doc/user/project/integrations/prometheus.md | 2 +- doc/user/project/pages/getting_started_part_one.md | 2 +- doc/user/project/pages/getting_started_part_three.md | 6 +++--- doc/user/project/pages/index.md | 2 +- doc/user/project/pages/introduction.md | 6 +++--- doc/user/project/pipelines/job_artifacts.md | 2 +- doc/user/project/repository/branches/index.md | 2 +- doc/user/search/index.md | 2 +- 16 files changed, 26 insertions(+), 26 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 7422a30ff3c..8cdfb13a97b 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -56,7 +56,7 @@ group. That way you can have different clusters for different environments, like dev, staging, production, etc. Add another cluster similar to the first one and make sure to -[set an environment scope](#environment-scopes) that will +[set an environment scope](#environment-scopes-premium) that will differentiate the new cluster from the rest. ## Base domain diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 300e0115c60..67b93ed6666 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -154,7 +154,7 @@ There are two different ways to add a new project to a group: ## Transfer projects into groups -Learn how to [transfer a project into a group](../project/index.md#transfer-an-existing-project-into-a-group). +Learn how to [transfer a project into a group](../project/settings/index.md#transferring-an-existing-project-into-another-namespace). ## Sharing a project with a group diff --git a/doc/user/group/subgroups/index.md b/doc/user/group/subgroups/index.md index b6f8f55978b..3cecefe11f5 100644 --- a/doc/user/group/subgroups/index.md +++ b/doc/user/group/subgroups/index.md @@ -1,8 +1,8 @@ # Subgroups NOTE: **Note:** -[Introduced][ce-2772] in GitLab 9.0. Not available when using MySQL as external -database (support removed in GitLab 9.3 [due to performance reasons][issue]). +[Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2772) in GitLab 9.0. Not available when using MySQL as external +database (support removed in GitLab 9.3 [due to performance reasons](https://gitlab.com/gitlab-org/gitlab-ce/issues/30472#note_27747600)). With subgroups (aka nested groups or hierarchical groups) you can have up to 20 levels of nested groups, which among other things can help you to: @@ -13,7 +13,7 @@ up to 20 levels of nested groups, which among other things can help you to: - **Organize large projects.** For large projects, subgroups makes it potentially easier to separate permissions on parts of the source code. - **Make it easier to manage people and control visibility.** Give people - different [permissions][] depending on their group [membership](#membership). + different [permissions](../../permissions.md#group-members-permissions) depending on their group [membership](#membership). ## Database Requirements @@ -80,9 +80,9 @@ structure. NOTE: **Note:** You need to be an Owner of a group in order to be able to create a subgroup. For -more information check the [permissions table][permissions]. +more information check the [permissions table](../../permissions.md#group-members-permissions). For a list of words that are not allowed to be used as group names see the -[reserved names][reserved]. +[reserved names](../../reserved_names.md). Users can always create subgroups if they are explicitly added as an Owner to a parent group even if group creation is disabled by an administrator in their settings. @@ -176,6 +176,6 @@ Here's a list of what you can't do with subgroups: `group/subgroup01/subgroup03`. [ce-2772]: https://gitlab.com/gitlab-org/gitlab-ce/issues/2772 -[permissions]: ../../permissions.md#group +[permissions]: ../../permissions.md#group-members-permissions [reserved]: ../../reserved_names.md [issue]: https://gitlab.com/gitlab-org/gitlab-ce/issues/30472#note_27747600 diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md index a2b15d058d7..b216b9f255c 100644 --- a/doc/user/profile/index.md +++ b/doc/user/profile/index.md @@ -39,7 +39,7 @@ From there, you can: - Manage [personal access tokens](personal_access_tokens.md) to access your account via API and authorized applications - Add and delete emails linked to your account - Choose which email to use for notifications, web-based commits, and display on your public profile -- Manage [SSH keys](../../ssh/README.md#ssh) to access your account via SSH +- Manage [SSH keys](../../ssh/README.md) to access your account via SSH - Manage your [preferences](preferences.md#syntax-highlighting-theme) to customize your own GitLab experience - [View your active sessions](active_sessions.md) and revoke any of them if necessary diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 0c514e005b2..6e64053a6ca 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -88,7 +88,7 @@ To add an existing Kubernetes cluster to your project: 1. Click **Add an existing Kubernetes cluster** and fill in the details: - **Kubernetes cluster name** (required) - The name you wish to give the cluster. - **Environment scope** (required) - The - [associated environment](#setting-the-environment-scope) to this cluster. + [associated environment](#setting-the-environment-scope-premium) to this cluster. - **API URL** (required) - It's the URL that GitLab uses to access the Kubernetes API. Kubernetes exposes several APIs, we want the "base" URL that is common to all of them, @@ -473,7 +473,7 @@ project. That way you can have different clusters for different environments, like dev, staging, production, etc. Simply add another cluster, like you did the first time, and make sure to -[set an environment scope](#setting-the-environment-scope) that will +[set an environment scope](#setting-the-environment-scope-premium) that will differentiate the new cluster with the rest. ## Setting the environment scope **[PREMIUM]** diff --git a/doc/user/project/import/svn.md b/doc/user/project/import/svn.md index a5923986292..4825b005a85 100644 --- a/doc/user/project/import/svn.md +++ b/doc/user/project/import/svn.md @@ -8,7 +8,7 @@ between the two, for more information consult your favorite search engine. There are two approaches to SVN to Git migration: -1. [Git/SVN Mirror](#smooth-migration-with-a-git-svn-mirror-using-subgit) which: +1. [Git/SVN Mirror](#smooth-migration-with-a-gitsvn-mirror-using-subgit) which: - Makes the GitLab repository to mirror the SVN project. - Git and SVN repositories are kept in sync; you can use either one. - Smoothens the migration process and allows to manage migration risks. diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 0dc50d28cb0..4148310dc98 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -137,7 +137,7 @@ and Git push/pull redirects. Depending on the situation, different things apply. When [renaming a user](../profile/index.md#changing-your-username), -[changing a group path](../group/index.md#changing-a-group-s-path) or [renaming a repository](settings/index.md#renaming-a-repository): +[changing a group path](../group/index.md#changing-a-groups-path) or [renaming a repository](settings/index.md#renaming-a-repository): - Existing web URLs for the namespace and anything under it (e.g., projects) will redirect to the new URLs. diff --git a/doc/user/project/integrations/mattermost_slash_commands.md b/doc/user/project/integrations/mattermost_slash_commands.md index e031dcad2c3..9c69437537a 100644 --- a/doc/user/project/integrations/mattermost_slash_commands.md +++ b/doc/user/project/integrations/mattermost_slash_commands.md @@ -152,7 +152,7 @@ trigger word followed by help. Example: /gitlab help ## Permissions The permissions to run the [available commands](#available-slash-commands) derive from -the [permissions you have on the project](../../permissions.md#project). +the [permissions you have on the project](../../permissions.md#project-members-permissions). ## Further reading diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md index ed289b0c4eb..26989e2a8a4 100644 --- a/doc/user/project/integrations/prometheus.md +++ b/doc/user/project/integrations/prometheus.md @@ -120,7 +120,7 @@ If the "No data found" screen continues to appear, it could be due to: - No successful deployments have occurred to this environment. - Prometheus does not have performance data for this environment, or the metrics are not labeled correctly. To test this, connect to the Prometheus server and - [run a query](#gitlab-prometheus-queries), replacing `$CI_ENVIRONMENT_SLUG` + [run a query](prometheus_library/kubernetes.html#metrics-supported), replacing `$CI_ENVIRONMENT_SLUG` with the name of your environment. [autodeploy]: ../../../ci/autodeploy/index.md diff --git a/doc/user/project/pages/getting_started_part_one.md b/doc/user/project/pages/getting_started_part_one.md index 9a95fb70964..f1e2771dcb9 100644 --- a/doc/user/project/pages/getting_started_part_one.md +++ b/doc/user/project/pages/getting_started_part_one.md @@ -59,7 +59,7 @@ which is highly recommendable and much faster than hardcoding. If you set up a GitLab Pages project on GitLab.com, it will automatically be accessible under a -[subdomain of `namespace.gitlab.io`](introduction.md#gitlab-pages-on-gitlab-com). +[subdomain of `namespace.gitlab.io`](introduction.md#gitlab-pages-on-gitlabcom). The `namespace` is defined by your username on GitLab.com, or the group name you created this project under. diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index daae2f4b5a3..756b8b698c7 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -20,13 +20,13 @@ you should consider first, which we'll cover in this guide: 1. Either if you're adding a **root domain** or a **subdomain**, for which you'll need to set up [DNS records](#dns-records) -1. Whether you want to add an [SSL/TLS certificate](#ssl-tls-certificates) or not +1. Whether you want to add an [SSL/TLS certificate](#ssltls-certificates) or not To finish the association, you need to [add your domain to your project's Pages settings](#add-your-custom-domain-to-gitlab-pages-settings). Let's start from the beginning with [DNS records](#dns-records). If you already know how they work and want to skip the introduction to DNS, -you may be interested in skipping it until the [TL;DR](#tl-dr) section below. +you may be interested in skipping it until the [TL;DR](#tldr) section below. ### DNS Records @@ -148,7 +148,7 @@ verify your domain's ownership with a TXT record: Once you've set the DNS record, you'll need navigate to your project's **Setting > Pages** and click **+ New domain** to add your custom domain to -GitLab Pages. You can choose whether to add an [SSL/TLS certificate](#ssl-tls-certificates) +GitLab Pages. You can choose whether to add an [SSL/TLS certificate](#ssltls-certificates) to make your website accessible under HTTPS or leave it blank. If don't add a certificate, your site will be accessible only via HTTP: diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index e0b78753e21..ee471fa6534 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -141,7 +141,7 @@ You can also take some optional further steps: _Advanced options:_ - [Use a custom domain](getting_started_part_three.md#adding-your-custom-domain-to-gitlab-pages) -- Apply [SSL/TLS certification](getting_started_part_three.md#ssl-tls-certificates) to your custom domain +- Apply [SSL/TLS certification](getting_started_part_three.md#ssltls-certificates) to your custom domain ## Explore GitLab Pages diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index 23eb88fd305..6bb58689f38 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -11,7 +11,7 @@ With GitLab Pages you can host for free your static websites on GitLab. Combined with the power of [GitLab CI] and the help of [GitLab Runner] you can deploy static pages for your individual projects, your user or your group. -Read [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlab-com) for specific +Read [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlabcom) for specific information, if you are using GitLab.com to host your website. ## Getting started with GitLab Pages domains @@ -410,7 +410,7 @@ file for both the `/data` and `/data/` URL paths. ### Add a custom domain to your Pages website For a complete guide on Pages domains, read through the article -[GitLab Pages from A to Z: Part 3 - Setting Up Custom Domains - DNS Records and SSL/TLS Certificates](getting_started_part_three.md#setting-up-custom-domains-dns-records-and-ssl-tls-certificates) +[GitLab Pages from A to Z: Part 3 - GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md) If this setting is enabled by your GitLab administrator, you should be able to see the **New Domain** button when visiting your project's settings through the @@ -451,7 +451,7 @@ private key when adding a new domain. ![Pages upload cert](img/pages_upload_cert.png) For a complete guide on Pages domains, read through the article -[GitLab Pages from A to Z: Part 3 - Setting Up Custom Domains - DNS Records and SSL/TLS Certificates](getting_started_part_three.md#setting-up-custom-domains-dns-records-and-ssl-tls-certificates) +[GitLab Pages from A to Z: Part 3 - GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md) ### Custom error codes pages diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md index bf939dbdaa3..8b57129c9e1 100644 --- a/doc/user/project/pipelines/job_artifacts.md +++ b/doc/user/project/pipelines/job_artifacts.md @@ -38,7 +38,7 @@ turn are defined with the `paths` keyword. All paths to files and directories are relative to the repository that was cloned during the build. These uploaded artifacts will be kept in GitLab for 1 week as defined by the `expire_in` definition. You have the option to keep the artifacts from expiring via the -[web interface](#browsing-job-artifacts). If the expiry time is not defined, +[web interface](#browsing-artifacts). If the expiry time is not defined, it defaults to the [instance wide setting](../../admin_area/settings/continuous_integration.md#default-artifacts-expiration-core-only). diff --git a/doc/user/project/repository/branches/index.md b/doc/user/project/repository/branches/index.md index f05554ffc5b..13e4f2ce163 100644 --- a/doc/user/project/repository/branches/index.md +++ b/doc/user/project/repository/branches/index.md @@ -11,7 +11,7 @@ Read through GiLab's branching documentation: See also: - [Branches API](../../../../api/branches.md), for information on operating on repository branches using the GitLab API. -- [GitLab Flow](../../../../university/training/gitlab_flow.md#gitlab-flow). Use the best of GitLab for your branching strategies. +- [GitLab Flow](../../../../university/training/gitlab_flow.md). Use the best of GitLab for your branching strategies. - [Getting started with Git](../../../../topics/git/index.md) and GitLab. ## Default branch diff --git a/doc/user/search/index.md b/doc/user/search/index.md index 770cef42995..705983cce2a 100644 --- a/doc/user/search/index.md +++ b/doc/user/search/index.md @@ -96,7 +96,7 @@ quickly access issues and merge requests created or assigned to you within that Your [todos](../../workflow/todos.md#gitlab-todos) can be searched by "to do" and "done". You can [filter](../../workflow/todos.md#filtering-your-todos) them per project, author, type, and action. Also, you can sort them by -[**Label priority**](../../user/project/labels.md#prioritize-labels), +[**Label priority**](../../user/project/labels.md#label-priority), **Last created** and **Oldest created**. ## Projects -- cgit v1.2.3 From 8e2ef0b1c84661471126542a94795a8a686e2b7b Mon Sep 17 00:00:00 2001 From: Winnie Hellmann Date: Tue, 5 Mar 2019 17:49:17 +0000 Subject: Mention replying to comments in discussions overview --- doc/user/discussions/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 6a5ee5bbcc4..02bfd2bec7a 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -10,8 +10,9 @@ You can leave a comment in the following places: - commits - commit diffs -The comment area supports [Markdown] and [quick actions]. One can edit their -own comment at any time, and anyone with [Maintainer access level][permissions] or +The comment area supports [Markdown] and [quick actions]. Every individual +comment can be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) +One can also edit their own comment at any time, and anyone with [Maintainer access level][permissions] or higher can also edit a comment made by someone else. You could also reply to the notification email in order to reply to a comment, -- cgit v1.2.3 From 3e8bf69f96ca439bab7fc8a81035e24a9fd15725 Mon Sep 17 00:00:00 2001 From: Wil Wade Date: Fri, 25 Jan 2019 14:04:38 +0000 Subject: Update permissions.md to add Pull from Private Package Repository and Publish to Package Repository --- doc/user/permissions.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index ee3367f193c..833b9b66102 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -62,6 +62,8 @@ The following table depicts the various user permission levels in a project. | Lock issue discussions | | ✓ | ✓ | ✓ | ✓ | | Create issue from vulnerability **[ULTIMATE]** | | ✓ | ✓ | ✓ | ✓ | | View Error Tracking list | | ✓ | ✓ | ✓ | ✓ | +| Pull from [Maven repository](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html) or [NPM registry](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html) **[PREMIUM]** | | ✓ | ✓ | ✓ | ✓ | +| Publish to [Maven repository](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html) or [NPM registry](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html) **[PREMIUM]** | | | ✓ | ✓ | ✓ | | Lock merge request discussions | | | ✓ | ✓ | ✓ | | Create new environments | | | ✓ | ✓ | ✓ | | Stop environments | | | ✓ | ✓ | ✓ | -- cgit v1.2.3 From e371520f465a9f92794d5820faf5c21a893dd77e Mon Sep 17 00:00:00 2001 From: Patrick Bajao Date: Wed, 6 Mar 2019 12:20:27 +0000 Subject: Allow protected branch creation via web and API This commit includes changes to add `UserAccess#can_create_branch?` which will check whether the user is allowed to create a branch even if it matches a protected branch. This is used in `Gitlab::Checks::BranchCheck` when the branch name matches a protected branch. A `push_to_create_protected_branch` ability in `ProjectPolicy` has been added to allow Developers and above to create protected branches. --- doc/user/project/protected_branches.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md index db706e5020e..3eb8123144f 100644 --- a/doc/user/project/protected_branches.md +++ b/doc/user/project/protected_branches.md @@ -10,7 +10,7 @@ created protected branches. By default, a protected branch does four simple things: - it prevents its creation, if not already created, from everybody except users - with Maintainer permission + who are allowed to merge - it prevents pushes from everybody except users with Maintainer permission - it prevents **anyone** from force pushing to the branch - it prevents **anyone** from deleting the branch @@ -94,6 +94,25 @@ all matching branches: ![Protected branch matches](img/protected_branches_matches.png) +## Creating a protected branch + +> [Introduced][https://gitlab.com/gitlab-org/gitlab-ce/issues/53361] in GitLab 11.9. + +When a protected branch or wildcard protected branches are set to +[**No one** is **Allowed to push**](#using-the-allowed-to-merge-and-allowed-to-push-settings), +Developers (and users with higher [permission levels](../permissions.md)) are allowed +to create a new protected branch, but only via the UI or through the API (to avoid +creating protected branches accidentally from the command line or from a Git +client application). + +To create a new branch through the user interface: + +1. Visit **Repository > Branches**. +1. Click on **New branch**. +1. Fill in the branch name and select an existing branch, tag, or commit that + the new branch will be based off. Only existing protected branches and commits + that are already in protected branches will be accepted. + ## Deleting a protected branch > [Introduced][ce-21393] in GitLab 9.3. @@ -125,6 +144,10 @@ for details about the pipelines security model. ## Changelog +**11.9** + +- [Allow protected branches to be created](https://gitlab.com/gitlab-org/gitlab-ce/issues/53361) by Developers (and users with higher permission levels) through the API and the user interface. + **9.2** - Allow deletion of protected branches via the web interface [gitlab-org/gitlab-ce#21393][ce-21393] -- cgit v1.2.3 From 66f25ea6c44fb1d73e437a2d33ef1a926d778c11 Mon Sep 17 00:00:00 2001 From: Winnie Hellmann Date: Wed, 6 Mar 2019 13:20:36 +0100 Subject: Add current state of docs copied from https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25633 --- doc/user/discussions/img/reply_to_comment.gif | Bin 0 -> 508115 bytes .../discussions/img/reply_to_comment_button.png | Bin 0 -> 17224 bytes doc/user/discussions/index.md | 25 +++++++++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 doc/user/discussions/img/reply_to_comment.gif create mode 100644 doc/user/discussions/img/reply_to_comment_button.png (limited to 'doc/user') diff --git a/doc/user/discussions/img/reply_to_comment.gif b/doc/user/discussions/img/reply_to_comment.gif new file mode 100644 index 00000000000..c62f7fdb5fe Binary files /dev/null and b/doc/user/discussions/img/reply_to_comment.gif differ diff --git a/doc/user/discussions/img/reply_to_comment_button.png b/doc/user/discussions/img/reply_to_comment_button.png new file mode 100644 index 00000000000..d362b19785c Binary files /dev/null and b/doc/user/discussions/img/reply_to_comment_button.png differ diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 1e2fad1efe9..02bfd2bec7a 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -10,8 +10,9 @@ You can leave a comment in the following places: - commits - commit diffs -The comment area supports [Markdown] and [quick actions]. One can edit their -own comment at any time, and anyone with [Maintainer access level][permissions] or +The comment area supports [Markdown] and [quick actions]. Every individual +comment can be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) +One can also edit their own comment at any time, and anyone with [Maintainer access level][permissions] or higher can also edit a comment made by someone else. You could also reply to the notification email in order to reply to a comment, @@ -339,6 +340,26 @@ and push the suggested change directly into the codebase in the merge request's Custom commit messages will be introduced by [#54404](https://gitlab.com/gitlab-org/gitlab-ce/issues/54404). +## Start a discussion by replying to a non-discussion comment + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 + +To reply a non-discussion comment, you can use the **Reply to comment** button. + +![Reply to comment button](img/reply_to_comment_button.png) + +The **Reply to comment** button is only displayed if you have permissions to reply to an existing discussion, or start a discussion from a standalone comment. + +Clicking on the **Reply to comment** button will bring the reply area into focus and you can type your reply. + +![Reply to comment feature](img/reply_to_comment.gif) + +Relying to a non-discussion comment will convert the non-discussion comment to a +threaded discussion once the reply is submitted. This conversion is considered an edit +to the original comment, so a note about when it was last edited will appear underneath it. + +This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported yet. + [ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 [ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 [ce-7527]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7527 -- cgit v1.2.3 From e3fa463d1b1946082266d923576053f8f3341fc1 Mon Sep 17 00:00:00 2001 From: Eric Brinkman Date: Mon, 25 Feb 2019 19:29:33 +0000 Subject: Update Cycle Analytics documentation Removed duplicate info. Update pipeline health to cycle analytics. Updated screenshots. --- doc/user/project/cycle_analytics.md | 37 +++++++++------------ .../project/img/cycle_analytics_landing_page.png | Bin 42114 -> 184131 bytes 2 files changed, 16 insertions(+), 21 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 05127b274e0..19ab911e39f 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -3,45 +3,40 @@ > [Introduced][ce-5986] in GitLab 8.12. Further features were added in GitLab 8.14. -Cycle Analytics measures the time it takes to go from an [idea to production] for -each project you have. This is achieved by not only indicating the total time it -takes to reach that point, but the total time is broken down into the -multiple stages an idea has to pass through to be shipped. +Cycle Analytics measures the time spent to go from an [idea to production] for +each of your projects. Cycle Analytics displays the median time for an idea to +reach production, along with the time typically spent in each DevOps stage along the way. + +Cycle Analytics is useful in order to quickly determine the velocity of a given +project. It points to bottlenecks in the development process, enabling management +to uncover, triage, and root-cause slowdowns in the software development life cycle. Cycle Analytics is tightly coupled with the [GitLab flow] and calculates a separate median for each stage. ## Overview -You can find the Cycle Analytics page under your project's **Pipelines ➔ Cycle +You can find the Cycle Analytics page under your project's **Project ➔ Cycle Analytics** tab. ![Cycle Analytics landing page](img/cycle_analytics_landing_page.png) -You can see that there are seven stages in total: +There are seven stages that are tracked as part of the Cycle Analytics calculations. - **Issue** (Tracker) - - Median time from issue creation until given a milestone or list label - (first assignment, any milestone, milestone date or assignee is not required) + - Time to schedule an issue (by milestone or by adding it to an issue board) - **Plan** (Board) - - Median time from giving an issue a milestone or label until pushing the - first commit to the branch + - Time to first commit - **Code** (IDE) - - Median time from the first commit to the branch until the merge request is - created + - Time to create a merge request - **Test** (CI) - - Median total test time for all commits/merges + - Time it takes GitLab CI/CD to test your code - **Review** (Merge Request/MR) - - Median time from merge request creation until the merge request is merged - (closed merge requests won't be taken into account) + - Time spent on code review - **Staging** (Continuous Deployment) - - Median time from when the merge request got merged until the deploy to - production (production is last stage/environment) + - Time between merging and deploying to production - **Production** (Total) - - Sum of all the above stages' times excluding the Test (CI) time. To clarify, - it's not so much that CI time is "excluded", but rather CI time is already - counted in the review stage since CI is done automatically. Most of the - other stages are purely sequential, but **Test** is not. + - Total lifecycle time; i.e. the velocity of the project or team ## How the data is measured diff --git a/doc/user/project/img/cycle_analytics_landing_page.png b/doc/user/project/img/cycle_analytics_landing_page.png index 8b17fae5e05..cf46098b9a4 100644 Binary files a/doc/user/project/img/cycle_analytics_landing_page.png and b/doc/user/project/img/cycle_analytics_landing_page.png differ -- cgit v1.2.3 From fa1071a78a1cd6fea06ec456b37ad47f806fe0f8 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Thu, 7 Mar 2019 04:29:49 +0000 Subject: Docs: Add missing redirects to /user and /project_services docs --- doc/user/account/security.md | 4 ++++ doc/user/account/two_factor_authentication.md | 4 ++++ doc/user/profile/account/index.md | 3 +++ doc/user/project/builds/artifacts.md | 4 ++++ doc/user/project/gpg_signed_commits/index.md | 4 ++++ doc/user/project/integrations/kubernetes.md | 4 ++++ doc/user/project/integrations/prometheus_library/metrics.md | 4 ++++ doc/user/project/merge_requests.md | 4 ++++ doc/user/project/merge_requests/maintainer_access.md | 4 ++++ .../project/merge_requests/merge_request_discussion_resolution.md | 4 ++++ doc/user/project/merge_requests/merge_when_build_succeeds.md | 8 +++++--- doc/user/project/releases.md | 4 ++++ doc/user/project/slash_commands.md | 4 ++++ 13 files changed, 52 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/account/security.md b/doc/user/account/security.md index f4078876fab..8a8edc23529 100644 --- a/doc/user/account/security.md +++ b/doc/user/account/security.md @@ -1 +1,5 @@ +--- +redirect_to: '../profile/account/index.md' +--- + This document was moved to [profile](../profile/account/index.md). diff --git a/doc/user/account/two_factor_authentication.md b/doc/user/account/two_factor_authentication.md index ea2c8307860..42a66becc50 100644 --- a/doc/user/account/two_factor_authentication.md +++ b/doc/user/account/two_factor_authentication.md @@ -1 +1,5 @@ +--- +redirect_to: '../profile/account/two_factor_authentication.md' +--- + This document was moved to [profile/account/two_factor_authentication](../profile/account/two_factor_authentication.md). diff --git a/doc/user/profile/account/index.md b/doc/user/profile/account/index.md index 06667bfc5f1..56b6498e16c 100644 --- a/doc/user/profile/account/index.md +++ b/doc/user/profile/account/index.md @@ -1,2 +1,5 @@ +--- +redirect_to: '../index.md#profile-settings' +--- This document was moved to [../index.md#profile-settings](../index.md#profile-settings). diff --git a/doc/user/project/builds/artifacts.md b/doc/user/project/builds/artifacts.md index 514c729b37d..1b0f3f61394 100644 --- a/doc/user/project/builds/artifacts.md +++ b/doc/user/project/builds/artifacts.md @@ -1 +1,5 @@ +--- +redirect_to: '../pipelines/job_artifacts.md' +--- + This document was moved to [pipelines/job_artifacts](../pipelines/job_artifacts.md). diff --git a/doc/user/project/gpg_signed_commits/index.md b/doc/user/project/gpg_signed_commits/index.md index 261eedeb412..bd9a5313489 100644 --- a/doc/user/project/gpg_signed_commits/index.md +++ b/doc/user/project/gpg_signed_commits/index.md @@ -1 +1,5 @@ +--- +redirect_to: '../repository/gpg_signed_commits/index.md' +--- + This document was moved to [another location](../repository/gpg_signed_commits/index.md). diff --git a/doc/user/project/integrations/kubernetes.md b/doc/user/project/integrations/kubernetes.md index 9342a2cbb00..ab43eb2da7e 100644 --- a/doc/user/project/integrations/kubernetes.md +++ b/doc/user/project/integrations/kubernetes.md @@ -1 +1,5 @@ +--- +redirect_to: '../clusters/index.md' +--- + This document was moved to [another location](../clusters/index.md). diff --git a/doc/user/project/integrations/prometheus_library/metrics.md b/doc/user/project/integrations/prometheus_library/metrics.md index 37a5388d2fc..7ace0ec5a93 100644 --- a/doc/user/project/integrations/prometheus_library/metrics.md +++ b/doc/user/project/integrations/prometheus_library/metrics.md @@ -1 +1,5 @@ +--- +redirect_to: 'index.md' +--- + This document was moved to [another location](index.md). diff --git a/doc/user/project/merge_requests.md b/doc/user/project/merge_requests.md index 84a79f04094..1d7ebc856c3 100644 --- a/doc/user/project/merge_requests.md +++ b/doc/user/project/merge_requests.md @@ -1 +1,5 @@ +--- +redirect_to: 'merge_requests/index.md' +--- + This document was moved to [merge_requests/index.md](merge_requests/index.md). diff --git a/doc/user/project/merge_requests/maintainer_access.md b/doc/user/project/merge_requests/maintainer_access.md index d59afecd375..fe7e1f558c7 100644 --- a/doc/user/project/merge_requests/maintainer_access.md +++ b/doc/user/project/merge_requests/maintainer_access.md @@ -1 +1,5 @@ +--- +redirect_to: 'allow_collaboration.md' +--- + This document was moved to [another location](allow_collaboration.md). diff --git a/doc/user/project/merge_requests/merge_request_discussion_resolution.md b/doc/user/project/merge_requests/merge_request_discussion_resolution.md index 200965875a1..a554d727ca4 100644 --- a/doc/user/project/merge_requests/merge_request_discussion_resolution.md +++ b/doc/user/project/merge_requests/merge_request_discussion_resolution.md @@ -1 +1,5 @@ +--- +redirect_to: '../../discussions/index.md' +--- + This document was moved to [another location](../../discussions/index.md). diff --git a/doc/user/project/merge_requests/merge_when_build_succeeds.md b/doc/user/project/merge_requests/merge_when_build_succeeds.md index 2167fdfbf7e..cf5e3af16c9 100644 --- a/doc/user/project/merge_requests/merge_when_build_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_build_succeeds.md @@ -1,5 +1,7 @@ -This document was moved to [merge_when_pipeline_succeeds](merge_when_pipeline_succeeds.md). +--- +redirect_to: 'merge_when_pipeline_succeeds.md' +--- ->[Introduced][ce-7135] by the "Rename MWBS service to Merge When Pipeline Succeeds" change. +This document was moved to [merge_when_pipeline_succeeds](merge_when_pipeline_succeeds.md). -[ce-7135]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7135 +>[Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7135) by the "Rename MWBS service to Merge When Pipeline Succeeds" change. diff --git a/doc/user/project/releases.md b/doc/user/project/releases.md index 737842962a9..baa7a295273 100644 --- a/doc/user/project/releases.md +++ b/doc/user/project/releases.md @@ -1 +1,5 @@ +--- +redirect_to: 'releases/index.md' +--- + This document was moved to [another location](releases/index.md). diff --git a/doc/user/project/slash_commands.md b/doc/user/project/slash_commands.md index e9103a3f49c..1280524bc9b 100644 --- a/doc/user/project/slash_commands.md +++ b/doc/user/project/slash_commands.md @@ -1 +1,5 @@ +--- +redirect_to: 'quick_actions.md' +--- + This document was moved to [user/project/quick_actions.md](quick_actions.md). -- cgit v1.2.3 From 0b59cac8fd9622f7eb9420935c9a9f6f599ed714 Mon Sep 17 00:00:00 2001 From: Rajat Jain Date: Thu, 7 Mar 2019 10:05:12 +0530 Subject: Porting changes from EE - Extract 445px as a variable - Documentation changes: new image and update copy --- doc/user/project/img/issue_boards_multiple.png | Bin 7049 -> 68373 bytes doc/user/project/issue_board.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/img/issue_boards_multiple.png b/doc/user/project/img/issue_boards_multiple.png index de7b04d6e36..4b1a8356dc9 100644 Binary files a/doc/user/project/img/issue_boards_multiple.png and b/doc/user/project/img/issue_boards_multiple.png differ diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index 9d4dfd56a4b..66168080087 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -177,7 +177,7 @@ menu from where you can create another Issue Board or delete the existing one. Using the search box at the top of the menu, you can filter the listed boards. When you have 10 or more boards available, a "Recent" section is also shown in the menu. -These are shortcuts to your last 5 visited boards. +These are shortcuts to your last 4 visited boards. ![Multiple Issue Boards](img/issue_boards_multiple.png) -- cgit v1.2.3 From 9bb5450f4bf843ebb37f178594419c2833072650 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 7 Mar 2019 06:16:28 +0000 Subject: Update intro to start with standard vs discussion comments and clarify email replies --- doc/user/discussions/index.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 02bfd2bec7a..9f17753cc33 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -10,17 +10,18 @@ You can leave a comment in the following places: - commits - commit diffs -The comment area supports [Markdown] and [quick actions]. Every individual -comment can be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) -One can also edit their own comment at any time, and anyone with [Maintainer access level][permissions] or +There are standard comments, and you also have the option to create a comment +in the form of a resolvable/threaded discussion. A comment can also be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) +when it receives a reply. + +The comment area supports [Markdown] and [quick actions]. You can edit your own +comment at any time, and anyone with [Maintainer access level][permissions] or higher can also edit a comment made by someone else. -You could also reply to the notification email in order to reply to a comment, +You can also reply to a comment notification email in order to reply to a comment, provided that [Reply by email] is configured by your GitLab admin. This also -supports [Markdown] and [quick actions] as if replied from the web. - -Apart from the standard comments, you also have the option to create a comment -in the form of a resolvable or threaded discussion. +supports [Markdown] and [quick actions] as if replied from the web. Note that this +adds an additional comment, but does not create a discussion. ## Resolvable discussions @@ -348,7 +349,7 @@ To reply a non-discussion comment, you can use the **Reply to comment** button. ![Reply to comment button](img/reply_to_comment_button.png) -The **Reply to comment** button is only displayed if you have permissions to reply to an existing discussion, or start a discussion from a standalone comment. +The **Reply to comment** button is only displayed if you have permissions to reply to an existing discussion, or start a discussion from a standard comment. Clicking on the **Reply to comment** button will bring the reply area into focus and you can type your reply. -- cgit v1.2.3 From 6671a619e2b13a375d0b3937329cd098ca42f236 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Thu, 7 Mar 2019 12:14:53 +0000 Subject: Move proj templates into default getting started guide - Move instructions to use project templates to getting started - Move the fork illustration into the in-depth guide - Add screenshot for current project templates Copyedit - better wording Copy edit - typo --- doc/user/project/pages/getting_started_part_two.md | 97 ++++++++++++--------- .../pages/img/pages_project_templates_11-8.png | Bin 0 -> 69702 bytes doc/user/project/pages/index.md | 63 +++++-------- 3 files changed, 78 insertions(+), 82 deletions(-) create mode 100644 doc/user/project/pages/img/pages_project_templates_11-8.png (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index 644a1c951d3..901fb226cda 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -1,5 +1,5 @@ --- -last_updated: 2018-02-16 +last_updated: 2019-03-05 author: Marcia Ramos author_gitlab: marcia level: beginner @@ -21,8 +21,8 @@ To get started with GitLab Pages, you need: Optional Features: -1. A custom domain or subdomain -1. A DNS pointing your (sub)domain to your Pages site +1. A custom domain or subdomain. +1. A DNS pointing your (sub)domain to your Pages site. 1. **Optional**: an SSL/TLS certificate so your custom domain is accessible under HTTPS. @@ -33,54 +33,73 @@ The optional settings, custom domain, DNS records, and SSL/TLS certificates, are Your GitLab Pages project is a regular project created the same way you do for the other ones. To get started with GitLab Pages, you have three ways: -- Use one of the popular templates already in the app, -- Fork one of the templates from Page Examples, or -- Create a new project from scratch - -Let's go over each option. +- [Use one of the popular project templates bundled with GitLab](#use-one-of-the-popular-pages-templates-bundled-with-gitlab). +- [Fork one of the templates from Page Examples](#fork-a-project-to-get-started-from). +- [Create a new project from scratch](#create-a-project-from-scratch). ### Use one of the popular Pages templates bundled with GitLab > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47857) in GitLab 11.8. -The simplest way to create a GitLab Pages site is to use one of the most -popular templates, which come already bundled and ready to go. To use one -of these templates: - -1. From the top navigation, click the **+** button and select **New project** -1. Select **Create from Template** -1. Choose one of the templates starting with **Pages** +The simplest way to create a GitLab Pages site is to +[use one of the most popular templates](index.md#getting-started), +which come already bundled with GitLab and are ready to go. ### Fork a project to get started from -To make things easy for you, we've created this -[group](https://gitlab.com/pages) of default projects -containing the most popular SSGs templates. - -Watch the [video tutorial](https://youtu.be/TWqh9MtT4Bg) we've -created for the steps below. - -1. [Fork a sample project](../../../gitlab-basics/fork-project.md) from the [Pages group](https://gitlab.com/pages) -1. Trigger a build (push a change to any file) -1. As soon as the build passes, your website will have been deployed with GitLab Pages. Your website URL will be available under your project's **Settings** > **Pages** -1. Optionally, remove the fork relationship by navigating to your project's **Settings** > expanding **Advanced settings** and scrolling down to **Remove fork relationship**: +If you don't find an existing project template that suits you, +we've created this [group](https://gitlab.com/pages) of default projects +containing the most popular SSGs templates to get you started. + + + + + + + + + + + + + + + + +
Fork + + + + Deploy + + + + Visit
Fork an example projectDeploy your websiteVisit your website's URL
+ +** Watch a [video tutorial](https://www.youtube.com/watch?v=TWqh9MtT4Bg) with all the steps below.** + +1. [Fork](../../../gitlab-basics/fork-project.md) a sample project from the [GitLab Pages examples](https://gitlab.com/pages) group. +1. From the left sidebar, navigate to your project's **CI/CD > Pipelines** +and click **Run pipeline** to trigger GitLab CI/CD to build and deploy your +site to the server. +1. Once the pipeline has finished successfully, find the link to visit your +website from your project's **Settings > Pages**. + +You can also take some **optional** further steps: + +- _Remove the fork relationship._ The fork relashionship is necessary to contribute back to the project you originally forked from. If you don't have any intentions to do so, you can remove it. To do so, navigate to your project's **Settings**, expand **Advanced settings**, and scroll down to **Remove fork relationship**: ![remove fork relationship](img/remove_fork_relationship.png) -To turn a **project website** forked from the Pages group into a **user/group** website, you'll need to: - -- Rename it to `namespace.gitlab.io`: navigate to project's **Settings** > expand **Advanced settings** > and scroll down to **Rename repository** -- Adjust your SSG's [base URL](#urls-and-baseurls) from `"project-name"` to `""`. This setting will be at a different place for each SSG, as each of them have their own structure and file tree. Most likely, it will be in the SSG's config file. - -> **Notes:** -> -> Why do I need to remove the fork relationship? -> -> Unless you want to contribute to the original project, -you won't need it connected to the upstream. A -[fork](https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/#fork) -is useful for submitting merge requests to the upstream. +- _Make it a user or group website._ To turn a **project website** forked +from the Pages group into a **user/group** website, you'll need to: + - Rename it to `namespace.gitlab.io`: navigate to project's **Settings** > + expand **Advanced settings** > and scroll down to **Rename repository**. + - Adjust your SSG's [base URL](#urls-and-baseurls) from `"project-name"` to + `""`. This setting will be at a different place for each SSG, as each of them + have their own structure and file tree. Most likely, it will be in the SSG's + config file. ### Create a project from scratch diff --git a/doc/user/project/pages/img/pages_project_templates_11-8.png b/doc/user/project/pages/img/pages_project_templates_11-8.png new file mode 100644 index 00000000000..a645d28260b Binary files /dev/null and b/doc/user/project/pages/img/pages_project_templates_11-8.png differ diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index ee471fa6534..885df9f0850 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -1,5 +1,6 @@ --- description: 'Learn how to use GitLab Pages to deploy a static website at no additional cost.' +last_updated: 2019-03-05 --- # GitLab Pages @@ -8,8 +9,8 @@ description: 'Learn how to use GitLab Pages to deploy a static website at no add directly from a repository in GitLab.** You can use it either for personal or business websites, such as -portfolios, documentation, manifestos, and business presentations, -and attribute any license to your content. +portfolios, documentation, manifestos, and business presentations. +You can also attribute any license to your content. @@ -91,52 +92,28 @@ site under the HTTPS protocol. ## Getting started -To get started with GitLab Pages, you can either [create a project from scratch](getting_started_part_two.md#create-a-project-from-scratch), -use a [bundled template](getting_started_part_two.md#use-one-of-the-popular-pages-templates-bundled-with-gitlab), or copy any of our existing example projects: +To get started with GitLab Pages, you can either: -1. Choose an [example project](https://gitlab.com/pages) to [fork](../../../gitlab-basics/fork-project.md#how-to-fork-a-project): - by forking a project, you create a copy of the codebase you're forking from to start from a template instead of starting from scratch. -1. From the left sidebar, navigate to your project's **CI/CD > Pipelines** and click - **Run pipeline** so that GitLab CI/CD will build and deploy your site to the server. -1. Once the pipeline has finished successfully, find the link to visit your website from your - project's **Settings > Pages**. +- [Create a project from scratch](getting_started_part_two.md#create-a-project-from-scratch). +- [Copy an existing example project](getting_started_part_two.md#fork-a-project-to-get-started-from). +- Use a bundled project template that is ready to go ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47857) +in GitLab 11.8), as follows: -
- - - - - - - - - - - - - - -
Fork - - - - Deploy - - - - Visit
Fork an example projectDeploy your websiteVisit your website's URL
- -Your website is then visible on your domain, and you can modify your files -as you wish. For every modification pushed to your repository, GitLab CI/CD will run -a new pipeline to publish your changes to the server. +1. From the top navigation, click the **+** button and select **New project**. +1. Select **Create from Template**. +1. Choose one of the templates starting with **Pages**: -You can also take some optional further steps: + ![Project templates for Pages](img/pages_project_templates_11-8.png) -- Remove the [fork relationship](getting_started_part_two.md#fork-a-project-to-get-started-from) - (_You don't need the relationship unless you intent to contribute back to the example project you forked from_). -- Make it a [user/group website](getting_started_part_one.md#user-and-group-websites) +1. From the left sidebar, navigate to your project's **CI/CD > Pipelines** +and click **Run pipeline** to trigger GitLab CI/CD to build and deploy your +site to the server. +1. Once the pipeline has finished successfully, find the link to visit your +website from your project's **Settings > Pages**. -** Watch a [video tutorial](https://www.youtube.com/watch?v=TWqh9MtT4Bg) with all the steps above!** +Your website is then visible on your domain, and you can modify yourfiles +as you wish. For every modification pushed to your repository, GitLab CI/CD +will run a new pipeline to publish your changes to the server. _Advanced options:_ -- cgit v1.2.3 From 236927a4e1a77d6ee8e0ab9a807d6e260ceccd44 Mon Sep 17 00:00:00 2001 From: Amit Rathi Date: Thu, 7 Mar 2019 15:14:22 +0000 Subject: Merge branch 'restrict-jupyter-login' of https://gitlab.com/amit1rrr/gitlab-ce into restrict-jupyter-login --- doc/user/project/clusters/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 6e64053a6ca..3819dc308ec 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -182,7 +182,7 @@ To add an existing Kubernetes cluster to your project: namespace: 11 bytes token: ``` - + NOTE: **Note:** For GKE clusters, you will need the `container.clusterRoleBindings.create` permission to create a cluster @@ -326,7 +326,7 @@ install it manually. NOTE: **Note:** Before starting the installation of applications, make sure that time is synchronized between your GitLab server and your Kubernetes cluster. Otherwise, installation could fail -and you may get errors like `Error: remote error: tls: bad certificate` +and you may get errors like `Error: remote error: tls: bad certificate` in the `stdout` of pods created by GitLab in your Kubernetes cluster. GitLab provides a one-click install for various applications which can @@ -353,7 +353,7 @@ by GitLab before installing any of the applications. | [Cert Manager](http://docs.cert-manager.io/en/latest/) | 11.6+ | Cert Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | | [Prometheus](https://prometheus.io/docs/introduction/overview/) | 10.4+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | | [GitLab Runner](https://docs.gitlab.com/runner/) | 10.6+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](https://about.gitlab.com/features/gitlab-ci-cd/), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | -| [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). **Note**: Authentication will be enabled for any user of the GitLab server via OAuth2. HTTPS will be supported in a future release. | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | +| [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. Authentication will be enabled only for [project members](../members/index.md) with [Developer or higher](../../permissions.md) access to the project. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | | [Knative](https://cloud.google.com/knative) | 11.5+ | Knative provides a platform to create, deploy, and manage serverless workloads from a Kubernetes cluster. It is used in conjunction with, and includes [Istio](https://istio.io) to provide an external IP address for all programs hosted by Knative. You will be prompted to enter a wildcard domain where your applications will be exposed. Configure your DNS server to use the external IP address for that domain. For any application created and installed, they will be accessible as `..`. This will require your kubernetes cluster to have [RBAC enabled](#role-based-access-control-rbac). | [knative/knative](https://storage.googleapis.com/triggermesh-charts) With the exception of Knative, the applications will be installed in a dedicated -- cgit v1.2.3 From 290c25dff16a208c6dcb761d75bd51c650f4fec8 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 7 Mar 2019 15:24:10 +0000 Subject: Standardize further on standard comments --- doc/user/discussions/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 9f17753cc33..2b2413c7452 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -341,11 +341,11 @@ and push the suggested change directly into the codebase in the merge request's Custom commit messages will be introduced by [#54404](https://gitlab.com/gitlab-org/gitlab-ce/issues/54404). -## Start a discussion by replying to a non-discussion comment +## Start a discussion by replying to a standard comment > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 -To reply a non-discussion comment, you can use the **Reply to comment** button. +To reply to a standard (non-discussion) comment, you can use the **Reply to comment** button. ![Reply to comment button](img/reply_to_comment_button.png) -- cgit v1.2.3 From 8e4948ffe92499a1a9364323c0b953760e46e751 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 7 Mar 2019 15:31:55 +0000 Subject: Rephrase resolvable comments section --- doc/user/discussions/index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 2b2413c7452..91ed56aba17 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -11,7 +11,7 @@ You can leave a comment in the following places: - commit diffs There are standard comments, and you also have the option to create a comment -in the form of a resolvable/threaded discussion. A comment can also be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) +in the form of a threaded discussion. A comment can also be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) when it receives a reply. The comment area supports [Markdown] and [quick actions]. You can edit your own @@ -23,20 +23,22 @@ provided that [Reply by email] is configured by your GitLab admin. This also supports [Markdown] and [quick actions] as if replied from the web. Note that this adds an additional comment, but does not create a discussion. -## Resolvable discussions +## Resolvable comments and discussions > **Notes:** > - The main feature was [introduced][ce-5022] in GitLab 8.11. > - Resolvable discussions can be added only to merge request diffs. Discussion resolution helps keep track of progress during planning or code review. -Resolving comments prevents you from forgetting to address feedback and lets you -hide discussions that are no longer relevant. -!["A discussion between two people on a piece of code"][discussion-view] +Every standard comment or discussion thread in merge requests, commits, commit diffs, and +snippets is initially displayed as unresolved. They can then be individually resolved by anyone +with at least Developer access to the project or by the author of the change being reviewed. + +The need to resolve all standard comments or discussions prevents you from forgetting +to address feedback and lets you hide discussions that are no longer relevant. -Comments and discussions can be resolved by anyone with at least Developer -access to the project or the author of the merge request. +!["A discussion between two people on a piece of code"][discussion-view] ### Commit discussions in the context of a merge request -- cgit v1.2.3 From 7be248334b350091e83d0335bf0c263071c6a67f Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 7 Mar 2019 15:41:14 +0000 Subject: Clarifications to email section in intro --- doc/user/discussions/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 91ed56aba17..90936034fea 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -18,10 +18,10 @@ The comment area supports [Markdown] and [quick actions]. You can edit your own comment at any time, and anyone with [Maintainer access level][permissions] or higher can also edit a comment made by someone else. -You can also reply to a comment notification email in order to reply to a comment, -provided that [Reply by email] is configured by your GitLab admin. This also -supports [Markdown] and [quick actions] as if replied from the web. Note that this -adds an additional comment, but does not create a discussion. +You can also reply to a comment notification email to reply to the comment if +[Reply by email] is configured for your GitLab instance. Replying to a standard comment +creates another standard comment. Replying to a discussion comment creates a reply in the +discussion thread. Email replies support [Markdown] and [quick actions], just as if you replied from the web. ## Resolvable comments and discussions -- cgit v1.2.3 From 460797dec3dc143943390e86a09d6e6b45a465d8 Mon Sep 17 00:00:00 2001 From: walkafwalka <2865898-walkafwalka@users.noreply.gitlab.com> Date: Thu, 7 Mar 2019 13:51:43 -0800 Subject: Add support for ingress hostnames --- doc/user/project/clusters/index.md | 39 +++++++++++----------- doc/user/project/clusters/serverless/index.md | 22 ++++-------- .../prometheus_library/nginx_ingress.md | 2 +- .../prometheus_library/nginx_ingress_vts.md | 2 +- 4 files changed, 27 insertions(+), 38 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 3819dc308ec..ef85b2f6837 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -387,27 +387,27 @@ Upgrades will reset values back to the values built into the `runner` chart plus the values set by [`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) -## Getting the external IP address +## Getting the external endpoint NOTE: **Note:** With the following procedure, a load balancer must be installed in your cluster -to obtain the external IP address. You can use either +to obtain the endpoint. You can use either [Ingress](#installing-applications), or Knative's own load balancer ([Istio](https://istio.io)) if using [Knative](#installing-applications). -In order to publish your web application, you first need to find the external IP -address associated to your load balancer. +In order to publish your web application, you first need to find the endpoint which will be either an IP +address or a hostname associated with your load balancer. -### Let GitLab fetch the IP address +### Let GitLab fetch the external endpoint > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17052) in GitLab 10.6. If you [installed Ingress or Knative](#installing-applications), -you should see the Ingress IP address on this same page within a few minutes. -If you don't see this, GitLab might not be able to determine the IP address of +you should see the Ingress Endpoint on this same page within a few minutes. +If you don't see this, GitLab might not be able to determine the external endpoint of your ingress application in which case you should manually determine it. -### Manually determining the IP address +### Manually determining the external endpoint If the cluster is on GKE, click the **Google Kubernetes Engine** link in the **Advanced settings**, or go directly to the @@ -417,7 +417,7 @@ the `gcloud` command in a local terminal or using the **Cloud Shell**. If the cluster is not on GKE, follow the specific instructions for your Kubernetes provider to configure `kubectl` with the right credentials. -The output of the following examples will show the external IP address of your +The output of the following examples will show the external endpoint of your cluster. This information can then be used to set up DNS entries and forwarding rules that allow external access to your deployed applications. @@ -425,19 +425,19 @@ If you installed the Ingress [via the **Applications**](#installing-applications run the following command: ```bash -kubectl get svc --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' +kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}' ``` -For Istio/Knative, the command will be different: +Some Kubernetes clusters return a hostname instead, like [Amazon EKS](https://aws.amazon.com/eks/). For these platforms, run: ```bash -kubectl get svc --namespace=istio-system knative-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' +kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' ``` -Some Kubernetes clusters return a hostname instead, like [Amazon EKS](https://aws.amazon.com/eks/). For these platforms, run: +For Istio/Knative, the command will be different: ```bash -kubectl get service ingress-nginx-ingress-controller -n gitlab-managed-apps -o jsonpath="{.status.loadBalancer.ingress[0].hostname}". +kubectl get svc --namespace=istio-system knative-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' ``` Otherwise, you can list the IP addresses of all load balancers: @@ -456,13 +456,12 @@ reserved IP. Read how to [promote an ephemeral external IP address in GKE](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#promote_ephemeral_ip). -### Pointing your DNS at the cluster IP +### Pointing your DNS at the external endpoint -Once you've set up the static IP, you should associate it to a [wildcard DNS -record](https://en.wikipedia.org/wiki/Wildcard_DNS_record), in order to be able -to reach your apps. This heavily depends on your domain provider, but in case -you aren't sure, just create an A record with a wildcard host like -`*.example.com.`. +Once you've set up the external endpoint, you should associate it with a [wildcard DNS +record](https://en.wikipedia.org/wiki/Wildcard_DNS_record) such as `*.example.com.` +in order to be able to reach your apps. If your external endpoint is an IP address, +use an A record. If your external endpoint is a hostname, use a CNAME record. ## Multiple Kubernetes clusters **[PREMIUM]** diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 856ae03f4bc..e6804666e22 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -37,9 +37,9 @@ To run Knative on Gitlab, you will need: applications or functions onto your cluster. You can install the GitLab Runner onto the existing Kubernetes cluster. See [Installing Applications](../index.md#installing-applications) for more information. 1. **Domain Name:** Knative will provide its own load balancer using Istio. It will provide an - external IP address for all the applications served by Knative. You will be prompted to enter a + external IP address or hostname for all the applications served by Knative. You will be prompted to enter a wildcard domain where your applications will be served. Configure your DNS server to use the - external IP address for that domain. + external IP address or hostname for that domain. 1. **`.gitlab-ci.yml`:** GitLab uses [Kaniko](https://github.com/GoogleContainerTools/kaniko) to build the application and the [TriggerMesh CLI](https://github.com/triggermesh/tm) to simplify the deployment of knative services and functions. @@ -62,18 +62,8 @@ The minimum recommended cluster size to run Knative is 3-nodes, 6 vCPUs, and 22. ![install-knative](img/install-knative.png) -1. After the Knative installation has finished, you can wait for the IP address to be displayed in the - **Knative IP Address** field (takes up to 5 minutes) or retrieve the Istio Ingress IP address by running the following command: - - ```bash - kubectl get svc --namespace=istio-system knative-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' - ``` - - Output: - - ```bash - 35.161.143.124 my-machine-name:~ my-user$ - ``` +1. After the Knative installation has finished, you can wait for the IP address or hostname to be displayed in the + **Knative Endpoint** field or [retrieve the Istio Ingress Endpoint manually](../#manually-determining-the-external-endpoint). NOTE: **Note:** Running `kubectl` commands on your cluster requires setting up access to the cluster first. @@ -82,8 +72,8 @@ The minimum recommended cluster size to run Knative is 3-nodes, 6 vCPUs, and 22. 1. The ingress is now available at this address and will route incoming requests to the proper service based on the DNS name in the request. To support this, a wildcard DNS A record should be created for the desired domain name. For example, - if your Knative base domain is `example.com` then you need to create an A record with domain `*.example.com` - pointing the ip address of the ingress. + if your Knative base domain is `knative.info` then you need to create an A record or CNAME record with domain `*.knative.info` + pointing the ip address or hostname of the ingress. ![dns entry](img/dns-entry.png) diff --git a/doc/user/project/integrations/prometheus_library/nginx_ingress.md b/doc/user/project/integrations/prometheus_library/nginx_ingress.md index b7601f26802..de7fc93f0a4 100644 --- a/doc/user/project/integrations/prometheus_library/nginx_ingress.md +++ b/doc/user/project/integrations/prometheus_library/nginx_ingress.md @@ -30,7 +30,7 @@ For other deployments, there is [some configuration](#manually-setting-up-nginx- ### About managed NGINX Ingress deployments -NGINX Ingress is deployed into the `gitlab-managed-apps` namespace, using the [official Helm chart](https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress). NGINX Ingress will be [externally reachable via the Load Balancer's IP](../../clusters/index.md#getting-the-external-ip-address). +NGINX Ingress is deployed into the `gitlab-managed-apps` namespace, using the [official Helm chart](https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress). NGINX Ingress will be [externally reachable via the Load Balancer's Endpoint](../../clusters/index.md#getting-the-external-endpoint). NGINX is configured for Prometheus monitoring, by setting: diff --git a/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md b/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md index 081eb8732ad..31ac53c0d14 100644 --- a/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md +++ b/doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md @@ -30,7 +30,7 @@ For other deployments, there is [some configuration](#manually-setting-up-nginx- ### About managed NGINX Ingress deployments -NGINX Ingress is deployed into the `gitlab-managed-apps` namespace, using the [official Helm chart](https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress). NGINX Ingress will be [externally reachable via the Load Balancer's IP](../../clusters/index.md#getting-the-external-ip-address). +NGINX Ingress is deployed into the `gitlab-managed-apps` namespace, using the [official Helm chart](https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress). NGINX Ingress will be [externally reachable via the Load Balancer's Endpoint](../../clusters/index.md#getting-the-external-endpoint). NGINX is configured for Prometheus monitoring, by setting: -- cgit v1.2.3 From 82bd2d470675cd31adc6dc1956532a7fa6f3ecc7 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Thu, 7 Mar 2019 23:35:23 +0000 Subject: Add up-to-date illustations - Pipeline status - Job running - Rollback button --- doc/user/project/pages/getting_started_part_four.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_four.md b/doc/user/project/pages/getting_started_part_four.md index 05d5a2fd99a..021139d486d 100644 --- a/doc/user/project/pages/getting_started_part_four.md +++ b/doc/user/project/pages/getting_started_part_four.md @@ -9,14 +9,26 @@ date: 2017-02-22 # Creating and Tweaking GitLab CI/CD for GitLab Pages -[GitLab CI](https://about.gitlab.com/gitlab-ci/) serves +To [get started with GitLab Pages](index.md#getting-started), you can +use one of the project templates, a `.gitlab-ci.yml` template, +or fork an existing example project. Therefore, you don't need to +understand _all_ the ins and odds of GitLab CI/CD to get your site +deployed. Still, there are cases where you want to write your own +script or tweak an existing one. This document guides you through +this process. + +This guide also provides a general overview and clear introduction +for **getting familiar with the `.gitlab-ci.yml` file and writing +one for the first time.** + +[GitLab CI/CD](../../../ci/README.md) serves numerous purposes, to build, test, and deploy your app from GitLab through -[Continuous Integration, Continuous Delivery, and Continuous Deployment](https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/) +[Continuous Integration, Continuous Delivery, and Continuous Deployment](../../../ci/introduction/index.md#introduction-to-continuous-methods) methods. You will need it to build your website with GitLab Pages, and deploy it to the Pages server. -To implement GitLab CI/CD, the first thing we need is a configuration +To implement GitLab CI/CD, the first thing you need is a configuration file called `.gitlab-ci.yml` placed at your website's root directory. What this file actually does is telling the @@ -26,7 +38,7 @@ terminal. GitLab CI/CD tells the Runner which commands to run. Both are built-in in GitLab, and you don't need to set up anything for them to work. -Explaining [every detail of GitLab CI](https://docs.gitlab.com/ce/ci/yaml/README.html) +Explaining [every detail of GitLab CI/CD](../../../ci/yaml/README.md) and GitLab Runner is out of the scope of this guide, but we'll need to understand just a few things to be able to write our own `.gitlab-ci.yml` or tweak an existing one. It's an -- cgit v1.2.3 From eba4b9404f152f6ad8c4be62116cbe5fd0662b0d Mon Sep 17 00:00:00 2001 From: Jan Beckmann Date: Fri, 8 Mar 2019 08:34:20 +0000 Subject: Disallow reopening of locked merge requests Fixes #56864 --- doc/user/discussions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 90936034fea..a15e1a59921 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -276,7 +276,7 @@ edit existing comments. Non-team members are restricted from adding or editing c | :-----------: | :----------: | | ![Comment form member](img/lock_form_member.png) | ![Comment form non-member](img/lock_form_non_member.png) | -Additionally locked issues can not be reopened. +Additionally, locked issues and merge requests can not be reopened. ## Filtering notes -- cgit v1.2.3 From 7028c40e36493d8fa5be59695114470a072eff22 Mon Sep 17 00:00:00 2001 From: Steve Azzopardi Date: Fri, 8 Mar 2019 10:29:46 +0100 Subject: Update pipeline webhook example response In the example response we have builds with status `success` but the property `runner` is null, which is not a realistic representation of the response. The runner is always sent if the build has ran. closes https://gitlab.com/gitlab-org/gitlab-ce/issues/53121 --- doc/user/project/integrations/webhooks.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index c3fc6d4b859..d324e0de0cc 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -1041,7 +1041,12 @@ X-Gitlab-Event: Pipeline Hook "username": "root", "avatar_url": "http://www.gravatar.com/avatar/e32bd13e2add097461cb96824b7a829c?s=80\u0026d=identicon" }, - "runner": null, + "runner": { + "id":380987, + "description":"shared-runners-manager-6.gitlab.com", + "active":true, + "is_shared":true + }, "artifacts_file":{ "filename": null, "size": null @@ -1062,7 +1067,12 @@ X-Gitlab-Event: Pipeline Hook "username": "root", "avatar_url": "http://www.gravatar.com/avatar/e32bd13e2add097461cb96824b7a829c?s=80\u0026d=identicon" }, - "runner": null, + "runner": { + "id":380987, + "description":"shared-runners-manager-6.gitlab.com", + "active":true, + "is_shared":true + }, "artifacts_file":{ "filename": null, "size": null @@ -1083,7 +1093,12 @@ X-Gitlab-Event: Pipeline Hook "username": "root", "avatar_url": "http://www.gravatar.com/avatar/e32bd13e2add097461cb96824b7a829c?s=80\u0026d=identicon" }, - "runner": null, + "runner": { + "id":380987, + "description":"shared-runners-manager-6.gitlab.com", + "active":true, + "is_shared":true + }, "artifacts_file":{ "filename": null, "size": null -- cgit v1.2.3 From 8272b0c8bd929588f69c494650acd27f575f2a17 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 11 Mar 2019 01:47:01 +0000 Subject: Docs: Fix CI/CD related anchors --- doc/user/admin_area/settings/continuous_integration.md | 4 ++-- doc/user/gitlab_com/index.md | 2 +- doc/user/group/clusters/index.md | 9 ++++----- doc/user/project/clusters/index.md | 11 ++++------- doc/user/project/integrations/prometheus.md | 2 +- doc/user/project/new_ci_build_permissions_model.md | 5 ++--- doc/user/project/pages/introduction.md | 2 +- doc/user/project/pipelines/job_artifacts.md | 2 +- 8 files changed, 16 insertions(+), 21 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index 01979f12a01..a1825581ebf 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -26,7 +26,7 @@ If you want to disable it for a specific project, you can do so in The maximum size of the [job artifacts][art-yml] can be set in the Admin area of your GitLab instance. The value is in *MB* and the default is 100MB per job; -on GitLab.com it's [set to 1G](../../gitlab_com/index.md#gitlab-ci-cd). +on GitLab.com it's [set to 1G](../../gitlab_com/index.md#gitlab-cicd). To change it: @@ -40,7 +40,7 @@ The default expiration time of the [job artifacts](../../../administration/job_a can be set in the Admin area of your GitLab instance. The syntax of duration is described in [`artifacts:expire_in`](../../../ci/yaml/README.md#artifactsexpire_in) and the default value is `30 days`. On GitLab.com they -[never expire](../../gitlab_com/index.md#gitlab-ci-cd). +[never expire](../../gitlab_com/index.md#gitlab-cicd). 1. Go to **Admin area > Settings > Continuous Integration and Deployment**. 1. Change the value of default expiration time. diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md index 762cf911fcf..5dc798fd8d3 100644 --- a/doc/user/gitlab_com/index.md +++ b/doc/user/gitlab_com/index.md @@ -51,7 +51,7 @@ Below are the settings for [GitLab Pages]. | TLS certificates support| yes | no | The maximum size of your Pages site is regulated by the artifacts maximum size -which is part of [GitLab CI/CD](#gitlab-ci-cd). +which is part of [GitLab CI/CD](#gitlab-cicd). ## GitLab CI/CD diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 8cdfb13a97b..6d67688fdff 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -72,11 +72,10 @@ The domain should have a wildcard DNS configured to the Ingress IP address. ## Environment scopes **[PREMIUM]** -When adding more than one Kubernetes cluster to your project, you need -to differentiate them with an environment scope. The environment scope -associates clusters with [environments](../../../ci/environments.md) -similar to how the [environment-specific -variables](../../../ci/variables/README.md#limiting-environment-scopes-of-variables) +When adding more than one Kubernetes cluster to your project, you need to differentiate +them with an environment scope. The environment scope associates clusters with +[environments](../../../ci/environments.md) similar to how the +[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/README.html#limiting-environment-scopes-of-variables-premium) work. While evaluating which environment matches the environment scope of a diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index ef85b2f6837..e84c3ca4bef 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -477,12 +477,9 @@ differentiate the new cluster with the rest. ## Setting the environment scope **[PREMIUM]** -When adding more than one Kubernetes clusters to your project, you need -to differentiate them with an environment scope. The environment scope -associates clusters with [environments](../../../ci/environments.md) -similar to how the [environment-specific -variables](../../../ci/variables/README.md#limiting-environment-scopes-of-variables) -work. +When adding more than one Kubernetes cluster to your project, you need to differentiate +them with an environment scope. The environment scope associates clusters with [environments](../../../ci/environments.md) similar to how the +[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/README.html#limiting-environment-scopes-of-variables-premium) work. The default environment scope is `*`, which means all jobs, regardless of their environment, will use that cluster. Each scope can only be used by a single @@ -545,7 +542,7 @@ GitLab CI/CD build environment. | `KUBE_CA_PEM_FILE` | Path to a file containing PEM data. Only present if a custom CA bundle was specified. | | `KUBE_CA_PEM` | (**deprecated**) Raw PEM data. Only if a custom CA bundle was specified. | | `KUBECONFIG` | Path to a file containing `kubeconfig` for this deployment. CA bundle would be embedded if specified. This config also embeds the same token defined in `KUBE_TOKEN` so you likely will only need this variable. This variable name is also automatically picked up by `kubectl` so you won't actually need to reference it explicitly if using `kubectl`. | -| `KUBE_INGRESS_BASE_DOMAIN` | From GitLab 11.8, this variable can be used to set a domain per cluster. See [cluster domains](#base-domain) for more information. |  +| `KUBE_INGRESS_BASE_DOMAIN` | From GitLab 11.8, this variable can be used to set a domain per cluster. See [cluster domains](#base-domain) for more information. | NOTE: **NOTE:** Prior to GitLab 11.5, `KUBE_TOKEN` was the Kubernetes token of the main diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md index 26989e2a8a4..43a9e24526d 100644 --- a/doc/user/project/integrations/prometheus.md +++ b/doc/user/project/integrations/prometheus.md @@ -13,7 +13,7 @@ There are two ways to set up Prometheus integration, depending on where your app - For deployments on Kubernetes, GitLab can automatically [deploy and manage Prometheus](#managed-prometheus-on-kubernetes). - For other deployment targets, simply [specify the Prometheus server](#manual-configuration-of-prometheus). -Once enabled, GitLab will automatically detect metrics from known services in the [metric library](#monitoring-ci-cd-environments). +Once enabled, GitLab will automatically detect metrics from known services in the [metric library](#monitoring-cicd-environments). ## Enabling Prometheus Integration diff --git a/doc/user/project/new_ci_build_permissions_model.md b/doc/user/project/new_ci_build_permissions_model.md index d7a1a69f29d..d41b65f7985 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -49,7 +49,7 @@ It is important to note that we have a few types of users: Administrator will have to be a member of it in order to have access to it via another project's job. -- **External users**: CI jobs created by [external users][ext] will have +- **External users**: CI jobs created by [external users](../permissions.md#external-users-permissions) will have access only to projects to which user has at least reporter access. This rules out accessing all internal projects by default, @@ -60,7 +60,7 @@ Let's consider the following scenario: hosted in private repositories and you have multiple CI jobs that make use of these repositories. -1. You invite a new [external user][ext]. CI jobs created by that user do not +1. You invite a new [external user](../permissions.md#external-users-permissions). CI jobs created by that user do not have access to internal repositories, because the user also doesn't have the access from within GitLab. You as an employee have to grant explicit access for this user. This allows us to prevent from accidental data leakage. @@ -232,7 +232,6 @@ test: [job permissions]: ../permissions.md#job-permissions [comment]: https://gitlab.com/gitlab-org/gitlab-ce/issues/22484#note_16648302 -[ext]: ../permissions.md#external-users [gitsub]: ../../ci/git_submodules.md [https]: ../admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols [triggers]: ../../ci/triggers/README.md diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index 6bb58689f38..f67ef1e6a46 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -115,7 +115,7 @@ gives you absolute control over the build process. You can actually watch your website being built live by following the CI job traces. For a simplified user guide on setting up GitLab CI/CD for Pages, read through -the article [GitLab Pages from A to Z: Part 4 - Creating and Tweaking `.gitlab-ci.yml` for GitLab Pages](getting_started_part_four.md#creating-and-tweaking-gitlab-ci-yml-for-gitlab-pages) +the article [GitLab Pages from A to Z: Part 4 - Creating and Tweaking `.gitlab-ci.yml` for GitLab Pages](getting_started_part_four.md) > **Note:** > Before reading this section, make sure you familiarize yourself with GitLab CI diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md index 8b57129c9e1..5271c76fc24 100644 --- a/doc/user/project/pipelines/job_artifacts.md +++ b/doc/user/project/pipelines/job_artifacts.md @@ -183,7 +183,7 @@ information in the UI. DANGER: **Warning:** This is a destructive action that leads to data loss. Use with caution. -If you have at least Developer [permissions](../../permissions.md#gitlab-ci-cd-permissions) +If you have at least Developer [permissions](../../permissions.md#gitlab-cicd-permissions) on the project, you can erase a single job via the UI which will also remove the artifacts and the job's trace. -- cgit v1.2.3 From c37938c61c6053f9d3d37de14763b08455bb7a55 Mon Sep 17 00:00:00 2001 From: Caleb Williamson Date: Mon, 11 Mar 2019 19:59:44 +0000 Subject: Fix note alert box in convdev doc The `note` alert box within the convdev doc was improperly formatted. --- doc/user/instance_statistics/convdev.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/instance_statistics/convdev.md b/doc/user/instance_statistics/convdev.md index 247be1fb392..2c9e0ecbf65 100644 --- a/doc/user/instance_statistics/convdev.md +++ b/doc/user/instance_statistics/convdev.md @@ -2,7 +2,7 @@ > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30469) in GitLab 9.3. -NOTE: **NOTE** +NOTE: **Note:** Your GitLab instance's [usage ping](../admin_area/settings/usage_statistics.md#usage-ping-core-only) must be activated in order to use this feature. The Conversational Development Index (ConvDev Index) gives you an overview of your entire -- cgit v1.2.3 From 86abef88b4a65f8da18d6f20b0089772c52586c8 Mon Sep 17 00:00:00 2001 From: Thong Kuah Date: Wed, 13 Mar 2019 09:59:39 +1300 Subject: Add docs about requirement for basic auth and cert Document that GitLab need the cluster to be created with basic auth and cert and why. Also note we have started explicitly enabling this so that we are ready when these settings are disabled by default in GKE 1.12 --- doc/user/project/clusters/index.md | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index e84c3ca4bef..d1206b0c80a 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -75,6 +75,14 @@ new Kubernetes cluster to your project: After a couple of minutes, your cluster will be ready to go. You can now proceed to install some [pre-defined applications](#installing-applications). +NOTE: **Note:** +GitLab requires basic authentication enabled and a client certificate issued for +the cluster in order to setup an [initial service +account](#access-controls). Starting from [GitLab +11.10](https://gitlab.com/gitlab-org/gitlab-ce/issues/58208), the cluster +creation process will explicitly request that basic authentication and +client certificate is enabled. + ## Adding an existing Kubernetes cluster To add an existing Kubernetes cluster to your project: -- cgit v1.2.3 From 5a33d6ed0ab3c15e31dca404af287f8af582eb91 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 13 Mar 2019 09:53:32 +0000 Subject: Improve precision of group docs --- doc/user/group/index.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index c1f50bcc593..1fe8017adbc 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -168,20 +168,21 @@ Alternatively, you can [lock the sharing with group feature](#share-with-group-l In GitLab Enterprise Edition it is possible to manage GitLab group memberships using LDAP groups. See [the GitLab Enterprise Edition documentation](../../integration/ldap.md) for more information. -## Transfer groups to another group +## Transferring groups -From 10.5 there are two different ways to transfer a group: +From GitLab 10.5, groups can be transferred in the following ways: -- Either by transferring a group into another group (making it a subgroup of that group). -- Or by converting a subgroup into a root group (a group with no parent). +- Top-level groups can be transferred to a group, converting them into subgroups. +- Subgroups can be transferred to a new parent group. +- Subgroups can be transferred out from a parent group, converting them into top-level groups. -Please make sure to understand that: +When transferring groups, note: -- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](https://docs.gitlab.com/ce/user/project/index.html#redirects-when-changing-repository-paths) -- You can only transfer the group to a group you manage. +- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](../project/index.md#redirects-when-changing-repository-paths). +- You can only transfer groups to groups you manage. - You will need to update your local repositories to point to the new location. -- If the parent group's visibility is lower than the group current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility. -- Only explicit group membership is transferred, not the inherited membership. If this would leave the group without an owner, the transferring user is added as owner instead. +- If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility. +- Only explicit group membership is transferred, not inherited membership. If the group's owners have only inherited membership, this would leave the group without an owner. In this case, the user transferring the group becomes the group's owner. ## Group settings -- cgit v1.2.3 From af0ca1310780644b0cdeb6e19f1bcc76b7106d09 Mon Sep 17 00:00:00 2001 From: James Ramsay Date: Wed, 13 Mar 2019 11:00:35 +0000 Subject: Fix incorrect link format in docs --- doc/user/project/protected_branches.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md index 3eb8123144f..480cc921d76 100644 --- a/doc/user/project/protected_branches.md +++ b/doc/user/project/protected_branches.md @@ -96,7 +96,7 @@ all matching branches: ## Creating a protected branch -> [Introduced][https://gitlab.com/gitlab-org/gitlab-ce/issues/53361] in GitLab 11.9. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53361) in GitLab 11.9. When a protected branch or wildcard protected branches are set to [**No one** is **Allowed to push**](#using-the-allowed-to-merge-and-allowed-to-push-settings), -- cgit v1.2.3 From 8457768000e6bf542f335cd700ba7691e800df1b Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Wed, 13 Mar 2019 17:40:06 +0000 Subject: Update badge placeholder docs with privacy concerns --- doc/user/project/badges.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/badges.md b/doc/user/project/badges.md index 19eb95099ce..025f3af0af5 100644 --- a/doc/user/project/badges.md +++ b/doc/user/project/badges.md @@ -63,6 +63,12 @@ are available: - `%{commit_sha}`: ID of the most recent commit to the default branch of a project's repository +NOTE: **NOTE** +Placeholders allow badges to expose otherwise-private information, such as the +default branch or commit SHA when the project is configured to have a private +repository. This is by design, as badges are intended to be used publicly. Avoid +using these placeholders if the information is sensitive. + ## API You can also configure badges via the GitLab API. As in the settings, there is -- cgit v1.2.3 From 8756700e898a0313d4b94d25b63a6a3f28c4548c Mon Sep 17 00:00:00 2001 From: Evan Read Date: Thu, 14 Mar 2019 16:26:27 +0000 Subject: Fix some procedures with misleading instructions --- doc/user/profile/img/personal_access_tokens.png | Bin 18553 -> 0 bytes doc/user/profile/personal_access_tokens.md | 18 ++++++++---------- 2 files changed, 8 insertions(+), 10 deletions(-) delete mode 100644 doc/user/profile/img/personal_access_tokens.png (limited to 'doc/user') diff --git a/doc/user/profile/img/personal_access_tokens.png b/doc/user/profile/img/personal_access_tokens.png deleted file mode 100644 index d29f4cb0a20..00000000000 Binary files a/doc/user/profile/img/personal_access_tokens.png and /dev/null differ diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md index 7d55048c994..3a4d09c35d9 100644 --- a/doc/user/profile/personal_access_tokens.md +++ b/doc/user/profile/personal_access_tokens.md @@ -20,21 +20,19 @@ at midnight UTC. You can create as many personal access tokens as you like from your GitLab profile. -1. Log in to your GitLab account. -1. Go to your **Profile settings**. -1. Go to **Access tokens**. -1. Choose a name and optionally an expiry date for the token. +1. Log in to GitLab. +1. In the upper-right corner, click your avatar and select **Settings**. +1. On the **User Settings** menu, select **Access Tokens**. +1. Choose a name and optional expiry date for the token. 1. Choose the [desired scopes](#limiting-scopes-of-a-personal-access-token). -1. Click on **Create personal access token**. +1. Click the **Create personal access token** button. 1. Save the personal access token somewhere safe. Once you leave or refresh the page, you won't be able to access it again. -![Personal access tokens page](img/personal_access_tokens.png) +### Revoking a personal access token -## Revoking a personal access token - -At any time, you can revoke any personal access token by just clicking the -respective **Revoke** button under the 'Active personal access tokens' area. +At any time, you can revoke any personal access token by clicking the +respective **Revoke** button under the **Active Personal Access Token** area. ## Limiting scopes of a personal access token -- cgit v1.2.3 From 6e4108b7baa125e4537eef22963e3f247b3e3f7c Mon Sep 17 00:00:00 2001 From: Evan Read Date: Thu, 14 Mar 2019 23:55:02 +0000 Subject: Refactor and restructure pipelines landing page - Also has other minor improvements. --- doc/user/project/merge_requests/merge_when_pipeline_succeeds.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md index bdd7d0022e6..f8af71ab46b 100644 --- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md @@ -1,4 +1,4 @@ -# Merge When Pipeline Succeeds +# Merge when pipeline succeeds When reviewing a merge request that looks ready to merge but still has one or more CI jobs running, you can set it to be merged automatically when the -- cgit v1.2.3 From 7eac42c04a3a0d752c0a0d23bb77129cbda917f5 Mon Sep 17 00:00:00 2001 From: Wei-Meng Lee <1081658-weimeng@users.noreply.gitlab.com> Date: Fri, 15 Mar 2019 03:19:04 +0000 Subject: Document global user permission configuration --- doc/user/permissions.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 833b9b66102..9db1e43fdf2 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -23,6 +23,12 @@ To add or import a user, you can follow the See our [product handbook on permissions](https://about.gitlab.com/handbook/product#permissions-in-gitlab) +## Instance-wide user permissions + +By default, users can create top-level groups and change their +usernames. A GitLab administrator can configure the GitLab instance to +[modify this behavior](../administration/user_settings.md). + ## Project members permissions NOTE: **Note:** -- cgit v1.2.3 From 34ba3923dea89f85d6e22f1293d4af1b8269ee31 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Fri, 15 Mar 2019 15:01:31 +0000 Subject: Docs: Fix note syntax --- doc/user/project/badges.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/badges.md b/doc/user/project/badges.md index 025f3af0af5..8849dd2d684 100644 --- a/doc/user/project/badges.md +++ b/doc/user/project/badges.md @@ -63,7 +63,7 @@ are available: - `%{commit_sha}`: ID of the most recent commit to the default branch of a project's repository -NOTE: **NOTE** +NOTE: **Note:** Placeholders allow badges to expose otherwise-private information, such as the default branch or commit SHA when the project is configured to have a private repository. This is by design, as badges are intended to be used publicly. Avoid -- cgit v1.2.3 From 222199f67032306aa318cab3f09f4be1d5c7e731 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Mon, 11 Mar 2019 14:15:05 +0000 Subject: Only count active milestones as started The Upcoming milestone filter only considers active milestones, but the Started one included closed milestones, too. This was inconsistent. --- doc/user/project/milestones/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/milestones/index.md b/doc/user/project/milestones/index.md index e6033ca8655..a7d6144e3ec 100644 --- a/doc/user/project/milestones/index.md +++ b/doc/user/project/milestones/index.md @@ -92,7 +92,7 @@ When filtering by milestone, in addition to choosing a specific project mileston - **None**: Show issues or merge requests with no assigned milestone. - **Any**: Show issues or merge requests that have an assigned milestone. - **Upcoming**: Show issues or merge requests that have been assigned the open milestone that has the next upcoming due date (i.e. nearest due date in the future). -- **Started**: Show issues or merge requests that have an assigned milestone with a start date that is before today. +- **Started**: Show issues or merge requests that have an open assigned milestone with a start date that is before today. ## Milestone view -- cgit v1.2.3 From dc3379fdb7b9f80f0dfa0999d2672e3745b30ea4 Mon Sep 17 00:00:00 2001 From: Thong Kuah Date: Tue, 19 Mar 2019 22:14:06 +0000 Subject: Add cert-manager to group cluster docs As that is indeed available for group clusters. --- doc/user/group/clusters/index.md | 18 ++++++++++++++++-- doc/user/project/clusters/index.md | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 6d67688fdff..e67795b9bae 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -25,8 +25,22 @@ deployments. | Application | GitLab version | Description | Helm Chart | | ----------- | -------------- | ----------- | ---------- | -| [Helm Tiller](https://docs.helm.sh) | 10.2+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | -| [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress) | 10.2+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps](../../../topics/autodevops/index.md) or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | +| [Helm Tiller](https://docs.helm.sh) | 11.6+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | +| [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress) | 11.6+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps](../../../topics/autodevops/index.md) or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | +| [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | + +NOTE: **Note:** +Some [cluster +applications](../../project/clusters/index.md#installing-applications) +are installable only for a project-level cluster. Support for installing these +applications in a group-level cluster is planned for future releases. For updates, see: + +- Support installing [Runner in group-level + clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51988) +- Support installing [JupyterHub in group-level + clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51989) +- Support installing [Prometheus in group-level + clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51963) ## RBAC compatibility diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index d1206b0c80a..b05e8777b40 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -358,7 +358,7 @@ by GitLab before installing any of the applications. | ----------- | :------------: | ----------- | --------------- | | [Helm Tiller](https://docs.helm.sh/) | 10.2+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | | [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) | 10.2+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps] or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | -| [Cert Manager](http://docs.cert-manager.io/en/latest/) | 11.6+ | Cert Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | +| [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | | [Prometheus](https://prometheus.io/docs/introduction/overview/) | 10.4+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | | [GitLab Runner](https://docs.gitlab.com/runner/) | 10.6+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](https://about.gitlab.com/features/gitlab-ci-cd/), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | | [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. Authentication will be enabled only for [project members](../members/index.md) with [Developer or higher](../../permissions.md) access to the project. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | -- cgit v1.2.3 From 0c3df3b56973d78345c6791cc3882a50d916cbc8 Mon Sep 17 00:00:00 2001 From: Tiger Date: Wed, 20 Mar 2019 16:07:12 +1100 Subject: Amend cluster and auto devops troubleshooting docs Update these sections to reflect Kubernetes resources now being created as a build prerequisite. Remove section about deploys not being triggered as it is no longer accurate. --- doc/user/project/clusters/index.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index d1206b0c80a..ab8b314f862 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -556,26 +556,27 @@ NOTE: **NOTE:** Prior to GitLab 11.5, `KUBE_TOKEN` was the Kubernetes token of the main service account of the cluster integration. -### Troubleshooting missing `KUBECONFIG` or `KUBE_TOKEN` +### Troubleshooting failed deployment jobs -GitLab will create a new service account specifically for your CI builds. The -new service account is created when the cluster is added to the project. -Sometimes there may be errors that cause the service account creation to fail. +GitLab will create a namespace and service account specifically for your +deployment jobs. These resources are created just before the deployment +job starts. Sometimes there may be errors that cause their creation to fail. -In such instances, your build will not be passed the `KUBECONFIG` or -`KUBE_TOKEN` variables and, if you are using Auto DevOps, your Auto DevOps -pipelines will no longer trigger a `production` deploy build. You will need to -check the [logs](../../../administration/logs.md) to debug why the service -account creation failed. +In such instances, your job will fail with the message: + +```The job failed to complete prerequisite tasks``` + +You will need to check the [logs](../../../administration/logs.md) to debug +why the namespace and service account creation failed. A common reason for failure is that the token you gave GitLab did not have [`cluster-admin`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) privileges as GitLab expects. -Another common problem for why these variables are not being passed to your -builds is that they must have a matching +Another common problem is caused by a missing `KUBECONFIG` or `KUBE_TOKEN`. +To be passed to your job, it must have a matching [`environment:name`](../../../ci/environments.md#defining-environments). If -your build has no `environment:name` set, it will not be passed the Kubernetes +your job has no `environment:name` set, it will not be passed the Kubernetes credentials. ## Monitoring your Kubernetes cluster **[ULTIMATE]** -- cgit v1.2.3 From c7fdfeea2f327df63a031d296c33065245de96dd Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 20 Mar 2019 13:45:15 +0000 Subject: Fix note lists throughout docs --- doc/user/discussions/index.md | 5 +++-- doc/user/group/index.md | 5 ++--- doc/user/profile/account/two_factor_authentication.md | 1 + doc/user/project/bulk_editing.md | 1 + doc/user/project/container_registry.md | 6 ++++-- doc/user/project/integrations/jira.md | 2 ++ doc/user/project/merge_requests/versions.md | 1 + doc/user/project/new_ci_build_permissions_model.md | 1 + doc/user/project/pages/introduction.md | 1 + doc/user/project/pipelines/job_artifacts.md | 7 ++++--- doc/user/project/pipelines/schedules.md | 1 + 11 files changed, 21 insertions(+), 10 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index a15e1a59921..cf0dc51ea23 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -19,13 +19,14 @@ comment at any time, and anyone with [Maintainer access level][permissions] or higher can also edit a comment made by someone else. You can also reply to a comment notification email to reply to the comment if -[Reply by email] is configured for your GitLab instance. Replying to a standard comment +[Reply by email] is configured for your GitLab instance. Replying to a standard comment creates another standard comment. Replying to a discussion comment creates a reply in the discussion thread. Email replies support [Markdown] and [quick actions], just as if you replied from the web. ## Resolvable comments and discussions > **Notes:** +> > - The main feature was [introduced][ce-5022] in GitLab 8.11. > - Resolvable discussions can be added only to merge request diffs. @@ -357,7 +358,7 @@ Clicking on the **Reply to comment** button will bring the reply area into focus ![Reply to comment feature](img/reply_to_comment.gif) -Relying to a non-discussion comment will convert the non-discussion comment to a +Relying to a non-discussion comment will convert the non-discussion comment to a threaded discussion once the reply is submitted. This conversion is considered an edit to the original comment, so a note about when it was last edited will appear underneath it. diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 1fe8017adbc..3bcfd30079d 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -63,9 +63,8 @@ together in a single list view. ## Create a new group -> **Notes:** -> - For a list of words that are not allowed to be used as group names see the -> [reserved names](../reserved_names.md). +> For a list of words that are not allowed to be used as group names see the +> [reserved names](../reserved_names.md). You can create a group in GitLab from: diff --git a/doc/user/profile/account/two_factor_authentication.md b/doc/user/profile/account/two_factor_authentication.md index 8e5fe4b0fb9..b74bd81d467 100644 --- a/doc/user/profile/account/two_factor_authentication.md +++ b/doc/user/profile/account/two_factor_authentication.md @@ -59,6 +59,7 @@ of recovery codes. ### Enable 2FA via U2F device > **Notes:** +> > - GitLab officially only supports [Yubikey] U2F devices. > - Support for U2F devices was added in GitLab 8.8. diff --git a/doc/user/project/bulk_editing.md b/doc/user/project/bulk_editing.md index fead99c5e88..d0c7daf4692 100644 --- a/doc/user/project/bulk_editing.md +++ b/doc/user/project/bulk_editing.md @@ -1,6 +1,7 @@ # Bulk editing issues and merge requests > **Notes:** +> > - A permission level of `Reporter` or higher is required in order to manage > issues. > - A permission level of `Developer` or higher is required in order to manage diff --git a/doc/user/project/container_registry.md b/doc/user/project/container_registry.md index dec6eac2508..83b268db967 100644 --- a/doc/user/project/container_registry.md +++ b/doc/user/project/container_registry.md @@ -1,7 +1,8 @@ # GitLab Container Registry > **Notes:** -> [Introduced][ce-4040] in GitLab 8.8. +> +> - [Introduced][ce-4040] in GitLab 8.8. > - Docker Registry manifest `v1` support was added in GitLab 8.9 to support Docker > versions earlier than 1.10. > - This document is about the user guide. To learn how to enable GitLab Container @@ -10,7 +11,7 @@ > - Starting from GitLab 8.12, if you have 2FA enabled in your account, you need > to pass a [personal access token][pat] instead of your password in order to > login to GitLab's Container Registry. -> - Multiple level image names support was added in GitLab 9.1 +> - Multiple level image names support was added in GitLab 9.1. With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images. @@ -41,6 +42,7 @@ to enable it. ## Build and push images > **Notes:** +> > - Moving or renaming existing container registry repositories is not supported > once you have pushed images because the images are signed, and the > signature includes the repository name. diff --git a/doc/user/project/integrations/jira.md b/doc/user/project/integrations/jira.md index 754711f5919..a90167b9767 100644 --- a/doc/user/project/integrations/jira.md +++ b/doc/user/project/integrations/jira.md @@ -56,6 +56,7 @@ When connecting to **JIRA Cloud**, which supports authentication via API token, ### Configuring GitLab > **Notes:** +> > - The currently supported Jira versions are `v6.x` and `v7.x.`. GitLab 7.8 or > higher is required. > - GitLab 8.14 introduced a new way to integrate with Jira which greatly simplified @@ -142,6 +143,7 @@ the same goal: where `PROJECT-1` is the issue ID of the Jira project. > **Notes:** +> > - Only commits and merges into the project's default branch (usually **master**) will > close an issue in Jira. You can change your projects default branch under > [project settings](img/jira_project_settings.png). diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md index 90500fd9c21..70bd1e60594 100644 --- a/doc/user/project/merge_requests/versions.md +++ b/doc/user/project/merge_requests/versions.md @@ -1,6 +1,7 @@ # Merge requests versions > **Notes:** +> > - [Introduced][ce-5467] in GitLab 8.12. > - Comments are disabled while viewing outdated merge versions or comparing to > versions other than base. diff --git a/doc/user/project/new_ci_build_permissions_model.md b/doc/user/project/new_ci_build_permissions_model.md index d41b65f7985..6c3fa5eb463 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -205,6 +205,7 @@ With the update permission model we also extended the support for accessing Container Registries for private projects. > **Notes:** +> > - GitLab Runner versions prior to 1.8 don't incorporate the introduced changes > for permissions. This makes the `image:` directive to not work with private > projects automatically and it needs to be configured manually on Runner's host diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index f67ef1e6a46..ccb0300e23e 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -1,6 +1,7 @@ # Exploring GitLab Pages > **Notes:** +> > - This feature was [introduced][ee-80] in GitLab EE 8.3. > - Custom CNAMEs with TLS support were [introduced][ee-173] in GitLab EE 8.5. > - GitLab Pages [was ported][ce-14605] to Community Edition in GitLab 8.17. diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md index 5271c76fc24..a3f40c20192 100644 --- a/doc/user/project/pipelines/job_artifacts.md +++ b/doc/user/project/pipelines/job_artifacts.md @@ -1,6 +1,7 @@ # Introduction to job artifacts > **Notes:** +> > - Since GitLab 8.2 and GitLab Runner 0.7.0, job artifacts that are created by > GitLab Runner are uploaded to GitLab and are downloadable as a single archive > (`tar.gz`) using the GitLab UI. @@ -152,7 +153,7 @@ For example: https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/artifacts/master/browse?job=coverage ``` -There is also a URL to specific files, including html files that +There is also a URL to specific files, including html files that are shown in [GitLab Pages](../../../administration/pages/index.md): ``` @@ -191,9 +192,9 @@ artifacts and the job's trace. 1. Click the trash icon at the top right of the job's trace. 1. Confirm the deletion. -## Retrieve artifacts of private projects when using GitLab CI +## Retrieve artifacts of private projects when using GitLab CI In order to retrieve a job artifact of a different project, you might need to use a private token in order to [authenticate and download](../../../api/jobs.md#get-job-artifacts) the artifacts. [expiry date]: ../../../ci/yaml/README.md#artifactsexpire_in -[ce-14399]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14399 \ No newline at end of file +[ce-14399]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14399 diff --git a/doc/user/project/pipelines/schedules.md b/doc/user/project/pipelines/schedules.md index 58a0fbc97cd..07ce4f3f5da 100644 --- a/doc/user/project/pipelines/schedules.md +++ b/doc/user/project/pipelines/schedules.md @@ -1,6 +1,7 @@ # Pipeline schedules > **Notes**: +> > - This feature was introduced in 9.1 as [Trigger Schedule][ce-10533]. > - In 9.2, the feature was [renamed to Pipeline Schedule][ce-10853]. > - Cron notation is parsed by [Fugit](https://github.com/floraison/fugit). -- cgit v1.2.3 From 438485ef88c762b59ee9fb6089d8b7256554fe24 Mon Sep 17 00:00:00 2001 From: Patrick Bajao Date: Thu, 21 Mar 2019 19:11:06 +0800 Subject: Allow users to create protected branches via CLI This is for fixing a regression introduced by: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24969 This fix will allow users who are allowed to push to protected branches to create protected branches via CLI as well, just like before. The checks for protected branch creation won't need to run. --- doc/user/project/protected_branches.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md index 480cc921d76..2060b5dd4a2 100644 --- a/doc/user/project/protected_branches.md +++ b/doc/user/project/protected_branches.md @@ -10,7 +10,7 @@ created protected branches. By default, a protected branch does four simple things: - it prevents its creation, if not already created, from everybody except users - who are allowed to merge + with Maintainer permission - it prevents pushes from everybody except users with Maintainer permission - it prevents **anyone** from force pushing to the branch - it prevents **anyone** from deleting the branch -- cgit v1.2.3 From 70615020244f8a268f298cb4bfa8e139088fc9d7 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Thu, 21 Mar 2019 17:59:15 +0000 Subject: Docs: Rewrite Work In Progress MR page --- .../img/filter_wip_merge_requests.png | Bin 6285 -> 28572 bytes .../img/wip_blocked_accept_button.png | Bin 4152 -> 7141 bytes .../project/merge_requests/img/wip_mark_as_wip.png | Bin 7961 -> 0 bytes .../merge_requests/img/wip_unmark_as_wip.png | Bin 8424 -> 0 bytes .../work_in_progress_merge_requests.md | 57 ++++++++++++++------- 5 files changed, 39 insertions(+), 18 deletions(-) delete mode 100644 doc/user/project/merge_requests/img/wip_mark_as_wip.png delete mode 100644 doc/user/project/merge_requests/img/wip_unmark_as_wip.png (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/filter_wip_merge_requests.png b/doc/user/project/merge_requests/img/filter_wip_merge_requests.png index 81878709487..8df6a3c9a29 100644 Binary files a/doc/user/project/merge_requests/img/filter_wip_merge_requests.png and b/doc/user/project/merge_requests/img/filter_wip_merge_requests.png differ diff --git a/doc/user/project/merge_requests/img/wip_blocked_accept_button.png b/doc/user/project/merge_requests/img/wip_blocked_accept_button.png index 31f23be4d3d..b6d38d85165 100644 Binary files a/doc/user/project/merge_requests/img/wip_blocked_accept_button.png and b/doc/user/project/merge_requests/img/wip_blocked_accept_button.png differ diff --git a/doc/user/project/merge_requests/img/wip_mark_as_wip.png b/doc/user/project/merge_requests/img/wip_mark_as_wip.png deleted file mode 100644 index 2c2a263b316..00000000000 Binary files a/doc/user/project/merge_requests/img/wip_mark_as_wip.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/wip_unmark_as_wip.png b/doc/user/project/merge_requests/img/wip_unmark_as_wip.png deleted file mode 100644 index 327ad9a8448..00000000000 Binary files a/doc/user/project/merge_requests/img/wip_unmark_as_wip.png and /dev/null differ diff --git a/doc/user/project/merge_requests/work_in_progress_merge_requests.md b/doc/user/project/merge_requests/work_in_progress_merge_requests.md index 66ac7740157..6f33eb9a482 100644 --- a/doc/user/project/merge_requests/work_in_progress_merge_requests.md +++ b/doc/user/project/merge_requests/work_in_progress_merge_requests.md @@ -1,25 +1,46 @@ # "Work In Progress" Merge Requests -To prevent merge requests from accidentally being accepted before they're -completely ready, GitLab blocks the "Accept" button for merge requests that -have been marked a **Work In Progress**. +If a merge request is not yet ready to be merged, perhaps due to continued development +or open discussions, you can prevent it from being accepted before it's ready by flagging +it as a **Work In Progress**. This will disable the "Merge" button, preventing it from +being merged, and it will stay disabled until the "WIP" flag has been removed. ![Blocked Accept Button](img/wip_blocked_accept_button.png) -To mark a merge request a Work In Progress, simply start its title with `[WIP]` -or `WIP:`. As an alternative, you're also able to do it by sending a commit -with its title starting with `wip` or `WIP` to the merge request's source branch. - -![Mark as WIP](img/wip_mark_as_wip.png) - -To allow a Work In Progress merge request to be accepted again when it's ready, -simply remove the `WIP` prefix. - -![Unmark as WIP](img/wip_unmark_as_wip.png) - -## Filtering merge requests with WIP Status - -To filter merge requests with the `WIP` status, you can type `wip` -and select the value for your filter from the merge request search input. +## Adding the "Work In Progress" flag to a Merge Request + +There are several ways to flag a merge request as a Work In Progress: + +- Add "[WIP]" or "WIP:" to the start of the merge request's title. Clicking on + **Start the title with WIP:**, under the title box, when editing the merge request's + description will have the same effect. +- Add the `/wip` [quick action](../quick_actions.md#quick-actions-for-issues-and-merge-requests) + in a discussion comment in the merge request. This is a toggle, and can be repeated + to change the status back. Note that any other text in the comment will be discarded. +- Add "wip" or "WIP" to the start of a commit message targeting the merge request's + source branch. This is not a toggle, and doing it again in another commit will have + no effect. + +## Removing the "Work In Progress" flag from a Merge Request + +Similar to above, when a Merge Request is ready to be merged, you can remove the +"Work in Progress" flag in several ways: + +- Remove "[WIP]" or "WIP:" from the start of the merge request's title. Clicking on + **Remove the WIP: prefix from the title**, under the title box, when editing the merge + request's description, will have the same effect. +- Add the `/wip` [quick action](../quick_actions.md#quick-actions-for-issues-and-merge-requests) + in a discussion comment in the merge request. This is a toggle, and can be repeated + to change the status back. Note that any other text in the comment will be discarded. +- Click on the **Resolve WIP status** button near the bottom of the merge request description, + next to the "Merge" button (see [image above](#work-in-progress-merge-requests)). + Must have at least Developer level permissions on the project for the button to + be visible. + +## Including/Excluding WIP Merge Requests when searching + +When viewing/searching the merge requests list, you can choose to include or exclude +WIP merge requests by adding a "WIP" filter in the search box, and choosing "Yes" +(to include) or "No" (to exclude). ![Filter WIP MRs](img/filter_wip_merge_requests.png) -- cgit v1.2.3 From 53d7dccf8b198cd51a9524a098e7e3343dc2ddd2 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Fri, 22 Mar 2019 02:39:00 +0000 Subject: YouTrack docs review --- doc/user/project/integrations/youtrack.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index 2ab14a8db2c..0d0237c2925 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -1,12 +1,13 @@ # YouTrack Service -JetBrains YouTrack is a web-based issue tracking and project management platform. -Please refer official [documentation](https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Documentation.html) for details about YouTrack itself. +JetBrains [YouTrack](https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Documentation.html) is a web-based issue tracking and project management platform. +You can configure YouTrack as an [External Issue Tracker](../../../integration/external-issue-tracker.md) in GitLab. -1. To enable the YouTrack integration in a project, navigate to the -[Integrations page](project_services.md#accessing-the-project-services), click -the **YouTrack** service, and fill in the required details on the page as described +## Enable the YouTrack integration in a project + +Navigate to the [Integrations page](project_services.md#accessing-the-project-services), click +the **YouTrack** service, and enter the required details on the page as described in the table below. | Field | Description | @@ -15,17 +16,19 @@ in the table below. | `project_url` | The URL to the project in YouTrack which is being linked to this GitLab project | | `issues_url` | The URL to the issue in YouTrack project that is linked to this GitLab project. Note that the `issues_url` requires `:id` in the URL. This ID is used by GitLab as a placeholder to replace the issue number. | - Once you have configured and enabled YouTrack you'll see the YouTrack link on the GitLab project pages that takes you to the appropriate YouTrack project. +Once you have configured and enabled YouTrack you'll see the YouTrack link on the GitLab project pages that takes you to the appropriate YouTrack project. + +## Disable the internal issue tracker in a project -1. To disable the internal issue tracking system in a project, navigate to the General page, expand [Permissions](../settings/index.md#sharing-and-permissions), and slide the Issues switch invalid. +Navigate to the General page, expand [Permissions](../settings/index.md#sharing-and-permissions), and switch the Issues toggle to disabled. - ![Issue configuration](img/issue_configuration.png) +![Issue configuration](img/issue_configuration.png) -## Referencing issues in YouTrack +## Referencing YouTrack issues in GitLab -Issues in YouTrack can be referenced as `-` where `` -starts with a capital letter which is then followed by capital or lower case -letters, numbers or underscores, and `` is a number (example `Api_32-143`). +Issues in YouTrack can be referenced as `-`. `` +must start with a capital letter and can then be followed by capital or lower case +letters, numbers or underscores. `` is a number. An example reference is `YT-101` or `Api_32-143`. -`` part is included into issue_id and links can point any YouTrack -project (`issues_url` + issue_id) +References to - in merge requests, commits, or comments are automatically linked to the YouTrack issue URL. +For more information, see the [External Issue Tracker](../../../integration/external-issue-tracker.md) documentation. -- cgit v1.2.3 From b1f1a9633d4b06d3f88566e721d2bc7f76714dac Mon Sep 17 00:00:00 2001 From: Evan Read Date: Fri, 22 Mar 2019 03:54:08 +0000 Subject: Improve Youtrack documentation for style --- .../integrations/img/issue_configuration.png | Bin 11882 -> 0 bytes doc/user/project/integrations/redmine.md | 4 +-- doc/user/project/integrations/youtrack.md | 32 ++++++++++++--------- 3 files changed, 19 insertions(+), 17 deletions(-) delete mode 100644 doc/user/project/integrations/img/issue_configuration.png (limited to 'doc/user') diff --git a/doc/user/project/integrations/img/issue_configuration.png b/doc/user/project/integrations/img/issue_configuration.png deleted file mode 100644 index 5dfd85974d8..00000000000 Binary files a/doc/user/project/integrations/img/issue_configuration.png and /dev/null differ diff --git a/doc/user/project/integrations/redmine.md b/doc/user/project/integrations/redmine.md index 8112aa21859..bac7eecfce4 100644 --- a/doc/user/project/integrations/redmine.md +++ b/doc/user/project/integrations/redmine.md @@ -18,9 +18,7 @@ ![Redmine configuration](img/redmine_configuration.png) -1. To disable the internal issue tracking system in a project, navigate to the General page, expand [Permissions](../settings/index.md#sharing-and-permissions), and slide the Issues switch invalid. - - ![Issue configuration](img/issue_configuration.png) +1. To disable the internal issue tracking system in a project, navigate to the General page, expand the [permissions](../settings/index.md#sharing-and-permissions) section and switch the **Issues** toggle to disabled. ## Referencing issues in Redmine diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index 0d0237c2925..a2a468b6fe4 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -4,25 +4,29 @@ JetBrains [YouTrack](https://www.jetbrains.com/help/youtrack/standalone/YouTrack You can configure YouTrack as an [External Issue Tracker](../../../integration/external-issue-tracker.md) in GitLab. -## Enable the YouTrack integration in a project +## Enable the YouTrack integration -Navigate to the [Integrations page](project_services.md#accessing-the-project-services), click -the **YouTrack** service, and enter the required details on the page as described -in the table below. +To enable YouTrack integration in a project: - | Field | Description | - | ----- | ----------- | - | `description` | A name for the issue tracker (to differentiate between instances, for example) | - | `project_url` | The URL to the project in YouTrack which is being linked to this GitLab project | - | `issues_url` | The URL to the issue in YouTrack project that is linked to this GitLab project. Note that the `issues_url` requires `:id` in the URL. This ID is used by GitLab as a placeholder to replace the issue number. | +1. Navigate to the project's **Settings > [Integrations](project_services.md#accessing-the-project-services)** page. +1. Click the **YouTrack** service, ensure it's active, and enter the required details on the page as described in the table below. -Once you have configured and enabled YouTrack you'll see the YouTrack link on the GitLab project pages that takes you to the appropriate YouTrack project. + | Field | Description | + |:----------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | **Description** | Name for the issue tracker (to differentiate between instances, for example). | + | **Project url** | URL to the project in YouTrack which is being linked to this GitLab project. | + | **Issues url** | URL to the issue in YouTrack project that is linked to this GitLab project. Note that the **Issues url** requires `:id` in the URL. This ID is used by GitLab as a placeholder to replace the issue number. | -## Disable the internal issue tracker in a project +1. Click the **Save changes** button. -Navigate to the General page, expand [Permissions](../settings/index.md#sharing-and-permissions), and switch the Issues toggle to disabled. +Once you have configured and enabled YouTrack, you'll see the YouTrack link on the GitLab project pages that takes you to the appropriate YouTrack project. -![Issue configuration](img/issue_configuration.png) +## Disable the internal issue tracker + +To disable the internal issue tracker in a project: + +1. Navigate to the project's **Settings > General** page. +1. Expand the [permissions section](../settings/index.md#sharing-and-permissions) and switch the **Issues** toggle to disabled. ## Referencing YouTrack issues in GitLab @@ -30,5 +34,5 @@ Issues in YouTrack can be referenced as `-`. `` must start with a capital letter and can then be followed by capital or lower case letters, numbers or underscores. `` is a number. An example reference is `YT-101` or `Api_32-143`. -References to - in merge requests, commits, or comments are automatically linked to the YouTrack issue URL. +References to `-` in merge requests, commits, or comments are automatically linked to the YouTrack issue URL. For more information, see the [External Issue Tracker](../../../integration/external-issue-tracker.md) documentation. -- cgit v1.2.3 From d9951e250523e67223dcbe75e839a64421502665 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Fri, 22 Mar 2019 10:16:46 +0000 Subject: Add end-of-string to regex example --- doc/user/permissions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 3b3dc60cb48..adc0f4d568b 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -25,7 +25,7 @@ See our [product handbook on permissions](https://about.gitlab.com/handbook/prod ## Instance-wide user permissions -By default, users can create top-level groups and change their +By default, users can create top-level groups and change their usernames. A GitLab administrator can configure the GitLab instance to [modify this behavior](../administration/user_settings.md). @@ -244,7 +244,7 @@ The regex pattern format is Ruby, but it needs to be convertible to JavaScript, Here are some examples: -- Use `\.internal@domain\.com` to mark email addresses containing ".internal@domain.com" internal. +- Use `\.internal@domain\.com$` to mark email addresses ending with ".internal@domain.com" internal. - Use `^(?:(?!\.ext@domain\.com).)*$\r?` to mark users with email addresses NOT including .ext@domain.com internal. Please be aware that this regex could lead to a DOS attack, [see](https://en.wikipedia.org/wiki/ReDoS?) ReDos on Wikipedia. -- cgit v1.2.3 From b3587a8beb4f5b0f61d7d37ae3eb8c04ef0529d0 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 25 Mar 2019 04:29:51 +0000 Subject: Docs: Fixing anchors and links for all docs related to issues. --- doc/user/index.md | 36 +++++++++++++------------- doc/user/project/index.md | 2 +- doc/user/project/issue_board.md | 10 +++---- doc/user/project/issues/confidential_issues.md | 7 ++--- doc/user/project/issues/crosslinking_issues.md | 9 +++---- doc/user/project/issues/due_dates.md | 7 ++--- doc/user/project/issues/index.md | 4 +-- 7 files changed, 34 insertions(+), 41 deletions(-) (limited to 'doc/user') diff --git a/doc/user/index.md b/doc/user/index.md index b84879601ff..39c1c4a63ba 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -36,34 +36,34 @@ To get familiar with the concepts needed to develop code on GitLab, read the fol GitLab is a Git-based platform that integrates a great number of essential tools for software development and deployment, and project management: -- Hosting code in repositories with version control +- Hosting code in repositories with version control. - Tracking proposals for new implementations, bug reports, and feedback with a - fully featured [Issue Tracker](project/issues/index.md#issue-tracker) -- Organizing and prioritizing with [Issue Boards](project/issues/index.md#issue-boards) + fully featured [Issue Tracker](project/issues/index.md#issue-tracker). +- Organizing and prioritizing with [Issue Boards](project/issues/index.md#issue-board). - Reviewing code in [Merge Requests](project/merge_requests/index.md) with live-preview changes per - branch with [Review Apps](../ci/review_apps/index.md) -- Building, testing and deploying with built-in [Continuous Integration](../ci/README.md) -- Deploying personal and professional static websites with [GitLab Pages](project/pages/index.md) -- Integrating with Docker by using [GitLab Container Registry](project/container_registry.md) -- Tracking the development lifecycle by usingn [GitLab Cycle Analytics](project/cycle_analytics.md) + branch with [Review Apps](../ci/review_apps/index.md). +- Building, testing, and deploying with built-in [Continuous Integration](../ci/README.md). +- Deploying personal and professional static websites with [GitLab Pages](project/pages/index.md). +- Integrating with Docker by using [GitLab Container Registry](project/container_registry.md). +- Tracking the development lifecycle by using [GitLab Cycle Analytics](project/cycle_analytics.md). With GitLab Enterprise Edition, you can also: -- Provide support with [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) +- Provide support with [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html). - Improve collaboration with [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/index.html#merge-request-approvals), [Multiple Assignees for Issues](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html), - and [Multiple Issue Boards](https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards) -- Create formal relationships between issues with [Related Issues](https://docs.gitlab.com/ee/user/project/issues/related_issues.html) + and [Multiple Issue Boards](project/issue_board.md#multiple-issue-boards-starter). +- Create formal relationships between issues with [Related Issues](https://docs.gitlab.com/ee/user/project/issues/related_issues.html). - Use [Burndown Charts](https://docs.gitlab.com/ee/user/project/milestones/burndown_charts.html) to track progress during a sprint or while working on a new version of their software. -- Leverage [Elasticsearch](https://docs.gitlab.com/ee/integration/elasticsearch.html) with [Advanced Global Search](https://docs.gitlab.com/ee/user/search/advanced_global_search.html) and [Advanced Syntax Search](https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html) for faster, more advanced code search across your entire GitLab instance -- [Authenticate users with Kerberos](https://docs.gitlab.com/ee/integration/kerberos.html) +- Leverage [Elasticsearch](https://docs.gitlab.com/ee/integration/elasticsearch.html) with [Advanced Global Search](https://docs.gitlab.com/ee/user/search/advanced_global_search.html) and [Advanced Syntax Search](https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html) for faster, more advanced code search across your entire GitLab instance. +- [Authenticate users with Kerberos](https://docs.gitlab.com/ee/integration/kerberos.html). - [Mirror a repository](https://docs.gitlab.com/ee/workflow/repository_mirroring.html) from elsewhere on your local server. -- [Export issues as CSV](https://docs.gitlab.com/ee/user/project/issues/csv_export.html) -- View your entire CI/CD pipeline involving more than one project with [Multiple-Project Pipeline Graphs](https://docs.gitlab.com/ee/ci/multi_project_pipeline_graphs.html) -- [Lock files](https://docs.gitlab.com/ee/user/project/file_lock.html) to prevent conflicts -- View the current health and status of each CI environment running on Kubernetes with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html) -- Leverage continuous delivery method with [Canary Deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html) +- [Export issues as CSV](https://docs.gitlab.com/ee/user/project/issues/csv_export.html). +- View your entire CI/CD pipeline involving more than one project with [Multiple-Project Pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipeline_graphs.html). +- [Lock files](https://docs.gitlab.com/ee/user/project/file_lock.html) to prevent conflicts. +- View the current health and status of each CI environment running on Kubernetes with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html). +- Leverage continuous delivery method with [Canary Deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html). You can also [integrate](project/integrations/project_services.md) GitLab with numerous third-party applications, such as Mattermost, Microsoft Teams, Trello, diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 4148310dc98..4d19464cb7a 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -17,7 +17,7 @@ When you create a project in GitLab, you'll have access to a large number of - [Issue tracker](issues/index.md): Discuss implementations with your team within issues - [Issue Boards](issue_board.md): Organize and prioritize your workflow - - [Multiple Issue Boards](https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards): Allow your teams to create their own workflows (Issue Boards) for the same project **[STARTER]** + - [Multiple Issue Boards](issue_board.md#multiple-issue-boards-starter): Allow your teams to create their own workflows (Issue Boards) for the same project **[STARTER]** - [Repositories](repository/index.md): Host your code in a fully integrated platform - [Branches](repository/branches/index.md): use Git branching strategies to diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index 66168080087..ca19ce4d328 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -28,11 +28,11 @@ Issue Boards** (version introduced in GitLab 8.11 - August 2016). ### Advanced features of Issue Boards With [GitLab Starter](https://about.gitlab.com/pricing/), you can create -[multiple issue boards](#multiple-issue-boards) for a given project. **[STARTER]** +[multiple issue boards](#multiple-issue-boards-starter) for a given project. **[STARTER]** With [GitLab Premium](https://about.gitlab.com/pricing/), you can also create multiple -issue boards for your groups, and add lists for [assignees](#assignee-lists) and -[milestones](#milestone-lists). **[PREMIUM]** +issue boards for your groups, and add lists for [assignees](#assignee-lists-premium) and +[milestones](#milestone-lists-premium). **[PREMIUM]** Check all the [advanced features of Issue Boards](#gitlab-enterprise-features-for-issue-boards) below. @@ -97,7 +97,7 @@ If we have the labels "**backend**", "**frontend**", "**staging**", and ### Use cases for Multiple Issue Boards -With [Multiple Issue Boards](#multiple-issue-boards), available only in +With [Multiple Issue Boards](#multiple-issue-boards-starter), available only in [GitLab Enterprise Edition](https://about.gitlab.com/pricing/), each team can have their own board to organize their workflow individually. @@ -220,7 +220,7 @@ Click the button at the top right to toggle focus mode on and off. In focus mode The top of each list indicates the sum of issue weights for the issues that belong to that list. This is useful when using boards for capacity allocation, -especially in combination with [assignee lists](#assignee-lists). +especially in combination with [assignee lists](#assignee-lists-premium). ![Issue Board summed weights](img/issue_board_summed_weights.png) diff --git a/doc/user/project/issues/confidential_issues.md b/doc/user/project/issues/confidential_issues.md index 8eada25234f..2c755e0fb4d 100644 --- a/doc/user/project/issues/confidential_issues.md +++ b/doc/user/project/issues/confidential_issues.md @@ -1,6 +1,6 @@ # Confidential issues -> [Introduced][ce-3282] in GitLab 8.6. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3282) in GitLab 8.6. Confidential issues are issues visible only to members of a project with [sufficient permissions](#permissions-and-access-to-confidential-issues). @@ -67,7 +67,7 @@ There is also an indicator on the sidebar denoting confidentiality. There are two kinds of level access for confidential issues. The general rule is that confidential issues are visible only to members of a project with at -least [Reporter access][permissions]. However, a guest user can also create +least [Reporter access](../../permissions.md#project-members-permissions). However, a guest user can also create confidential issues, but can only view the ones that they created themselves. Confidential issues are also hidden in search results for unprivileged users. @@ -77,6 +77,3 @@ project's search results respectively. | Maintainer access | Guest access | | :-----------: | :----------: | | ![Confidential issues search master](img/confidential_issues_search_master.png) | ![Confidential issues search guest](img/confidential_issues_search_guest.png) | - -[permissions]: ../../permissions.md#project -[ce-3282]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3282 diff --git a/doc/user/project/issues/crosslinking_issues.md b/doc/user/project/issues/crosslinking_issues.md index 786d1c81b1b..ff5b1f2ce50 100644 --- a/doc/user/project/issues/crosslinking_issues.md +++ b/doc/user/project/issues/crosslinking_issues.md @@ -48,13 +48,12 @@ issues in merge requests. ## From Merge Requests -Mentioning issues in merge request comments work exactly the same way +Mentioning issues in merge request comments works exactly the same way as they do for [related issues](#from-related-issues). -When you mention an issue in a merge request description, you can either -[close the issue as soon as the merge request is merged](closing_issues.md#via-merge-request), -or simply link both issue and merge request as described in the -[closing issues documentation](closing_issues.md#from-related-issues). +When you mention an issue in a merge request description, it will simply +[link the issue and merge request together](#from-related-issues). Additionally, +you can also [set an issue to close as soon as the merge request is merged](closing_issues.md#via-merge-request). ![issue mentioned in MR](img/mention_in_merge_request.png) diff --git a/doc/user/project/issues/due_dates.md b/doc/user/project/issues/due_dates.md index 7972c14c1c4..987c16dfab6 100644 --- a/doc/user/project/issues/due_dates.md +++ b/doc/user/project/issues/due_dates.md @@ -1,11 +1,11 @@ # Due dates -> [Introduced][ce-3614] in GitLab 8.7. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3614) in GitLab 8.7. Please read through the [GitLab Issue Documentation](index.md) for an overview on GitLab Issues. Due dates can be used in issues to keep track of deadlines and make sure -features are shipped on time. Due dates require at least [Reporter permissions][permissions] +features are shipped on time. Due dates require at least [Reporter permissions](../../permissions.md#project-members-permissions) to be able to edit them. On the contrary, they can be seen by everybody. ## Setting a due date @@ -47,6 +47,3 @@ on the _Subscribe to calendar_ button on the following pages: GitLab header - on the **Project Issues** page - on the **Group Issues** page - -[ce-3614]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3614 -[permissions]: ../../permissions.md#project diff --git a/doc/user/project/issues/index.md b/doc/user/project/issues/index.md index 907a305fe23..675c280a12a 100644 --- a/doc/user/project/issues/index.md +++ b/doc/user/project/issues/index.md @@ -109,7 +109,7 @@ issue within your team only, you can make that [issue confidential](confidential_issues.md). Even if your project is public, that issue will be preserved. The browser will respond with a 404 error whenever someone who is not a project -member with at least [Reporter level](../../permissions.md#project) tries to +member with at least [Reporter level](../../permissions.md#project-members-permissions) tries to access that issue's URL. Learn more about them on the [confidential issues documentation](confidential_issues.md). @@ -140,7 +140,7 @@ Read through the documentation for [Issue Boards](../issue_board.md) to find out more about this feature. With [GitLab Starter](https://about.gitlab.com/pricing/), you can also -create various boards per project with [Multiple Issue Boards](https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards). +create various boards per project with [Multiple Issue Boards](../issue_board.html#multiple-issue-boards-starter). ### Import Issues from CSV -- cgit v1.2.3 From b41b03d47c529726501fb03181b9f065170945db Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 25 Mar 2019 04:56:57 +0000 Subject: Docs: Fix missed or newly added broken anchors --- doc/user/admin_area/settings/continuous_integration.md | 2 +- doc/user/discussions/index.md | 2 +- doc/user/index.md | 2 +- doc/user/project/clusters/index.md | 2 +- doc/user/project/pages/getting_started_part_four.md | 2 +- doc/user/project/pages/introduction.md | 4 ++-- doc/user/project/pipelines/schedules.md | 2 +- doc/user/snippets.md | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index a1825581ebf..22011cc6967 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -20,7 +20,7 @@ From now on, every existing project and newly created ones that don't have a `.gitlab-ci.yml`, will use the Auto DevOps pipelines. If you want to disable it for a specific project, you can do so in -[its settings](../../../topics/autodevops/index.md##enablingdisabling-auto-devops). +[its settings](../../../topics/autodevops/index.md#enablingdisabling-auto-devops). ## Maximum artifacts size **[CORE ONLY]** diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index cf0dc51ea23..23b9604a456 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -11,7 +11,7 @@ You can leave a comment in the following places: - commit diffs There are standard comments, and you also have the option to create a comment -in the form of a threaded discussion. A comment can also be [turned into a discussion](#start-a-discussion-by-replying-to-a-non-discussion-comment) +in the form of a threaded discussion. A comment can also be [turned into a discussion](#start-a-discussion-by-replying-to-a-standard-comment) when it receives a reply. The comment area supports [Markdown] and [quick actions]. You can edit your own diff --git a/doc/user/index.md b/doc/user/index.md index 39c1c4a63ba..d408504249e 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -125,7 +125,7 @@ merge requests, code snippets, and commits. When performing inline reviews to implementations to your codebase through merge requests you can -gather feedback through [resolvable discussions](discussions/index.md#resolvable-discussions). +gather feedback through [resolvable discussions](discussions/index.md#resolvable-comments-and-discussions). ### GitLab Flavored Markdown (GFM) diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 44b9e5cccb5..5a74ac96e83 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -69,7 +69,7 @@ new Kubernetes cluster to your project: - **Number of nodes** - Enter the number of nodes you wish the cluster to have. - **Machine type** - The [machine type](https://cloud.google.com/compute/docs/machine-types) of the Virtual Machine instance that the cluster will be based on. - - **RBAC-enabled cluster** - Leave this checked if using default GKE creation options, see the [RBAC section](#role-based-access-control-rbac-core-only) for more information. + - **RBAC-enabled cluster** - Leave this checked if using default GKE creation options, see the [RBAC section](#role-based-access-control-rbac) for more information. 1. Finally, click the **Create Kubernetes cluster** button. After a couple of minutes, your cluster will be ready to go. You can now proceed diff --git a/doc/user/project/pages/getting_started_part_four.md b/doc/user/project/pages/getting_started_part_four.md index 021139d486d..f552f60a07e 100644 --- a/doc/user/project/pages/getting_started_part_four.md +++ b/doc/user/project/pages/getting_started_part_four.md @@ -24,7 +24,7 @@ one for the first time.** [GitLab CI/CD](../../../ci/README.md) serves numerous purposes, to build, test, and deploy your app from GitLab through -[Continuous Integration, Continuous Delivery, and Continuous Deployment](../../../ci/introduction/index.md#introduction-to-continuous-methods) +[Continuous Integration, Continuous Delivery, and Continuous Deployment](../../../ci/introduction/index.md#introduction-to-cicd-methodologies) methods. You will need it to build your website with GitLab Pages, and deploy it to the Pages server. diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index ccb0300e23e..39f14a1126f 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -152,7 +152,7 @@ Depending on how you plan to publish your website, the steps defined in the Be aware that Pages are by default branch/tag agnostic and their deployment relies solely on what you specify in `.gitlab-ci.yml`. If you don't limit the -`pages` job with the [`only` parameter](../../../ci/yaml/README.md#only-and-except-simplified), +`pages` job with the [`only` parameter](../../../ci/yaml/README.md#onlyexcept-basic), whenever a new commit is pushed to whatever branch or tag, the Pages will be overwritten. In the example below, we limit the Pages to be deployed whenever a commit is pushed only on the `master` branch: @@ -253,7 +253,7 @@ get you started. Remember that GitLab Pages are by default branch/tag agnostic and their deployment relies solely on what you specify in `.gitlab-ci.yml`. You can limit -the `pages` job with the [`only` parameter](../../../ci/yaml/README.md#only-and-except-simplified), +the `pages` job with the [`only` parameter](../../../ci/yaml/README.md#onlyexcept-basic), whenever a new commit is pushed to a branch that will be used specifically for your pages. diff --git a/doc/user/project/pipelines/schedules.md b/doc/user/project/pipelines/schedules.md index 07ce4f3f5da..2911a56cf67 100644 --- a/doc/user/project/pipelines/schedules.md +++ b/doc/user/project/pipelines/schedules.md @@ -59,7 +59,7 @@ GitLab CI so that they can be used in your `.gitlab-ci.yml` file. To configure that a job can be executed only when the pipeline has been scheduled (or the opposite), you can use -[only and except](../../../ci/yaml/README.md#only-and-except-simplified) configuration keywords. +[only and except](../../../ci/yaml/README.md#onlyexcept-basic) configuration keywords. ``` job:on-schedule: diff --git a/doc/user/snippets.md b/doc/user/snippets.md index 569bdc9e2d5..7b580a057f2 100644 --- a/doc/user/snippets.md +++ b/doc/user/snippets.md @@ -20,7 +20,7 @@ and private. See [Public access](../public_access/public_access.md) for more inf ## Project snippets Project snippets are always related to a specific project. -See [Project's features](project/index.md#projects-features) for more information. +See [Project features](project/index.md#project-features) for more information. ## Discover snippets -- cgit v1.2.3 From bb3ed72d11c63fcf3d0d2ab2f3d5e8c832e4e566 Mon Sep 17 00:00:00 2001 From: David Coy Date: Mon, 25 Mar 2019 05:05:29 +0000 Subject: Fix Emoji URLs --- doc/user/markdown.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index a7a87773eec..d8bc3a9187e 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -288,15 +288,15 @@ On Linux, you can download [Noto Color Emoji](https://www.google.com/get/noto/he Ubuntu 18.04 (like many modern Linux distros) has this font installed by default. ``` -Sometimes you want to around a bit and add some to your . Well we have a gift for you: +Sometimes you want to around a bit and add some to your . Well we have a gift for you: -You can use emoji anywhere GFM is supported. +You can use emoji anywhere GFM is supported. -You can use it to point out a or warn about patches. And if someone improves your really code, send them some . People will you for that. +You can use it to point out a or warn about patches. And if someone improves your really code, send them some . People will you for that. -If you are new to this, don't be . You can easily join the emoji . All you need to do is to look up one of the supported codes. +If you are new to this, don't be . You can easily join the emoji . All you need to do is to look up one of the supported codes. -Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. +Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. Most emoji are natively supported on macOS, Windows, iOS, Android and will fallback to image-based emoji where there is lack of support. -- cgit v1.2.3 From 882b64793f100f6e2a13284706f9b201f74da33b Mon Sep 17 00:00:00 2001 From: Thong Kuah Date: Tue, 26 Mar 2019 03:28:19 +0000 Subject: Docs: Fixup duplicated sections We are mentioning the commands needed to obtain these fields twice. Merge them into the single place. - For API URL we only had the command at the bottom so move this up. - For CA certificate, we already have the command at the top of the section - For Token, we already have an similar command at the top of the section --- doc/user/project/clusters/index.md | 77 +++++++++++++++----------------------- 1 file changed, 30 insertions(+), 47 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 5a74ac96e83..6e5b4ccdce2 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -101,14 +101,20 @@ To add an existing Kubernetes cluster to your project: It's the URL that GitLab uses to access the Kubernetes API. Kubernetes exposes several APIs, we want the "base" URL that is common to all of them, e.g., `https://kubernetes.example.com` rather than `https://kubernetes.example.com/api/v1`. + + Get the API URL by running this command: + + ```sh + kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}' + ``` - **CA certificate** (required) - A valid Kubernetes certificate is needed to authenticate to the EKS cluster. We will use the certificate created by default. - - List the secrets with `kubectl get secrets`, and one should named similar to + - List the secrets with `kubectl get secrets`, and one should named similar to `default-token-xxxxx`. Copy that token name for use below. - - Get the certificate by running this command: + - Get the certificate by running this command: - ```sh - kubectl get secret -o jsonpath="{['data']['ca\.crt']}" | base64 --decode - ``` + ```sh + kubectl get secret -o jsonpath="{['data']['ca\.crt']}" | base64 --decode + ``` - **Token** - GitLab authenticates against Kubernetes using service tokens, which are scoped to a particular `namespace`. @@ -124,23 +130,7 @@ To add an existing Kubernetes cluster to your project: metadata: name: gitlab-admin namespace: kube-system - ``` - - 2. Apply the service account to your cluster: - - ```bash - kubectl apply -f gitlab-admin-service-account.yaml - ``` - - Output: - - ```bash - serviceaccount "gitlab-admin" created - ``` - - 3. Create a file called `gitlab-admin-cluster-role-binding.yaml` with contents: - - ```yaml + --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: @@ -155,41 +145,42 @@ To add an existing Kubernetes cluster to your project: namespace: kube-system ``` - 4. Apply the cluster role binding to your cluster: + 1. Apply the service account and cluster role binding to your cluster: ```bash - kubectl apply -f gitlab-admin-cluster-role-binding.yaml + kubectl apply -f gitlab-admin-service-account.yaml ``` Output: ```bash + serviceaccount "gitlab-admin" created clusterrolebinding "gitlab-admin" created ``` - 5. Retrieve the token for the `gitlab-admin` service account: + 1. Retrieve the token for the `gitlab-admin` service account: ```bash kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}') ``` - Copy the `` value from the output: + Copy the `` value from the output: - ```yaml - Name: gitlab-admin-token-b5zv4 - Namespace: kube-system - Labels: - Annotations: kubernetes.io/service-account.name=gitlab-admin - kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8 + ```yaml + Name: gitlab-admin-token-b5zv4 + Namespace: kube-system + Labels: + Annotations: kubernetes.io/service-account.name=gitlab-admin + kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8 - Type: kubernetes.io/service-account-token + Type: kubernetes.io/service-account-token - Data - ==== - ca.crt: 1025 bytes - namespace: 11 bytes - token: - ``` + Data + ==== + ca.crt: 1025 bytes + namespace: 11 bytes + token: + ``` NOTE: **Note:** For GKE clusters, you will need the @@ -212,14 +203,6 @@ To add an existing Kubernetes cluster to your project: After a couple of minutes, your cluster will be ready to go. You can now proceed to install some [pre-defined applications](#installing-applications). -To determine the: - -- API URL, run `kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}'`. -- Token: - 1. List the secrets by running: `kubectl get secrets`. Note the name of the secret you need the token for. - 1. Get the token for the appropriate secret by running: `kubectl get secret -o jsonpath="{['data']['token']}" | base64 --decode`. -- CA certificate, run `kubectl get secret -o jsonpath="{['data']['ca\.crt']}" | base64 --decode`. - ## Security implications CAUTION: **Important:** -- cgit v1.2.3 From 76d281881a945518fe4565e1dc71f6a3bc28c575 Mon Sep 17 00:00:00 2001 From: Tiger Watson Date: Tue, 26 Mar 2019 09:59:48 +0000 Subject: Allow runners to be installed on group clusters A runner installed on a cluster will now use the cluster's `cluster_type` as its `runner_type`. --- doc/user/group/clusters/index.md | 3 +-- doc/user/project/clusters/index.md | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index e67795b9bae..f6bb342de43 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -28,6 +28,7 @@ deployments. | [Helm Tiller](https://docs.helm.sh) | 11.6+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | | [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress) | 11.6+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps](../../../topics/autodevops/index.md) or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | | [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | +| [GitLab Runner](https://docs.gitlab.com/runner/) | 11.10+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | NOTE: **Note:** Some [cluster @@ -35,8 +36,6 @@ applications](../../project/clusters/index.md#installing-applications) are installable only for a project-level cluster. Support for installing these applications in a group-level cluster is planned for future releases. For updates, see: -- Support installing [Runner in group-level - clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51988) - Support installing [JupyterHub in group-level clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51989) - Support installing [Prometheus in group-level diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 6e5b4ccdce2..7fde27b3d22 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -343,8 +343,8 @@ by GitLab before installing any of the applications. | [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) | 10.2+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps] or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | | [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | | [Prometheus](https://prometheus.io/docs/introduction/overview/) | 10.4+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | -| [GitLab Runner](https://docs.gitlab.com/runner/) | 10.6+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](https://about.gitlab.com/features/gitlab-ci-cd/), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | -| [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. Authentication will be enabled only for [project members](../members/index.md) with [Developer or higher](../../permissions.md) access to the project. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | +| [GitLab Runner](https://docs.gitlab.com/runner/) | 10.6+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | +| [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. Authentication will be enabled only for [project members](../members/index.md) with [Developer or higher](../../permissions.md) access to the project. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). Note that Ingress must be installed and have an IP address assigned before JupyterHub can be installed. | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | | [Knative](https://cloud.google.com/knative) | 11.5+ | Knative provides a platform to create, deploy, and manage serverless workloads from a Kubernetes cluster. It is used in conjunction with, and includes [Istio](https://istio.io) to provide an external IP address for all programs hosted by Knative. You will be prompted to enter a wildcard domain where your applications will be exposed. Configure your DNS server to use the external IP address for that domain. For any application created and installed, they will be accessible as `..`. This will require your kubernetes cluster to have [RBAC enabled](#role-based-access-control-rbac). | [knative/knative](https://storage.googleapis.com/triggermesh-charts) With the exception of Knative, the applications will be installed in a dedicated -- cgit v1.2.3 From ac64e450114c403117869128eb88698900b7bf46 Mon Sep 17 00:00:00 2001 From: Peter Marko Date: Tue, 26 Mar 2019 13:22:08 +0100 Subject: correct view statistics ability documentation --- doc/user/permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index adc0f4d568b..a340dd063e4 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -119,7 +119,7 @@ The following table depicts the various user permission levels in a project. | Force push to protected branches [^4] | | | | | | | Remove protected branches [^4] | | | | | | | View project Audit Events | | | | ✓ | ✓ | -| View project statistics | | | | ✓ | ✓ | +| View project statistics | | ✓ | ✓ | ✓ | ✓ | ## Project features permissions -- cgit v1.2.3 From 8b5830b66ef22ced18aae53ffb3e9cbfbf295437 Mon Sep 17 00:00:00 2001 From: Cynthia Ng Date: Tue, 26 Mar 2019 15:51:01 +0000 Subject: Docs: Add IP range info --- doc/user/gitlab_com/index.md | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc/user') diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md index 5dc798fd8d3..2fb6cec55fa 100644 --- a/doc/user/gitlab_com/index.md +++ b/doc/user/gitlab_com/index.md @@ -71,6 +71,14 @@ or over the size limit, you can [reduce your repository size with Git](../projec | ----------- | ----------------- | ------------- | | Repository size including LFS | 10G | Unlimited | +## IP range + +GitLab.com, CI/CD, and related services are deployed into Google Cloud Platform (GCP). Any +IP based firewall can be configured by looking up all +[IP address ranges or CIDR blocks for GCP](https://cloud.google.com/compute/docs/faq#where_can_i_find_product_name_short_ip_ranges). + +[Static endpoints](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5071) are being considered. + ## Shared Runners Shared Runners on GitLab.com run in [autoscale mode] and powered by -- cgit v1.2.3 From bcfc493ad69565a7a98e6853b69535149d355a5a Mon Sep 17 00:00:00 2001 From: Evan Read Date: Tue, 26 Mar 2019 17:05:34 +0000 Subject: Edit wiki notes --- doc/user/project/wiki/index.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md index 532247a98cd..95f606fd786 100644 --- a/doc/user/project/wiki/index.md +++ b/doc/user/project/wiki/index.md @@ -25,7 +25,7 @@ message. ## Creating a new wiki page NOTE: **Note:** -A [permission level][permissions] of **Developer** is needed to create Wiki pages. +Requires Developer [permissions](../../permissions.md). Create a new page by clicking the **New page** button that can be found in all wiki pages. You will be asked to fill in the page name from which GitLab @@ -58,7 +58,7 @@ repository, you will have to upload them again. ## Editing a wiki page NOTE: **Note:** -A [permission level][permissions] of **Developer** is needed to edit Wiki pages. +Requires Developer [permissions](../../permissions.md). To edit a page, simply click on the **Edit** button. From there on, you can change its content. When done, click **Save changes** for the changes to take @@ -67,7 +67,7 @@ effect. ## Deleting a wiki page NOTE: **Note:** -A [permission level][permissions] of **Maintainer** is needed to delete Wiki pages. +Requires Maintainer [permissions](../../permissions.md). You can find the **Delete** button only when editing a page. Click on it and confirm you want the page to be deleted. @@ -114,8 +114,6 @@ them like you would do with every other Git repository. On the right sidebar, click on **Clone repository** and follow the on-screen instructions. -[permissions]: ../../permissions.md - ## Customizing sidebar By default, the wiki would render a sidebar which lists all the pages for the -- cgit v1.2.3 From be0512243f6f7efe59f0d649e816116b45dcc45e Mon Sep 17 00:00:00 2001 From: Evan Read Date: Tue, 26 Mar 2019 17:26:32 +0000 Subject: Fix display of emoji in GFM docs --- doc/user/markdown.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index d8bc3a9187e..8239742969a 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -267,10 +267,7 @@ However the wrapping tags cannot be mixed as such: ### Emoji -> If this is not rendered correctly, see -https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#emoji - -``` +```md Sometimes you want to :monkey: around a bit and add some :star2: to your :speech_balloon:. Well we have a gift for you: :zap: You can use emoji anywhere GFM is supported. :v: @@ -288,15 +285,15 @@ On Linux, you can download [Noto Color Emoji](https://www.google.com/get/noto/he Ubuntu 18.04 (like many modern Linux distros) has this font installed by default. ``` -Sometimes you want to around a bit and add some to your . Well we have a gift for you: +Sometimes you want to around a bit and add some to your . Well we have a gift for you: -You can use emoji anywhere GFM is supported. +You can use emoji anywhere GFM is supported. -You can use it to point out a or warn about patches. And if someone improves your really code, send them some . People will you for that. +You can use it to point out a or warn about patches. And if someone improves your really code, send them some . People will you for that. -If you are new to this, don't be . You can easily join the emoji . All you need to do is to look up one of the supported codes. +If you are new to this, don't be . You can easily join the emoji . All you need to do is to look up one of the supported codes. -Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. +Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. Most emoji are natively supported on macOS, Windows, iOS, Android and will fallback to image-based emoji where there is lack of support. -- cgit v1.2.3 From 8b42fe3b915512344d6ebb906983a77cad7cf6e2 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Wed, 27 Mar 2019 04:17:02 +0000 Subject: Docs: Fix more anchors, mostly pipeline related --- doc/user/project/index.md | 4 ++-- doc/user/project/merge_requests/index.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 4d19464cb7a..64139f9dbe9 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -55,11 +55,11 @@ When you create a project in GitLab, you'll have access to a large number of - [Auto Deploy](../../ci/autodeploy/index.md): Configure GitLab CI/CD to automatically set up your app's deployment - [Enable and disable GitLab CI](../../ci/enable_or_disable_ci.md) - - [Pipelines](../../ci/pipelines.md#pipelines): Configure and visualize + - [Pipelines](../../ci/pipelines.md): Configure and visualize your GitLab CI/CD pipelines from the UI - [Scheduled Pipelines](pipelines/schedules.md): Schedule a pipeline to start at a chosen time - - [Pipeline Graphs](../../ci/pipelines.md#pipeline-graphs): View your + - [Pipeline Graphs](../../ci/pipelines.md#visualizing-pipelines): View your entire pipeline from the UI - [Job artifacts](pipelines/job_artifacts.md): Define, browse, and download job artifacts diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 593eb80e044..01a3a5bbbe1 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -18,7 +18,7 @@ With GitLab merge requests, you can: - Live preview the changes when [Review Apps](../../../ci/review_apps/index.md) is configured for your project - Build, test, and deploy your code in a per-branch basis with built-in [GitLab CI/CD](../../../ci/README.md) - Prevent the merge request from being merged before it's ready with [WIP MRs](#work-in-progress-merge-requests) -- View the deployment process through [Pipeline Graphs](../../../ci/pipelines.md#pipeline-graphs) +- View the deployment process through [Pipeline Graphs](../../../ci/pipelines.md#visualizing-pipelines) - [Automatically close the issue(s)](../../project/issues/closing_issues.md#via-merge-request) that originated the implementation proposed in the merge request - Assign it to any registered user, and change the assignee how many times you need - Assign a [milestone](../../project/milestones/index.md) and track the development of a broader implementation -- cgit v1.2.3 From 505dd0304856db1cf663d143c5658e05e839d3cd Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Wed, 27 Mar 2019 06:46:16 +0000 Subject: Docs: Fix anchor from user/group to user/project --- doc/user/group/clusters/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index f6bb342de43..984881ef26c 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -28,7 +28,7 @@ deployments. | [Helm Tiller](https://docs.helm.sh) | 11.6+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | | [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress) | 11.6+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps](../../../topics/autodevops/index.md) or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | | [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | -| [GitLab Runner](https://docs.gitlab.com/runner/) | 11.10+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | +| [GitLab Runner](https://docs.gitlab.com/runner/) | 11.10+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](../../project/clusters/index.md#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | NOTE: **Note:** Some [cluster -- cgit v1.2.3 From 12120bfa8683471b1cdbba11322351700ce0ab9c Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 27 Mar 2019 17:25:12 +0000 Subject: Expand and improve autofetch of endpoint section --- doc/user/project/clusters/index.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 7fde27b3d22..ed883e6dcdc 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -389,14 +389,20 @@ to obtain the endpoint. You can use either In order to publish your web application, you first need to find the endpoint which will be either an IP address or a hostname associated with your load balancer. -### Let GitLab fetch the external endpoint +### Automatically determining the external endpoint > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17052) in GitLab 10.6. -If you [installed Ingress or Knative](#installing-applications), -you should see the Ingress Endpoint on this same page within a few minutes. -If you don't see this, GitLab might not be able to determine the external endpoint of -your ingress application in which case you should manually determine it. +After you install [Ingress or Knative](#installing-applications), Gitlab attempts to determine the external endpoint +and it should be available within a few minutes. If the endpoint doesn't appear +and your cluster runs on Google Kubernetes Engine: + +1. Check your [Kubernetes cluster on Google Kubernetes Engine](https://console.cloud.google.com/kubernetes) to ensure there are no errors on its nodes. +1. Ensure you have enough [Quotas](https://console.cloud.google.com/iam-admin/quotas) on Google Kubernetes Engine. For more information, see [Resource Quotas](https://cloud.google.com/compute/quotas). +1. Check [Google Cloud's Status](https://status.cloud.google.com/) to ensure they are not having any disruptions. + +If GitLab is still unable to determine the endpoint of your Ingress or Knative application, you can +manually determine it by following the steps below. ### Manually determining the external endpoint -- cgit v1.2.3 From a57f46b439c89b7619f837cfe455de576bb03fb6 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 27 Mar 2019 18:34:34 +0100 Subject: Rename build to job in webhooks docs --- doc/user/project/integrations/webhooks.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index d324e0de0cc..8e1603f9ec9 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -48,7 +48,7 @@ Navigate to the webhooks page by going to your project's ## Use-cases - You can set up a webhook in GitLab to send a notification to - [Slack](https://api.slack.com/incoming-webhooks) every time a build fails, for example + [Slack](https://api.slack.com/incoming-webhooks) every time a job fails. - You can [integrate with Twilio to be notified via SMS](https://www.datadoghq.com/blog/send-alerts-sms-customizable-webhooks-twilio/) every time an issue is created for a specific project or group within GitLab - You can use them to [automatically assign labels to merge requests](https://about.gitlab.com/2016/08/19/applying-gitlab-labels-automatically/). @@ -1004,7 +1004,7 @@ X-Gitlab-Event: Pipeline Hook "email": "user@gitlab.com" } }, - "builds":[ + "jobs":[ { "id": 380, "stage": "deploy", @@ -1129,34 +1129,34 @@ X-Gitlab-Event: Pipeline Hook } ``` -### Build events +### Job events -Triggered on status change of a Build. +Triggered on status change of a job. **Request Header**: ``` -X-Gitlab-Event: Build Hook +X-Gitlab-Event: Job Hook ``` **Request Body**: ```json { - "object_kind": "build", + "object_kind": "job", "ref": "gitlab-script-trigger", "tag": false, "before_sha": "2293ada6b400935a1378653304eaf6221e0fdb8f", "sha": "2293ada6b400935a1378653304eaf6221e0fdb8f", - "build_id": 1977, - "build_name": "test", - "build_stage": "test", - "build_status": "created", - "build_started_at": null, - "build_finished_at": null, - "build_duration": null, - "build_allow_failure": false, - "build_failure_reason": "script_failure", + "job_id": 1977, + "job_name": "test", + "job_stage": "test", + "job_status": "created", + "job_started_at": null, + "job_finished_at": null, + "job_duration": null, + "job_allow_failure": false, + "job_failure_reason": "script_failure", "project_id": 380, "project_name": "gitlab-org/gitlab-test", "user": { -- cgit v1.2.3 From ce26d7f5ecdd98856543971a3e3f1666a0fdeb4f Mon Sep 17 00:00:00 2001 From: Mateusz Konieczny Date: Thu, 28 Mar 2019 02:37:06 +0000 Subject: Update U2F recommendations, fix #57656 --- doc/user/profile/account/two_factor_authentication.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/profile/account/two_factor_authentication.md b/doc/user/profile/account/two_factor_authentication.md index b74bd81d467..8b3ae19b544 100644 --- a/doc/user/profile/account/two_factor_authentication.md +++ b/doc/user/profile/account/two_factor_authentication.md @@ -18,9 +18,10 @@ the second factor of authentication. Once enabled, in addition to supplying your password to login, you'll be prompted to activate your U2F device (usually by pressing a button on it), and it will perform secure authentication on your behalf. -The U2F workflow is only [supported by](https://caniuse.com/#search=U2F) Google Chrome, Opera and Firefox at this point, so we _strongly_ recommend -that you set up both methods of two-factor authentication, so you can still access your account -from other browsers. +The U2F workflow is [supported by](https://caniuse.com/#search=U2F) Google Chrome, Opera, and Firefox. + +We recommend that you set up 2FA with both a [one-time password authenticator](#enable-2fa-via-one-time-password-authenticator) and a [U2F device](#enable-2fa-via-u2f-device), so you can still access your account +if you lose your U2F device. ## Enabling 2FA -- cgit v1.2.3 From a66db7be8c494a76e70ab06d49a549aba79e1559 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Thu, 28 Mar 2019 09:28:27 +0000 Subject: Docs review for MR 25586 --- doc/user/project/clusters/index.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index ed883e6dcdc..3a9a3b4a423 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -548,25 +548,23 @@ service account of the cluster integration. ### Troubleshooting failed deployment jobs GitLab will create a namespace and service account specifically for your -deployment jobs. These resources are created just before the deployment -job starts. Sometimes there may be errors that cause their creation to fail. +deployment jobs, immediately before the jobs starts. -In such instances, your job will fail with the message: +However, sometimes GitLab can not create them. In such instances, your job will fail with the message: -```The job failed to complete prerequisite tasks``` +```text +The job failed to complete prerequisite tasks +``` -You will need to check the [logs](../../../administration/logs.md) to debug -why the namespace and service account creation failed. +To find the cause of this error when creating a namespace and service account, check the [logs](../../../administration/logs.md#sidekiqlog). -A common reason for failure is that the token you gave GitLab did not have -[`cluster-admin`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) -privileges as GitLab expects. +Common reasons for failure include: -Another common problem is caused by a missing `KUBECONFIG` or `KUBE_TOKEN`. -To be passed to your job, it must have a matching -[`environment:name`](../../../ci/environments.md#defining-environments). If -your job has no `environment:name` set, it will not be passed the Kubernetes -credentials. +- The token you gave GitLab did not have [`cluster-admin`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) + privileges required by GitLab. +- Missing `KUBECONFIG` or `KUBE_TOKEN` variables. To be passed to your job, they must have a matching + [`environment:name`](../../../ci/environments.md#defining-environments). If your job has no + `environment:name` set, it will not be passed the Kubernetes credentials. ## Monitoring your Kubernetes cluster **[ULTIMATE]** -- cgit v1.2.3 From 72a033ffb7ad106d690bdd970568299077571a67 Mon Sep 17 00:00:00 2001 From: Tim Hobbs Date: Mon, 1 Apr 2019 04:28:56 +0000 Subject: Clarify that personal access token should be sent as password for authentication. --- doc/user/profile/personal_access_tokens.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md index 3a4d09c35d9..52b4a72e688 100644 --- a/doc/user/profile/personal_access_tokens.md +++ b/doc/user/profile/personal_access_tokens.md @@ -5,12 +5,9 @@ Personal access tokens are the preferred way for third party applications and scripts to authenticate with the [GitLab API][api], if using [OAuth2](../../api/oauth2.md) is not practical. -You can also use them to authenticate against Git over HTTP. They are the only -accepted method of authentication when you have -[Two-Factor Authentication (2FA)][2fa] enabled. +You can also use personal access tokens to authenticate against Git over HTTP or SSH. They must be used when you have [Two-Factor Authentication (2FA)][2fa] enabled. Authenticate with a token in place of your password. -Once you have your token, [pass it to the API][usage] using either the -`private_token` parameter or the `Private-Token` header. +To make [authenticated requests to the API][usage], use either the `private_token` parameter or the `Private-Token` header. The expiration of personal access tokens happens on the date you define, at midnight UTC. -- cgit v1.2.3 From c702dbffaa97b6063b654cdba10d97c43e92b473 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Mon, 1 Apr 2019 23:15:46 +0000 Subject: Refactor and fix pipeline schedules --- doc/user/project/pipelines/schedules.md | 121 +++++++++++++++++--------------- 1 file changed, 66 insertions(+), 55 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pipelines/schedules.md b/doc/user/project/pipelines/schedules.md index 2911a56cf67..89f1beb6d1f 100644 --- a/doc/user/project/pipelines/schedules.md +++ b/doc/user/project/pipelines/schedules.md @@ -2,29 +2,33 @@ > **Notes**: > -> - This feature was introduced in 9.1 as [Trigger Schedule][ce-10533]. -> - In 9.2, the feature was [renamed to Pipeline Schedule][ce-10853]. +> - Introduced in GitLab 9.1 as [Trigger Schedule](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10533). +> - [Renamed to Pipeline Schedule](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10853) in GitLab 9.2. > - Cron notation is parsed by [Fugit](https://github.com/floraison/fugit). -Pipeline schedules can be used to run a pipeline at specific intervals, for example every -month on the 22nd for a certain branch. +Pipelines are normally run based on certain conditions being met. For example, when a branch is pushed to repository. -## Using Pipeline schedules +Pipeline schedules can be used to also run [pipelines](../../../ci/pipelines.md) at specific intervals. For example: -In order to schedule a pipeline: +- Every month on the 22nd for a certain branch. +- Once every day. -1. Navigate to your project's **CI / CD ➔ Schedules** and click the - **New Schedule** button. -1. Fill in the form -1. Hit **Save pipeline schedule** for the changes to take effect. +In addition to using the GitLab UI, pipeline schedules can be maintained using the +[Pipeline schedules API](../../../api/pipeline_schedules.md). + +## Configuring pipeline schedules + +To schedule a pipeline for project: + +1. Navigate to the project's **CI / CD > Schedules** page. +1. Click the **New schedule** button. +1. Fill in the **Schedule a new pipeline** form. +1. Click the **Save pipeline schedule** button. ![New Schedule Form](img/pipeline_schedules_new_form.png) -> **Attention:** -The pipelines won't be executed precisely, because schedules are handled by -Sidekiq, which runs according to its interval. -See [advanced admin configuration](#advanced-admin-configuration) for more -information. +NOTE: **Note:** +Pipelines execution [timing is dependent](#advanced-configuration) on Sidekiq's own schedule. In the **Schedules** index page you can see a list of the pipelines that are scheduled to run. The next run is automatically calculated by the server GitLab @@ -32,36 +36,24 @@ is installed on. ![Schedules list](img/pipeline_schedules_list.png) -### Running a scheduled pipeline manually - -> [Introduced][ce-15700] in GitLab 10.4. - -To trigger a pipeline schedule manually, click the "Play" button: - -![Play Pipeline Schedule](img/pipeline_schedule_play.png) - -This will schedule a background job to run the pipeline schedule. A flash -message will provide a link to the CI/CD Pipeline index page. - -To help avoid abuse, users are rate limited to triggering a pipeline once per -minute. - -### Making use of scheduled pipeline variables +### Using variables -> [Introduced][ce-12328] in GitLab 9.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12328) in GitLab 9.4. You can pass any number of arbitrary variables and they will be available in -GitLab CI so that they can be used in your `.gitlab-ci.yml` file. +GitLab CI so that they can be used in your [`.gitlab-ci.yml` file](../../../ci/yaml/README.md). ![Scheduled pipeline variables](img/pipeline_schedule_variables.png) -## Using only and except +### Using only and except To configure that a job can be executed only when the pipeline has been scheduled (or the opposite), you can use [only and except](../../../ci/yaml/README.md#onlyexcept-basic) configuration keywords. -``` +For example: + +```yaml job:on-schedule: only: - schedules @@ -75,11 +67,47 @@ job: - make build ``` -## Taking ownership +### Advanced configuration + +The pipelines won't be executed exactly on schedule because schedules are handled by +Sidekiq, which runs according to its interval. + +For example, only two pipelines will be created per day if: -Pipelines are executed as a user, who owns a schedule. This influences what -projects and other resources the pipeline has access to. If a user does not own -a pipeline, you can take ownership by clicking the **Take ownership** button. +- You set a schedule to create a pipeline every minute (`* * * * *`). +- The Sidekiq worker runs on 00:00 and 12:00 every day (`0 */12 * * *`). + +To change the Sidekiq worker's frequency: + +1. Edit the `pipeline_schedule_worker_cron` value in your instance's `gitlab.rb` file. +1. [Restart GitLab](../../../administration/restart_gitlab.md). + +For GitLab.com, refer to the [dedicated settings page](../../gitlab_com/index.md#cron-jobs). + +## Working with scheduled pipelines + +Once configured, GitLab supports many functions for working with scheduled pipelines. + +### Running manually + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15700) in GitLab 10.4. + +To trigger a pipeline schedule manually, click the "Play" button: + +![Play Pipeline Schedule](img/pipeline_schedule_play.png) + +This will schedule a background job to run the pipeline schedule. A flash +message will provide a link to the CI/CD Pipeline index page. + +NOTE: **Note:** +To help avoid abuse, users are rate limited to triggering a pipeline once per +minute. + +### Taking ownership + +Pipelines are executed as a user, who owns a schedule. This influences what projects and other resources the pipeline has access to. + +If a user does not own a pipeline, you can take ownership by clicking the **Take ownership** button. The next time a pipeline is scheduled, your credentials will be used. ![Schedules list](img/pipeline_schedules_ownership.png) @@ -90,20 +118,3 @@ on the target branch, the schedule will stop creating new pipelines. This can happen if, for example, the owner is blocked or removed from the project, or the target branch or tag is protected. In this case, someone with sufficient privileges must take ownership of the schedule. - -## Advanced admin configuration - -The pipelines won't be executed precisely, because schedules are handled by -Sidekiq, which runs according to its interval. For example, if you set a -schedule to create a pipeline every minute (`* * * * *`) and the Sidekiq worker -runs on 00:00 and 12:00 every day (`0 */12 * * *`), only 2 pipelines will be -created per day. To change the Sidekiq worker's frequency, you have to edit the -`pipeline_schedule_worker_cron` value in your `gitlab.rb` and restart GitLab. -For GitLab.com, you can check the [dedicated settings page][settings]. If you -don't have admin access to the server, ask your administrator. - -[ce-10533]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10533 -[ce-10853]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10853 -[ce-12328]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12328 -[ce-15700]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15700 -[settings]: https://about.gitlab.com/gitlab-com/settings/#cron-jobs -- cgit v1.2.3 From 70079f1d3f779d94bb497949716a2417e445ff56 Mon Sep 17 00:00:00 2001 From: Agustin Henze Date: Tue, 2 Apr 2019 10:37:57 +0200 Subject: Fix format typo on generate-new-recovery-codes-using-ssh The rendering is broken and it's confusing when you are reading the doc about generate the recovery codes using ssh. Signed-off-by: Agustin Henze --- doc/user/profile/account/two_factor_authentication.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/profile/account/two_factor_authentication.md b/doc/user/profile/account/two_factor_authentication.md index 8b3ae19b544..69dfad829b4 100644 --- a/doc/user/profile/account/two_factor_authentication.md +++ b/doc/user/profile/account/two_factor_authentication.md @@ -161,6 +161,7 @@ a new set of recovery codes with SSH. 1. Run `ssh git@gitlab.example.com 2fa_recovery_codes`. 1. You are prompted to confirm that you want to generate new codes. Continuing this process invalidates previously saved codes. + ``` bash $ ssh git@gitlab.example.com 2fa_recovery_codes -- cgit v1.2.3 From 01422c9156bf6ec5bbca172aef55614d4b03703c Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Tue, 2 Apr 2019 13:31:18 +0000 Subject: Docs: image realignment --- doc/user/group/img/create_new_group_info.png | Bin 51072 -> 27101 bytes doc/user/img/color_inline_colorchip_render_gfm.png | Bin 4724 -> 4684 bytes doc/user/img/task_list_ordered_render_gfm.png | Bin 2860 -> 2855 bytes doc/user/img/unordered_check_list_render_gfm.png | Bin 2789 -> 2781 bytes .../clusters/runbooks/img/authorize-jupyter.png | Bin 35652 -> 35627 bytes .../clusters/runbooks/img/gitlab-variables.png | Bin 54167 -> 54154 bytes .../project/clusters/runbooks/img/helm-install.png | Bin 71741 -> 71705 bytes .../clusters/runbooks/img/ingress-install.png | Bin 44380 -> 44363 bytes .../clusters/runbooks/img/jupyterhub-install.png | Bin 41655 -> 41588 bytes .../clusters/runbooks/img/postgres-query.png | Bin 63480 -> 63416 bytes .../clusters/runbooks/img/sample-runbook.png | Bin 40947 -> 40941 bytes doc/user/project/img/labels_default.png | Bin 22975 -> 35620 bytes doc/user/project/img/labels_list.png | Bin 71323 -> 75215 bytes .../integrations/img/jira_api_token_menu.png | Bin 25059 -> 25056 bytes .../project/integrations/img/jira_service_page.png | Bin 30398 -> 30395 bytes doc/user/project/issues/img/similar_issues.png | Bin 25407 -> 25390 bytes .../merge_requests/img/comment-on-any-diff-line.png | Bin 55614 -> 55593 bytes doc/user/project/pages/img/icons/click.png | Bin 4863 -> 4683 bytes doc/user/project/pages/img/icons/fork.png | Bin 4562 -> 4380 bytes doc/user/project/pages/img/icons/free.png | Bin 3681 -> 3563 bytes doc/user/project/pages/img/icons/lock.png | Bin 3426 -> 3404 bytes doc/user/project/pages/img/icons/monitor.png | Bin 2025 -> 1982 bytes doc/user/project/pages/img/icons/terminal.png | Bin 1983 -> 1961 bytes .../branches/img/branch_filter_search_box.png | Bin 23539 -> 23522 bytes .../project/repository/img/repository_cleanup.png | Bin 8117 -> 8114 bytes 25 files changed, 0 insertions(+), 0 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/img/create_new_group_info.png b/doc/user/group/img/create_new_group_info.png index c2e6ed43c5b..bd724240c37 100644 Binary files a/doc/user/group/img/create_new_group_info.png and b/doc/user/group/img/create_new_group_info.png differ diff --git a/doc/user/img/color_inline_colorchip_render_gfm.png b/doc/user/img/color_inline_colorchip_render_gfm.png index fed8ca5c34b..6f93dbeeb10 100644 Binary files a/doc/user/img/color_inline_colorchip_render_gfm.png and b/doc/user/img/color_inline_colorchip_render_gfm.png differ diff --git a/doc/user/img/task_list_ordered_render_gfm.png b/doc/user/img/task_list_ordered_render_gfm.png index 0905a8378be..98ec791e958 100644 Binary files a/doc/user/img/task_list_ordered_render_gfm.png and b/doc/user/img/task_list_ordered_render_gfm.png differ diff --git a/doc/user/img/unordered_check_list_render_gfm.png b/doc/user/img/unordered_check_list_render_gfm.png index ccdeab6e62c..2ce0fb95645 100644 Binary files a/doc/user/img/unordered_check_list_render_gfm.png and b/doc/user/img/unordered_check_list_render_gfm.png differ diff --git a/doc/user/project/clusters/runbooks/img/authorize-jupyter.png b/doc/user/project/clusters/runbooks/img/authorize-jupyter.png index 84cce311483..f3e868de802 100644 Binary files a/doc/user/project/clusters/runbooks/img/authorize-jupyter.png and b/doc/user/project/clusters/runbooks/img/authorize-jupyter.png differ diff --git a/doc/user/project/clusters/runbooks/img/gitlab-variables.png b/doc/user/project/clusters/runbooks/img/gitlab-variables.png index 1d338f063a9..7c9c9099851 100644 Binary files a/doc/user/project/clusters/runbooks/img/gitlab-variables.png and b/doc/user/project/clusters/runbooks/img/gitlab-variables.png differ diff --git a/doc/user/project/clusters/runbooks/img/helm-install.png b/doc/user/project/clusters/runbooks/img/helm-install.png index 003e482e756..e67cf317ec1 100644 Binary files a/doc/user/project/clusters/runbooks/img/helm-install.png and b/doc/user/project/clusters/runbooks/img/helm-install.png differ diff --git a/doc/user/project/clusters/runbooks/img/ingress-install.png b/doc/user/project/clusters/runbooks/img/ingress-install.png index 7edc11d5b45..08256a65138 100644 Binary files a/doc/user/project/clusters/runbooks/img/ingress-install.png and b/doc/user/project/clusters/runbooks/img/ingress-install.png differ diff --git a/doc/user/project/clusters/runbooks/img/jupyterhub-install.png b/doc/user/project/clusters/runbooks/img/jupyterhub-install.png index 75c6028a763..784e508ff25 100644 Binary files a/doc/user/project/clusters/runbooks/img/jupyterhub-install.png and b/doc/user/project/clusters/runbooks/img/jupyterhub-install.png differ diff --git a/doc/user/project/clusters/runbooks/img/postgres-query.png b/doc/user/project/clusters/runbooks/img/postgres-query.png index 04315d54d5e..dbb5a62ebba 100644 Binary files a/doc/user/project/clusters/runbooks/img/postgres-query.png and b/doc/user/project/clusters/runbooks/img/postgres-query.png differ diff --git a/doc/user/project/clusters/runbooks/img/sample-runbook.png b/doc/user/project/clusters/runbooks/img/sample-runbook.png index 70011202bf0..545d34fd4ad 100644 Binary files a/doc/user/project/clusters/runbooks/img/sample-runbook.png and b/doc/user/project/clusters/runbooks/img/sample-runbook.png differ diff --git a/doc/user/project/img/labels_default.png b/doc/user/project/img/labels_default.png index 7a7fab611a4..221c5cf55a2 100644 Binary files a/doc/user/project/img/labels_default.png and b/doc/user/project/img/labels_default.png differ diff --git a/doc/user/project/img/labels_list.png b/doc/user/project/img/labels_list.png index 6878349fc0c..6940dde68bf 100644 Binary files a/doc/user/project/img/labels_list.png and b/doc/user/project/img/labels_list.png differ diff --git a/doc/user/project/integrations/img/jira_api_token_menu.png b/doc/user/project/integrations/img/jira_api_token_menu.png index 55c8fb1bdb9..14037bd0b47 100644 Binary files a/doc/user/project/integrations/img/jira_api_token_menu.png and b/doc/user/project/integrations/img/jira_api_token_menu.png differ diff --git a/doc/user/project/integrations/img/jira_service_page.png b/doc/user/project/integrations/img/jira_service_page.png index 3a27b4df841..377b69d9d06 100644 Binary files a/doc/user/project/integrations/img/jira_service_page.png and b/doc/user/project/integrations/img/jira_service_page.png differ diff --git a/doc/user/project/issues/img/similar_issues.png b/doc/user/project/issues/img/similar_issues.png index 0dfb5b00e02..c5b7902b2ac 100644 Binary files a/doc/user/project/issues/img/similar_issues.png and b/doc/user/project/issues/img/similar_issues.png differ diff --git a/doc/user/project/merge_requests/img/comment-on-any-diff-line.png b/doc/user/project/merge_requests/img/comment-on-any-diff-line.png index c2455c2d1e5..5b9844bf02f 100644 Binary files a/doc/user/project/merge_requests/img/comment-on-any-diff-line.png and b/doc/user/project/merge_requests/img/comment-on-any-diff-line.png differ diff --git a/doc/user/project/pages/img/icons/click.png b/doc/user/project/pages/img/icons/click.png index a534ae29e0f..62a997a7591 100644 Binary files a/doc/user/project/pages/img/icons/click.png and b/doc/user/project/pages/img/icons/click.png differ diff --git a/doc/user/project/pages/img/icons/fork.png b/doc/user/project/pages/img/icons/fork.png index 8a3aa46eb37..1ae8fa722b7 100644 Binary files a/doc/user/project/pages/img/icons/fork.png and b/doc/user/project/pages/img/icons/fork.png differ diff --git a/doc/user/project/pages/img/icons/free.png b/doc/user/project/pages/img/icons/free.png index ae455033e94..c74cd90fa1a 100644 Binary files a/doc/user/project/pages/img/icons/free.png and b/doc/user/project/pages/img/icons/free.png differ diff --git a/doc/user/project/pages/img/icons/lock.png b/doc/user/project/pages/img/icons/lock.png index f4c35c84112..f7f32fded45 100644 Binary files a/doc/user/project/pages/img/icons/lock.png and b/doc/user/project/pages/img/icons/lock.png differ diff --git a/doc/user/project/pages/img/icons/monitor.png b/doc/user/project/pages/img/icons/monitor.png index 8bad059a74c..ce27b7e177e 100644 Binary files a/doc/user/project/pages/img/icons/monitor.png and b/doc/user/project/pages/img/icons/monitor.png differ diff --git a/doc/user/project/pages/img/icons/terminal.png b/doc/user/project/pages/img/icons/terminal.png index 377eeb4edc6..5a711f05c4e 100644 Binary files a/doc/user/project/pages/img/icons/terminal.png and b/doc/user/project/pages/img/icons/terminal.png differ diff --git a/doc/user/project/repository/branches/img/branch_filter_search_box.png b/doc/user/project/repository/branches/img/branch_filter_search_box.png index 5dc7eccf189..5dc300cf24e 100644 Binary files a/doc/user/project/repository/branches/img/branch_filter_search_box.png and b/doc/user/project/repository/branches/img/branch_filter_search_box.png differ diff --git a/doc/user/project/repository/img/repository_cleanup.png b/doc/user/project/repository/img/repository_cleanup.png index bda40d3e193..e343f23ac27 100644 Binary files a/doc/user/project/repository/img/repository_cleanup.png and b/doc/user/project/repository/img/repository_cleanup.png differ -- cgit v1.2.3 From a03fa93da22c5dfece9c411ad9733a0978dede09 Mon Sep 17 00:00:00 2001 From: Patrick Bajao Date: Mon, 1 Apr 2019 16:01:28 +0800 Subject: Add documentation for download source code feature --- .../project/repository/img/download_source_code.png | Bin 0 -> 62871 bytes doc/user/project/repository/index.md | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 doc/user/project/repository/img/download_source_code.png (limited to 'doc/user') diff --git a/doc/user/project/repository/img/download_source_code.png b/doc/user/project/repository/img/download_source_code.png new file mode 100644 index 00000000000..6c0c31af2ad Binary files /dev/null and b/doc/user/project/repository/img/download_source_code.png differ diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index 22d912cd9d1..ffb1d77f67c 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -241,4 +241,24 @@ Projects that contain a `.xcodeproj` or `.xcworkspace` directory can now be clon in Xcode using the new **Open in Xcode** button, located next to the Git URL used for cloning your project. The button is only shown on macOS. +## Download Source Code + +Source code stored in the repository can be downloaded. + +By clicking the download icon, a dropdown will open with links to download the following: + +![Download source code](img/download_source_code.png) + +- **Directory:** + > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.10 + + Only shows up when viewing a sub-directory. This allows users to download + the specific directory they're currently viewing. Available in zip, tar, tar.gz + and tar.bz2. +- **Source Code:** + This allows users to download the source code on branch they're currently + viewing. Also available zip, tar, tar.gz and tar.bz2. +- **Artifacts:** + This allows users to download the artifacts of the latest CI build. + [jupyter]: https://jupyter.org -- cgit v1.2.3 From b64662d0afaa961e716988cbebec57a0810d12a2 Mon Sep 17 00:00:00 2001 From: Patrick Bajao Date: Tue, 2 Apr 2019 08:59:42 +0800 Subject: Switch positions of source and directory sections Updated the documentation to match the updated order including the screenshot. --- .../project/repository/img/download_source_code.png | Bin 62871 -> 61467 bytes doc/user/project/repository/index.md | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/repository/img/download_source_code.png b/doc/user/project/repository/img/download_source_code.png index 6c0c31af2ad..17f2cb4b3e8 100644 Binary files a/doc/user/project/repository/img/download_source_code.png and b/doc/user/project/repository/img/download_source_code.png differ diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index ffb1d77f67c..718566a539f 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -249,15 +249,15 @@ By clicking the download icon, a dropdown will open with links to download the f ![Download source code](img/download_source_code.png) +- **Source Code:** + This allows users to download the source code on branch they're currently + viewing. Available zip, tar, tar.gz and tar.bz2. - **Directory:** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.10 Only shows up when viewing a sub-directory. This allows users to download - the specific directory they're currently viewing. Available in zip, tar, tar.gz - and tar.bz2. -- **Source Code:** - This allows users to download the source code on branch they're currently - viewing. Also available zip, tar, tar.gz and tar.bz2. + the specific directory they're currently viewing. Also available in zip, tar, + tar.gz and tar.bz2. - **Artifacts:** This allows users to download the artifacts of the latest CI build. -- cgit v1.2.3 From 3bc30185180cbb5d7c8e026f6e7f1826617358a3 Mon Sep 17 00:00:00 2001 From: Jacopo Date: Tue, 2 Apr 2019 17:58:52 +0200 Subject: Fix quick actions add label name middle word overlaps Fixes quick actions add label when adding a label which name middle word overlaps with another label name: for example adding "A B C" when also label "B" exists. With the fix only the label "A B C" is correctly added, previously also the label "B" was added due to the middle word overlaps. --- doc/user/project/quick_actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md index 392e72dcc5c..88f4de891a1 100644 --- a/doc/user/project/quick_actions.md +++ b/doc/user/project/quick_actions.md @@ -31,7 +31,7 @@ discussions, and descriptions: | `/reassign @user1 @user2` | Change assignee | ✓ | ✓ | | `/milestone %milestone` | Set milestone | ✓ | ✓ | | `/remove_milestone` | Remove milestone | ✓ | ✓ | -| `/label ~label1 ~label2` | Add label(s) | ✓ | ✓ | +| `/label ~label1 ~label2` | Add label(s). Label names can also start without ~ but mixed syntax is not supported. | ✓ | ✓ | | `/unlabel ~label1 ~label2` | Remove all or specific label(s)| ✓ | ✓ | | `/relabel ~label1 ~label2` | Replace label | ✓ | ✓ | | /copy_metadata #issue | !merge_request | Copy labels and milestone from other issue or merge request | ✓ | ✓ | -- cgit v1.2.3 From ef8caefb7b54b2b820e886b273464dbe213aa53d Mon Sep 17 00:00:00 2001 From: chow89 Date: Tue, 2 Apr 2019 19:27:35 +0000 Subject: Fix typo in docs --- doc/user/project/pages/getting_started_part_three.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index 756b8b698c7..fa7ab19ece6 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -149,7 +149,7 @@ verify your domain's ownership with a TXT record: Once you've set the DNS record, you'll need navigate to your project's **Setting > Pages** and click **+ New domain** to add your custom domain to GitLab Pages. You can choose whether to add an [SSL/TLS certificate](#ssltls-certificates) -to make your website accessible under HTTPS or leave it blank. If don't add a certificate, +to make your website accessible under HTTPS or leave it blank. If you don't add a certificate, your site will be accessible only via HTTP: ![Add new domain](img/add_certificate_to_pages.png) -- cgit v1.2.3 From 0e9b47870710426f98074e508cc2cb432d18a755 Mon Sep 17 00:00:00 2001 From: William Chia Date: Tue, 2 Apr 2019 21:08:25 +0000 Subject: remove html tag --- doc/user/project/clusters/serverless/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index e6804666e22..96bf455116c 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -214,7 +214,7 @@ The sample function can now be triggered from any HTTP client using a simple `PO --header "Content-Type: application/json" \ --request POST \ --data '{"GitLab":"FaaS"}' \ - + http://functions-echo.functions-1.functions.example.com ``` 2. Using a web-based tool (ie. postman, restlet, etc) -- cgit v1.2.3 From bd750af785037a105dc3347d3bd38cb49a003dc2 Mon Sep 17 00:00:00 2001 From: jerasmus Date: Wed, 3 Apr 2019 08:31:04 +0200 Subject: Update error message Updated the error message in the docs --- doc/user/project/clusters/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 3a9a3b4a423..3097fb01722 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -553,7 +553,7 @@ deployment jobs, immediately before the jobs starts. However, sometimes GitLab can not create them. In such instances, your job will fail with the message: ```text -The job failed to complete prerequisite tasks +This job failed because the necessary resources were not successfully created. ``` To find the cause of this error when creating a namespace and service account, check the [logs](../../../administration/logs.md#sidekiqlog). -- cgit v1.2.3 From f8fdb59059b8c1037fd804636e4247642a08ebb9 Mon Sep 17 00:00:00 2001 From: Joan Queralt Date: Wed, 3 Apr 2019 07:59:46 +0000 Subject: public key -> private key --- doc/user/project/pages/lets_encrypt_for_gitlab_pages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md index f639188684b..5ad500c4d20 100644 --- a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md +++ b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md @@ -134,7 +134,7 @@ Now that your certificate has been issued, let's add it to your Pages site: sudo cat /etc/letsencrypt/live/example.com/fullchain.pem | pbcopy ``` -1. Copy and paste the public key into the second field **Key (PEM)**: +1. Copy and paste the private key into the second field **Key (PEM)**: ```bash sudo cat /etc/letsencrypt/live/example.com/privkey.pem | pbcopy -- cgit v1.2.3 From ecae2c48920d76623be0019e19cea919d3e4cb28 Mon Sep 17 00:00:00 2001 From: Alexander Strachan Date: Wed, 3 Apr 2019 09:01:44 +0000 Subject: Resolve "Add troubleshooting section to capture errors with installing applications to a Kubernetes cluster" --- doc/user/project/clusters/index.md | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 3a9a3b4a423..c94a3f4d3b5 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -314,12 +314,6 @@ install it manually. ## Installing applications -NOTE: **Note:** -Before starting the installation of applications, make sure that time is synchronized -between your GitLab server and your Kubernetes cluster. Otherwise, installation could fail -and you may get errors like `Error: remote error: tls: bad certificate` -in the `stdout` of pods created by GitLab in your Kubernetes cluster. - GitLab provides a one-click install for various applications which can be added directly to your configured cluster. Those applications are needed for [Review Apps](../../../ci/review_apps/index.md) and @@ -378,6 +372,29 @@ Upgrades will reset values back to the values built into the `runner` chart plus the values set by [`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) +### Troubleshooting applications + +Applications can fail with the following error: + +```text +Error: remote error: tls: bad certificate +``` + +To avoid installation errors: + +- Before starting the installation of applications, make sure that time is synchronized + between your GitLab server and your Kubernetes cluster. +- Ensure certificates are not out of sync. When installing applications, GitLab expects a new cluster with no previous installation of Tiller. + + You can confirm that the certificates match via `kubectl`: + + ```sh + kubectl get configmaps/values-content-configuration-ingress -n gitlab-managed-apps -o \ + "jsonpath={.data['cert\.pem']}" | base64 -d > a.pem + kubectl get secrets/tiller-secret -n gitlab-managed-apps -o "jsonpath={.data['ca\.crt']}" | base64 -d > b.pem + diff a.pem b.pem + ``` + ## Getting the external endpoint NOTE: **Note:** -- cgit v1.2.3 From da38bdc24aac580bf670f0aba4f5b652daba3701 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 3 Apr 2019 14:16:19 +0200 Subject: Update serverless docs to use `gitlabktl` --- doc/user/project/clusters/serverless/index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 96bf455116c..612b02f8af3 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -11,13 +11,12 @@ Run serverless workloads on Kubernetes using [Knative](https://cloud.google.com/ Knative extends Kubernetes to provide a set of middleware components that are useful to build modern, source-centric, container-based applications. Knative brings some significant benefits out of the box through its main components: -- [Build](https://github.com/knative/build): Source-to-container build orchestration. -- [Eventing](https://github.com/knative/eventing): Management and delivery of events. - [Serving](https://github.com/knative/serving): Request-driven compute that can scale to zero. +- [Eventing](https://github.com/knative/eventing): Management and delivery of events. For more information on Knative, visit the [Knative docs repo](https://github.com/knative/docs). -With GitLab serverless, you can deploy both functions-as-a-service (FaaS) and serverless applications. +With GitLab Serverless, you can deploy both functions-as-a-service (FaaS) and serverless applications. ## Prerequisites @@ -41,13 +40,16 @@ To run Knative on Gitlab, you will need: wildcard domain where your applications will be served. Configure your DNS server to use the external IP address or hostname for that domain. 1. **`.gitlab-ci.yml`:** GitLab uses [Kaniko](https://github.com/GoogleContainerTools/kaniko) - to build the application and the [TriggerMesh CLI](https://github.com/triggermesh/tm) to simplify the - deployment of knative services and functions. + to build the application. We also use [gitlabktl](https://gitlab.com/gitlab-org/gitlabktl) + and [TriggerMesh CLI](https://github.com/triggermesh/tm) CLIs to simplify the + deployment of services and functions to Knative. 1. **`serverless.yml`** (for [functions only](#deploying-functions)): When using serverless to deploy functions, the `serverless.yml` file will contain the information for all the functions being hosted in the repository as well as a reference to the runtime being used. -1. **`Dockerfile`** (for [applications only](#deploying-serverless-applications): Knative requires a `Dockerfile` in order to build your application. It should be included - at the root of your project's repo and expose port `8080`. +1. **`Dockerfile`** (for [applications only](#deploying-serverless-applications): Knative requires a + `Dockerfile` in order to build your applications. It should be included at the root of your + project's repo and expose port `8080`. `Dockerfile` is not require if you plan to build serverless functions + using our [runtimes](https://gitlab.com/gitlab-org/serverless/runtimes). 1. **Prometheus** (optional): Installing Prometheus allows you to monitor the scale and traffic of your serverless function/application. See [Installing Applications](../index.md#installing-applications) for more information. -- cgit v1.2.3 From bfd17bca5dda92936f99722a45b261f2b343ab2c Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 3 Apr 2019 16:01:58 +0200 Subject: Update GitLab Serverless documentation to use `gitlabktl` --- doc/user/project/clusters/serverless/index.md | 65 ++++++++++++++++----------- 1 file changed, 40 insertions(+), 25 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 612b02f8af3..c374acd4915 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -91,10 +91,11 @@ Using functions is useful for dealing with independent events without needing to maintain a complex unified infrastructure. This allows you to focus on a single task that can be executed/scaled automatically and independently. -Currently the following [runtimes](https://gitlab.com/triggermesh/runtimes) are offered: +Currently the following [runtimes](https://gitlab.com/gitlab-org/serverless/runtimes) are offered: +- ruby - node.js -- kaniko +- Dockerfile You can find and import all the files referenced in this doc in the **[functions example project](https://gitlab.com/knative-examples/functions)**. @@ -113,13 +114,17 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ include: template: Serverless.gitlab-ci.yml - functions: + functions:build: + extends: .serverless:build:functions + environment: production + + functions:deploy: extends: .serverless:deploy:functions environment: production ``` - This `.gitlab-ci.yml` creates a `functions` job that invokes some - predefined commands to deploy your functions to your cluster. + This `.gitlab-ci.yml` creates jobs that invokes some predefined commands to + build and deploy your functions to your cluster. `Serverless.gitlab-ci.yml` is a template that allows customization. You can either import it with `include` parameter and use `extends` to @@ -137,29 +142,40 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ You can find the relevant files for this project in the [functions example project](https://gitlab.com/knative-examples/functions). ```yaml - service: my-functions - description: "Deploying functions from GitLab using Knative" + service: functions + description: "GitLab Serverless functions using Knative" provider: name: triggermesh - registry-secret: gitlab-registry environment: - FOO: BAR - - functions: - echo: - handler: echo - runtime: https://gitlab.com/triggermesh/runtimes/raw/master/nodejs.yaml - description: "echo function using node.js runtime" - buildargs: - - DIRECTORY=echo - environment: - FUNCTION: echo + FOO: value + + functions: + echo-js: + handler: echo-js + source: ./echo-js + runtime: https://gitlab.com/gitlab-org/serverless/runtimes/nodejs + description: "node.js runtime function" + environment: + MY_FUNCTION: echo-js + + echo-rb: + handler: MyEcho.my_function + source: ./echo-rb + runtime: https://gitlab.com/gitlab-org/serverless/runtimes/ruby + description: "Ruby runtime function" + environment: + MY_FUNCTION: echo-rb + + echo-docker: + handler: echo-docker + source: ./echo-docker + description: "Dockerfile runtime function" + environment: + MY_FUNCTION: echo-docker ``` -The `serverless.yml` file references both an `echo` directory (under `buildargs`) and an `echo` file (under `handler`), -which is a reference to `echo.js` in the [repository](https://gitlab.com/knative-examples/functions). Additionally, it -contains three sections with distinct parameters: +Explanation of fields used above: ### `service` @@ -173,7 +189,6 @@ contains three sections with distinct parameters: | Parameter | Description | |-----------|-------------| | `name` | Indicates which provider is used to execute the `serverless.yml` file. In this case, the TriggerMesh `tm` CLI. | -| `registry-secret` | Indicates which registry will be used to store docker images. The sample function is using the GitLab Registry (`gitlab-registry`). A different registry host may be specified using `registry` key in the `provider` object. If changing the default, update the permission and the secret value on the `gitlab-ci.yml` file | | `environment` | Includes the environment variables to be passed as part of function execution for **all** functions in the file, where `FOO` is the variable name and `BAR` are he variable contents. You may replace this with you own variables. | ### `functions` @@ -182,10 +197,10 @@ In the `serverless.yml` example above, the function name is `echo` and the subse | Parameter | Description | |-----------|-------------| -| `handler` | The function's file name. In the example above, both the function name and the handler are the same. | +| `handler` | The function's name. | +| `source` | Directory with sources of a functions. | | `runtime` | The runtime to be used to execute the function. | | `description` | A short description of the function. | -| `buildargs` | Pointer to the function file in the repo. In the sample the function is located in the `echo` directory. | | `environment` | Sets an environment variable for the specific function only. | After the `gitlab-ci.yml` template has been added and the `serverless.yml` file has been -- cgit v1.2.3 From 82c5ca7caf6d42ae12c76332c449610d42dccfa5 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 3 Apr 2019 16:18:34 +0200 Subject: Fix indentation of exemplary serverless.yml config --- doc/user/project/clusters/serverless/index.md | 46 +++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index c374acd4915..f2cb619cb15 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -150,29 +150,29 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ environment: FOO: value - functions: - echo-js: - handler: echo-js - source: ./echo-js - runtime: https://gitlab.com/gitlab-org/serverless/runtimes/nodejs - description: "node.js runtime function" - environment: - MY_FUNCTION: echo-js - - echo-rb: - handler: MyEcho.my_function - source: ./echo-rb - runtime: https://gitlab.com/gitlab-org/serverless/runtimes/ruby - description: "Ruby runtime function" - environment: - MY_FUNCTION: echo-rb - - echo-docker: - handler: echo-docker - source: ./echo-docker - description: "Dockerfile runtime function" - environment: - MY_FUNCTION: echo-docker + functions: + echo-js: + handler: echo-js + source: ./echo-js + runtime: https://gitlab.com/gitlab-org/serverless/runtimes/nodejs + description: "node.js runtime function" + environment: + MY_FUNCTION: echo-js + + echo-rb: + handler: MyEcho.my_function + source: ./echo-rb + runtime: https://gitlab.com/gitlab-org/serverless/runtimes/ruby + description: "Ruby runtime function" + environment: + MY_FUNCTION: echo-rb + + echo-docker: + handler: echo-docker + source: ./echo-docker + description: "Dockerfile runtime function" + environment: + MY_FUNCTION: echo-docker ``` Explanation of fields used above: -- cgit v1.2.3 From d79e0cd4ff82c642b65c3b6c89d111a321a7abeb Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 3 Apr 2019 15:17:30 +0000 Subject: Fix code block and other minor fixes --- doc/user/profile/account/two_factor_authentication.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/profile/account/two_factor_authentication.md b/doc/user/profile/account/two_factor_authentication.md index 69dfad829b4..df413a11af0 100644 --- a/doc/user/profile/account/two_factor_authentication.md +++ b/doc/user/profile/account/two_factor_authentication.md @@ -162,8 +162,7 @@ a new set of recovery codes with SSH. 1. Run `ssh git@gitlab.example.com 2fa_recovery_codes`. 1. You are prompted to confirm that you want to generate new codes. Continuing this process invalidates previously saved codes. - ``` - bash + ```sh $ ssh git@gitlab.example.com 2fa_recovery_codes Are you sure you want to generate new two-factor recovery codes? Any existing recovery codes you saved will be invalidated. (yes/no) @@ -208,17 +207,17 @@ Sign in and re-enable two-factor authentication as soon as possible. - You need to take special care to that 2FA keeps working after [restoring a GitLab backup](../../../raketasks/backup_restore.md). - To ensure 2FA authorizes correctly with TOTP server, you may want to ensure - your GitLab server's time is synchronized via a service like NTP. Otherwise, + your GitLab server's time is synchronized via a service like NTP. Otherwise, you may have cases where authorization always fails because of time differences. - The GitLab U2F implementation does _not_ work when the GitLab instance is accessed from multiple hostnames, or FQDNs. Each U2F registration is linked to the _current hostname_ at the time of registration, and cannot be used for other hostnames/FQDNs. - For example, if a user is trying to access a GitLab instance from `first.host.xyz` and `second.host.xyz`: + For example, if a user is trying to access a GitLab instance from `first.host.xyz` and `second.host.xyz`: - - The user logs in via `first.host.xyz` and registers their U2F key. - - The user logs out and attempts to log in via `first.host.xyz` - U2F authentication succeeds. - - The user logs out and attempts to log in via `second.host.xyz` - U2F authentication fails, because + - The user logs in via `first.host.xyz` and registers their U2F key. + - The user logs out and attempts to log in via `first.host.xyz` - U2F authentication succeeds. + - The user logs out and attempts to log in via `second.host.xyz` - U2F authentication fails, because the U2F key has only been registered on `first.host.xyz`. [Google Authenticator]: https://support.google.com/accounts/answer/1066447?hl=en -- cgit v1.2.3 From 2339ea0b8ac28cf117807ca1b85091355d29f79f Mon Sep 17 00:00:00 2001 From: Nathan Friend Date: Wed, 3 Apr 2019 14:39:28 -0300 Subject: Update "Pipelines must succeed" docs This commit updates the documentation about the "Pipelines must succeed" checkbox. --- ...n_pipeline_succeeds_only_if_succeeds_settings.png | Bin 6491 -> 19986 bytes .../merge_requests/merge_when_pipeline_succeeds.md | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/merge_when_pipeline_succeeds_only_if_succeeds_settings.png b/doc/user/project/merge_requests/img/merge_when_pipeline_succeeds_only_if_succeeds_settings.png index 2a2101719ba..ea3aff59aa1 100644 Binary files a/doc/user/project/merge_requests/img/merge_when_pipeline_succeeds_only_if_succeeds_settings.png and b/doc/user/project/merge_requests/img/merge_when_pipeline_succeeds_only_if_succeeds_settings.png differ diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md index f8af71ab46b..1477e35dca8 100644 --- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md @@ -35,11 +35,11 @@ You need to have jobs configured to enable this feature. You can prevent merge requests from being merged if their pipeline did not succeed or if there are discussions to be resolved. -Navigate to your project's settings page, select the -**Only allow merge requests to be merged if the pipeline succeeds** check box and -hit **Save** for the changes to take effect. +Navigate to your project's settings page and expand the **Merge requests** section. +In the **Merge checks** subsection, select the **Pipelines must succeed** check +box and hit **Save** for the changes to take effect. -![Only allow merge if pipeline succeeds settings](img/merge_when_pipeline_succeeds_only_if_succeeds_settings.png) +![Pipelines must succeed settings](img/merge_when_pipeline_succeeds_only_if_succeeds_settings.png) From now on, every time the pipeline fails you will not be able to merge the merge request from the UI, until you make all relevant jobs pass. -- cgit v1.2.3 From 9f3f45bfb0fe0597822d1200cd89f6a4cff4cc94 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 25 Mar 2019 13:14:32 +0200 Subject: Add v2 to reserved top level routes Signed-off-by: Dmitriy Zaporozhets --- doc/user/reserved_names.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/reserved_names.md b/doc/user/reserved_names.md index 9aa81e33fc0..9e8475d8294 100644 --- a/doc/user/reserved_names.md +++ b/doc/user/reserved_names.md @@ -83,6 +83,7 @@ Currently the following names are reserved as top level groups: - unsubscribes - uploads - users +- v2 These group names are unavailable as subgroup names: -- cgit v1.2.3 From e540c0d71e00c4ce031b94cf11ec3de905e87da7 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Thu, 4 Apr 2019 13:08:34 +0000 Subject: Fixed test specs - added suggestions to mock data - fixed props to be not required --- .../discussions/img/multi-line-suggestion-preview.png | Bin 0 -> 61692 bytes .../discussions/img/multi-line-suggestion-syntax.png | Bin 0 -> 29753 bytes doc/user/discussions/index.md | 18 ++++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 doc/user/discussions/img/multi-line-suggestion-preview.png create mode 100644 doc/user/discussions/img/multi-line-suggestion-syntax.png (limited to 'doc/user') diff --git a/doc/user/discussions/img/multi-line-suggestion-preview.png b/doc/user/discussions/img/multi-line-suggestion-preview.png new file mode 100644 index 00000000000..4288d0ba034 Binary files /dev/null and b/doc/user/discussions/img/multi-line-suggestion-preview.png differ diff --git a/doc/user/discussions/img/multi-line-suggestion-syntax.png b/doc/user/discussions/img/multi-line-suggestion-syntax.png new file mode 100644 index 00000000000..df0c99b84ef Binary files /dev/null and b/doc/user/discussions/img/multi-line-suggestion-syntax.png differ diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 23b9604a456..bf41fdecd10 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -344,6 +344,24 @@ and push the suggested change directly into the codebase in the merge request's Custom commit messages will be introduced by [#54404](https://gitlab.com/gitlab-org/gitlab-ce/issues/54404). +### Multi-line suggestions + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53310) in GitLab 11.10. + +Reviewers can also suggest changes to +multiple lines with a single suggestion within Merge Request diff discussions. + +![Multi-line suggestion syntax](img/multi-line-suggestion-syntax.png) + +In the example above, the suggestion covers three lines above and four lines below the commented diff line. +It'd change from 3 lines _above_ to 4 lines _below_ the commented Diff line. + +![Multi-line suggestion preview](img/multi-line-suggestion-preview.png) + +NOTE: **Note:** +Suggestions covering multiple lines are limited to 100 lines _above_ and 100 lines _below_ +the commented diff line, allowing up to 200 changed lines per suggestion. + ## Start a discussion by replying to a standard comment > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 -- cgit v1.2.3 From 4406acd5058ac58b61a203ee0da7e9712c70a3bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rory=20O=E2=80=99Kane?= Date: Thu, 4 Apr 2019 20:58:28 +0000 Subject: =?UTF-8?q?Fix=20typo=20=E2=80=9Csettings=E2=80=9D=20in=20Merge=20?= =?UTF-8?q?requests=20docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/user/project/merge_requests/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 01a3a5bbbe1..7c0380152de 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -254,7 +254,7 @@ To prevent merge requests from accidentally being accepted before they're completely ready, GitLab blocks the "Accept" button for merge requests that have been marked as a **Work In Progress**. -[Learn more about settings a merge request as "Work In Progress".](work_in_progress_merge_requests.md) +[Learn more about setting a merge request as "Work In Progress".](work_in_progress_merge_requests.md) ## Merge request diff file navigation -- cgit v1.2.3 From 20edd05db18dd6c27b93ebe7f35c995e91aab3ef Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 5 Apr 2019 16:31:15 +0200 Subject: Copy-edit new serverless documentation --- doc/user/project/clusters/serverless/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index f2cb619cb15..b72083e85df 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -123,7 +123,7 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ environment: production ``` - This `.gitlab-ci.yml` creates jobs that invokes some predefined commands to + This `.gitlab-ci.yml` creates jobs that invoke some predefined commands to build and deploy your functions to your cluster. `Serverless.gitlab-ci.yml` is a template that allows customization. @@ -175,7 +175,7 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ MY_FUNCTION: echo-docker ``` -Explanation of fields used above: +Explanation of the fields used above: ### `service` -- cgit v1.2.3 From 64858317adc4f017fe589342155faba9df31f093 Mon Sep 17 00:00:00 2001 From: Gosia Ksionek Date: Fri, 5 Apr 2019 18:49:46 +0000 Subject: Add part of needed code Add columns to store project creation settings Add project creation level column in groups and default project creation column in application settings Remove obsolete line from schema Update migration with project_creation_level column existence check Rename migrations to avoid conflicts Update migration methods Update migration method --- doc/user/group/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 3bcfd30079d..2f1cadb2bbc 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -151,6 +151,17 @@ There are two different ways to add a new project to a group: ![Select group](img/select_group_dropdown.png) +### Default project creation level + +Group owners or administrators can allow users with the +Developer role to create projects under groups. + +By default, [Developers and Maintainers](../permissions.md##group-members-permissions) can create projects under agroup, but this can be changed either within the group settings for a group, or +be set globally by a GitLab administrator in the Admin area +at **Settings > General > Visibility and access controls**. + +Available settings are `No one`, `Maintainers`, or `Developers + Maintainers`. + ## Transfer projects into groups Learn how to [transfer a project into a group](../project/settings/index.md#transferring-an-existing-project-into-another-namespace). -- cgit v1.2.3 From b77fe7db3e885edca14c862f362e2bbd43f0e498 Mon Sep 17 00:00:00 2001 From: Chris Baumbauer Date: Sat, 6 Apr 2019 02:02:39 +0000 Subject: Add Knative metrics to Prometheus --- .../serverless/img/function-details-loaded.png | Bin 0 -> 93515 bytes doc/user/project/clusters/serverless/index.md | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 doc/user/project/clusters/serverless/img/function-details-loaded.png (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/img/function-details-loaded.png b/doc/user/project/clusters/serverless/img/function-details-loaded.png new file mode 100644 index 00000000000..34465c5c087 Binary files /dev/null and b/doc/user/project/clusters/serverless/img/function-details-loaded.png differ diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index b72083e85df..5b7e9ef906f 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -301,3 +301,23 @@ The second to last line, labeled **Service domain** contains the URL for the dep browser to see the app live. ![knative app](img/knative-app.png) + +## Function details + +Go to the **Operations > Serverless** page and click on one of the function +rows to bring up the function details page. + +![function_details](img/function-details-loaded.png) + +The pod count will give you the number of pods running the serverless function instances on a given cluster. + +### Prometheus support + +For the Knative function invocations to appear, +[Prometheus must be installed](../index.md#installing-applications). + +Once Prometheus is installed, a message may appear indicating that the metrics data _is +loading or is not available at this time._ It will appear upon the first access of the +page, but should go away after a few seconds. If the message does not disappear, then it +is possible that GitLab is unable to connect to the Prometheus instance running on the +cluster. -- cgit v1.2.3 From f4ef75a76aab30d926513eb8eafff83e20f1d054 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 8 Apr 2019 03:42:03 +0000 Subject: Docs: Fix misc anchors --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 2f1cadb2bbc..9c3f6fcec9b 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -156,7 +156,7 @@ There are two different ways to add a new project to a group: Group owners or administrators can allow users with the Developer role to create projects under groups. -By default, [Developers and Maintainers](../permissions.md##group-members-permissions) can create projects under agroup, but this can be changed either within the group settings for a group, or +By default, [Developers and Maintainers](../permissions.md#group-members-permissions) can create projects under agroup, but this can be changed either within the group settings for a group, or be set globally by a GitLab administrator in the Admin area at **Settings > General > Visibility and access controls**. -- cgit v1.2.3 From 2040649bbaf5bf5ca01c1d9fc25189f206a0bb50 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 8 Apr 2019 12:32:38 +0000 Subject: Docs: Fix anchors related to variables doc --- doc/user/project/clusters/index.md | 2 +- doc/user/project/pipelines/settings.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 878d30dddaa..44af9251107 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -545,7 +545,7 @@ The result will then be: ## Deployment variables The Kubernetes cluster integration exposes the following -[deployment variables](../../../ci/variables/README.md#deployment-variables) in the +[deployment variables](../../../ci/variables/README.md#deployment-environment-variables) in the GitLab CI/CD build environment. | Variable | Description | diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md index 4a989afad4d..8b762307ac4 100644 --- a/doc/user/project/pipelines/settings.md +++ b/doc/user/project/pipelines/settings.md @@ -182,4 +182,4 @@ https://example.gitlab.com///badges//coverage.svg?st ## Environment Variables -[Environment variables](../../../ci/variables/README.html#variables) can be set in an environment to be available to a runner. +[Environment variables](../../../ci/variables/README.html#gitlab-cicd-environment-variables) can be set in an environment to be available to a runner. -- cgit v1.2.3 From 8b3fb10acdddd3588c8060478df059d1f04b1286 Mon Sep 17 00:00:00 2001 From: Sid Sijbrandij Date: Mon, 8 Apr 2019 15:07:23 +0000 Subject: Name GitLab managed apps --- doc/user/project/clusters/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 44af9251107..141fe488357 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -314,7 +314,7 @@ install it manually. ## Installing applications -GitLab provides a one-click install for various applications which can +GitLab provides **GitLab Managed Apps**, a one-click install for various applications which can be added directly to your configured cluster. Those applications are needed for [Review Apps](../../../ci/review_apps/index.md) and [deployments](../../../ci/environments.md). You can install them after you -- cgit v1.2.3 From 7c0272007697e53fb2203c5781ceca6248b39400 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 8 Apr 2019 20:09:41 +0000 Subject: Refactor Issues doc --- doc/user/project/issues/index.md | 227 +++++++++------------- doc/user/project/issues/issues_functionalities.md | 4 +- 2 files changed, 98 insertions(+), 133 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/issues/index.md b/doc/user/project/issues/index.md index 675c280a12a..14e023207e8 100644 --- a/doc/user/project/issues/index.md +++ b/doc/user/project/issues/index.md @@ -1,170 +1,135 @@ # Issues -The GitLab Issue Tracker is an advanced and complete tool -for tracking the evolution of a new idea or the process -of solving a problem. +Issues are the fundamental medium for collaborating on ideas and planning work in GitLab. -It allows you, your team, and your collaborators to share -and discuss proposals before and while implementing them. +## Overview -GitLab Issues and the GitLab Issue Tracker are available in all -[GitLab Products](https://about.gitlab.com/pricing/) as -part of the [GitLab Workflow](https://about.gitlab.com/2016/10/25/gitlab-workflow-an-overview/). +The GitLab issue tracker is an advanced tool for collaboratively developing ideas, solving problems, and planning work. -## Use cases +Issues can allow you, your team, and your collaborators to share and discuss proposals before and during their implementation. +However, they can be used for a variety of other purposes, customized to your needs and workflow. -Issues can have endless applications. Just to exemplify, these are -some cases for which creating issues are most used: +Issues are always associated with a specific project, but if you have multiple projects in a group, +you can also view all the issues collectively at the group level. + +**Common use cases include:** - Discussing the implementation of a new idea -- Submitting feature proposals -- Asking questions -- Reporting bugs and malfunction -- Obtaining support +- Tracking tasks and work status +- Accepting feature proposals, questions, support requests, or bug reports - Elaborating new code implementations See also the blog post "[Always start a discussion with an issue](https://about.gitlab.com/2016/03/03/start-with-an-issue/)". -### Keep private things private - -For instance, let's assume you have a public project but want to start a discussion on something -you don't want to be public. With [Confidential Issues](#confidential-issues), -you can discuss private matters among the project members, and still keep -your project public, open to collaboration. - -### Streamline collaboration - -With [Multiple Assignees for Issues](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html), -available in [GitLab Starter](https://about.gitlab.com/pricing/) -you can streamline collaboration and allow shared responsibilities to be clearly displayed. -All assignees are shown across your workflows and receive notifications (as they -would as single assignees), simplifying communication and ownership. - -### Consistent collaboration - -Create [issue templates](#issue-templates) to make collaboration consistent and -containing all information you need. For example, you can create a template -for feature proposals and another one for bug reports. - -## Issue Tracker - -The Issue Tracker is the collection of opened and closed issues created in a project. -It is available for all projects, from the moment the project is created. - -Find the issue tracker by navigating to your **Project's homepage** > **Issues**. - -### Issues per project - -When you access your project's issues, GitLab will present them in a list, -and you can use the tabs available to quickly filter by open and closed issues. - -![Project issues list view](img/project_issues_list_view.png) - -You can also [search and filter](../../search/index.md#issues-and-merge-requests-per-project) the results more deeply with GitLab's search capacities. - -### Issues per group - -View issues in all projects in the group, including all projects of all descendant subgroups of the group. Navigate to **Group > Issues** to view these issues. This view also has the open and closed issues tabs. - -![Group Issues list view](img/group_issues_list_view.png) - -## GitLab Issues Functionalities - -The image bellow illustrates how an issue looks like: +## Parts of an issue + +Issues contain a variety of content and metadata, enabling a large range of flexibility in how they are used. Each issue can contain the following attributes, though some items may remain unset. + + + + + + +
+
    +
  • Content
  • +
      +
    • Title
    • +
    • Description and tasks
    • +
    • Comments and other activity
    • +
    +
  • People
  • +
      +
    • Author
    • +
    • Assignee(s)
    • +
    +
  • State
  • +
      +
    • Status (open/closed)
    • +
    • Confidentiality
    • +
    • Tasks (completed vs. outstanding)
    • +
    +
+
+
    +
  • Planning and tracking
  • +
      +
    • Milestone
    • +
    • Due date
    • +
    • Weight
    • +
    • Time tracking
    • +
    • Labels
    • +
    • Votes
    • +
    • Reaction emoji
    • +
    • Linked issues
    • +
    • Assigned epic
    • +
    • Unique issue number and URL
    • +
    +
+
+ +## Viewing and managing issues + +While you can view and manage the full detail of an issue at its URL, you can also work with multiple issues at a time using the Issues List, Issue Boards, Epics **[ULTIMATE]**, and issue references. + +### Issue page ![Issue view](img/issues_main_view.png) -Learn more about it on the [GitLab Issues Functionalities documentation](issues_functionalities.md). - -## New issue +On an issue’s page, you can view all aspects of the issue, and you can also modify them if you you have the necessary [permissions](../../permissions.md). -Read through the [documentation on creating issues](create_new_issue.md). +For more information, see the [Issue Functionalities](issues_functionalities.md) page. -## Closing issues +### Issues list -Learn distinct ways to [close issues](closing_issues.md) in GitLab. - -## Moving issues - -Read through the [documentation on moving issues](moving_issues.md). - -## Deleting issues +![Project issues list view](img/project_issues_list_view.png) -Read through the [documentation on deleting issues](deleting_issues.md) +On the Issues List, you can view all issues in the current project, or from multiple projects when opening the Issues List from the higher-level group context. Filter the issue list by [any search query](../../search/index.md#issues-and-merge-requests-per-project) and/or specific metadata, such as label(s), assignees(s), status, and more. From this view, you can also make certain changes [in bulk](../bulk_editing.md) to the displayed issues. -## Create a merge request from an issue +For more information, see the [Issue Functioinalities](issues_functionalities.md) page. -Learn more about it on the [GitLab Issues Functionalities documentation](issues_functionalities.md#18-new-merge-request). +### Issue boards -## Search for an issue +![Issue board](img/issue_board.png) -Learn how to [find an issue](../../search/index.md) by searching for and filtering them. +Issue boards are Kanban boards with columns that display issues based on their labels or their assignees**[PREMIUM]**. They offer the flexibility to manage issues using highly customizable workflows. -## Advanced features +You can reorder issues within a column, or drag an issue card to another column; its associated label or assignee will change to match that of the new column. The entire board can also be filtered to only include issues from a certain milestone or an overarching label. -### Confidential Issues +For more information, see the [Issue Boards](../issue_board.md) page. -Whenever you want to keep the discussion presented in a -issue within your team only, you can make that -[issue confidential](confidential_issues.md). Even if your project -is public, that issue will be preserved. The browser will -respond with a 404 error whenever someone who is not a project -member with at least [Reporter level](../../permissions.md#project-members-permissions) tries to -access that issue's URL. +### Epics **[ULTIMATE]** -Learn more about them on the [confidential issues documentation](confidential_issues.md). +Epics let you manage your portfolio of projects more efficiently and with less effort by tracking groups of issues that share a theme, across projects and milestones. -### Issue templates +For more information, see the [Epics](https://docs.gitlab.com/ee/user/group/epics/) page. -Create templates for every new issue. They will be available from -the dropdown menu **Choose a template** when you create a new issue: +### Related issues **[STARTER]** -![issue template](img/issue_template.png) +You can mark two issues as related, so that when viewing each one, the other is always listed in its Related Issues section. This can help display important context, such as past work, dependencies, or duplicates. -Learn more about them on the [issue templates documentation](../../project/description_templates.md#creating-issue-templates). +For more information, see [Related Issues](https://docs.gitlab.com/ee/user/project/issues/related_issues.html). ### Crosslinking issues -Learn more about [crosslinking](crosslinking_issues.md) issues and merge requests. - -### Issue Board - -The [GitLab Issue Board](https://about.gitlab.com/features/issueboard/) is a way to -enhance your workflow by organizing and prioritizing issues in GitLab. - -![Issue board](img/issue_board.png) - -Find GitLab Issue Boards by navigating to your **Project's Dashboard** > **Issues** > **Board**. - -Read through the documentation for [Issue Boards](../issue_board.md) -to find out more about this feature. - -With [GitLab Starter](https://about.gitlab.com/pricing/), you can also -create various boards per project with [Multiple Issue Boards](../issue_board.html#multiple-issue-boards-starter). - -### Import Issues from CSV - -You can import a CSV file containing issue titles and descriptions to create -a batch of issues simultaneously. - -When you navigate to the Issues list page, an import button is displayed. - -For further details, see [Importing issues from CSV](csv_import.md) - -### External Issue Tracker - -Alternatively to GitLab's built-in Issue Tracker, you can also use an [external -tracker](../../../integration/external-issue-tracker.md) such as Jira, Redmine, -YouTrack, or Bugzilla. - -### Issue API +When you reference an issue from another issue or merge request by including its URL or ID, the referenced issue displays a message in the Activity stream about the reference, with a link to the other issue or MR. -See the [API documentation](../../../api/issues.md). +For more information, see [Crosslinking issues](crosslinking_issues.md). -### Bulk editing issues +## Issue actions -See the [bulk editing issues](../../project/bulk_editing.md) page. +- [Create an issue](create_new_issue.md) +- [Create an issue from a template](../../project/description_templates.md#using-the-templates) +- [Close an issue](closing_issues.md) +- [Move an issue](moving_issues.md) +- [Delete an issue](deleting_issues.md) +- [Create a merge request from an issue](issues_functionalities.md#18-new-merge-request) -### Similar issues +## Advanced issue management -See the [similar issues](similar_issues.md) page. +- [Bulk edit issues](../bulk_editing.md) - From the Issues List, select multiple issues in order to change their status, assignee, milestone, or labels in bulk. +- [Import issues](csv_import.md) +- [Export issues](https://docs.gitlab.com/ee/user/project/issues/csv_export.html) **[STARTER]** +- [Issues API](../../../api/issues.md) +- Configure an [external issue tracker](../../../integration/external-issue-tracker.md) such as Jira, Redmine, +or Bugzilla. diff --git a/doc/user/project/issues/issues_functionalities.md b/doc/user/project/issues/issues_functionalities.md index 27b9dc51760..4a90ce613d9 100644 --- a/doc/user/project/issues/issues_functionalities.md +++ b/doc/user/project/issues/issues_functionalities.md @@ -1,8 +1,8 @@ -# GitLab Issues Functionalities +# Issue Data and Actions Please read through the [GitLab Issue Documentation](index.md) for an overview on GitLab Issues. -## Issues Functionalities +## Parts of an Issue The image below illustrates what an issue looks like: -- cgit v1.2.3 From aa352a95df665ded5178c1b26d4492433e47714e Mon Sep 17 00:00:00 2001 From: Luke Duncalfe Date: Fri, 29 Mar 2019 14:07:03 +1300 Subject: Support merge request create with push options To create a new merge request: git push -u origin -o merge_request.create To create a new merge request setting target branch: git push -u origin -o merge_request.create \ -o merge_request.target=123 To update an existing merge request with a new target branch: git push -u origin -o merge_request.target=123 A new Gitlab::PushOptions class handles parsing and validating the push options array. This can be the start of the standard of GitLab accepting push options that follow namespacing rules. Rules are discussed in issue https://gitlab.com/gitlab-org/gitlab-ce/issues/43263. E.g. these push options: -o merge_request.create -o merge_request.target=123 Become parsed as: { merge_request: { create: true, target: '123', } } And are fetched with the class via: push_options.get(:merge_request) push_options.get(:merge_request, :create) push_options.get(:merge_request, :target) A new MergeRequests::PushOptionsHandlerService takes the `merge_request` namespaced push options and handles creating and updating merge requests. Any errors encountered are passed to the existing `output` Hash in Api::Internal's `post_receive` endpoint, and passed to gitlab-shell where they're output to the user. Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/43263 --- doc/user/project/merge_requests/index.md | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 7c0380152de..678fc3dd196 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -219,6 +219,39 @@ apply the patches. The target branch can be specified using the [`/target_branch` quick action](../quick_actions.md). If the source branch already exists, the patches will be applied on top of it. +## Git push options + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26752) in GitLab 11.10. + +GitLab supports using [Git push options](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt) to create merge requests and set the target +branch during a push. Note that git push options are only available with +Git 2.10 or newer. + +### Create a new merge request using git push options + +To create a new merge request for a branch, use the +`merge_request.create` push option: + +```sh +git push -o merge_request.create +``` + +### Set the target branch of a merge request using git push options + +To update an existing merge request's target branch, use the +`merge_request.target=` push option: + +```sh +git push -o merge_request.target=branch_name +``` + +You can also create a merge request and set its target branch at the +same time using a `-o` flag per push option: + +```sh +git push -o merge_request.create -o merge_request.target=branch_name +``` + ## Find the merge request that introduced a change > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2383) in GitLab 10.5. -- cgit v1.2.3 From 68f189ad23d7a384f40caa152d263fdf1465b30a Mon Sep 17 00:00:00 2001 From: Luke Duncalfe Date: Fri, 5 Apr 2019 13:22:58 +0000 Subject: Support merge on pipeline success w/ push options MergeRequests::PushOptionsHandlerService has been updated to allow creating and updating merge requests with the `merge_when_pipeline_succeeds` set using git push options. To create a new merge request and set it to merge when the pipeline succeeds: git push -u origin -o merge_request.create \ -o merge_request.merge_when_pipeline_succeeds To update an existing merge request and set it to merge when the pipeline succeeds: git push -u origin -o merge_request.merge_when_pipeline_succeeds Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/53198 --- doc/user/project/merge_requests/index.md | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 678fc3dd196..ba7d05a7ad7 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -223,9 +223,17 @@ branch already exists, the patches will be applied on top of it. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26752) in GitLab 11.10. -GitLab supports using [Git push options](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt) to create merge requests and set the target -branch during a push. Note that git push options are only available with -Git 2.10 or newer. +NOTE: **Note:** +Git push options are only available with Git 2.10 or newer. + +GitLab supports using +[Git push options](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt) +to perform the following actions against merge requests at the same time +as pushing changes: + +- Create a new merge request for the pushed branch. +- Set the target of the merge request to a particular branch. +- Set the merge request to merge when its pipeline succeeds. ### Create a new merge request using git push options @@ -252,6 +260,23 @@ same time using a `-o` flag per push option: git push -o merge_request.create -o merge_request.target=branch_name ``` +### Set merge when pipeline succeeds using git push options + +To set an existing merge request to +[merge when its pipeline succeeds](merge_when_pipeline_succeeds.md), use +the `merge_request.merge_when_pipeline_succeeds` push option: + +```sh +git push -o merge_request.merge_when_pipeline_succeeds +``` + +You can also create a merge request and set it to merge when its +pipeline succeeds at the same time using a `-o` flag per push option: + +```sh +git push -o merge_request.create -o merge_request.merge_when_pipeline_succeeds +``` + ## Find the merge request that introduced a change > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2383) in GitLab 10.5. -- cgit v1.2.3 From f581e72dee3d41f447b50c60e036206b6a148766 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Tue, 9 Apr 2019 10:54:51 +0000 Subject: Docs: Fix anchors related to issues --- doc/user/group/index.md | 2 +- doc/user/index.md | 4 +- doc/user/project/issue_board.md | 2 +- doc/user/project/issues/create_new_issue.md | 2 +- doc/user/project/issues/index.md | 6 +- doc/user/project/issues/issue_data_and_actions.md | 172 ++++++++++++++++++++++ doc/user/project/issues/issues_functionalities.md | 172 ---------------------- 7 files changed, 180 insertions(+), 180 deletions(-) create mode 100644 doc/user/project/issues/issue_data_and_actions.md delete mode 100644 doc/user/project/issues/issues_functionalities.md (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 9c3f6fcec9b..74735886350 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -58,7 +58,7 @@ By doing so: ## Issues and merge requests within a group Issues and merge requests are part of projects. For a given group, view all the -[issues](../project/issues/index.md#issues-per-group) and [merge requests](../project/merge_requests/index.md#merge-requests-per-group) across all the projects in that group, +[issues](../project/issues/index.md#issues-list) and [merge requests](../project/merge_requests/index.md#merge-requests-per-group) across all the projects in that group, together in a single list view. ## Create a new group diff --git a/doc/user/index.md b/doc/user/index.md index d408504249e..626246447f3 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -38,8 +38,8 @@ GitLab is a Git-based platform that integrates a great number of essential tools - Hosting code in repositories with version control. - Tracking proposals for new implementations, bug reports, and feedback with a - fully featured [Issue Tracker](project/issues/index.md#issue-tracker). -- Organizing and prioritizing with [Issue Boards](project/issues/index.md#issue-board). + fully featured [Issue Tracker](project/issues/index.md#issues-list). +- Organizing and prioritizing with [Issue Boards](project/issues/index.md#issue-boards). - Reviewing code in [Merge Requests](project/merge_requests/index.md) with live-preview changes per branch with [Review Apps](../ci/review_apps/index.md). - Building, testing, and deploying with built-in [Continuous Integration](../ci/README.md). diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index ca19ce4d328..ad47b848bea 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -42,7 +42,7 @@ below. ## How it works The Issue Board builds on GitLab's existing -[issue tracking functionality](issues/index.md#issue-tracker) and +[issue tracking functionality](issues/index.md#issues-list) and leverages the power of [labels](labels.md) by utilizing them as lists of the scrum board. With the Issue Board you can have a different view of your issues while diff --git a/doc/user/project/issues/create_new_issue.md b/doc/user/project/issues/create_new_issue.md index 40040e44d64..9a147deecd4 100644 --- a/doc/user/project/issues/create_new_issue.md +++ b/doc/user/project/issues/create_new_issue.md @@ -7,7 +7,7 @@ the information illustrated on the image below. ![New issue from the issues list](img/new_issue.png) -Read through the [issues functionalities documentation](issues_functionalities.md#issues-functionalities) +Read through the [issue data and actions documentation](issue_data_and_actions.md#parts-of-an-issue) to understand these fields one by one. ## New issue from the Issue Tracker diff --git a/doc/user/project/issues/index.md b/doc/user/project/issues/index.md index 14e023207e8..c82b7f100d2 100644 --- a/doc/user/project/issues/index.md +++ b/doc/user/project/issues/index.md @@ -78,7 +78,7 @@ While you can view and manage the full detail of an issue at its URL, you can al On an issue’s page, you can view all aspects of the issue, and you can also modify them if you you have the necessary [permissions](../../permissions.md). -For more information, see the [Issue Functionalities](issues_functionalities.md) page. +For more information, see the [Issue Data and Actions](issue_data_and_actions.md) page. ### Issues list @@ -86,7 +86,7 @@ For more information, see the [Issue Functionalities](issues_functionalities.md) On the Issues List, you can view all issues in the current project, or from multiple projects when opening the Issues List from the higher-level group context. Filter the issue list by [any search query](../../search/index.md#issues-and-merge-requests-per-project) and/or specific metadata, such as label(s), assignees(s), status, and more. From this view, you can also make certain changes [in bulk](../bulk_editing.md) to the displayed issues. -For more information, see the [Issue Functioinalities](issues_functionalities.md) page. +For more information, see the [Issue Data and Actions](issue_data_and_actions.md) page. ### Issue boards @@ -123,7 +123,7 @@ For more information, see [Crosslinking issues](crosslinking_issues.md). - [Close an issue](closing_issues.md) - [Move an issue](moving_issues.md) - [Delete an issue](deleting_issues.md) -- [Create a merge request from an issue](issues_functionalities.md#18-new-merge-request) +- [Create a merge request from an issue](issue_data_and_actions.md#18-new-merge-request) ## Advanced issue management diff --git a/doc/user/project/issues/issue_data_and_actions.md b/doc/user/project/issues/issue_data_and_actions.md new file mode 100644 index 00000000000..653bd94e513 --- /dev/null +++ b/doc/user/project/issues/issue_data_and_actions.md @@ -0,0 +1,172 @@ +# Issue Data and Actions + +Please read through the [GitLab Issue Documentation](index.md) for an overview on GitLab Issues. + +## Parts of an Issue + +The image below illustrates what an issue looks like: + +![Issue view](img/issues_main_view_numbered.jpg) + +You can find all the information on that issue on one screen. + +### Issue screen + +An issue starts with its status (open or closed), followed by its author, +and includes many other functionalities, numbered in the image above to +explain what they mean, one by one. + +Many of the elements of the issue screen refresh automatically, such as the title and description, when they are changed by another user. +Comments and system notes also appear automatically in response to various actions and content updates. + +#### 1. New Issue, close issue, edit + +- New issue: create a new issue in the same project +- Close issue: close this issue +- Edit: edit the same fields available when you create an issue. + +#### 2. Todos + +- Add todo: add that issue to your [GitLab Todo](../../../workflow/todos.md) list +- Mark todo as done: mark that issue as done (reflects on the Todo list) + +#### 3. Assignee + +Whenever someone starts to work on an issue, it can be assigned +to that person. The assignee can be changed as much as needed. +The idea is that the assignee is responsible for that issue until +it's reassigned to someone else to take it from there. + +> **Tip:** +if a user is not member of that project, it can only be +assigned to them if they created the issue themselves. + +##### 3.1. Multiple Assignees **[STARTER]** + +Often multiple people work on the same issue together, +which can be especially difficult to track in large teams +where there is shared ownership of an issue. + +In [GitLab Starter](https://about.gitlab.com/pricing/), you can +assign multiple people to an issue. + +Learn more in the [Multiple Assignees documentation](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html). + +#### 4. Milestone + +- Select a [milestone](../milestones/index.md) to attribute that issue to. + +#### 5. Time Tracking + +- Estimate time: add an estimate of the time it will take to resolve the issue. +- Spend: add the time spent on the resolution of the issue + +> **Note:** +Both estimate and spend times are set via [GitLab Quick Actions](../quick_actions.md). + +Learn more in the [Time Tracking documentation](../../../workflow/time_tracking.md). + +#### 6. Due date + +When you work on a tight schedule, it's important to +have a way to set a deadline for implementations and for solving +problems. This can be done in the [due date](due_dates.md) element. Due dates +can be changed as many times as needed. + +#### 7. Labels + +Categorize issues by giving them [labels](../labels.md). They help to +organize workflows, and they enable you to work with the +[GitLab Issue Board](index.md#issue-boards). + +Group Labels, which allow you to use the same labels for a +group of projects, can be also given to issues. They work exactly the same, +but they are immediately available to all projects in the group. + +> **Tip:** +If a label doesn't exist yet, you can click **Edit**, and it opens a dropdown menu from which you can select **Create new label**. + +#### 8. Weight **[STARTER]** + +- Assign a weight. Larger values are used to indicate more effort is required to complete the issue. Only positive values or zero are allowed. + +Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workflow/issue_weight.html). + +#### 9. Participants + +- People involved in that issue (mentioned in the description or in the [discussion](../../discussions/index.md)). + +#### 10. Notifications + +- Subscribe: if you are not a participant of the discussion on that issue, but + want to receive notifications on each new input, subscribe to it. +- Unsubscribe: if you are receiving notifications on that issue but no + longer want to receive them, unsubscribe from it. + +Read more in the [notifications documentation](../../../workflow/notifications.md#issue--merge-request-events). + +#### 11. Reference + +- A quick "copy to clipboard" button for that issue's reference, `foo/bar#xxx`, where `foo` is the `username` or `groupname`, `bar` + is the `project-name`, and `xxx` is the issue number. + +#### 12. Title and description + +- Title: a plain text title for describing the subject of the issue. +- Description: a large text field which fully supports [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm), + to describe all the details of the issue. + +#### 13. Mentions + +- You can mention a user or a group present in your GitLab instance with + `@username` or `@groupname` and they will be notified via todos and email, unless + they have disabled all notifications in their profile settings. +- Mentions for yourself (the current logged in user), will be highlighted + in a different color, allowing you to easily see which comments involve you, + helping you focus on them quickly. + +To change your [notification settings](../../../workflow/notifications.md), navigate to +**Profile Settings** > **Notifications** > **Global notification level** +and choose your preference from the dropdown menu. + +> **Tip:** +Avoid mentioning `@all` in issues and merge requests, +as it sends an email notification +to all the members of that project's group, which can be +interpreted as spam. + +#### 14. Related Merge Requests + +- Any merge requests mentioned in that issue's description + or in the issue discussion thread. + +#### 15. Award emoji + +- Award an emoji to that issue. + +> **Tip:** +Posting "+1" as a comment in a thread spams all subscribed +participants of that issue. Awarding an emoji is a way to let them +know you like it without spamming them. + +#### 16. Thread + +- Comments: collaborate to that issue by posting comments in its thread. + These text fields also fully support + [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm). + +#### 17. Comment, start a discussion, or comment and close + +Once you write a comment, you can either: + +- Click "Comment" and your comment will be published. +- Click "Start discussion": start a thread within that issue's thread to discuss specific points. +- Click "Comment and close issue": post your comment and close that issue in one click. + +#### 18. New Merge Request + +- Create a new merge request (with a new source branch named after the issue) in one action. + The merge request will automatically inherit the milestone and labels of the issue. The merge + request will automatically close that issue when it is merged. +- Optionally, you can just create a [new branch](../repository/web_editor.md#create-a-new-branch-from-an-issue) + named after that issue. diff --git a/doc/user/project/issues/issues_functionalities.md b/doc/user/project/issues/issues_functionalities.md deleted file mode 100644 index 4a90ce613d9..00000000000 --- a/doc/user/project/issues/issues_functionalities.md +++ /dev/null @@ -1,172 +0,0 @@ -# Issue Data and Actions - -Please read through the [GitLab Issue Documentation](index.md) for an overview on GitLab Issues. - -## Parts of an Issue - -The image below illustrates what an issue looks like: - -![Issue view](img/issues_main_view_numbered.jpg) - -You can find all the information on that issue on one screen. - -### Issue screen - -An issue starts with its status (open or closed), followed by its author, -and includes many other functionalities, numbered in the image above to -explain what they mean, one by one. - -Many of the elements of the issue screen refresh automatically, such as the title and description, when they are changed by another user. -Comments and system notes also appear automatically in response to various actions and content updates. - -#### 1. New Issue, close issue, edit - -- New issue: create a new issue in the same project -- Close issue: close this issue -- Edit: edit the same fields available when you create an issue. - -#### 2. Todos - -- Add todo: add that issue to your [GitLab Todo](../../../workflow/todos.md) list -- Mark todo as done: mark that issue as done (reflects on the Todo list) - -#### 3. Assignee - -Whenever someone starts to work on an issue, it can be assigned -to that person. The assignee can be changed as much as needed. -The idea is that the assignee is responsible for that issue until -it's reassigned to someone else to take it from there. - -> **Tip:** -if a user is not member of that project, it can only be -assigned to them if they created the issue themselves. - -##### 3.1. Multiple Assignees **[STARTER]** - -Often multiple people work on the same issue together, -which can be especially difficult to track in large teams -where there is shared ownership of an issue. - -In [GitLab Starter](https://about.gitlab.com/pricing/), you can -assign multiple people to an issue. - -Learn more in the [Multiple Assignees documentation](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html). - -#### 4. Milestone - -- Select a [milestone](../milestones/index.md) to attribute that issue to. - -#### 5. Time Tracking - -- Estimate time: add an estimate of the time it will take to resolve the issue. -- Spend: add the time spent on the resolution of the issue - -> **Note:** -Both estimate and spend times are set via [GitLab Quick Actions](../quick_actions.md). - -Learn more in the [Time Tracking documentation](../../../workflow/time_tracking.md). - -#### 6. Due date - -When you work on a tight schedule, it's important to -have a way to set a deadline for implementations and for solving -problems. This can be done in the [due date](due_dates.md) element. Due dates -can be changed as many times as needed. - -#### 7. Labels - -Categorize issues by giving them [labels](../labels.md). They help to -organize workflows, and they enable you to work with the -[GitLab Issue Board](index.md#issue-board). - -Group Labels, which allow you to use the same labels for a -group of projects, can be also given to issues. They work exactly the same, -but they are immediately available to all projects in the group. - -> **Tip:** -If a label doesn't exist yet, you can click **Edit**, and it opens a dropdown menu from which you can select **Create new label**. - -#### 8. Weight **[STARTER]** - -- Assign a weight. Larger values are used to indicate more effort is required to complete the issue. Only positive values or zero are allowed. - -Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workflow/issue_weight.html). - -#### 9. Participants - -- People involved in that issue (mentioned in the description or in the [discussion](../../discussions/index.md)). - -#### 10. Notifications - -- Subscribe: if you are not a participant of the discussion on that issue, but - want to receive notifications on each new input, subscribe to it. -- Unsubscribe: if you are receiving notifications on that issue but no - longer want to receive them, unsubscribe from it. - -Read more in the [notifications documentation](../../../workflow/notifications.md#issue--merge-request-events). - -#### 11. Reference - -- A quick "copy to clipboard" button for that issue's reference, `foo/bar#xxx`, where `foo` is the `username` or `groupname`, `bar` - is the `project-name`, and `xxx` is the issue number. - -#### 12. Title and description - -- Title: a plain text title for describing the subject of the issue. -- Description: a large text field which fully supports [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm), - to describe all the details of the issue. - -#### 13. Mentions - -- You can mention a user or a group present in your GitLab instance with - `@username` or `@groupname` and they will be notified via todos and email, unless - they have disabled all notifications in their profile settings. -- Mentions for yourself (the current logged in user), will be highlighted - in a different color, allowing you to easily see which comments involve you, - helping you focus on them quickly. - -To change your [notification settings](../../../workflow/notifications.md), navigate to -**Profile Settings** > **Notifications** > **Global notification level** -and choose your preference from the dropdown menu. - -> **Tip:** -Avoid mentioning `@all` in issues and merge requests, -as it sends an email notification -to all the members of that project's group, which can be -interpreted as spam. - -#### 14. Related Merge Requests - -- Any merge requests mentioned in that issue's description - or in the issue discussion thread. - -#### 15. Award emoji - -- Award an emoji to that issue. - -> **Tip:** -Posting "+1" as a comment in a thread spams all subscribed -participants of that issue. Awarding an emoji is a way to let them -know you like it without spamming them. - -#### 16. Thread - -- Comments: collaborate to that issue by posting comments in its thread. - These text fields also fully support - [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm). - -#### 17. Comment, start a discussion, or comment and close - -Once you write a comment, you can either: - -- Click "Comment" and your comment will be published. -- Click "Start discussion": start a thread within that issue's thread to discuss specific points. -- Click "Comment and close issue": post your comment and close that issue in one click. - -#### 18. New Merge Request - -- Create a new merge request (with a new source branch named after the issue) in one action. - The merge request will automatically inherit the milestone and labels of the issue. The merge - request will automatically close that issue when it is merged. -- Optionally, you can just create a [new branch](../repository/web_editor.md#create-a-new-branch-from-an-issue) - named after that issue. -- cgit v1.2.3 From 81545819751045aab012a864b833f75239f30c71 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Tue, 9 Apr 2019 10:56:36 +0000 Subject: Docs: Add examples for linking to header IDs --- doc/user/markdown.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 8239742969a..9891a43aa61 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -578,11 +578,11 @@ Alt-H2 ------ ``` -### Header IDs and links +#### Header IDs and links -All Markdown-rendered headers automatically get IDs, except in comments. +All Markdown-rendered headers automatically get IDs, which can be linked to, except in comments. -On hover, a link to those IDs becomes visible to make it easier to copy the link to the header to give it to someone else. +On hover, a link to those IDs becomes visible to make it easier to copy the link to the header to use it somewhere else. The IDs are generated from the content of the header according to the following rules: @@ -609,8 +609,8 @@ Would generate the following link IDs: 1. `this-header-has-spaces-in-it` 1. `this-header-has-a-in-it` 1. `this-header-has-unicode-in-it-한글` -1. `this-header-has-spaces-in-it` 1. `this-header-has-spaces-in-it-1` +1. `this-header-has-spaces-in-it-2` 1. `this-header-has-3-5-in-it-and-parentheses` Note that the Emoji processing happens before the header IDs are generated, so the Emoji is converted to an image which then gets removed from the ID. @@ -715,25 +715,25 @@ Becomes: There are two ways to create links, inline-style and reference-style. - [I'm an inline-style link](https://www.google.com) - - [I'm a reference-style link][Arbitrary case-insensitive reference text] - - [I'm a relative reference to a repository file](LICENSE) - - [I am an absolute reference within the repository](/doc/user/markdown.md) - - [I link to the Milestones page](/../milestones) +```markdown +[I'm an inline-style link](https://www.google.com) +[I'm a link to a repository file in the same directory](index.md) +[I am an absolute reference within the repository](/doc/user/index.md) +[I'm a relative link to the Milestones page](../README.md) - [You can use numbers for reference-style link definitions][1] +[I link to a section on a different markdown page, using a header ID](index.md#overview) +[I link to a different section on the same page, using the header ID](#header-ids-and-links) - Or leave it empty and use the [link text itself][] +[I'm a reference-style link][Arbitrary case-insensitive reference text] +[You can use numbers for reference-style link definitions][1] +Or leave it empty and use the [link text itself][] - Some text to show that the reference links can follow later. +Some text to show that the reference links can follow later. - [arbitrary case-insensitive reference text]: https://www.mozilla.org - [1]: http://slashdot.org - [link text itself]: https://www.reddit.com +[arbitrary case-insensitive reference text]: https://www.mozilla.org +[1]: http://slashdot.org +[link text itself]: https://www.reddit.com +``` >**Note:** Relative links do not allow referencing project files in a wiki page or wiki -- cgit v1.2.3 From d69d29011cf9fe06e50a2c7d65b1ea88ea2d41d5 Mon Sep 17 00:00:00 2001 From: Vladimir Shushlin Date: Tue, 9 Apr 2019 17:46:29 +0000 Subject: Mark unverified pages domains for removal Set pages_domain.remove_at when disabling it Add specs for marking pages domain for removal Notify user that domain is being removed Add documentation --- doc/user/project/pages/getting_started_part_three.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index fa7ab19ece6..2839f04ae59 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -115,6 +115,8 @@ If using a [DNS A record](#dns-a-record), you can place the TXT record directly under the domain. If using a [DNS CNAME record](#dns-cname-record), the two record types won't co-exist, so you need to place the TXT record in a special subdomain of its own. +If the domain cannot be verified for 7 days, it will be removed from the GitLab project. + #### TL;DR For root domains (`domain.com`), set a DNS `A` record and verify your -- cgit v1.2.3 From c239bfcb1750794ec1bf8172dfa380dea64fe4c1 Mon Sep 17 00:00:00 2001 From: Dylan Griffith Date: Wed, 10 Apr 2019 06:38:27 +0000 Subject: Add more info logging to cluster apps Log events so that it's easy to see when different requests are starting. --- doc/user/project/clusters/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 141fe488357..1983513174c 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -573,7 +573,7 @@ However, sometimes GitLab can not create them. In such instances, your job will This job failed because the necessary resources were not successfully created. ``` -To find the cause of this error when creating a namespace and service account, check the [logs](../../../administration/logs.md#sidekiqlog). +To find the cause of this error when creating a namespace and service account, check the [logs](../../../administration/logs.md#kuberneteslog). Common reasons for failure include: -- cgit v1.2.3 From 73f662f6bfcddbe8e4d6edfa4371ff17605783a3 Mon Sep 17 00:00:00 2001 From: knod <3197142-knod@users.noreply.gitlab.com> Date: Wed, 10 Apr 2019 08:30:35 +0000 Subject: Adds details about adding links to external accounts. Fixes #54884. --- doc/user/profile/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'doc/user') diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md index b216b9f255c..61a30a775b0 100644 --- a/doc/user/profile/index.md +++ b/doc/user/profile/index.md @@ -33,6 +33,7 @@ From there, you can: - Set a [custom status](#current-status) for your profile - Manage your [commit email](#commit-email) for your profile - Manage [2FA](account/two_factor_authentication.md) +- Add details of [external accounts](#add-details-of-external-accounts). - Change your username and [delete your account](account/delete_account.md) - Manage applications that can [use GitLab as an OAuth provider](../../integration/oauth_provider.md#introduction-to-oauth) @@ -92,6 +93,16 @@ To enable private profile: NOTE: **Note:** You and GitLab admins can see your the abovementioned information on your profile even if it is private. +## Add details of external accounts + +GitLab allows you to add links to certain other external accounts you might have, like Skype and Twitter. They can help other users connect with you on other platforms. + +To add links to other accounts: + +1. Navigate to your **User Settings > Profile**. +1. In the **Main settings** section, locate and fill out fields for links to external accounts like Skype and Twitter. +1. Click the **Update profile settings** button. + ## Private contributions > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/14078) in GitLab 11.3. -- cgit v1.2.3 From cd9ae6bb820ae8ec98cce38d958298e081860dab Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Tue, 9 Apr 2019 14:06:36 +0100 Subject: Revert "Remove HipChat integration from GitLab" This reverts commit a5378665a1dc0b9c8dc3a4fa279a0eb78aac5aac. --- doc/user/index.md | 4 +- doc/user/project/integrations/hipchat.md | 53 +++++++++++++++++++++++ doc/user/project/integrations/project_services.md | 1 + 3 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 doc/user/project/integrations/hipchat.md (limited to 'doc/user') diff --git a/doc/user/index.md b/doc/user/index.md index 626246447f3..8164b31c37e 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -65,9 +65,7 @@ With GitLab Enterprise Edition, you can also: - View the current health and status of each CI environment running on Kubernetes with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html). - Leverage continuous delivery method with [Canary Deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html). -You can also [integrate](project/integrations/project_services.md) GitLab with -numerous third-party applications, such as Mattermost, Microsoft Teams, Trello, -Slack, Bamboo CI, JIRA, and a lot more. +You can also [integrate](project/integrations/project_services.md) GitLab with numerous third-party applications, such as Mattermost, Microsoft Teams, HipChat, Trello, Slack, Bamboo CI, JIRA, and a lot more. ## Projects diff --git a/doc/user/project/integrations/hipchat.md b/doc/user/project/integrations/hipchat.md new file mode 100644 index 00000000000..0fd847d415f --- /dev/null +++ b/doc/user/project/integrations/hipchat.md @@ -0,0 +1,53 @@ +# Atlassian HipChat + +GitLab provides a way to send HipChat notifications upon a number of events, +such as when a user pushes code, creates a branch or tag, adds a comment, and +creates a merge request. + +## Setup + +GitLab requires the use of a HipChat v2 API token to work. v1 tokens are +not supported at this time. Note the differences between v1 and v2 tokens: + +HipChat v1 API (legacy) supports "API Auth Tokens" in the Group API menu. A v1 +token is allowed to send messages to *any* room. + +HipChat v2 API has tokens that are can be created using the Integrations tab +in the Group or Room admin page. By design, these are lightweight tokens that +allow GitLab to send messages only to *one* room. + +### Complete these steps in HipChat + +1. Go to: +1. Click on "Group Admin" -> "Integrations". +1. Find "Build Your Own!" and click "Create". +1. Select the desired room, name the integration "GitLab", and click "Create". +1. In the "Send messages to this room by posting this URL" column, you should +see a URL in the format: + +``` +https://api.hipchat.com/v2/room//notification?auth_token= +``` + +HipChat is now ready to accept messages from GitLab. Next, set up the HipChat +service in GitLab. + +### Complete these steps in GitLab + +1. Navigate to the project you want to configure for notifications. +1. Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +1. Click "HipChat". +1. Select the "Active" checkbox. +1. Insert the `token` field from the URL into the `Token` field on the Web page. +1. Insert the `room` field from the URL into the `Room` field on the Web page. +1. Save or optionally click "Test Settings". + +## Troubleshooting + +If you do not see notifications, make sure you are using a HipChat v2 API +token, not a v1 token. + +Note that the v2 token is tied to a specific room. If you want to be able to +specify arbitrary rooms, you can create an API token for a specific user in +HipChat under "Account settings" and "API access". Use the `XXX` value under +`auth_token=XXX`. diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index e2f23827360..42c7824a125 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -36,6 +36,7 @@ Click on the service links to see further configuration instructions and details | External Wiki | Replaces the link to the internal wiki with a link to an external wiki | | Flowdock | Flowdock is a collaboration web app for technical teams | | [Hangouts Chat](hangouts_chat.md) | Receive events notifications in Google Hangouts Chat | +| [HipChat](hipchat.md) | Private group chat and IM | | [Irker (IRC gateway)](irker.md) | Send IRC messages, on update, to a list of recipients through an Irker gateway | | [JIRA](jira.md) | JIRA issue tracker | | JetBrains TeamCity CI | A continuous integration and build server | -- cgit v1.2.3 From b7529f2a590bc1ded32e16592159043a7eac9ed9 Mon Sep 17 00:00:00 2001 From: Raphael Das Gupta Date: Wed, 10 Apr 2019 15:02:58 +0000 Subject: Change reason for waiting Apparently one has to wait, but DNS can't be involved at this step. (As the DNS records had already to be ready and presumably propagated for the ACME challenge to work.) So let's assume it's the content delivery network serving the certificate that needs some time here. --- doc/user/project/pages/lets_encrypt_for_gitlab_pages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md index 5ad500c4d20..ea22f3e905b 100644 --- a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md +++ b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md @@ -141,7 +141,7 @@ Now that your certificate has been issued, let's add it to your Pages site: ``` 1. Click **Save changes** to apply them to your website. -1. Wait a few minutes for DNS propagation. +1. Wait a few minutes for the configuration changes to take effect. 1. Visit your website at `https://example.com`. To force `https` connections on your site, navigate to your -- cgit v1.2.3 From 171818df0a72097aa1a804c8213666b3f66b0966 Mon Sep 17 00:00:00 2001 From: Patrick Bajao Date: Thu, 11 Apr 2019 15:49:53 -0800 Subject: Revert "Merge branch '24704-download-repository-path' into 'master'" This reverts commit 6c75bd015cba181f028bc87c396c3d8e43b5dc3e, reversing changes made to 1be7f5aaa38aba79843eae8835be6c99c025e982. --- .../project/repository/img/download_source_code.png | Bin 61467 -> 0 bytes doc/user/project/repository/index.md | 20 -------------------- 2 files changed, 20 deletions(-) delete mode 100644 doc/user/project/repository/img/download_source_code.png (limited to 'doc/user') diff --git a/doc/user/project/repository/img/download_source_code.png b/doc/user/project/repository/img/download_source_code.png deleted file mode 100644 index 17f2cb4b3e8..00000000000 Binary files a/doc/user/project/repository/img/download_source_code.png and /dev/null differ diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index 718566a539f..22d912cd9d1 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -241,24 +241,4 @@ Projects that contain a `.xcodeproj` or `.xcworkspace` directory can now be clon in Xcode using the new **Open in Xcode** button, located next to the Git URL used for cloning your project. The button is only shown on macOS. -## Download Source Code - -Source code stored in the repository can be downloaded. - -By clicking the download icon, a dropdown will open with links to download the following: - -![Download source code](img/download_source_code.png) - -- **Source Code:** - This allows users to download the source code on branch they're currently - viewing. Available zip, tar, tar.gz and tar.bz2. -- **Directory:** - > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.10 - - Only shows up when viewing a sub-directory. This allows users to download - the specific directory they're currently viewing. Also available in zip, tar, - tar.gz and tar.bz2. -- **Artifacts:** - This allows users to download the artifacts of the latest CI build. - [jupyter]: https://jupyter.org -- cgit v1.2.3 From 4dfd4d2744f3effcce59b498e9d56a559fc2a6f3 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Thu, 11 Apr 2019 10:58:06 +0000 Subject: Refactor intro guide Remove redundancies: - Domains - User/group/project sites --- doc/user/group/subgroups/index.md | 2 +- doc/user/project/pages/getting_started_part_one.md | 89 +++--- .../project/pages/getting_started_part_three.md | 3 - doc/user/project/pages/getting_started_part_two.md | 4 +- doc/user/project/pages/img/pages_remove.png | Bin 3777 -> 0 bytes doc/user/project/pages/img/remove_pages.png | Bin 0 -> 58035 bytes doc/user/project/pages/index.md | 9 +- doc/user/project/pages/introduction.md | 352 +++------------------ 8 files changed, 92 insertions(+), 367 deletions(-) delete mode 100644 doc/user/project/pages/img/pages_remove.png create mode 100644 doc/user/project/pages/img/remove_pages.png (limited to 'doc/user') diff --git a/doc/user/group/subgroups/index.md b/doc/user/group/subgroups/index.md index 3cecefe11f5..4e81e28a45a 100644 --- a/doc/user/group/subgroups/index.md +++ b/doc/user/group/subgroups/index.md @@ -167,7 +167,7 @@ Here's a list of what you can't do with subgroups: - [GitLab Pages](../../project/pages/index.md) supports projects hosted under a subgroup, but not subgroup websites. That means that only the highest-level group supports - [group websites](../../project/pages/introduction.html#user-or-group-pages), + [group websites](../../project/pages/getting_started_part_one.md#gitlab-pages-domain-names), although you can have project websites under a subgroup. - It is not possible to share a project with a group that's an ancestor of the group the project is in. That means you can only share as you walk down diff --git a/doc/user/project/pages/getting_started_part_one.md b/doc/user/project/pages/getting_started_part_one.md index f1e2771dcb9..7dbf58b5715 100644 --- a/doc/user/project/pages/getting_started_part_one.md +++ b/doc/user/project/pages/getting_started_part_one.md @@ -1,42 +1,11 @@ --- last_updated: 2018-02-16 -author: Marcia Ramos -author_gitlab: marcia -level: beginner -article_type: user guide -date: 2017-02-22 --- # Static sites and GitLab Pages domains -This document is the beginning of a comprehensive guide, made for those who want to -publish a website with GitLab Pages but aren't familiar with -the entire process involved. - -This [first document](#what-you-need-to-know-before-getting-started) of this series will present you to the concepts of -static sites, and go over how the default Pages domains work. - -The [second document](getting_started_part_two.md) covers how to get started with GitLab Pages: deploy -a website from a forked project or create a new one from scratch. - -The [third document](getting_started_part_three.md) will show you how to set up a custom domain or subdomain -to your site already deployed. - -The [fourth document](getting_started_part_four.md) will show you how to create and tweak GitLab CI for -GitLab Pages. - -To **enable** GitLab Pages for GitLab CE (Community Edition) -and GitLab EE (Enterprise Edition), please read the -[admin documentation](https://docs.gitlab.com/ce/administration/pages/index.html), -and/or watch this [video tutorial](https://youtu.be/dD8c7WNcc6s). - ->**Note:** -For this guide, we assume you already have GitLab Pages -server up and running for your GitLab instance. - -## What you need to know before getting started - -Before we begin, let's understand a few concepts first. +On this docucument, learn how to name your project for GitLab Pages +according to your intended website's URL. ## Static sites @@ -48,20 +17,10 @@ CSS, and JS, or use a [Static Site Generator (SSG)](https://www.staticgen.com/) to simplify your code and build the static site for you, which is highly recommendable and much faster than hardcoding. -### Further reading - -- Read through this technical overview on [Static versus Dynamic Websites](https://about.gitlab.com/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/) -- Understand [how modern Static Site Generators work](https://about.gitlab.com/2016/06/10/ssg-overview-gitlab-pages-part-2/) and what you can add to your static site -- You can use [any SSG with GitLab Pages](https://about.gitlab.com/2016/06/17/ssg-overview-gitlab-pages-part-3-examples-ci/) -- Fork an [example project](https://gitlab.com/pages) to build your website based upon - -## GitLab Pages domain +See the [further reading](#further-reading) section below for +references on static site concepts. -If you set up a GitLab Pages project on GitLab.com, -it will automatically be accessible under a -[subdomain of `namespace.gitlab.io`](introduction.md#gitlab-pages-on-gitlabcom). -The `namespace` is defined by your username on GitLab.com, -or the group name you created this project under. +## GitLab Pages domain names >**Note:** If you use your own GitLab instance to deploy your @@ -70,11 +29,32 @@ Pages wildcard domain. This guide is valid for any GitLab instance, you just need to replace Pages wildcard domain on GitLab.com (`*.gitlab.io`) with your own. -Learn more about [namespaces](../../group/index.md#namespaces). +If you set up a GitLab Pages project on GitLab, +it will automatically be accessible under a +subdomain of `namespace.example.io`. +The [`namespace`](../../group/index.md#namespaces) +is defined by your username on GitLab.com, +or the group name you created this project under. +For GitLab self-managed instances, replace `example.io` +with your instance's Pages domain. For GitLab.com, +Pages domains are `*.gitlab.io`. + +| Type of GitLab Pages | The name of the project created in GitLab | Website URL | +| -------------------- | ------------ | ----------- | +| User pages | `username.example.io` | `http(s)://username.example.io` | +| Group pages | `groupname.example.io` | `http(s)://groupname.example.io` | +| Project pages owned by a user | `projectname` | `http(s)://username.example.io/projectname` | +| Project pages owned by a group | `projectname` | `http(s)://groupname.example.io/projectname`| +| Project pages owned by a subgroup | `subgroup/projectname` | `http(s)://groupname.example.io/subgroup/projectname`| + +CAUTION: **Warning:** +There are some known [limitations](introduction.md#limitations) +regarding namespaces served under the general domain name and HTTPS. +Make sure to read that section. -### Practical examples +To understand Pages domains clearly, read the examples below. -#### Project Websites +### Project website examples - You created a project called `blog` under your username `john`, therefore your project URL is `https://gitlab.com/john/blog/`. @@ -92,7 +72,7 @@ Learn more about [namespaces](../../group/index.md#namespaces). GitLab Pages for this project, the site will live under `https://engineering.gitlab.io/docs/workflows`. -#### User and Group Websites +### User and Group website examples - Under your username, `john`, you created a project called `john.gitlab.io`. Your project URL will be `https://gitlab.com/john/john.gitlab.io`. @@ -103,8 +83,6 @@ Learn more about [namespaces](../../group/index.md#namespaces). Once you enable GitLab Pages for your project, your website will be published under `https://websites.gitlab.io`. -> Support for subgroup project's websites was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30548) in GitLab 11.8. - **General example:** - On GitLab.com, a project site will always be available under @@ -115,3 +93,10 @@ Learn more about [namespaces](../../group/index.md#namespaces). Pages server domain. Ask your sysadmin for this information. _Read on about [Projects for GitLab Pages and URL structure](getting_started_part_two.md)._ + +### Further reading + +- Read through this technical overview on [Static versus Dynamic Websites](https://about.gitlab.com/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/) +- Understand [how modern Static Site Generators work](https://about.gitlab.com/2016/06/10/ssg-overview-gitlab-pages-part-2/) and what you can add to your static site +- You can use [any SSG with GitLab Pages](https://about.gitlab.com/2016/06/17/ssg-overview-gitlab-pages-part-3-examples-ci/) +- Fork an [example project](https://gitlab.com/pages) to build your website based upon \ No newline at end of file diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index 2839f04ae59..9f2bc281f85 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -177,9 +177,6 @@ Note that [DNS propagation may take some time (up to 24h)](http://www.inmotionho although it's usually a matter of minutes to complete. Until it does, verification will fail and attempts to visit your domain will respond with a 404. -Read through the [general documentation on GitLab Pages](introduction.md#add-a-custom-domain-to-your-pages-website) to learn more about adding -custom domains to GitLab Pages sites. - ### Redirecting `www.domain.com` to `domain.com` with Cloudflare If you use Cloudflare, you can redirect `www` to `domain.com` without the need of adding both diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index 901fb226cda..1034ba1733d 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -104,8 +104,8 @@ from the Pages group into a **user/group** website, you'll need to: ### Create a project from scratch 1. From your **Project**'s **[Dashboard](https://gitlab.com/dashboard/projects)**, - click **New project**, and name it considering the - [practical examples](getting_started_part_one.md#practical-examples). + click **New project**, and name it according to the + [Pages domain names](getting_started_part_one.md#gitlab-pages-domain-names). 1. Clone it to your local computer, add your website files to your project, add, commit and push to GitLab. 1. From the your **Project**'s page, click **Set up CI/CD**: diff --git a/doc/user/project/pages/img/pages_remove.png b/doc/user/project/pages/img/pages_remove.png deleted file mode 100644 index 10299880247..00000000000 Binary files a/doc/user/project/pages/img/pages_remove.png and /dev/null differ diff --git a/doc/user/project/pages/img/remove_pages.png b/doc/user/project/pages/img/remove_pages.png new file mode 100644 index 00000000000..60f76f15f93 Binary files /dev/null and b/doc/user/project/pages/img/remove_pages.png differ diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index 885df9f0850..0cd47c65d76 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -5,6 +5,11 @@ last_updated: 2019-03-05 # GitLab Pages +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/80) in GitLab Enterprise Edition 8.3. +> - Custom CNAMEs with TLS support were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173) in GitLab Enterprise Edition 8.5. +> - [Ported](https://gitlab.com/gitlab-org/gitlab-ce/issues/14605) to GitLab Community Edition in GitLab 8.17. +> Support for subgroup project's websites was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30548) in GitLab 11.8. + **GitLab Pages is a feature that allows you to publish static websites directly from a repository in GitLab.** @@ -83,7 +88,7 @@ that will build your site and publish it to the GitLab Pages server. The sequenc scripts that GitLab CI/CD runs to accomplish this task is created from a file named `.gitlab-ci.yml`, which you can [create and modify](getting_started_part_four.md) at will. -You can either use GitLab's [default domain for GitLab Pages websites](getting_started_part_one.md#gitlab-pages-domain), +You can either use GitLab's [default domain for GitLab Pages websites](getting_started_part_one.md#gitlab-pages-domain-names), `*.gitlab.io`, or your own domain (`example.com`). In that case, you'll need admin access to your domain's registrar (or control panel) to set it up with Pages. @@ -128,7 +133,7 @@ To learn more about GitLab Pages, read the following tutorials: - [Projects for GitLab Pages and URL structure](getting_started_part_two.md): Forking projects and creating new ones from scratch, understanding URLs structure and baseurls - [GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md): How to add custom domains and subdomains to your website, configure DNS records and SSL/TLS certificates - [Creating and Tweaking GitLab CI/CD for GitLab Pages](getting_started_part_four.md): Understand how to create your own `.gitlab-ci.yml` for your site -- [Technical aspects, custom 404 pages, limitations](introduction.md) +- [Exploring GitLab Pages](introduction.md): Technical aspects, specific configuration options, custom 404 pages, limitations ### GitLab Pages with Static Site Generators (SSGs) diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index 39f14a1126f..a14a446aead 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -1,178 +1,44 @@ # Exploring GitLab Pages -> **Notes:** -> -> - This feature was [introduced][ee-80] in GitLab EE 8.3. -> - Custom CNAMEs with TLS support were [introduced][ee-173] in GitLab EE 8.5. -> - GitLab Pages [was ported][ce-14605] to Community Edition in GitLab 8.17. -> - This document is about the user guide. To learn how to enable GitLab Pages -> across your GitLab instance, visit the [administrator documentation](../../../administration/pages/index.md). +This document is a user guide to explore the options and settings +GitLab Pages offers. -With GitLab Pages you can host for free your static websites on GitLab. -Combined with the power of [GitLab CI] and the help of [GitLab Runner] you can -deploy static pages for your individual projects, your user or your group. +To familiarize yourself with GitLab Pages first: -Read [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlabcom) for specific -information, if you are using GitLab.com to host your website. +- Read an [introduction to GitLab Pages](index.md#overview). +- Learn [how to get started with Pages](index.md#getting-started). +- Learn how to enable GitLab Pages +across your GitLab instance on the [administrator documentation](../../../administration/pages/index.md). -## Getting started with GitLab Pages domains - -> **Note:** -> In the rest of this document we will assume that the general domain name that -> is used for GitLab Pages is `example.io`. - -In general there are two types of pages one might create: - -- Pages per user (`username.example.io`) or per group (`groupname.example.io`) -- Pages per project (`username.example.io/projectname` or `groupname.example.io/projectname`) - -In GitLab, usernames and groupnames are unique and we often refer to them -as [namespaces](../../group/index.md#namespaces). There can be only one namespace -in a GitLab instance. Below you -can see the connection between the type of GitLab Pages, what the project name -that is created on GitLab looks like and the website URL it will be ultimately -be served on. - -| Type of GitLab Pages | The name of the project created in GitLab | Website URL | -| -------------------- | ------------ | ----------- | -| User pages | `username.example.io` | `http(s)://username.example.io` | -| Group pages | `groupname.example.io` | `http(s)://groupname.example.io` | -| Project pages owned by a user | `projectname` | `http(s)://username.example.io/projectname` | -| Project pages owned by a group | `projectname` | `http(s)://groupname.example.io/projectname`| -| Project pages owned by a subgroup | `subgroup/projectname` | `http(s)://groupname.example.io/subgroup/projectname`| - -> **Warning:** -> There are some known [limitations](#limitations) regarding namespaces served -> under the general domain name and HTTPS. Make sure to read that section. - -### GitLab Pages requirements +## Pages requirements In brief, this is what you need to upload your website in GitLab Pages: -1. Find out the general domain name that is used for GitLab Pages - (ask your administrator). This is very important, so you should first make - sure you get that right. -1. Create a project -1. Push a [`.gitlab-ci.yml` file][yaml] in the root directory - of your repository with a specific job named [`pages`][pages] -1. Set up a GitLab Runner to build your website - -> **Note:** -If [shared runners](../../../ci/runners/README.md) are enabled by your GitLab -administrator, you should be able to use them instead of bringing your own. - -### User or group Pages - -For user and group pages, the name of the project should be specific to the -username or groupname and the general domain name that is used for GitLab Pages. -Head over your GitLab instance that supports GitLab Pages and create a -repository named `username.example.io`, where `username` is your username on -GitLab. If the first part of the project name doesn't match exactly your -username, it won’t work, so make sure to get it right. - -To create a group page, the steps are the same like when creating a website for -users. Just make sure that you are creating the project within the group's -namespace. - -![Create a user-based pages project](img/pages_create_user_page.png) - ---- - -After you push some static content to your repository and GitLab Runner uploads -the artifacts to GitLab CI, you will be able to access your website under -`http(s)://username.example.io`. Keep reading to find out how. - ->**Note:** -If your username/groupname contains a dot, for example `foo.bar`, you will not -be able to use the wildcard domain HTTPS, read more at [limitations](#limitations). +1. Domain of the instance: domain name that is used for GitLab Pages +(ask your administrator). +1. GitLab CI/CD: a `.gitlab-ci.yml` file with a specific job named [`pages`][pages] in the root directory of your repository. +1. A directory called `public` in your site's repo containing the content +to be published. +1. GitLab Runner enabled for the project. -### Project Pages - -GitLab Pages for projects can be created by both user and group accounts. -The steps to create a project page for a user or a group are identical: - -1. Create a new project -1. Push a [`.gitlab-ci.yml` file][yaml] in the root directory - of your repository with a specific job named [`pages`][pages]. -1. Set up a GitLab Runner to build your website - -A user's project will be served under `http(s)://username.example.io/projectname` -whereas a group's project under `http(s)://groupname.example.io/projectname`. - -For practical examples for group and project Pages, read through the guide -[GitLab Pages from A to Z: Part 1 - Static sites and GitLab Pages domains](getting_started_part_one.md#practical-examples). - -## Quick Start - -Read through [GitLab Pages Quick Start Guide][pages-quick] or watch the video tutorial on -[how to publish a website with GitLab Pages on GitLab.com from a forked project][video-pages-fork]. - -See also [All you Need to Know About GitLab Pages][pages-index-guide] for a list with all the resources we have for GitLab Pages. - -### Explore the contents of `.gitlab-ci.yml` - -The key thing about GitLab Pages is the `.gitlab-ci.yml` file, something that -gives you absolute control over the build process. You can actually watch your -website being built live by following the CI job traces. - -For a simplified user guide on setting up GitLab CI/CD for Pages, read through -the article [GitLab Pages from A to Z: Part 4 - Creating and Tweaking `.gitlab-ci.yml` for GitLab Pages](getting_started_part_four.md) - -> **Note:** -> Before reading this section, make sure you familiarize yourself with GitLab CI -> and the specific syntax of[`.gitlab-ci.yml`][yaml] by -> following our [quick start guide]. - -To make use of GitLab Pages, the contents of `.gitlab-ci.yml` must follow the -rules below: - -1. A special job named [`pages`][pages] must be defined -1. Any static content which will be served by GitLab Pages must be placed under - a `public/` directory -1. `artifacts` with a path to the `public/` directory must be defined +## GitLab Pages on GitLab.com -In its simplest form, `.gitlab-ci.yml` looks like: +If you are using [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlabcom) to host your website, then: -```yaml -pages: - script: - - my_commands - artifacts: - paths: - - public -``` +- The domain name for GitLab Pages on GitLab.com is `gitlab.io`. +- Custom domains and TLS support are enabled. +- Shared runners are enabled by default, provided for free and can be used to + build your website. If you want you can still bring your own Runner. -When the Runner reaches to build the `pages` job, it executes whatever is -defined in the `script` parameter and if the job completes with a non-zero -exit status, it then uploads the `public/` directory to GitLab Pages. +## Example projects -The `public/` directory should contain all the static content of your website. -Depending on how you plan to publish your website, the steps defined in the -[`script` parameter](../../../ci/yaml/README.md#script) may differ. +Visit the [GitLab Pages group](https://gitlab.com/groups/pages) for a complete list of example projects. Contributions are very welcome. -Be aware that Pages are by default branch/tag agnostic and their deployment -relies solely on what you specify in `.gitlab-ci.yml`. If you don't limit the -`pages` job with the [`only` parameter](../../../ci/yaml/README.md#onlyexcept-basic), -whenever a new commit is pushed to whatever branch or tag, the Pages will be -overwritten. In the example below, we limit the Pages to be deployed whenever -a commit is pushed only on the `master` branch: +## Specific configuration options for Pages -```yaml -pages: - script: - - my_commands - artifacts: - paths: - - public - only: - - master -``` - -We then tell the Runner to treat the `public/` directory as `artifacts` and -upload it to GitLab. And since all these parameters were all under a `pages` -job, the contents of the `public` directory will be served by GitLab Pages. +Learn how to set up GitLab CI/CD for specific use cases. -#### How `.gitlab-ci.yml` looks like when the static content is in your repository +### `.gitlab-ci.yml` for plain HTML websites Supposed your repository contained the following files: @@ -201,55 +67,11 @@ pages: - master ``` -#### How `.gitlab-ci.yml` looks like when using a static generator - -In general, GitLab Pages support any kind of [static site generator][staticgen], -since `.gitlab-ci.yml` can be configured to run any possible command. - -In the root directory of your Git repository, place the source files of your -favorite static generator. Then provide a `.gitlab-ci.yml` file which is -specific to your static generator. +### `.gitlab-ci.yml` for a static site generator -The example below, uses [Jekyll] to build the static site: +See this document for a [step-by-step guide](getting_started_part_four.md). -```yaml -image: ruby:2.1 # the script will run in Ruby 2.1 using the Docker image ruby:2.1 - -pages: # the build job must be named pages - script: - - gem install jekyll # we install jekyll - - jekyll build -d public/ # we tell jekyll to build the site for us - artifacts: - paths: - - public # this is where the site will live and the Runner uploads it in GitLab - only: - - master # this script is only affecting the master branch -``` - -Here, we used the Docker executor and in the first line we specified the base -image against which our jobs will run. - -You have to make sure that the generated static files are ultimately placed -under the `public` directory, that's why in the `script` section we run the -`jekyll` command that jobs the website and puts all content in the `public/` -directory. Depending on the static generator of your choice, this command will -differ. Search in the documentation of the static generator you will use if -there is an option to explicitly set the output directory. If there is not -such an option, you can always add one more line under `script` to rename the -resulting directory in `public/`. - -We then tell the Runner to treat the `public/` directory as `artifacts` and -upload it to GitLab. - ---- - -See the [jekyll example project][pages-jekyll] to better understand how this -works. - -For a list of Pages projects, see the [example projects](#example-projects) to -get you started. - -#### How to set up GitLab Pages in a repository where there's also actual code +### `.gitlab-ci.yml` for a repository where there's also actual code Remember that GitLab Pages are by default branch/tag agnostic and their deployment relies solely on what you specify in `.gitlab-ci.yml`. You can limit @@ -294,28 +116,6 @@ also includes `.gitlab-ci.yml`. [jekyll-master]: https://gitlab.com/pages/jekyll-branched/tree/master [jekyll-pages]: https://gitlab.com/pages/jekyll-branched/tree/pages -## Next steps - -So you have successfully deployed your website, congratulations! Let's check -what more you can do with GitLab Pages. - -### Example projects - -Below is a list of example projects for GitLab Pages with a plain HTML website -or various static site generators. Contributions are very welcome. - -- [Plain HTML](https://gitlab.com/pages/plain-html) -- [Jekyll](https://gitlab.com/pages/jekyll) -- [Hugo](https://gitlab.com/pages/hugo) -- [Middleman](https://gitlab.com/pages/middleman) -- [Hexo](https://gitlab.com/pages/hexo) -- [Brunch](https://gitlab.com/pages/brunch) -- [Metalsmith](https://gitlab.com/pages/metalsmith) -- [Harp](https://gitlab.com/pages/harp) - -Visit the GitLab Pages group for a full list of example projects: -. - ### Serving compressed assets Most modern browsers support downloading files in a compressed format. This @@ -408,52 +208,6 @@ NOTE: **Note:** When `public/data/index.html` exists, it takes priority over the `public/data.html` file for both the `/data` and `/data/` URL paths. -### Add a custom domain to your Pages website - -For a complete guide on Pages domains, read through the article -[GitLab Pages from A to Z: Part 3 - GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md) - -If this setting is enabled by your GitLab administrator, you should be able to -see the **New Domain** button when visiting your project's settings through the -gear icon in the top right and then navigating to **Pages**. - -![New domain button](img/pages_new_domain_button.png) - ---- - -You can add multiple domains pointing to your website hosted under GitLab. -Once the domain is added, you can see it listed under the **Domains** section. - -![Pages multiple domains](img/pages_multiple_domains.png) - ---- - -As a last step, you need to configure your DNS and add a CNAME pointing to your -user/group page. Click on the **Details** button of a domain for further -instructions. - -![Pages DNS details](img/pages_dns_details.png) - ---- - ->**Note:** -Currently there is support only for custom domains on per-project basis. That -means that if you add a custom domain (`example.com`) for your user website -(`username.example.io`), a project that is served under `username.example.io/foo`, -will not be accessible under `example.com/foo`. - -### Secure your custom domain website with TLS - -When you add a new custom domain, you also have the chance to add a TLS -certificate. If this setting is enabled by your GitLab administrator, you -should be able to see the option to upload the public certificate and the -private key when adding a new domain. - -![Pages upload cert](img/pages_upload_cert.png) - -For a complete guide on Pages domains, read through the article -[GitLab Pages from A to Z: Part 3 - GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md) - ### Custom error codes pages You can provide your own 403 and 404 error pages by creating the `403.html` and @@ -472,29 +226,17 @@ If the case of `404.html`, there are different scenarios. For example: - If you use a custom domain and try to access `/non/existing_file`, GitLab Pages will try to serve only `/404.html`. -### Remove the contents of your pages - -If you ever feel the need to purge your Pages content, you can do so by going -to your project's settings through the gear icon in the top right, and then -navigating to **Pages**. Hit the **Remove pages** button and your Pages website -will be deleted. Simple as that. - -![Remove pages](img/pages_remove.png) - -## GitLab Pages on GitLab.com - -If you are using GitLab.com to host your website, then: - -- The general domain name for GitLab Pages on GitLab.com is `gitlab.io`. -- Custom domains and TLS support are enabled. -- Shared runners are enabled by default, provided for free and can be used to - build your website. If you want you can still bring your own Runner. +### Redirects in GitLab Pages -The rest of the guide still applies. +Since you cannot use any custom server configuration files, like `.htaccess` or +any `.conf` file, if you want to redirect a page to another +location, you can use the [HTTP meta refresh tag][metarefresh]. -See also: [GitLab Pages from A to Z: Part 1 - Static sites and GitLab Pages domains](getting_started_part_one.md#gitlab-pages-domain). +Some static site generators provide plugins for that functionality so that you +don't have to create and edit HTML files manually. For example, Jekyll has the +[redirect-from plugin](https://github.com/jekyll/jekyll-redirect-from). -## GitLab Pages access control **[CORE ONLY]** +### GitLab Pages Access Control **[CORE ONLY]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33422) in GitLab 11.5. @@ -536,6 +278,15 @@ The next time someone tries to access your website and the access control is enabled, they will be presented with a page to sign into GitLab and verify they can access the website. +## Unpublishing your Pages + +If you ever feel the need to purge your Pages content, you can do so by going +to your project's settings through the gear icon in the top right, and then +navigating to **Pages**. Hit the **Remove pages** button and your Pages website +will be deleted. + +![Remove pages](img/remove_pages.png) + ## Limitations When using Pages under the general domain of a GitLab instance (`*.example.io`), @@ -550,16 +301,6 @@ don't redirect HTTP to HTTPS. GitLab Pages [does **not** support group websites for subgroups](../../group/subgroups/index.md#limitations). You can only create the highest-level group website. -## Redirects in GitLab Pages - -Since you cannot use any custom server configuration files, like `.htaccess` or -any `.conf` file, if you want to redirect a page to another -location, you can use the [HTTP meta refresh tag][metarefresh]. - -Some static site generators provide plugins for that functionality so that you -don't have to create and edit HTML files manually. For example, Jekyll has the -[redirect-from plugin](https://github.com/jekyll/jekyll-redirect-from). - ## Frequently Asked Questions ### Can I download my generated pages? @@ -581,8 +322,6 @@ No, you don't. You can create your project first and it will be accessed under For a list of known issues, visit GitLab's [public issue tracker]. [jekyll]: http://jekyllrb.com/ -[ee-80]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/80 -[ee-173]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173 [pages-daemon]: https://gitlab.com/gitlab-org/gitlab-pages [gitlab ci]: https://about.gitlab.com/gitlab-ci [gitlab runner]: https://docs.gitlab.com/runner/ @@ -592,7 +331,6 @@ For a list of known issues, visit GitLab's [public issue tracker]. [pages-jekyll]: https://gitlab.com/pages/jekyll [metarefresh]: https://en.wikipedia.org/wiki/Meta_refresh [public issue tracker]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=pages -[ce-14605]: https://gitlab.com/gitlab-org/gitlab-ce/issues/14605 [quick start guide]: ../../../ci/quick_start/README.md [pages-index-guide]: index.md [pages-quick]: getting_started_part_one.md -- cgit v1.2.3 From 9441526e0e4d5c055f7ca90933e89b1756c98a91 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Mon, 15 Apr 2019 12:43:53 +0000 Subject: Docs: reorg Pages index --- doc/user/project/pages/index.md | 82 ++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 43 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index 0cd47c65d76..91098d51160 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -8,7 +8,9 @@ last_updated: 2019-03-05 > - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/80) in GitLab Enterprise Edition 8.3. > - Custom CNAMEs with TLS support were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173) in GitLab Enterprise Edition 8.5. > - [Ported](https://gitlab.com/gitlab-org/gitlab-ce/issues/14605) to GitLab Community Edition in GitLab 8.17. -> Support for subgroup project's websites was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30548) in GitLab 11.8. +> - Support for subgroup project's websites was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30548) in GitLab 11.8. +> - Bundled project templates were [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47857) in GitLab 11.8. + **GitLab Pages is a feature that allows you to publish static websites directly from a repository in GitLab.** @@ -67,14 +69,6 @@ publish any website written directly in plain HTML, CSS, and JavaScript.

Examples of SSGs supported by Pages
-### Availability - -If you're using GitLab.com, your website will be publicly available to the internet. -If you're using self-managed instances (Core, Starter, Premium, or Ultimate), -your websites will be published on your own server, according to the -[Pages admin settings](../../../administration/pages/index.md) chosen by your sysadmin, -who can opt for making them public or internal to your server. - ### How it works To use GitLab Pages, first you need to create a project in GitLab to upload your website's @@ -84,7 +78,7 @@ repository. Note that when you create a new project in GitLab, a [repository](.. becomes available automatically. To deploy your site, GitLab will use its built-in tool called [GitLab CI/CD](../../../ci/README.md), -that will build your site and publish it to the GitLab Pages server. The sequence of +to build your site and publish it to the GitLab Pages server. The sequence of scripts that GitLab CI/CD runs to accomplish this task is created from a file named `.gitlab-ci.yml`, which you can [create and modify](getting_started_part_four.md) at will. @@ -95,14 +89,13 @@ need admin access to your domain's registrar (or control panel) to set it up wit Optionally, when adding your own domain, you can add an SSL/TLS certificate to secure your site under the HTTPS protocol. -## Getting started +### Getting started To get started with GitLab Pages, you can either: - [Create a project from scratch](getting_started_part_two.md#create-a-project-from-scratch). - [Copy an existing example project](getting_started_part_two.md#fork-a-project-to-get-started-from). -- Use a bundled project template that is ready to go ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/47857) -in GitLab 11.8), as follows: +- Use a bundled project template ready to go: 1. From the top navigation, click the **+** button and select **New project**. 1. Select **Create from Template**. @@ -125,34 +118,37 @@ _Advanced options:_ - [Use a custom domain](getting_started_part_three.md#adding-your-custom-domain-to-gitlab-pages) - Apply [SSL/TLS certification](getting_started_part_three.md#ssltls-certificates) to your custom domain -## Explore GitLab Pages - -To learn more about GitLab Pages, read the following tutorials: +## Availability -- [Static websites and GitLab Pages domains](getting_started_part_one.md): Understand what is a static website, and how GitLab Pages default domains work -- [Projects for GitLab Pages and URL structure](getting_started_part_two.md): Forking projects and creating new ones from scratch, understanding URLs structure and baseurls -- [GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md): How to add custom domains and subdomains to your website, configure DNS records and SSL/TLS certificates -- [Creating and Tweaking GitLab CI/CD for GitLab Pages](getting_started_part_four.md): Understand how to create your own `.gitlab-ci.yml` for your site -- [Exploring GitLab Pages](introduction.md): Technical aspects, specific configuration options, custom 404 pages, limitations - -### GitLab Pages with Static Site Generators (SSGs) - -To understand more about SSGs, their advantages, and how to get the most from them -with Pages, read through this series: - -- [SSGs part 1: Static vs dynamic websites](https://about.gitlab.com/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/) -- [SSGs part 2: Modern static site generators](https://about.gitlab.com/2016/06/10/ssg-overview-gitlab-pages-part-2/) -- [SSGs part 3: Build any SSG site with GitLab Pages](https://about.gitlab.com/2016/06/17/ssg-overview-gitlab-pages-part-3-examples-ci/) +If you're using GitLab.com, your website will be publicly available to the internet. +If you're using self-managed instances (Core, Starter, Premium, or Ultimate), +your websites will be published on your own server, according to the +[Pages admin settings](../../../administration/pages/index.md) chosen by your sysadmin, +who can opt for making them public or internal to your server. -### GitLab Pages with SSL/TLS certificates +Note that, if you're using GitLab Pages default domain (`.gitlab.io`), +your website will be automatically secure and available under +HTTPS. If you're using your own custom domain, you can +optionally secure it with SSL/TLS certificates. -If you're using GitLab Pages default domain (`.gitlab.io`), your website will be -automatically secure and available under HTTPS. If you're using your own domain, you can -optionally secure it with SSL/TLS certificates. You can read the following -tutorials to learn how to use these third-party certificates with GitLab Pages: +## Explore GitLab Pages -- [CloudFlare](https://about.gitlab.com/2017/02/07/setting-up-gitlab-pages-with-cloudflare-certificates/) -- [Let's Encrypt](lets_encrypt_for_gitlab_pages.md) +To learn more about configuration options for GitLab Pages, read the following: + +| Document | Description | +| --- | --- | +| [Static websites and Pages domains](getting_started_part_one.md) | Understand what is a static website, and how GitLab Pages default domains work. | +| [Projects and URL structure](getting_started_part_two.md) | Forking projects and creating new ones from scratch, understanding URLs structure and baseurls. | +| [GitLab CI/CD for GitLab Pages](getting_started_part_four.md) | Understand how to create your own `.gitlab-ci.yml` for your site. | +| [Exploring GitLab Pages](introduction.md) | Technical aspects, specific configuration options, custom 404 pages, limitations. | +|---+---| +| [Custom domains and SSL/TLS Certificates](getting_started_part_three.md) | How to add custom domains and subdomains to your website, configure DNS records and SSL/TLS certificates. | +| [CloudFlare certificates](https://about.gitlab.com/2017/02/07/setting-up-gitlab-pages-with-cloudflare-certificates/) | Secure your Pages site with CloudFlare certificates. | +| [Let's Encrypt certificates](lets_encrypt_for_gitlab_pages.md) | Secure your Pages site with Let's Encrypt certificates. | +|---+---| +| [Static vs dynamic websites](https://about.gitlab.com/2016/06/03/ssg-overview-gitlab-pages-part-1-dynamic-x-static/) | A conceptual overview on static versus dynamic sites. | +| [Modern static site generators](https://about.gitlab.com/2016/06/10/ssg-overview-gitlab-pages-part-2/) | A conceptual overview on SSGs. | +| [Build any SSG site with GitLab Pages](https://about.gitlab.com/2016/06/17/ssg-overview-gitlab-pages-part-3-examples-ci/) | An overview on using SSGs for GitLab Pages. | ## Advanced use @@ -160,13 +156,13 @@ There are quite some great examples of GitLab Pages websites built for some specific reasons. These examples can teach you some advanced techniques to use and adapt to your own needs: -- [Posting to your GitLab Pages blog from iOS](https://about.gitlab.com/2016/08/19/posting-to-your-gitlab-pages-blog-from-ios/) -- [GitLab CI: Run jobs sequentially, in parallel, or build a custom pipeline](https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/) -- [GitLab CI: Deployment & environments](https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/) -- [Building a new GitLab docs site with Nanoc, GitLab CI, and GitLab Pages](https://about.gitlab.com/2016/12/07/building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages/) -- [Publish code coverage reports with GitLab Pages](https://about.gitlab.com/2016/11/03/publish-code-coverage-report-with-gitlab-pages/) +- [Posting to your GitLab Pages blog from iOS](https://about.gitlab.com/2016/08/19/posting-to-your-gitlab-pages-blog-from-ios/). +- [GitLab CI: Run jobs sequentially, in parallel, or build a custom pipeline](https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/). +- [GitLab CI: Deployment & environments](https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/). +- [Building a new GitLab docs site with Nanoc, GitLab CI, and GitLab Pages](https://about.gitlab.com/2016/12/07/building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages/). +- [Publish code coverage reports with GitLab Pages](https://about.gitlab.com/2016/11/03/publish-code-coverage-report-with-gitlab-pages/). -## Admin GitLab Pages for CE and EE +## Admin GitLab Pages for self-managed instances Enable and configure GitLab Pages on your own instance (GitLab Community Edition and Enterprise Editions) with the [admin guide](../../../administration/pages/index.md). -- cgit v1.2.3 From 0aa56d895dba21d3a01b78d35c445107e224ed0c Mon Sep 17 00:00:00 2001 From: Horatiu Eugen Vlad Date: Mon, 15 Apr 2019 13:05:55 +0000 Subject: Added write_repository scope for personal access token --- doc/user/profile/personal_access_tokens.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md index 52b4a72e688..4085f3b678c 100644 --- a/doc/user/profile/personal_access_tokens.md +++ b/doc/user/profile/personal_access_tokens.md @@ -40,10 +40,11 @@ the following table. | Scope | Description | | ----- | ----------- | |`read_user` | Allows access to the read-only endpoints under `/users`. Essentially, any of the `GET` requests in the [Users API][users] are allowed ([introduced][ce-5951] in GitLab 8.15). | -| `api` | Grants complete access to the API and Container Registry (read/write) ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) in GitLab 8.15). Required for accessing Git repositories over HTTP when 2FA is enabled. | +| `api` | Grants complete access to the API and Container Registry (read/write) ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) in GitLab 8.15). | | `read_registry` | Allows to read (pull) [container registry] images if a project is private and authorization is required ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) in GitLab 9.3). | | `sudo` | Allows performing API actions as any user in the system (if the authenticated user is an admin) ([introduced][ce-14838] in GitLab 10.2). | -| `read_repository` | Allows read-access (pull) to the repository through git clone. | +| `read_repository` | Allows read-only access (pull) to the repository through git clone. | +| `write_repository` | Allows read-write access (pull, push) to the repository through git clone. Required for accessing Git repositories over HTTP when 2FA is enabled. | [2fa]: ../account/two_factor_authentication.md [api]: ../../api/README.md -- cgit v1.2.3 From e33ecfdec30a8efee191f8c2dd85ca54011128ce Mon Sep 17 00:00:00 2001 From: Tiger Date: Mon, 15 Apr 2019 12:11:50 +1000 Subject: Disable JIT resource creation for project clusters JIT resource creation blocks deployments if a user is self-managing their cluster, as it will fail the build if unable to create a namespace and service account. Using a custom namespace and service account was previously supported for project level clusters, so we should preserve this functionality. https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27352 --- doc/user/project/clusters/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 1983513174c..ccd60b9761f 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -565,7 +565,9 @@ service account of the cluster integration. ### Troubleshooting failed deployment jobs GitLab will create a namespace and service account specifically for your -deployment jobs, immediately before the jobs starts. +deployment jobs. On project level clusters, this happens when the cluster +is created. On group level clusters, resources are created immediately +before the deployment job starts. However, sometimes GitLab can not create them. In such instances, your job will fail with the message: -- cgit v1.2.3 From 579fa8b8ec7eb38d40c96521f517c9dab8c3b97a Mon Sep 17 00:00:00 2001 From: George Tsiolis Date: Fri, 12 Apr 2019 15:39:10 +0300 Subject: Rename CI related selectors --- doc/user/project/integrations/mock_ci.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/mock_ci.md b/doc/user/project/integrations/mock_ci.md index 8b1908c46fe..1c64b275d6e 100644 --- a/doc/user/project/integrations/mock_ci.md +++ b/doc/user/project/integrations/mock_ci.md @@ -5,7 +5,7 @@ To set up the mock CI service server, respond to the following endpoints - `commit_status`: `#{project.namespace.path}/#{project.path}/status/#{sha}.json` - - Have your service return `200 { status: ['failed'|'canceled'|'running'|'pending'|'success'|'success_with_warnings'|'skipped'|'not_found'] }` + - Have your service return `200 { status: ['failed'|'canceled'|'running'|'pending'|'success'|'success-with-warnings'|'skipped'|'not_found'] }` - If the service returns a 404, it is interpreted as `pending` - `build_page`: `#{project.namespace.path}/#{project.path}/status/#{sha}` - Just where the build is linked to, doesn't matter if implemented -- cgit v1.2.3 From 77f73c1ffdee3b60a72b56ad4228ade0bdc8017b Mon Sep 17 00:00:00 2001 From: Michael Leopard Date: Tue, 16 Apr 2019 12:47:31 +0000 Subject: Update migration docs --- doc/user/project/import/index.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index ca02e4e9e96..cc73ea95f51 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -20,11 +20,28 @@ repository is too large the import can timeout. ## Migrating from self-hosted GitLab to GitLab.com -You can copy your repos by changing the remote and pushing to the new server, -but issues and merge requests can't be imported. +If you only need to migrate git repos, you can [import each project by URL](repo_by_url.md), but issues and merge requests can't be imported. If you want to retain all metadata like issues and merge requests, you can use -the [import/export feature](../settings/import_export.md). +the [import/export feature](../settings/import_export.md) to export projects from self-hosted GitLab and import those projects into GitLab.com. + +NOTE: **Note:** +This approach assumes all users from the self-hosted instance have already been migrated. +If the users haven't been migrated yet, the user conducting the import +will take the place of all references to the missing user(s). + +If you need to migrate all data over, you can leverage our [api](../../../api/README.md) to migrate from self-hosted to GitLab.com. +The order of assets to migrate from a self-hosted instance to GitLab is the following: + +1. [Users](../../../api/users.md) +1. [Groups](../../../api/groups.md) +1. [Projects](../../../api/projects.md) +1. [Project variables](../../../api/project_level_variables.md) + +Keep in mind the limitations of the [import/export feature](../settings/import_export.md#exported-contents). + +You will still need to migrate your Container Registry over a series of +Docker pulls and pushes and re-run any CI pipelines to retrieve any build artifacts. ## Migrating between two self-hosted GitLab instances @@ -32,3 +49,6 @@ The best method for migrating a project from one GitLab instance to another, perhaps from an old server to a new server for example, is to [back up the project](../../../raketasks/backup_restore.md), then restore it on the new server. + +In the event of merging two GitLab instances together (for example, both instances have existing data on them and one can't be wiped), +refer to the instructions in [Migrating from self-hosted GitLab to GitLab.com](#migrating-from-self-hosted-gitlab-to-gitlabcom). -- cgit v1.2.3 From 2845e8d9736b82c89ef33a3dd24caa4f9816b0e6 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Thu, 11 Apr 2019 15:03:02 +0100 Subject: Revert "Revert "Merge branch '24704-download-repository-path' into 'master'"" This reverts commit 171818df0a72097aa1a804c8213666b3f66b0966. --- .../project/repository/img/download_source_code.png | Bin 0 -> 61467 bytes doc/user/project/repository/index.md | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 doc/user/project/repository/img/download_source_code.png (limited to 'doc/user') diff --git a/doc/user/project/repository/img/download_source_code.png b/doc/user/project/repository/img/download_source_code.png new file mode 100644 index 00000000000..17f2cb4b3e8 Binary files /dev/null and b/doc/user/project/repository/img/download_source_code.png differ diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index 22d912cd9d1..718566a539f 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -241,4 +241,24 @@ Projects that contain a `.xcodeproj` or `.xcworkspace` directory can now be clon in Xcode using the new **Open in Xcode** button, located next to the Git URL used for cloning your project. The button is only shown on macOS. +## Download Source Code + +Source code stored in the repository can be downloaded. + +By clicking the download icon, a dropdown will open with links to download the following: + +![Download source code](img/download_source_code.png) + +- **Source Code:** + This allows users to download the source code on branch they're currently + viewing. Available zip, tar, tar.gz and tar.bz2. +- **Directory:** + > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.10 + + Only shows up when viewing a sub-directory. This allows users to download + the specific directory they're currently viewing. Also available in zip, tar, + tar.gz and tar.bz2. +- **Artifacts:** + This allows users to download the artifacts of the latest CI build. + [jupyter]: https://jupyter.org -- cgit v1.2.3 From 9ce7dc4d73f84e585eb907569ff9d1407c9ca774 Mon Sep 17 00:00:00 2001 From: Ken McKnight Date: Wed, 17 Apr 2019 09:00:26 +0000 Subject: Fix typo --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 74735886350..6054ab97dc1 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -156,7 +156,7 @@ There are two different ways to add a new project to a group: Group owners or administrators can allow users with the Developer role to create projects under groups. -By default, [Developers and Maintainers](../permissions.md#group-members-permissions) can create projects under agroup, but this can be changed either within the group settings for a group, or +By default, [Developers and Maintainers](../permissions.md#group-members-permissions) can create projects under a group, but this can be changed either within the group settings for a group, or be set globally by a GitLab administrator in the Admin area at **Settings > General > Visibility and access controls**. -- cgit v1.2.3 From 6ad6cc40e0dca845ff26cd2f41f27c9c6f2792c7 Mon Sep 17 00:00:00 2001 From: James Ramsay Date: Wed, 17 Apr 2019 10:39:38 -0400 Subject: Improve multi-line suggestion docs --- doc/user/discussions/index.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index bf41fdecd10..c7e8bb5b33b 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -348,19 +348,23 @@ Custom commit messages will be introduced by > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53310) in GitLab 11.10. -Reviewers can also suggest changes to -multiple lines with a single suggestion within Merge Request diff discussions. +Reviewers can also suggest changes to multiple lines with a single suggestion +within Merge Request diff discussions by adjusting the range offsets. The +offsets are relative to the position of the diff discussion, and specify the +range to be replaced by the suggestion when it is applied. ![Multi-line suggestion syntax](img/multi-line-suggestion-syntax.png) -In the example above, the suggestion covers three lines above and four lines below the commented diff line. -It'd change from 3 lines _above_ to 4 lines _below_ the commented Diff line. +In the example above, the suggestion covers three lines above and four lines +below the commented line. When applied, it would replace from 3 lines _above_ +to 4 lines _below_ the commented line, with the suggested change. ![Multi-line suggestion preview](img/multi-line-suggestion-preview.png) NOTE: **Note:** -Suggestions covering multiple lines are limited to 100 lines _above_ and 100 lines _below_ -the commented diff line, allowing up to 200 changed lines per suggestion. +Suggestions covering multiple lines are limited to 100 lines _above_ and 100 +lines _below_ the commented diff line, allowing up to 200 changed lines per +suggestion. ## Start a discussion by replying to a standard comment -- cgit v1.2.3 From b1eab8debb11a477d74cf12787938e1afbdfb737 Mon Sep 17 00:00:00 2001 From: Daniel Gruesso Date: Wed, 17 Apr 2019 15:23:43 +0000 Subject: Update serverless.yml for functions to include only node.js --- doc/user/project/clusters/serverless/index.md | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index 5b7e9ef906f..dfbed0ec95f 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -158,21 +158,6 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ description: "node.js runtime function" environment: MY_FUNCTION: echo-js - - echo-rb: - handler: MyEcho.my_function - source: ./echo-rb - runtime: https://gitlab.com/gitlab-org/serverless/runtimes/ruby - description: "Ruby runtime function" - environment: - MY_FUNCTION: echo-rb - - echo-docker: - handler: echo-docker - source: ./echo-docker - description: "Dockerfile runtime function" - environment: - MY_FUNCTION: echo-docker ``` Explanation of the fields used above: -- cgit v1.2.3 From 4cb3ab8372694036a25e0b4943fc9dde0265d015 Mon Sep 17 00:00:00 2001 From: Brandon Houghton <3753196-bhoughton@users.noreply.gitlab.com> Date: Wed, 17 Apr 2019 16:39:30 +0000 Subject: Clarify instructions for making user/group site --- doc/user/project/pages/getting_started_part_two.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index 1034ba1733d..bb3be9a5ba8 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -94,8 +94,9 @@ You can also take some **optional** further steps: - _Make it a user or group website._ To turn a **project website** forked from the Pages group into a **user/group** website, you'll need to: - - Rename it to `namespace.gitlab.io`: navigate to project's **Settings** > - expand **Advanced settings** > and scroll down to **Rename repository**. + - Rename it to `namespace.gitlab.io`: go to your project's **Settings** + and expand **Advanced**. Scroll down to **Rename repository** and change +both the project name and the path to `namespace.gitlab.io`. - Adjust your SSG's [base URL](#urls-and-baseurls) from `"project-name"` to `""`. This setting will be at a different place for each SSG, as each of them have their own structure and file tree. Most likely, it will be in the SSG's -- cgit v1.2.3 From acb24fd90c97ff53ad8cff326b3ec6a720788d93 Mon Sep 17 00:00:00 2001 From: Imre Farkas Date: Thu, 18 Apr 2019 13:09:08 +0000 Subject: Move external authorization doc to CE --- .../admin_area/settings/external_authorization.md | 112 +++++++++++++++++++++ .../img/classification_label_on_project_page.png | Bin 0 -> 19568 bytes .../external_authorization_service_settings.png | Bin 0 -> 74753 bytes 3 files changed, 112 insertions(+) create mode 100644 doc/user/admin_area/settings/external_authorization.md create mode 100644 doc/user/admin_area/settings/img/classification_label_on_project_page.png create mode 100644 doc/user/admin_area/settings/img/external_authorization_service_settings.png (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/external_authorization.md b/doc/user/admin_area/settings/external_authorization.md new file mode 100644 index 00000000000..72e76ac2a84 --- /dev/null +++ b/doc/user/admin_area/settings/external_authorization.md @@ -0,0 +1,112 @@ +# External authorization control + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4216) in +> [GitLab Premium](https://about.gitlab.com/pricing) 10.6. +> [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27056) to +> [GitLab Core](https://about.gitlab.com/pricing/) in 11.10. + +In highly controlled environments, it may be necessary for access policy to be +controlled by an external service that permits access based on project +classification and user access. GitLab provides a way to check project +authorization with your own defined service. + +## Overview + +Once the external service is configured and enabled, when a project is accessed, +a request is made to the external service with the user information and project +classification label assigned to the project. When the service replies with a +known response, the result is cached for 6 hours. + +If the external authorization is enabled, GitLab will further block pages and +functionality that render cross-project data. That includes: + +- most pages under Dashboard (Activity, Milestones, Snippets, Assigned merge + requests, Assigned issues, Todos) +- under a specific group (Activity, Contribution analytics, Issues, Issue boards, + Labels, Milestones, Merge requests) +- Global and Group search will be disabled + +This is to prevent performing to many requests at once to the external +authorization service. + +Whenever access is granted or denied this is logged in a logfile called +`external-policy-access-control.log`. +Read more about logs GitLab keeps in the [omnibus documentation][omnibus-log-docs]. + +## Configuration + +The external authorization service can be enabled by an admin on the GitLab's +admin area under the settings page: + +![Enable external authorization service](img/external_authorization_service_settings.png) + +The available required properties are: + +- **Service URL**: The URL to make authorization requests to. When leaving the + URL blank, cross project features will remain available while still being able + to specify classification labels for projects. +- **External authorization request timeout**: The timeout after which an + authorization request is aborted. When a request times out, access is denied + to the user. +- **Client authentication certificate**: The certificate to use to authenticate + with the external authorization service. +- **Client authentication key**: Private key for the certificate when + authentication is required for the external authorization service, this is + encrypted when stored. +- **Client authentication key password**: Passphrase to use for the private key when authenticating with the external service this is encrypted when stored. +- **Default classification label**: The classification label to use when + requesting authorization if no specific label is defined on the project + +When using TLS Authentication with a self signed certificate, the CA certificate +needs to be trused by the openssl installation. When using GitLab installed using +Omnibus, learn to install a custom CA in the +[omnibus documentation][omnibus-ssl-docs]. Alternatively learn where to install +custom certificates using `openssl version -d`. + +## How it works + +When GitLab requests access, it will send a JSON POST request to the external +service with this body: + +```json +{ + "user_identifier": "jane@acme.org", + "project_classification_label": "project-label", + "user_ldap_dn": "CN=Jane Doe,CN=admin,DC=acme" +} +``` + +The `user_ldap_dn` is optional and is only sent when the user is logged in +through LDAP. + +When the external authorization service responds with a status code 200, the +user is granted access. When the external service responds with a status code +401 or 403, the user is denied access. In any case, the request is cached for 6 hours. + +When denying access, a `reason` can be optionally specified in the JSON body: + +```json +{ + "reason": "You are not allowed access to this project." +} +``` + +Any other status code than 200, 401 or 403 will also deny access to the user, but the +response will not be cached. + +If the service times out (after 500ms), a message "External Policy Server did +not respond" will be displayed. + +## Classification labels + +You can use your own classification label in the project's +**Settings > General > General project settings** page in the "Classification +label" box. When no classification label is specified on a project, the default +label defined in the [global settings](#configuration) will be used. + +The label will be shown on all project pages in the upper right corner. + +![classification label on project page](img/classification_label_on_project_page.png) + +[omnibus-ssl-docs]: https://docs.gitlab.com/omnibus/settings/ssl.html +[omnibus-log-docs]: https://docs.gitlab.com/omnibus/settings/logs.html diff --git a/doc/user/admin_area/settings/img/classification_label_on_project_page.png b/doc/user/admin_area/settings/img/classification_label_on_project_page.png new file mode 100644 index 00000000000..4aedb332cec Binary files /dev/null and b/doc/user/admin_area/settings/img/classification_label_on_project_page.png differ diff --git a/doc/user/admin_area/settings/img/external_authorization_service_settings.png b/doc/user/admin_area/settings/img/external_authorization_service_settings.png new file mode 100644 index 00000000000..9b8658fd1a1 Binary files /dev/null and b/doc/user/admin_area/settings/img/external_authorization_service_settings.png differ -- cgit v1.2.3 From 74a541097223c3cb4ac33068297b540aa298bcd3 Mon Sep 17 00:00:00 2001 From: Kartikey Tanna Date: Fri, 19 Apr 2019 11:12:20 +0530 Subject: Highlighted 'not' in the docs --- doc/user/profile/account/delete_account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/profile/account/delete_account.md b/doc/user/profile/account/delete_account.md index b497cc414af..0d7bbb0af79 100644 --- a/doc/user/profile/account/delete_account.md +++ b/doc/user/profile/account/delete_account.md @@ -14,7 +14,7 @@ Deleting a user will delete all projects in that user namespace. [GitLab 9.1][ce-10273], and from the API in [GitLab 9.3][ce-11853]. When a user account is deleted, not all associated records are deleted with it. -Here's a list of things that will not be deleted: +Here's a list of things that will **not** be deleted: - Issues that the user created - Merge requests that the user created -- cgit v1.2.3 From a244fa64b89680a9c0cd3c146dc4d255070d3a1d Mon Sep 17 00:00:00 2001 From: Thiago Presa Date: Fri, 19 Apr 2019 11:13:03 +0000 Subject: Remove leading whitespaces from serviceaccount/clusterrolebinding multi-resource YAML --- doc/user/project/clusters/index.md | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index ccd60b9761f..0db95e5a64c 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -124,26 +124,26 @@ To add an existing Kubernetes cluster to your project: 1. Create a file called `gitlab-admin-service-account.yaml` with contents: - ```yaml - apiVersion: v1 - kind: ServiceAccount - metadata: - name: gitlab-admin - namespace: kube-system - --- - apiVersion: rbac.authorization.k8s.io/v1beta1 - kind: ClusterRoleBinding - metadata: - name: gitlab-admin - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin - subjects: - - kind: ServiceAccount - name: gitlab-admin - namespace: kube-system - ``` + ```yaml + apiVersion: v1 + kind: ServiceAccount + metadata: + name: gitlab-admin + namespace: kube-system + --- + apiVersion: rbac.authorization.k8s.io/v1beta1 + kind: ClusterRoleBinding + metadata: + name: gitlab-admin + roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin + subjects: + - kind: ServiceAccount + name: gitlab-admin + namespace: kube-system + ``` 1. Apply the service account and cluster role binding to your cluster: -- cgit v1.2.3 From 24b1bfcee24be32149bcd4f9c21a81a44745b23d Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 24 Apr 2019 03:16:53 +0000 Subject: Bring Slack app docs to CE and add tiers --- .../integrations/gitlab_slack_application.md | 65 +++++++++++++++++++++ .../img/gitlab_slack_app_landing_page.png | Bin 0 -> 32992 bytes doc/user/project/integrations/project_services.md | 6 +- .../project/integrations/slack_slash_commands.md | 13 +++-- 4 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 doc/user/project/integrations/gitlab_slack_application.md create mode 100644 doc/user/project/integrations/img/gitlab_slack_app_landing_page.png (limited to 'doc/user') diff --git a/doc/user/project/integrations/gitlab_slack_application.md b/doc/user/project/integrations/gitlab_slack_application.md new file mode 100644 index 00000000000..8e062ca627b --- /dev/null +++ b/doc/user/project/integrations/gitlab_slack_application.md @@ -0,0 +1,65 @@ +# GitLab Slack application **[FREE ONLY]** + +NOTE: **Note:** +The GitLab Slack application is only configurable for GitLab.com. It will **not** +work for on-premises installations where you can configure the +[Slack slash commands](slack_slash_commands.md) service instead. We're working +with Slack on making this configurable for all GitLab installations, but there's +no ETA. +It was first introduced in GitLab 9.4 and distributed to Slack App Directory in +GitLab 10.2. + +Slack provides a native application which you can enable via your project's +integrations on GitLab.com. + +## Slack App Directory + +The simplest way to enable the GitLab Slack application for your workspace is to +install the [GitLab application](https://slack-platform.slack.com/apps/A676ADMV5-gitlab) from +the [Slack App Directory](https://slack.com/apps). + +Clicking install will take you to the +[GitLab Slack application landing page](https://gitlab.com/profile/slack/edit) +where you can select a project to enable the GitLab Slack application for. + +![GitLab Slack application landing page](img/gitlab_slack_app_landing_page.png) + +## Configuration + +Alternatively, you can configure the Slack application with a project's +integration settings. + +Keep in mind that you need to have the appropriate permissions for your Slack +team in order to be able to install a new application, read more in Slack's +docs on [Adding an app to your team][slack-docs]. + +To enable GitLab's service for your Slack team: + +1. Go to your project's **Settings > Integration > Slack application** (only + visible on GitLab.com) +1. Click the "Add to Slack" button + +That's all! You can now start using the Slack slash commands. + +## Usage + +After confirming the installation, you, and everyone else in your Slack team, +can use all the [slash commands]. + +When you perform your first slash command you will be asked to authorize your +Slack user on GitLab.com. + +The only difference with the [manually configurable Slack slash commands][slack-manual] +is that all the commands should be prefixed with the `/gitlab` keyword. +We are working on making this configurable in the future. + +For example, to show the issue number `1001` under the `gitlab-org/gitlab-ce` +project, you would do: + +``` +/gitlab gitlab-org/gitlab-ce issue show 1001 +``` + +[slack-docs]: https://get.slack.help/hc/en-us/articles/202035138-Adding-apps-to-your-team +[slash commands]: ../../../integration/slash_commands.md +[slack-manual]: slack_slash_commands.md diff --git a/doc/user/project/integrations/img/gitlab_slack_app_landing_page.png b/doc/user/project/integrations/img/gitlab_slack_app_landing_page.png new file mode 100644 index 00000000000..57cd35c9f5d Binary files /dev/null and b/doc/user/project/integrations/img/gitlab_slack_app_landing_page.png differ diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index 42c7824a125..339e6873c41 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -14,8 +14,7 @@ want to configure. ![Project services list](img/project_services.png) -Below, you will find a list of the currently supported ones accompanied with -comprehensive documentation. +Below, you will find a list of the currently supported ones accompanied with comprehensive documentation. ## Services @@ -46,7 +45,8 @@ Click on the service links to see further configuration instructions and details | Packagist | Update your project on Packagist, the main Composer repository | | Pipelines emails | Email the pipeline status to a list of recipients | | [Slack Notifications](slack.md) | Send GitLab events (e.g. issue created) to Slack as notifications | -| [Slack slash commands](slack_slash_commands.md) | Use slash commands in Slack to control GitLab | +| [Slack slash commands](slack_slash_commands.md) **[CORE ONLY]** | Use slash commands in Slack to control GitLab | +| [GitLab Slack application](gitlab_slack_application.md) **[FREE ONLY]** | Use Slack's official application | | PivotalTracker | Project Management Software (Source Commits Endpoint) | | [Prometheus](prometheus.md) | Monitor the performance of your deployed apps | | Pushover | Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop | diff --git a/doc/user/project/integrations/slack_slash_commands.md b/doc/user/project/integrations/slack_slash_commands.md index c267da69bb3..371e78ca3a4 100644 --- a/doc/user/project/integrations/slack_slash_commands.md +++ b/doc/user/project/integrations/slack_slash_commands.md @@ -1,10 +1,15 @@ -# Slack slash commands +# Slack slash commands **[CORE ONLY]** -> Introduced in GitLab 8.15 +> Introduced in GitLab 8.15. -Slack slash commands allow you to control GitLab and view content right inside Slack, without having to leave it. This requires configurations in both Slack and GitLab. +Slack slash commands allow you to control GitLab and view content right inside +Slack, without having to leave it. This requires configurations in both Slack and GitLab. -> Note: GitLab can also send events (e.g. issue created) to Slack as notifications. This is the separately configured [Slack Notifications Service](slack.md). +GitLab can also send events (e.g., `issue created`) to Slack as notifications. +This is the separately configured [Slack Notifications Service](slack.md). + +NOTE: **Note:** +For GitLab.com, use the [Slack app](gitlab_slack_application.md) instead. ## Configuration -- cgit v1.2.3 From e14be51546824661bbcb25db06944898ae58b93a Mon Sep 17 00:00:00 2001 From: Philipp Hasper Date: Wed, 24 Apr 2019 09:54:44 +0000 Subject: Job artifact documentation: Added list of textual formats !22112 added the latest extension to this list, .log meaning that this doc extension is valid for version >= 11.5 Closes #56801 --- doc/user/project/pipelines/job_artifacts.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md index a3f40c20192..629b5e1fde4 100644 --- a/doc/user/project/pipelines/job_artifacts.md +++ b/doc/user/project/pipelines/job_artifacts.md @@ -55,7 +55,8 @@ For more examples on artifacts, follow the [artifacts reference in > **Note:** > With [GitLab 10.1][ce-14399], HTML files in a public project can be previewed > directly in a new tab without the need to download them when -> [GitLab Pages](../../../administration/pages/index.md) is enabled +> [GitLab Pages](../../../administration/pages/index.md) is enabled. +> The same holds for textual formats (currently supported extensions: `.txt`, `.json`, and `.log`). After a job finishes, if you visit the job's specific page, there are three buttons. You can download the artifacts archive or browse its contents, whereas -- cgit v1.2.3 From 84e22a75e1f2dc9ac31ee7e20b1a00ae03bc0206 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Wed, 24 Apr 2019 09:56:40 +0000 Subject: Docs: review MR !27275 --- doc/user/project/repository/index.md | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index 718566a539f..97ecc4c0d65 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -97,7 +97,7 @@ Some things to note about precedence: > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/2508) in GitLab 9.1 -[Jupyter][jupyter] Notebook (previously IPython Notebook) files are used for +[Jupyter](https://jupyter.org) Notebook (previously IPython Notebook) files are used for interactive computing in many fields and contain a complete record of the user's sessions and include code, narrative text, equations and rich output. @@ -220,14 +220,10 @@ Select branches to compare using the [branch filter search box](branches/index.m Find it under your project's **Repository > Compare**. -## Locked files +## Locked files **[PREMIUM]** -> Available in [GitLab Premium](https://about.gitlab.com/pricing/). - -Lock your files to prevent any conflicting changes. - -[File Locking](https://docs.gitlab.com/ee/user/project/file_lock.html) is available only in -[GitLab Premium](https://about.gitlab.com/pricing/). +Use [File Locking](https://docs.gitlab.com/ee/user/project/file_lock.html) to +lock your files to prevent any conflicting changes. ## Repository's API @@ -243,22 +239,19 @@ used for cloning your project. The button is only shown on macOS. ## Download Source Code -Source code stored in the repository can be downloaded. +> Support for directory download was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.11. +The source code stored in a repository can be downloaded from the UI. By clicking the download icon, a dropdown will open with links to download the following: ![Download source code](img/download_source_code.png) -- **Source Code:** - This allows users to download the source code on branch they're currently - viewing. Available zip, tar, tar.gz and tar.bz2. +- **Source code:** + allows users to download the source code on branch they're currently + viewing. Available extensions: `zip`, `tar`, `tar.gz`, and `tar.bz2`. - **Directory:** - > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/24704) in GitLab 11.10 - - Only shows up when viewing a sub-directory. This allows users to download - the specific directory they're currently viewing. Also available in zip, tar, - tar.gz and tar.bz2. + only shows up when viewing a sub-directory. This allows users to download + the specific directory they're currently viewing. Also available in `zip`, + `tar`, `tar.gz`, and `tar.bz2`. - **Artifacts:** - This allows users to download the artifacts of the latest CI build. - -[jupyter]: https://jupyter.org + allows users to download the artifacts of the latest CI build. -- cgit v1.2.3 From 7b0ee6464de2b40f72885a3f0a00d89dbc6db2cd Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Wed, 24 Apr 2019 11:00:23 +0100 Subject: Clarify that reporters can manage boards The original issue didn't specify this, but the code always allowed reporters to do everything here. I think that's correct because 1. Developer permissions normally refer to code, and boards are to do with issues. 2. Reporters can manage epics, as well as labels on issues, which are in a similar space. --- doc/user/project/issue_board.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index ad47b848bea..31020de5208 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -151,7 +151,7 @@ Create lists for each of your team members and quickly drag-and-drop issues onto ## Permissions -[Developers and up](../permissions.md) can use all the functionality of the +[Reporters and up](../permissions.md) can use all the functionality of the Issue Board, that is, create or delete lists and drag issues from one list to another. ## GitLab Enterprise features for Issue Boards -- cgit v1.2.3 From 0feefbeb174cc7007af0cddf2ff25da202ba9555 Mon Sep 17 00:00:00 2001 From: Thad Guidry Date: Fri, 26 Apr 2019 15:16:03 +0000 Subject: clarify that "team" means "project" when considered for assignment purposes. --- doc/user/permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index a340dd063e4..6c54578f5d8 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -11,7 +11,7 @@ project itself, the highest permission level is used. On public and internal projects the Guest role is not enforced. All users will be able to create issues, leave comments, and clone or download the project code. -When a member leaves the team all the assigned [Issues](project/issues/index.md) and [Merge Requests](project/merge_requests/index.md) +When a member leaves a team's project, all the assigned [Issues](project/issues/index.md) and [Merge Requests](project/merge_requests/index.md) will be unassigned automatically. GitLab [administrators](../administration/index.md) receive all permissions. -- cgit v1.2.3 From 5d4efe4250fdf88f60bad647fe0e6c7286f75e82 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Fri, 26 Apr 2019 17:37:19 +0000 Subject: List group name restrictions --- doc/user/group/index.md | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 6054ab97dc1..2d887673fd6 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -68,7 +68,7 @@ together in a single list view. You can create a group in GitLab from: -1. The Groups page: expand the left menu, click **Groups**, and click the green button **New group**: +1. The Groups page: from the top menu, click **Groups**, and click the green button **New group**: ![new group from groups page](img/new_group_from_groups.png) @@ -80,14 +80,21 @@ Add the following information: ![new group info](img/create_new_group_info.png) -1. Set the **Group path** which will be the **namespace** under which your projects - will be hosted (path can contain only letters, digits, underscores, dashes - and dots; it cannot start with dashes or end in dot). -1. The **Group name** will populate with the path. Optionally, you can change - it. This is the name that will display in the group views. -1. Optionally, you can add a description so that others can briefly understand +1. The **Group name** will populate the URL automatically. Optionally, you can change it. + This is the name that is displayed in the group views. + The name can contain only: + - Alphanumeric characters. + - Underscores. + - Dashes and dots. + - Spaces. +1. The **Group URL**, which will be the namespace under which your projects will be hosted. + The URL can contain only: + - Alphanumeric characters. + - Underscores. + - Dashes and dots. It cannot start with dashes or end in dot. +1. Optionally, you can add a brief description to tell others what this group is about. -1. Optionally, choose an avatar for your project. +1. Optionally, choose an avatar for your group. 1. Choose the [visibility level](../../public_access/public_access.md). ## Add users to a group -- cgit v1.2.3 From 35f9285d50de796afe88629d27f5c2a085302392 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Fri, 26 Apr 2019 17:46:06 +0000 Subject: Documented the Admin Area's `Dashboard` Part of issue 57874 --- doc/user/admin_area/index.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index 00cea22e4e1..5e67cb0ef16 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -16,7 +16,7 @@ The Admin Area is made up of the following sections: | Section | Description | |:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| -| Overview | View your GitLab Dashboard, and maintain projects, users, groups, jobs, runners, and Gitaly servers. | +| Overview | View your GitLab [Dashboard](#admin-dashboard), and maintain projects, users, groups, jobs, runners, and Gitaly servers. | | Monitoring | View GitLab system information, and information on background jobs, logs, [health checks](monitoring/health_check.md), request profiles, and audit logs. | | Messages | Send and manage [broadcast messages](broadcast_messages.md) for your users. | | System Hooks | Configure [system hooks](../../system_hooks/system_hooks.md) for many events. | @@ -27,3 +27,23 @@ The Admin Area is made up of the following sections: | Labels | Create and maintain [labels](labels.md) for your GitLab instance. | | Appearance | Customize [GitLab's appearance](../../customization/index.md). | | Settings | Modify the [settings](settings/index.md) for your GitLab instance. | + +## Admin Dashboard + +The Dashboard provides statistics and system information about the GitLab instance. + +To access the Dashboard, either: + +- Click the Admin Area icon (the wrench icon). +- Visit `/admin` on your self-managed instance. + +The Dashboard is the default view of the Admin Area, and is made up of the following sections: + +| Section | Description | +|------------|---------------| +| Projects | The total number of projects, up to 10 of the latest projects, and the option of creating a new project. | +| Users | The total number of users, up to 10 of the latest users, and the option of creating a new user. | +| Groups | The total number of groups, up to 10 of the latest groups, and the option of creating a new group. | +| Statistics | Totals of all elements of the GitLab instance. | +| Features | All features available on the GitLab instance. Enabled features are marked with a green circle icon, and disabled features are marked with a power icon. | +| Components | The major components of GitLab and the version number of each. A link to the Gitaly Servers is also included. | \ No newline at end of file -- cgit v1.2.3 From 1da2fb7f13a0ed8dd88b6995141c8de4c5207c25 Mon Sep 17 00:00:00 2001 From: danielgruesso Date: Fri, 26 Apr 2019 15:58:31 -0400 Subject: Add clarification on namespace creation --- doc/user/project/clusters/index.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 0db95e5a64c..0677fe622f2 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -257,11 +257,11 @@ GitLab will create the necessary service accounts and privileges in order to ins NOTE: **Note:** Restricted service account for deployment was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/51716) in GitLab 11.5. -- When you install Helm Tiller into your cluster, the `tiller` service account +- When you install Helm into your cluster, the `tiller` service account will be created with `cluster-admin` privileges in the `gitlab-managed-apps` namespace. This service account will be added to the installed Helm Tiller and will be used by Helm to install and run [GitLab managed applications](#installing-applications). - Helm Tiller will also create additional service accounts and other resources for each + Helm will also create additional service accounts and other resources for each installed application. Consult the documentation of the Helm charts for each application for details. @@ -315,25 +315,29 @@ install it manually. ## Installing applications GitLab provides **GitLab Managed Apps**, a one-click install for various applications which can -be added directly to your configured cluster. Those applications are +be added directly to your configured cluster. These applications are needed for [Review Apps](../../../ci/review_apps/index.md) and -[deployments](../../../ci/environments.md). You can install them after you +[deployments](../../../ci/environments.md) when using [Auto DevOps](../../../topics/autodevops/index.md). +You can install them after you [create a cluster](#adding-and-creating-a-new-gke-cluster-via-gitlab). +Applications managed by GitLab will be installed onto the `gitlab-managed-apps` namespace. This differrent +from the namespace used for project deployments. It is only created once and its name is not configurable. + To see a list of available applications to install: 1. Navigate to your project's **Operations > Kubernetes**. 1. Select your cluster. -Install Helm Tiller first because it's used to install other applications. +Install Helm first as it's used to install other applications. NOTE: **Note:** -As of GitLab 11.6, Helm Tiller will be upgraded to the latest version supported +As of GitLab 11.6, Helm will be upgraded to the latest version supported by GitLab before installing any of the applications. | Application | GitLab version | Description | Helm Chart | | ----------- | :------------: | ----------- | --------------- | -| [Helm Tiller](https://docs.helm.sh/) | 10.2+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | +| [Helm](https://docs.helm.sh/) | 10.2+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | | [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) | 10.2+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps] or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | | [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | | [Prometheus](https://prometheus.io/docs/introduction/overview/) | 10.4+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | @@ -345,9 +349,9 @@ With the exception of Knative, the applications will be installed in a dedicated namespace called `gitlab-managed-apps`. CAUTION: **Caution:** -If you have an existing Kubernetes cluster with Tiller already installed, +If you have an existing Kubernetes cluster with Helm already installed, you should be careful as GitLab cannot detect it. In this case, installing -Tiller via the applications will result in the cluster having it twice, which +Helm via the applications will result in the cluster having it twice, which can lead to confusion during deployments. ### Upgrading applications @@ -384,7 +388,7 @@ To avoid installation errors: - Before starting the installation of applications, make sure that time is synchronized between your GitLab server and your Kubernetes cluster. -- Ensure certificates are not out of sync. When installing applications, GitLab expects a new cluster with no previous installation of Tiller. +- Ensure certificates are not out of sync. When installing applications, GitLab expects a new cluster with no previous installation of Helm. You can confirm that the certificates match via `kubectl`: -- cgit v1.2.3 From 80f7b412c9b1da3a8a2d759729c30ba66845825e Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Tue, 9 Apr 2019 09:57:08 +0000 Subject: Clarify that `project_url` is used --- doc/user/project/integrations/custom_issue_tracker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/custom_issue_tracker.md b/doc/user/project/integrations/custom_issue_tracker.md index 6fc083170b6..23f1ce7a15a 100644 --- a/doc/user/project/integrations/custom_issue_tracker.md +++ b/doc/user/project/integrations/custom_issue_tracker.md @@ -7,9 +7,9 @@ in the table below. | Field | Description | | ----- | ----------- | -| `title` | A title for the issue tracker (to differentiate between instances, for example) | +| `title` | A title for the issue tracker (to differentiate between instances, for example). | | `description` | A name for the issue tracker (to differentiate between instances, for example) | -| `project_url` | Currently unused. Will be changed in a future release. | +| `project_url` | The URL to the project in the custom issue tracker. | | `issues_url` | The URL to the issue in the issue tracker project that is linked to this GitLab project. Note that the `issues_url` requires `:id` in the URL. This ID is used by GitLab as a placeholder to replace the issue number. For example, `https://customissuetracker.com/project-name/:id`. | | `new_issue_url` | Currently unused. Will be changed in a future release. | -- cgit v1.2.3 From 9c298fe4afbac548b6fb23214c58571ee9357fc4 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Tue, 30 Apr 2019 15:37:23 +0100 Subject: Need to change only the path --- doc/user/project/pages/getting_started_part_two.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index bb3be9a5ba8..faf51154e3b 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -94,9 +94,9 @@ You can also take some **optional** further steps: - _Make it a user or group website._ To turn a **project website** forked from the Pages group into a **user/group** website, you'll need to: - - Rename it to `namespace.gitlab.io`: go to your project's **Settings** - and expand **Advanced**. Scroll down to **Rename repository** and change -both the project name and the path to `namespace.gitlab.io`. + - Rename it to `namespace.gitlab.io`: go to your project's + **Settings > General** and expand **Advanced**. Scroll down to + **Rename repository** and change the path to `namespace.gitlab.io`. - Adjust your SSG's [base URL](#urls-and-baseurls) from `"project-name"` to `""`. This setting will be at a different place for each SSG, as each of them have their own structure and file tree. Most likely, it will be in the SSG's -- cgit v1.2.3 From 91188747c231394ab872f6ee9d85a22d4186d7e2 Mon Sep 17 00:00:00 2001 From: Morris-Chen Date: Tue, 30 Apr 2019 16:27:04 +0000 Subject: fix typo --- doc/user/project/pages/getting_started_part_four.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_four.md b/doc/user/project/pages/getting_started_part_four.md index f552f60a07e..87cd4941ae6 100644 --- a/doc/user/project/pages/getting_started_part_four.md +++ b/doc/user/project/pages/getting_started_part_four.md @@ -54,7 +54,7 @@ Of course, before building it, you had to install Jekyll in your computer. For that, you had to open your terminal and run `gem install jekyll`. Right? GitLab CI + GitLab Runner do the same thing. But you need to write in the `.gitlab-ci.yml` the script you want to run so -GitLab Runner will do it for you. It looks more complicated then it +GitLab Runner will do it for you. It looks more complicated than it is. What you need to tell the Runner: ``` -- cgit v1.2.3 From 656d51d8300db2ea315f61146c52245e53a5068d Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Tue, 30 Apr 2019 17:52:06 +0000 Subject: Added content on the Admin Area's `Projects` page Part of issue 57874 --- doc/user/admin_area/index.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index 5e67cb0ef16..f924ff8dfde 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -16,7 +16,7 @@ The Admin Area is made up of the following sections: | Section | Description | |:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| -| Overview | View your GitLab [Dashboard](#admin-dashboard), and maintain projects, users, groups, jobs, runners, and Gitaly servers. | +| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), users, groups, jobs, runners, and Gitaly servers. | | Monitoring | View GitLab system information, and information on background jobs, logs, [health checks](monitoring/health_check.md), request profiles, and audit logs. | | Messages | Send and manage [broadcast messages](broadcast_messages.md) for your users. | | System Hooks | Configure [system hooks](../../system_hooks/system_hooks.md) for many events. | @@ -46,4 +46,28 @@ The Dashboard is the default view of the Admin Area, and is made up of the follo | Groups | The total number of groups, up to 10 of the latest groups, and the option of creating a new group. | | Statistics | Totals of all elements of the GitLab instance. | | Features | All features available on the GitLab instance. Enabled features are marked with a green circle icon, and disabled features are marked with a power icon. | -| Components | The major components of GitLab and the version number of each. A link to the Gitaly Servers is also included. | \ No newline at end of file +| Components | The major components of GitLab and the version number of each. A link to the Gitaly Servers is also included. | + +## Administer Projects + +You can administer all projects in the GitLab instance from the Admin Area's Projects page. + +To access the Projects page, go to **Admin Area > Overview > Projects**. + +Click the **All**, **Private**, **Internal**, or **Public** tab to list only projects of that +criteria. + +By default, all projects are listed, in reverse order of when they were last updated. For each +project, the name, namespace, description, and size is listed, also options to **Edit** or +**Delete** it. + +Sort projects by **Name**, **Last created**, **Oldest created**, **Last updated**, **Oldest +updated**, **Owner**, and choose to hide or show archived projects. + +In the **Filter by name** field, type the project name you want to find, and GitLab will filter +them as you type. + +Select from the **Namespace** dropdown to filter only projects in that namespace. + +You can combine the filter options. For example, click the **Public** tab, and enter `score` in +the **Filter by name...** input box to list only public projects with `score` in their name. \ No newline at end of file -- cgit v1.2.3 From a0e38afc02362f18839982707fc85640e18221a3 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Tue, 30 Apr 2019 23:55:29 +0000 Subject: Backport docs update for multiple assignees for MRs This backports API and quick action docs. --- ...ltiple_assignees_for_merge_requests_sidebar.png | Bin 0 -> 20867 bytes doc/user/project/merge_requests/index.md | 22 +++++++++++++++++++++ doc/user/project/quick_actions.md | 7 ++++--- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 doc/user/project/merge_requests/img/multiple_assignees_for_merge_requests_sidebar.png (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/multiple_assignees_for_merge_requests_sidebar.png b/doc/user/project/merge_requests/img/multiple_assignees_for_merge_requests_sidebar.png new file mode 100644 index 00000000000..9ae6e350798 Binary files /dev/null and b/doc/user/project/merge_requests/img/multiple_assignees_for_merge_requests_sidebar.png differ diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index ba7d05a7ad7..2765a32c845 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -169,6 +169,28 @@ can easily apply them to the codebase directly from the UI. Read through the documentation on [Suggest changes](../../discussions/index.md#suggest-changes) to learn more. +## Multiple assignees **[STARTER]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/2004) +in [GitLab Starter 11.11](https://about.gitlab.com/pricing). + +Multiple people often review merge requests at the same time. GitLab allows you to have multiple assignees for merge requests to indicate everyone that is reviewing or accountable for it. + +![multiple assignees for merge requests sidebar](img/multiple_assignees_for_merge_requests_sidebar.png) + +To assign multiple assignees to a merge request: + +1. From a merge request, expand the right sidebar and locate the **Assignees** section. +1. Click on **Edit** and from the dropdown menu, select as many users as you want +to assign the merge request to. + +Similarly, assignees are removed by deselecting them from the same dropdown menu. + +It's also possible to manage multiple assignees: + +- When creating a merge request. +- Using [quick actions](../quick_actions.md#quick-actions-for-issues-and-merge-requests). + ## Resolve conflicts When a merge request has conflicts, GitLab may provide the option to resolve diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md index 88f4de891a1..2040e2ee004 100644 --- a/doc/user/project/quick_actions.md +++ b/doc/user/project/quick_actions.md @@ -26,9 +26,10 @@ discussions, and descriptions: | `/award :emoji:` | Toggle emoji award | ✓ | ✓ | | `/assign me` | Assign yourself | ✓ | ✓ | | `/assign @user` | Assign one user | ✓ | ✓ | -| `/assign @user1 @user2` | Assign multiple users **[STARTER]** | ✓ | | -| `/unassign` | Remove assignee(s) | ✓ | ✓ | -| `/reassign @user1 @user2` | Change assignee | ✓ | ✓ | +| `/assign @user1 @user2` | Assign multiple users **[STARTER]** | ✓ | ✓ | +| `/unassign @user1 @user2` | Remove assignee(s) **[STARTER]** | ✓ | ✓ | +| `/reassign @user1 @user2` | Change assignee **[STARTER]** | ✓ | ✓ | +| `/unassign` | Remove current assignee | ✓ | ✓ | | `/milestone %milestone` | Set milestone | ✓ | ✓ | | `/remove_milestone` | Remove milestone | ✓ | ✓ | | `/label ~label1 ~label2` | Add label(s). Label names can also start without ~ but mixed syntax is not supported. | ✓ | ✓ | -- cgit v1.2.3 From 5d4f47da83d2b3599fcec2262c8036d28c4bc4c1 Mon Sep 17 00:00:00 2001 From: NoaHJ <3873595-blauewelt10@users.noreply.gitlab.com> Date: Wed, 1 May 2019 11:53:54 +0000 Subject: Removes a typo in labels.md (Line 45) --- doc/user/project/labels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index 9c045dfcce4..73d61bedde1 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -42,7 +42,7 @@ Group labels appear in every label list page of the group's child projects. ### New project label from sidebar -From the sidebar of an issue or a merge request, you can create a create a new **project label** inline immediately, instead of navigating to the project label list page. +From the sidebar of an issue or a merge request, you can create a new **project label** inline immediately, instead of navigating to the project label list page. ![Labels inline](img/new_label_from_sidebar.gif) -- cgit v1.2.3 From 0a08fb3cd1f3ce76e384cd0b573297dd4f74fa43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=A4mmerle?= Date: Thu, 2 Aug 2018 22:51:04 +0200 Subject: Improved custom wiki sidebar docs --- doc/user/project/wiki/index.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md index 95f606fd786..e3c6cd6d6ff 100644 --- a/doc/user/project/wiki/index.md +++ b/doc/user/project/wiki/index.md @@ -116,7 +116,9 @@ instructions. ## Customizing sidebar -By default, the wiki would render a sidebar which lists all the pages for the -wiki. You could as well provide a `_sidebar` page to replace this default -sidebar. When this customized sidebar page is provided, the default sidebar -would not be rendered, but the customized one. +On the project's Wiki page, there is a right side navigation that renders the full Wiki pages list by default, with hierarchy. + +If the Wiki repository contains a `_sidebar` page, the file of this page replaces the default side navigation. +This custom file serves to render it's custom content, fully replacing the standard sidebar. + +Support for displaying a generated TOC with a custom side navigation is planned. -- cgit v1.2.3 From 9de719872b34973d9294b71dc24d9253796c598b Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Thu, 2 May 2019 10:19:42 +0000 Subject: Correct label permissions documentation Reporters can manage labels; you don't need to be a Developer. --- doc/user/project/labels.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index 73d61bedde1..a33235fd123 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -14,7 +14,7 @@ In GitLab, you can create project and group labels: ## Creating labels >**Note:** -A permission level of `Developer` or higher is required to create labels. +A permission level of Reporter or higher is required to create labels. ### New project label @@ -49,7 +49,7 @@ From the sidebar of an issue or a merge request, you can create a new **project ## Editing labels NOTE: **Note:** -A permission level of `Developer` or higher is required to edit labels. +A permission level of Reporter or higher is required to edit labels. You can update a label by navigating to **Issues > Labels** in the project or group and clicking the pencil icon. -- cgit v1.2.3 From 227e83ef313af6a89dfd9b7697767631574f34ea Mon Sep 17 00:00:00 2001 From: Zac Sturgess Date: Fri, 26 Apr 2019 09:23:28 +0000 Subject: Clarify gitlab.rb settings for modifying pipeline schedule worker --- doc/user/project/pipelines/schedules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pipelines/schedules.md b/doc/user/project/pipelines/schedules.md index 89f1beb6d1f..dd5427ab35a 100644 --- a/doc/user/project/pipelines/schedules.md +++ b/doc/user/project/pipelines/schedules.md @@ -79,7 +79,7 @@ For example, only two pipelines will be created per day if: To change the Sidekiq worker's frequency: -1. Edit the `pipeline_schedule_worker_cron` value in your instance's `gitlab.rb` file. +1. Edit the `gitlab_rails['pipeline_schedule_worker_cron']` value in your instance's `gitlab.rb` file. 1. [Restart GitLab](../../../administration/restart_gitlab.md). For GitLab.com, refer to the [dedicated settings page](../../gitlab_com/index.md#cron-jobs). -- cgit v1.2.3 From 89132bbdd63bbd033c43422500a972af6d94a4d0 Mon Sep 17 00:00:00 2001 From: Mayra Cabrera Date: Fri, 3 May 2019 01:05:53 +0000 Subject: Add gitlab-managed option to clusters form When this option is enabled, GitLab will create namespaces and service accounts as usual. When disabled, GitLab wont create any project specific kubernetes resources Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56557 --- doc/user/group/clusters/index.md | 23 ++++++++++++++++++++++ doc/user/project/clusters/index.md | 40 +++++++++++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 984881ef26c..0f71587830f 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -72,6 +72,29 @@ Add another cluster similar to the first one and make sure to [set an environment scope](#environment-scopes-premium) that will differentiate the new cluster from the rest. +## Gitlab-managed clusters + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22011) in GitLab 11.5. +> Became [optional](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26565) in GitLab 11.11. + +NOTE: **Note:** +Only available when creating clusters. Existing clusters not managed by GitLab +cannot become GitLab-managed later. + +You can choose to allow GitLab to manage your cluster for you. If your cluster is +managed by GitLab, resources for your projects will be automatically created. See the +[Access controls](../../project/clusters/index.md#access-controls) section for details on which resources will +be created. + +If you choose to manage your own cluster, project-specific resources will not be created +automatically. If you are using [Auto DevOps](../../../topics/autodevops/index.md), you will +need to explicitly provide the `KUBE_NAMESPACE` [deployment variable](../../project/clusters/index.md#deployment-variables) +that will be used by your deployment jobs. + +NOTE: **Note:** +If you [install applications](#installing-applications) on your cluster, GitLab will create +the resources required to run these even if you have chosen to manage your own cluster. + ## Base domain > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24580) in GitLab 11.8. diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 0677fe622f2..52b1708fe2d 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -70,6 +70,7 @@ new Kubernetes cluster to your project: - **Machine type** - The [machine type](https://cloud.google.com/compute/docs/machine-types) of the Virtual Machine instance that the cluster will be based on. - **RBAC-enabled cluster** - Leave this checked if using default GKE creation options, see the [RBAC section](#role-based-access-control-rbac) for more information. + - **GitLab-managed cluster** - Leave this checked if you want GitLab to manage namespaces and service accounts for this cluster. See the [Managed clusters section](#gitlab-managed-clusters) for more information. 1. Finally, click the **Create Kubernetes cluster** button. After a couple of minutes, your cluster will be ready to go. You can now proceed @@ -188,6 +189,9 @@ To add an existing Kubernetes cluster to your project: role binding. You can follow the [Google Cloud documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access) to grant access. + + - **GitLab-managed cluster** - Leave this checked if you want GitLab to manage namespaces and service accounts for this cluster. See the [Managed clusters section](#gitlab-managed-clusters) for more information. + - **Project namespace** (optional) - You don't have to fill it in; by leaving it blank, GitLab will create one for you. Also: - Each project should have a unique namespace. @@ -214,6 +218,29 @@ functionalities needed to successfully build and deploy a containerized application. Bear in mind that the same credentials are used for all the applications running on the cluster. +## Gitlab-managed clusters + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22011) in GitLab 11.5. +> Became [optional](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26565) in GitLab 11.11. + +NOTE: **Note:** +Only available when creating clusters. Existing clusters not managed by GitLab +cannot become GitLab-managed later. + +You can choose to allow GitLab to manage your cluster for you. If your cluster is +managed by GitLab, resources for your projects will be automatically created. See the +[Access controls](#access-controls) section for details on which resources will +be created. + +If you choose to manage your own cluster, project-specific resources will not be created +automatically. If you are using [Auto DevOps](../../../topics/autodevops/index.md), you will +need to explicitly provide the `KUBE_NAMESPACE` [deployment variable](#deployment-variables) +that will be used by your deployment jobs, otherwise a namespace will be created for you. + +NOTE: **Note:** +If you [install applications](#installing-applications) on your cluster, GitLab will create +the resources required to run these even if you have chosen to manage your own cluster. + ## Base domain > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24580) in GitLab 11.8. @@ -278,8 +305,8 @@ The following sections summarize which resources will be created on ABAC/RBAC cl | `gitlab-token` | `Secret` | Token for `gitlab` ServiceAccount | Creating a new GKE Cluster | | `tiller` | `ServiceAccount` | `gitlab-managed-apps` namespace | Installing Helm Tiller | | `tiller-admin` | `ClusterRoleBinding` | `cluster-admin` roleRef | Installing Helm Tiller | -| Project namespace | `ServiceAccount` | Uses namespace of Project | Creating/Adding a new GKE Cluster | -| Project namespace | `Secret` | Token for project ServiceAccount | Creating/Adding a new GKE Cluster | +| Project namespace | `ServiceAccount` | Uses namespace of Project | Deploying to a cluster | +| Project namespace | `Secret` | Token for project ServiceAccount | Deploying to a cluster | ### Role-based access control (RBAC) @@ -290,9 +317,12 @@ The following sections summarize which resources will be created on ABAC/RBAC cl | `gitlab-token` | `Secret` | Token for `gitlab` ServiceAccount | Creating a new GKE Cluster | | `tiller` | `ServiceAccount` | `gitlab-managed-apps` namespace | Installing Helm Tiller | | `tiller-admin` | `ClusterRoleBinding` | `cluster-admin` roleRef | Installing Helm Tiller | -| Project namespace | `ServiceAccount` | Uses namespace of Project | Creating/Adding a new GKE Cluster | -| Project namespace | `Secret` | Token for project ServiceAccount | Creating/Adding a new GKE Cluster | -| Project namespace | `RoleBinding` | [`edit`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) roleRef | Creating/Adding a new GKE Cluster | +| Project namespace | `ServiceAccount` | Uses namespace of Project | Deploying to a cluster | +| Project namespace | `Secret` | Token for project ServiceAccount | Deploying to a cluster | +| Project namespace | `RoleBinding` | [`edit`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) roleRef | Deploying to a cluster | + +NOTE: **Note:** +Project-specific resources are only created if your cluster is [managed by GitLab](#gitlab-managed-clusters). ### Security of GitLab Runners -- cgit v1.2.3 From ed68da34ab5c7b1ef7a1fb3fdfc1e24ee68ce1bc Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 3 May 2019 13:18:38 +0000 Subject: Update docs related to CI variables Add `Variable Types` section to explain supported variable types and update example and related screenshots. --- .../pipelines/img/pipeline_schedule_variables.png | Bin 5360 -> 17292 bytes .../pipelines/img/pipeline_schedules_new_form.png | Bin 23290 -> 62141 bytes 2 files changed, 0 insertions(+), 0 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pipelines/img/pipeline_schedule_variables.png b/doc/user/project/pipelines/img/pipeline_schedule_variables.png index 74692add93a..29846206491 100644 Binary files a/doc/user/project/pipelines/img/pipeline_schedule_variables.png and b/doc/user/project/pipelines/img/pipeline_schedule_variables.png differ diff --git a/doc/user/project/pipelines/img/pipeline_schedules_new_form.png b/doc/user/project/pipelines/img/pipeline_schedules_new_form.png index 95203ec861b..e135dd51070 100644 Binary files a/doc/user/project/pipelines/img/pipeline_schedules_new_form.png and b/doc/user/project/pipelines/img/pipeline_schedules_new_form.png differ -- cgit v1.2.3 From 73f0147504feb722775dcdee420d4b9e05b27e08 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 3 May 2019 13:43:57 +0000 Subject: Update Releases permissions docs Guest users now can read releases, except for items related to source code. Releated: https://gitlab.com/gitlab-org/gitlab-ce/issues/56838 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27247 --- doc/user/permissions.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index a340dd063e4..f03d2ca98ce 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -172,8 +172,12 @@ read through the documentation on [permissions and access to confidential issues ### Releases permissions -[Project Releases](project/releases/index.md) can be read by all project -members (Reporters, Developers, Maintainers, Owners) **except Guests**. +[Project Releases](project/releases/index.md) can be read by project +members with Reporter, Developer, Maintainer, and Owner permissions. +Guest users can access Release pages for downloading assets but +are not allowed to download the source code nor see repository +information such as tags and commits. + Releases can be created, updated, or deleted via [Releases APIs](../api/releases/index.md) by project Developers, Maintainers, and Owners. -- cgit v1.2.3 From 40893c88b09215f2fb1f22cad1a5eeef9d473a28 Mon Sep 17 00:00:00 2001 From: Ben Bodenmiller Date: Sat, 4 May 2019 01:23:02 +0000 Subject: fix typos in new_ci_build_permissions_model.md --- doc/user/project/new_ci_build_permissions_model.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/new_ci_build_permissions_model.md b/doc/user/project/new_ci_build_permissions_model.md index 6c3fa5eb463..d36312c9b8d 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -44,14 +44,14 @@ It is important to note that we have a few types of users: - **Administrators**: CI jobs created by Administrators will not have access to all GitLab projects, but only to projects and container images of projects - that the administrator is a member of.That means that if a project is either + that the administrator is a member of. That means that if a project is either public or internal users have access anyway, but if a project is private, the Administrator will have to be a member of it in order to have access to it via another project's job. - **External users**: CI jobs created by [external users](../permissions.md#external-users-permissions) will have access only to projects to which user has at least reporter access. This - rules out accessing all internal projects by default, + rules out accessing all internal projects by default. This allows us to make the CI and permission system more trustworthy. Let's consider the following scenario: -- cgit v1.2.3 From 27545605c7cb8d1fb2e4be1984df424fa52d57b0 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 12:10:35 +0000 Subject: =?UTF-8?q?Docs:=20Merge=20EE=20doc/=E2=80=8Bworkflow=20to=20CE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/user/project/issues/issue_data_and_actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/issues/issue_data_and_actions.md b/doc/user/project/issues/issue_data_and_actions.md index 653bd94e513..69f90318e4a 100644 --- a/doc/user/project/issues/issue_data_and_actions.md +++ b/doc/user/project/issues/issue_data_and_actions.md @@ -90,7 +90,7 @@ If a label doesn't exist yet, you can click **Edit**, and it opens a dropdown me - Assign a weight. Larger values are used to indicate more effort is required to complete the issue. Only positive values or zero are allowed. -Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workflow/issue_weight.html). +Learn more in the [Issue Weight documentation](../../../workflow/issue_weight.md). #### 9. Participants @@ -103,7 +103,7 @@ Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workfl - Unsubscribe: if you are receiving notifications on that issue but no longer want to receive them, unsubscribe from it. -Read more in the [notifications documentation](../../../workflow/notifications.md#issue--merge-request-events). +Read more in the [notifications documentation](../../../workflow/notifications.md#issue--epics--merge-request-events). #### 11. Reference -- cgit v1.2.3 From 5ddfa5765ec405b54294de58b95bf544a8458e3e Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 12:21:46 +0000 Subject: =?UTF-8?q?Docs:=20Merge=20EE=20doc/=E2=80=8Buser/group=20to=20CE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/user/group/clusters/index.md | 2 +- .../contribution_analytics/img/group_stats_cal.png | Bin 0 -> 2029 bytes .../img/group_stats_graph.png | Bin 0 -> 35400 bytes .../img/group_stats_table.png | Bin 0 -> 8473 bytes doc/user/group/contribution_analytics/index.md | 55 ++++++ doc/user/group/epics/img/button_close_epic.png | Bin 0 -> 13850 bytes doc/user/group/epics/img/button_reopen_epic.png | Bin 0 -> 14153 bytes doc/user/group/epics/img/child_epics_roadmap.png | Bin 0 -> 30149 bytes doc/user/group/epics/img/containing_epic.png | Bin 0 -> 159939 bytes doc/user/group/epics/img/epic_view.png | Bin 0 -> 176759 bytes doc/user/group/epics/img/epics_list_view.png | Bin 0 -> 96826 bytes doc/user/group/epics/img/epics_search.png | Bin 0 -> 65963 bytes doc/user/group/epics/img/epics_sort.png | Bin 0 -> 71177 bytes doc/user/group/epics/index.md | 217 +++++++++++++++++++++ .../group/img/group_file_template_dropdown.png | Bin 0 -> 9519 bytes .../group/img/group_file_template_settings.png | Bin 0 -> 6217 bytes doc/user/group/img/group_issue_board.png | Bin 0 -> 63528 bytes doc/user/group/img/member_lock.png | Bin 0 -> 3168 bytes doc/user/group/img/membership_lock.png | Bin 4820 -> 0 bytes doc/user/group/index.md | 100 ++++++++-- .../img/insights_example_stacked_bar_chart.png | Bin 0 -> 86062 bytes .../insights/img/insights_group_configuration.png | Bin 0 -> 24107 bytes doc/user/group/insights/index.md | 39 ++++ .../img/issues_created_per_month.png | Bin 0 -> 28508 bytes doc/user/group/issues_analytics/index.md | 16 ++ .../group/roadmap/img/epics_state_dropdown.png | Bin 0 -> 3702 bytes .../group/roadmap/img/roadmap_timeline_months.png | Bin 0 -> 7551 bytes .../roadmap/img/roadmap_timeline_quarters.png | Bin 0 -> 7493 bytes .../group/roadmap/img/roadmap_timeline_weeks.png | Bin 0 -> 8008 bytes doc/user/group/roadmap/img/roadmap_view.png | Bin 0 -> 49774 bytes doc/user/group/roadmap/index.md | 64 ++++++ .../img/group_saml_configuration_information.png | Bin 0 -> 50435 bytes .../group/saml_sso/img/group_saml_settings.png | Bin 0 -> 89399 bytes doc/user/group/saml_sso/img/scim_advanced.png | Bin 0 -> 21568 bytes .../group/saml_sso/img/scim_attribute_mapping.png | Bin 0 -> 95420 bytes doc/user/group/saml_sso/img/scim_token.png | Bin 0 -> 154318 bytes doc/user/group/saml_sso/img/unlink_group_saml.png | Bin 0 -> 27077 bytes doc/user/group/saml_sso/index.md | 91 +++++++++ doc/user/group/saml_sso/scim_setup.md | 102 ++++++++++ doc/user/group/security_dashboard/index.md | 5 + 40 files changed, 679 insertions(+), 12 deletions(-) create mode 100644 doc/user/group/contribution_analytics/img/group_stats_cal.png create mode 100644 doc/user/group/contribution_analytics/img/group_stats_graph.png create mode 100644 doc/user/group/contribution_analytics/img/group_stats_table.png create mode 100644 doc/user/group/contribution_analytics/index.md create mode 100644 doc/user/group/epics/img/button_close_epic.png create mode 100644 doc/user/group/epics/img/button_reopen_epic.png create mode 100644 doc/user/group/epics/img/child_epics_roadmap.png create mode 100644 doc/user/group/epics/img/containing_epic.png create mode 100644 doc/user/group/epics/img/epic_view.png create mode 100644 doc/user/group/epics/img/epics_list_view.png create mode 100644 doc/user/group/epics/img/epics_search.png create mode 100644 doc/user/group/epics/img/epics_sort.png create mode 100644 doc/user/group/epics/index.md create mode 100644 doc/user/group/img/group_file_template_dropdown.png create mode 100644 doc/user/group/img/group_file_template_settings.png create mode 100644 doc/user/group/img/group_issue_board.png create mode 100644 doc/user/group/img/member_lock.png delete mode 100644 doc/user/group/img/membership_lock.png create mode 100644 doc/user/group/insights/img/insights_example_stacked_bar_chart.png create mode 100644 doc/user/group/insights/img/insights_group_configuration.png create mode 100644 doc/user/group/insights/index.md create mode 100644 doc/user/group/issues_analytics/img/issues_created_per_month.png create mode 100644 doc/user/group/issues_analytics/index.md create mode 100644 doc/user/group/roadmap/img/epics_state_dropdown.png create mode 100644 doc/user/group/roadmap/img/roadmap_timeline_months.png create mode 100644 doc/user/group/roadmap/img/roadmap_timeline_quarters.png create mode 100644 doc/user/group/roadmap/img/roadmap_timeline_weeks.png create mode 100644 doc/user/group/roadmap/img/roadmap_view.png create mode 100644 doc/user/group/roadmap/index.md create mode 100644 doc/user/group/saml_sso/img/group_saml_configuration_information.png create mode 100644 doc/user/group/saml_sso/img/group_saml_settings.png create mode 100644 doc/user/group/saml_sso/img/scim_advanced.png create mode 100644 doc/user/group/saml_sso/img/scim_attribute_mapping.png create mode 100644 doc/user/group/saml_sso/img/scim_token.png create mode 100644 doc/user/group/saml_sso/img/unlink_group_saml.png create mode 100644 doc/user/group/saml_sso/index.md create mode 100644 doc/user/group/saml_sso/scim_setup.md create mode 100644 doc/user/group/security_dashboard/index.md (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 0f71587830f..ae09453ce52 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -111,7 +111,7 @@ The domain should have a wildcard DNS configured to the Ingress IP address. When adding more than one Kubernetes cluster to your project, you need to differentiate them with an environment scope. The environment scope associates clusters with [environments](../../../ci/environments.md) similar to how the -[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/README.html#limiting-environment-scopes-of-variables-premium) +[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/#limiting-environment-scopes-of-environment-variables-premium) work. While evaluating which environment matches the environment scope of a diff --git a/doc/user/group/contribution_analytics/img/group_stats_cal.png b/doc/user/group/contribution_analytics/img/group_stats_cal.png new file mode 100644 index 00000000000..0238c7bf088 Binary files /dev/null and b/doc/user/group/contribution_analytics/img/group_stats_cal.png differ diff --git a/doc/user/group/contribution_analytics/img/group_stats_graph.png b/doc/user/group/contribution_analytics/img/group_stats_graph.png new file mode 100644 index 00000000000..ccfd3782c6f Binary files /dev/null and b/doc/user/group/contribution_analytics/img/group_stats_graph.png differ diff --git a/doc/user/group/contribution_analytics/img/group_stats_table.png b/doc/user/group/contribution_analytics/img/group_stats_table.png new file mode 100644 index 00000000000..f1d1031fa18 Binary files /dev/null and b/doc/user/group/contribution_analytics/img/group_stats_table.png differ diff --git a/doc/user/group/contribution_analytics/index.md b/doc/user/group/contribution_analytics/index.md new file mode 100644 index 00000000000..bc88eff9ed2 --- /dev/null +++ b/doc/user/group/contribution_analytics/index.md @@ -0,0 +1,55 @@ +# Contribution Analytics **[STARTER]** + +>**Note:** +Introduced in [GitLab Starter][ee] 8.3. + +Track your team members' activity across your organization. + +## Overview + +With Contribution Analytics you can get an overview of the activity of +issues, merge requests, and push events of your organization and its members. + +The analytics page is located at **Group > Contribution Analytics** +under the URL `/groups//analytics`. + +## Use cases + +- Analyze your team's contributions over a period of time and offer a bonus for the top contributors +- Identify opportunities for improvement with group members who may benefit from additional support + +## Using Contribution Analytics + +There are three main bar graphs that are deducted from the number of +contributions per group member. These contributions include push events, merge +requests and closed issues. Hovering on each bar you can see the number of +events for a specific member. + +![Contribution analytics bar graphs](img/group_stats_graph.png) + +## Changing the period time + +There are three periods you can choose from, 'Last week', 'Last month' and +'Last three months'. The default is 'Last week'. + +You can choose which period to display by using the dropdown calendar menu in +the upper right corner. + +![Contribution analytics choose period](img/group_stats_cal.png) + +## Sorting by different factors + +Apart from the bar graphs you can also see the contributions per group member +which are depicted in a table that can be sorted by: + +* Member name +* Number of pushed events +* Number of opened issues +* Number of closed issues +* Number of opened MRs +* Number of accepted MRs +* Number of total contributions + +![Contribution analytics contributions table](img/group_stats_table.png) + +[ee]: https://about.gitlab.com/pricing/ diff --git a/doc/user/group/epics/img/button_close_epic.png b/doc/user/group/epics/img/button_close_epic.png new file mode 100644 index 00000000000..aa1a889ea23 Binary files /dev/null and b/doc/user/group/epics/img/button_close_epic.png differ diff --git a/doc/user/group/epics/img/button_reopen_epic.png b/doc/user/group/epics/img/button_reopen_epic.png new file mode 100644 index 00000000000..7a953189270 Binary files /dev/null and b/doc/user/group/epics/img/button_reopen_epic.png differ diff --git a/doc/user/group/epics/img/child_epics_roadmap.png b/doc/user/group/epics/img/child_epics_roadmap.png new file mode 100644 index 00000000000..819fed58989 Binary files /dev/null and b/doc/user/group/epics/img/child_epics_roadmap.png differ diff --git a/doc/user/group/epics/img/containing_epic.png b/doc/user/group/epics/img/containing_epic.png new file mode 100644 index 00000000000..5ed693e6d6a Binary files /dev/null and b/doc/user/group/epics/img/containing_epic.png differ diff --git a/doc/user/group/epics/img/epic_view.png b/doc/user/group/epics/img/epic_view.png new file mode 100644 index 00000000000..dbda98e4351 Binary files /dev/null and b/doc/user/group/epics/img/epic_view.png differ diff --git a/doc/user/group/epics/img/epics_list_view.png b/doc/user/group/epics/img/epics_list_view.png new file mode 100644 index 00000000000..b30608d9d31 Binary files /dev/null and b/doc/user/group/epics/img/epics_list_view.png differ diff --git a/doc/user/group/epics/img/epics_search.png b/doc/user/group/epics/img/epics_search.png new file mode 100644 index 00000000000..96335527468 Binary files /dev/null and b/doc/user/group/epics/img/epics_search.png differ diff --git a/doc/user/group/epics/img/epics_sort.png b/doc/user/group/epics/img/epics_sort.png new file mode 100644 index 00000000000..b23c65fd0ef Binary files /dev/null and b/doc/user/group/epics/img/epics_sort.png differ diff --git a/doc/user/group/epics/index.md b/doc/user/group/epics/index.md new file mode 100644 index 00000000000..6035f0c7326 --- /dev/null +++ b/doc/user/group/epics/index.md @@ -0,0 +1,217 @@ +# Epics **[ULTIMATE]** + +> Introduced in [GitLab Ultimate][ee] 10.2. + +Epics let you manage your portfolio of projects more efficiently and with less +effort by tracking groups of issues that share a theme, across projects and +milestones. + +![epics list view](img/epics_list_view.png) + +## Use cases + +- Suppose your team is working on a large feature that involves multiple discussions throughout different issues created in distinct projects within a [Group](../index.md). With Epics, you can track all the related activities that together contribute to that single feature. +- Track when the work for the group of issues is targeted to begin, and when it is targeted to end. +- Discuss and collaborate on feature ideas and scope at a high-level. + +## Creating an epic + +A paginated list of epics is available in each group from where you can create +a new epic. The list of epics includes also epics from all subgroups of the +selected group. From your group page: + +1. Go to **Epics** +1. Click the **New epic** button at the top right +1. Enter a descriptive title and hit **Create epic** + +Once created, you will be taken to the view for that newly-created epic where +you can change its title, description, start date, and due date. + +![epic view](img/epic_view.png) + +## Adding an issue to an epic + +An epic contains a list of issues and an issue can be associated with at most +one epic. When on an epic, you can add its associated issues: + +1. Click the plus icon (+) under the epic description. +1. Paste the link of the issue (you can hit Spacebar to add more than + one issues at a time). +1. Click **Add**. + +Any issue belonging to a project in the epic's group or any of the epic's +subgroups are eligible to be added. To remove an issue from an epic, click +on the x button in the epic's issue list. + +NOTE: **Note:** +When you add an issue or an epic to an epic that's already associated with another epic, +the issue or the epic is automatically removed from the previous epic. + +## Multi-level child epics + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8333) in GitLab Ultimate 11.7. + +Much like adding issues to an epic, an epic can have multiple child epics with +the maximum depth being 5. To add a child epic: + +1. Click the plus icon (+) under the epic description. +1. Paste the link of the epic. +1. Click **Add**. + +Any epic that belongs to a group or subgroup of the parent epic's group is +eligible to be added. To remove a child epic from a parent epic, +click on the x button in the parent epic's epic list. + +## Start date and due date + +For each of the dates in the sidebar of an epic, you can choose to either: + +- Enter a fixed value. +- Inherit a dynamic value called "From milestones". + +If you select "From milestones" for the start date, GitLab will automatically set the +date to be earliest start date across all milestones that are currently assigned +to the issues that are attached to the epic. Similarly, if you select "From milestones" +for the due date, GitLab will set it to be the latest due date across all +milestones that are currently assigned to those issues. + +These are dynamic dates in that if milestones are re-assigned to the issues, if the +milestone dates change, or if issues are added or removed from the epic, then +the re-calculation will happen immediately to set a new dynamic date. + +## Roadmap in epics + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7327) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.10. + +If your epic contains one or more [child epics](#multi-level-child-epics) which +have a [start or due date](#start-date-and-due-date), then you can see a +[roadmap](../roadmap/index.md) view of the child epics under the parent epic itself. + +![Child epics roadmap](img/child_epics_roadmap.png) + +## Reordering issues and child epics + +Drag and drop to reorder issues and child epics. New issues and child epics added to an epic appear at the top of the list. + +## Deleting an epic + +NOTE: **Note:** +To delete an epic, you need to be an [Owner][permissions] of a group/subgroup. + +When inside a single epic view, click the **Delete** button to delete the epic. +A modal will pop-up to confirm your action. + +Deleting an epic releases all existing issues from their associated epic in the +system. + +## Closing and reopening epics + +### Using buttons + +Whenever you decide that there is no longer need for that epic, +close the epic using the close button: + +![close epic - button](img/button_close_epic.png) + +You can always reopen it using the reopen button. + +![reopen epic - button](img/button_reopen_epic.png) + +### Using quick actions + +You can close or reopen an epic using [Quick actions](../../project/quick_actions.md) + +## Navigating to an epic from an issue + +If an issue belongs to an epic, you can navigate to the containing epic with the +link in the issue sidebar. + +![containing epic](img/containing_epic.png) + +## Promoting an issue to an epic + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3777) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6. + +If you have [permissions](../../permissions.md) to close an issue and create an +epic in the parent group, you can promote an issue to an epic with the `/promote` +[quick action](../../project/quick_actions.md#quick-actions-for-epics-ultimate). +Only issues from projects that are in groups can be promoted. + +When the quick action is executed: + +- An epic is created in the same group as the project of the issue. +- Subscribers of the issue are notified that the epic was created. + +The following issue metadata will be copied to the epic: + +- Title, description, activity/comment thread. +- Upvotes/downvotes. +- Participants. +- Group labels that the issue already has. + +## Searching for an epic from epics list page + +> Introduced in [GitLab Ultimate][ee] 10.5. + +You can search for an epic from the list of epics using filtered search bar (similar to +that of Issues and Merge requests) based on following parameters: + +- Title or description +- Author name / username +- Labels + +![epics search](img/epics_search.png) + +To search, go to the list of epics and click on the field **Search or filter results...**. +It will display a dropdown menu, from which you can add an author. You can also enter plain +text to search by epic title or description. When done, press Enter on your +keyboard to filter the list. + +You can also sort epics list by: + +- **Created date** +- **Last updated** +- **Start date** +- **Due date** + +Each option contains a button that can toggle the order between **ascending** and **descending**. The sort option and order will be persisted to be used wherever epics are browsed including the [roadmap](../roadmap/index.md). + +![epics sort](img/epics_sort.png) + +## Permissions + +If you have access to view an epic and have access to view an issue already +added to that epic, then you can view the issue in the epic issue list. + +If you have access to edit an epic and have access to edit an issue, then you +can add the issue to or remove it from the epic. + +Note that for a given group, the visibility of all projects must be the same as +the group, or less restrictive. That means if you have access to a group's epic, +then you already have access to its projects' issues. + +You may also consult the [group permissions table][permissions]. + +[ee]: https://about.gitlab.com/pricing/ +[permissions]: ../../permissions.md#group-members-permissions + +## Thread + +- Comments: collaborate on that epic by posting comments in its thread. +These text fields also fully support +[GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm). + +## Comment, or start a discussion + +Once you wrote your comment, you can either: + +- Click "Comment" and your comment will be published. +- Click "Start discussion": start a thread within that epic's thread to discuss specific points. + +## Award emoji + +- You can [award an emoji](../../award_emojis.md) to that epic or its comments. + +## Notifications + +- [Receive notifications](../../../workflow/notifications.md) for epic events. diff --git a/doc/user/group/img/group_file_template_dropdown.png b/doc/user/group/img/group_file_template_dropdown.png new file mode 100644 index 00000000000..d9caae1a223 Binary files /dev/null and b/doc/user/group/img/group_file_template_dropdown.png differ diff --git a/doc/user/group/img/group_file_template_settings.png b/doc/user/group/img/group_file_template_settings.png new file mode 100644 index 00000000000..ca42f7726db Binary files /dev/null and b/doc/user/group/img/group_file_template_settings.png differ diff --git a/doc/user/group/img/group_issue_board.png b/doc/user/group/img/group_issue_board.png new file mode 100644 index 00000000000..a0da74a320f Binary files /dev/null and b/doc/user/group/img/group_issue_board.png differ diff --git a/doc/user/group/img/member_lock.png b/doc/user/group/img/member_lock.png new file mode 100644 index 00000000000..3f1382e76c6 Binary files /dev/null and b/doc/user/group/img/member_lock.png differ diff --git a/doc/user/group/img/membership_lock.png b/doc/user/group/img/membership_lock.png deleted file mode 100644 index c9ad82c90f2..00000000000 Binary files a/doc/user/group/img/membership_lock.png and /dev/null differ diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 2d887673fd6..06564fd6cd1 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -5,10 +5,12 @@ and grant members access to several projects at once. Groups can also be nested in [subgroups](subgroups/index.md). -Find your groups by expanding the left menu and clicking **Groups**: +Find your groups by clicking **Groups** in the top navigation. ![GitLab Groups](img/groups.png) +> The groups dropdown in the top navigation was [introduced][ce-36234] in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). + The Groups page displays all groups you are a member of, how many projects it holds, how many members it has, the group visibility, and, if you have enough permissions, a link to the group settings. By clicking the last button you can leave that group. @@ -44,7 +46,7 @@ For example, consider a user named Alex: 1. Alex creates an account on GitLab.com with the username `alex`; their profile will be accessed under `https://gitlab.example.com/alex` -1. Alex creates a group for their team with the groupname `alex-team`; +1. Alex creates a group for their team with the group name `alex-team`; the group and its projects will be accessed under `https://gitlab.example.com/alex-team` 1. Alex creates a subgroup of `alex-team` with the subgroup name `marketing`; this subgroup and its projects will be accessed under `https://gitlab.example.com/alex-team/marketing` @@ -160,6 +162,10 @@ There are two different ways to add a new project to a group: ### Default project creation level +> [Introduced][ee-2534] in [GitLab Premium][ee] 10.5. +> Brought to [GitLab Starter][ee] in 10.7. +> [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25975) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.10. + Group owners or administrators can allow users with the Developer role to create projects under groups. @@ -185,6 +191,32 @@ Alternatively, you can [lock the sharing with group feature](#share-with-group-l In GitLab Enterprise Edition it is possible to manage GitLab group memberships using LDAP groups. See [the GitLab Enterprise Edition documentation](../../integration/ldap.md) for more information. +## Epics **[ULTIMATE]** + +> Introduced in [GitLab Ultimate][ee] 10.2. + +Epics let you manage your portfolio of projects more efficiently and with less +effort by tracking groups of issues that share a theme, across projects and +milestones. + +[Learn more about Epics.](epics/index.md) + +## Group Security Dashboard **[ULTIMATE]** + +Get an overview of the vulnerabilities of all the projects in a group and its subgroups. + +[Learn more about the Group Security Dashboard.](security_dashboard/index.md) + +## Insights **[ULTIMATE]** + +> Introduced in [GitLab Ultimate][ee] 11.9 behind the `insights` feature flag. + +Configure the Insights that matter for your groups or projects to explore data +such as triage hygiene, issues created/closed per a given period, average time +for merge requests to be merged and much more. + +[Learn more about Insights](insights/index.md). + ## Transferring groups From GitLab 10.5, groups can be transferred in the following ways: @@ -257,7 +289,7 @@ working together in a project. To inherit the group membership, you share the project between the two groups A and B. **Share with group lock** prevents any project within the group from being shared with another group. By doing so, you -guarantee only the right group members have access to that projects. +guarantee only the right group members have access to those projects. To enable this feature, navigate to the group settings page. Select **Share with group lock** and **Save the group**. @@ -266,17 +298,50 @@ To enable this feature, navigate to the group settings page. Select #### Member Lock **[STARTER]** -With **Member Lock** it is possible to lock membership in project to the -level of members in group. +With Member lock, it is possible to lock membership in a project to the +level of members in the group. + +Member lock lets a group owner lock down any new project membership to all the +projects within the group, allowing tighter control over project membership. -Learn more about [Member Lock](https://docs.gitlab.com/ee/user/group/index.html#member-lock). +For instance, if you want to lock the group for an [Audit Event](https://docs.gitlab.com/ee/administration/audit_events.html), +you enable Member lock to guarantee that membership of a project cannot be modified during that audit. -#### Group-level file templates **[PREMIUM]** +To enable this feature: -Group-level file templates allow you to share a set of templates for common file -types with every project in a group. +1. Navigate to the group's **Settings > General** page. +1. Expand the **Permissions, LFS, 2FA** section and select **Member lock**. +1. Click the **Save changes** button. -Learn more about [Group-level file templates](https://docs.gitlab.com/ee/user/group/index.html#group-level-file-templates-premium). +![Checkbox for membership lock](img/member_lock.png) + +This will disable the option for all users who previously had permissions to +operate project memberships so no new users can be added. Furthermore, any +request to add a new user to a project through API will not be possible. + +#### Group file templates **[PREMIUM]** + +Group file templates allow you to share a set of templates for common file +types with every project in a group. It is analogous to the +[instance template repository](https://docs.gitlab.com/ee/user/admin_area/settings/instance_template_repository.html) +feature, and the selected project should follow the same naming conventions as +are documented on that page. + +Only projects that are in the group may be chosen as the source of templates. +This includes projects shared with the group, but **excludes** projects in +subgroups or parent groups of the group being configured. + +This feature may be configured for subgroups as well as parent groups. A project +in a subgroup will have access to the templates for that subgroup, as well as +any parent groups. + +![Group file template dropdown](img/group_file_template_dropdown.png) + +To enable this feature, navigate to the group settings page, expand the +**Templates** section, choose a project to act as the template repository, and +**Save group**. + +![Group file template settings](img/group_file_template_settings.png) #### Group-level project templates **[PREMIUM]** @@ -289,6 +354,19 @@ Define project templates at a group-level by setting a group as a template sourc access each project's settings, and remove any project from the same screen. - **Webhooks**: configure [webhooks](../project/integrations/webhooks.md) to your group. - **Kubernetes cluster integration**: connect your GitLab group with [Kubernetes clusters](clusters/index.md). -- **Audit Events**: view [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html#audit-events) +- **Audit Events**: view [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html) for the group. **[STARTER ONLY]** - **Pipelines quota**: keep track of the [pipeline quota](../admin_area/settings/continuous_integration.md) for the group. + +## User contribution analysis **[STARTER]** + +With [GitLab Contribution Analytics](contribution_analytics/index.md) +you have an overview of the contributions (pushes, merge requests, +and issues) performed by your group members. + +## Issues analytics **[PREMIUM]** + +With [GitLab Issues Analytics](issues_analytics/index.md), in groups, you can see a bar chart of the number of issues created each month. + +[ee]: https://about.gitlab.com/pricing/ +[ee-2534]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2534 diff --git a/doc/user/group/insights/img/insights_example_stacked_bar_chart.png b/doc/user/group/insights/img/insights_example_stacked_bar_chart.png new file mode 100644 index 00000000000..791d0e4bcdf Binary files /dev/null and b/doc/user/group/insights/img/insights_example_stacked_bar_chart.png differ diff --git a/doc/user/group/insights/img/insights_group_configuration.png b/doc/user/group/insights/img/insights_group_configuration.png new file mode 100644 index 00000000000..0af0073e448 Binary files /dev/null and b/doc/user/group/insights/img/insights_group_configuration.png differ diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md new file mode 100644 index 00000000000..5283d8da77d --- /dev/null +++ b/doc/user/group/insights/index.md @@ -0,0 +1,39 @@ +# Insights **[ULTIMATE]** + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.9 behind the `insights` feature flag. + +CAUTION: **Beta:** +Insights is considered beta, and is not ready for production use. +Follow [gitlab-org&725](https://gitlab.com/groups/gitlab-org/-/epics/725) for +updates. + +Configure the Insights that matter for your groups to explore data such as +triage hygiene, issues created/closed per a given period, average time for merge +requests to be merged and much more. + +![Insights example stacked bar chart](img/insights_example_stacked_bar_chart.png) + +## Configure your Insights + +Navigate to your group's **Settings > General**, expand **Insights**, and choose +the project that holds your `.gitlab/insights.yml` configuration file: + +![group insights configuration](img/insights_group_configuration.png) + +If no configuration was set, a [default configuration file]( +https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/fixtures/insights/ee/fixtures/insights/default.yml) +will be used. + +See the [Project's Insights documentation](https://docs.gitlab.com/ee/user/project/insights/index.html) for +more details about the `.gitlab/insights.yml` configuration file. + +## Permissions + +If you have access to view a group, then you have access to view their Insights. + +NOTE: **Note:** +Issues or merge requests that you don't have access to (because you don't have +access to the project they belong to, or because they are confidential) are +filtered out of the Insights charts. + +You may also consult the [group permissions table](../../permissions.md#group-members-permissions). diff --git a/doc/user/group/issues_analytics/img/issues_created_per_month.png b/doc/user/group/issues_analytics/img/issues_created_per_month.png new file mode 100644 index 00000000000..96f0d36c917 Binary files /dev/null and b/doc/user/group/issues_analytics/img/issues_created_per_month.png differ diff --git a/doc/user/group/issues_analytics/index.md b/doc/user/group/issues_analytics/index.md new file mode 100644 index 00000000000..cf53d7423a6 --- /dev/null +++ b/doc/user/group/issues_analytics/index.md @@ -0,0 +1,16 @@ +# Issues Analytics **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7478) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.5. + +GitLab by default displays a bar chart of the number of issues created each month, for the +current month, and 12 months prior, for a total of 13 months. + +You can change the total number of months displayed by setting a URL parameter. +For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15` +would show a total of 15 months for the chart in the GitLab.org group. + +The **Search or filter results...** field can be used for filtering the issues by any attribute. For example, labels, assignee, milestone, and author. + +To access the chart, navigate to a group's sidebar and select **Issues > Analytics**. + +![Issues created per month](img/issues_created_per_month.png) diff --git a/doc/user/group/roadmap/img/epics_state_dropdown.png b/doc/user/group/roadmap/img/epics_state_dropdown.png new file mode 100644 index 00000000000..cbcc3658a54 Binary files /dev/null and b/doc/user/group/roadmap/img/epics_state_dropdown.png differ diff --git a/doc/user/group/roadmap/img/roadmap_timeline_months.png b/doc/user/group/roadmap/img/roadmap_timeline_months.png new file mode 100644 index 00000000000..5a046b21507 Binary files /dev/null and b/doc/user/group/roadmap/img/roadmap_timeline_months.png differ diff --git a/doc/user/group/roadmap/img/roadmap_timeline_quarters.png b/doc/user/group/roadmap/img/roadmap_timeline_quarters.png new file mode 100644 index 00000000000..56f428cb471 Binary files /dev/null and b/doc/user/group/roadmap/img/roadmap_timeline_quarters.png differ diff --git a/doc/user/group/roadmap/img/roadmap_timeline_weeks.png b/doc/user/group/roadmap/img/roadmap_timeline_weeks.png new file mode 100644 index 00000000000..bf4c1dc0284 Binary files /dev/null and b/doc/user/group/roadmap/img/roadmap_timeline_weeks.png differ diff --git a/doc/user/group/roadmap/img/roadmap_view.png b/doc/user/group/roadmap/img/roadmap_view.png new file mode 100644 index 00000000000..ff41a2e0441 Binary files /dev/null and b/doc/user/group/roadmap/img/roadmap_view.png differ diff --git a/doc/user/group/roadmap/index.md b/doc/user/group/roadmap/index.md new file mode 100644 index 00000000000..310c4bb88d0 --- /dev/null +++ b/doc/user/group/roadmap/index.md @@ -0,0 +1,64 @@ +# Roadmap **[ULTIMATE]** + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 10.5. + +An Epic within a group containing **Start date** and/or **Due date** +can be visualized in a form of a timeline (e.g. a Gantt chart). The Epics Roadmap page +shows such a visualization for all the epics which are under a group and/or its subgroups. + +![roadmap view](img/roadmap_view.png) + +A dropdown allows you to show only open or closed epics. By default, all epics are shown. + +![epics state dropdown](img/epics_state_dropdown.png) + +Epics in the view can be sorted by: + +- **Created date** +- **Last updated** +- **Start date** +- **Due date** + +Each option contains a button that can toggle the order between **ascending** and **descending**. The sort option and order will be persisted to be used wherever epics are browsed including the [epics list view](../epics/index.md). + +Roadmaps can also be [visualized inside an epic](../epics/index.md#roadmap-in-epics). + +## Timeline duration + +Starting with [GitLab Ultimate][ee] 11.0, Roadmap supports three different date ranges; Quarters, Months (Default) and Weeks. + +### Quarters + +![roadmap date range in quarters](img/roadmap_timeline_quarters.png) + +In _Quarters_ preset, roadmap shows epics which have start or due dates _falling within_ or +_going through_ **past quarter**, **current quarter** and **next 4 quarters**, where _today_ +is shown by the vertical red line in the timeline. The sub-headers underneath the quarter name on +the timeline header represent the month of the quarter. + +### Months + +![roadmap date range in months](img/roadmap_timeline_months.png) + +In _Months_ preset, roadmap shows epics which have start or due dates _falling within_ or +_going through_ **past month**, **current month** and **next 5 months**, where _today_ +is shown by the vertical red line in the timeline. The sub-headers underneath the month name on +the timeline header represent the date on starting day (Sunday) of the week. This preset is +selected by default. + +### Weeks + +![roadmap date range in weeks](img/roadmap_timeline_weeks.png) + +In _Weeks_ preset, roadmap shows epics which have start or due dates _falling within_ or +_going through_ **past week**, **current week** and **next 4 weeks**, where _today_ +is shown by the vertical red line in the timeline. The sub-headers underneath the week name on +the timeline header represent the days of the week. + +## Timeline bar for an epic + +The timeline bar indicates the approximate position of an epic based on its start +and due date. If an epic doesn't have a due date, the timeline bar fades +away towards the future. Similarly, if an epic doesn't have a start date, the +timeline bar becomes more visible as it approaches the epic's due date on the +timeline. diff --git a/doc/user/group/saml_sso/img/group_saml_configuration_information.png b/doc/user/group/saml_sso/img/group_saml_configuration_information.png new file mode 100644 index 00000000000..98b83d0cb0f Binary files /dev/null and b/doc/user/group/saml_sso/img/group_saml_configuration_information.png differ diff --git a/doc/user/group/saml_sso/img/group_saml_settings.png b/doc/user/group/saml_sso/img/group_saml_settings.png new file mode 100644 index 00000000000..d95acb5075f Binary files /dev/null and b/doc/user/group/saml_sso/img/group_saml_settings.png differ diff --git a/doc/user/group/saml_sso/img/scim_advanced.png b/doc/user/group/saml_sso/img/scim_advanced.png new file mode 100644 index 00000000000..3b70e3fbe83 Binary files /dev/null and b/doc/user/group/saml_sso/img/scim_advanced.png differ diff --git a/doc/user/group/saml_sso/img/scim_attribute_mapping.png b/doc/user/group/saml_sso/img/scim_attribute_mapping.png new file mode 100644 index 00000000000..c9f6b71f5b0 Binary files /dev/null and b/doc/user/group/saml_sso/img/scim_attribute_mapping.png differ diff --git a/doc/user/group/saml_sso/img/scim_token.png b/doc/user/group/saml_sso/img/scim_token.png new file mode 100644 index 00000000000..7eb52bf6ea2 Binary files /dev/null and b/doc/user/group/saml_sso/img/scim_token.png differ diff --git a/doc/user/group/saml_sso/img/unlink_group_saml.png b/doc/user/group/saml_sso/img/unlink_group_saml.png new file mode 100644 index 00000000000..0561443b5f4 Binary files /dev/null and b/doc/user/group/saml_sso/img/unlink_group_saml.png differ diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md new file mode 100644 index 00000000000..ee3137d032e --- /dev/null +++ b/doc/user/group/saml_sso/index.md @@ -0,0 +1,91 @@ +# SAML SSO for GitLab.com Groups **[SILVER ONLY]** + +> Introduced in [GitLab.com Silver](https://about.gitlab.com/pricing/) 11.0. + +NOTE: **Note:** +This topic is for SAML on GitLab.com Silver tier and above. For SAML on self-managed GitLab instances, see [SAML OmniAuth Provider](../../../integration/saml.md). + +Currently SAML on GitLab.com can be used to automatically add users to a group, and does not yet sign users into GitLab.com. Users should already have an account on the GitLab instance, or can create one when logging in for the first time. + +User synchronization for GitLab.com is partially supported using [SCIM](scim_setup.md). + +NOTE: **Note:** +SAML SSO for groups is used only as a convenient way to add users and does not sync users between providers without using SCIM. If a group is not using SCIM, group Owners will still need to manage user accounts, such as removing users when necessary. + +## Configuring your Identity Provider + +1. Navigate to the group and click **Settings > SAML SSO**. +1. Configure your SAML server using the **Assertion consumer service URL** and **Issuer**. See [your identity provider's documentation](#providers) for more details. +1. Configure the SAML response to include a NameID that uniquely identifies each user. +1. Configure required assertions using the [table below](#assertions). +1. Once the identity provider is set up, move on to [configuring GitLab](#configuring-gitlab). + +![Issuer and callback for configuring SAML identity provider with GitLab.com](img/group_saml_configuration_information.png) + +NOTE: **Note:** +Partial SSO enforcement was introduced in [11.8](https://gitlab.com/gitlab-org/gitlab-ee/issues/5291). With this option enabled, users must use your group's GitLab single sign on URL to be added to the group or be added via SCIM. Users can no longer be added manually. After a user has been added to the group, GitLab does not continue to enforce the use of SSO, but we'll [add a persistent check](https://gitlab.com/gitlab-org/gitlab-ee/issues/9255) in a later version. + +### NameID + +GitLab.com uses the SAML NameID to identify users. The NameID element: + +- Is a required field in the SAML response. +- Must be unique to each user. +- Must be a persistent value that will never change, such as a unique ID or username. Email could also be used as the NameID, but only if it can be guaranteed to never change. + +### Assertions + +| Field | Supported keys | Notes | +|-|----------------|-------------| +| Email | `email`, `mail` | (required) | +| Full Name | `name` | | +| First Name | `first_name`, `firstname`, `firstName` | | +| Last Name | `last_name`, `lastname`, `lastName` | | + +## Configuring GitLab + +Once you've set up your identity provider to work with GitLab, you'll need to configure GitLab to use it for authentication: + +1. Navigate to the group's **Settings > SAML SSO**. +1. Find the SSO URL from your Identity Provider and enter it the **Identity provider single sign on URL** field. +1. Find and enter the fingerprint for the SAML token signing certificate in the **Certificate** field. +1. Check the **Enable SAML authentication for this group** checkbox. +1. Click the **Save changes** button. + +![Group SAML Settings for GitLab.com](img/group_saml_settings.png) + +## Providers + +| Provider | Documentation | +|----------|---------------| +| ADFS (Active Directory Federation Services) | [Create a Relying Party Trust](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust) | +| Azure | [Configuring single sign-on to applications](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-saas-custom-apps) | +| Auth0 | [Auth0 as Identity Provider](https://auth0.com/docs/protocols/saml/saml-idp-generic) | +| G Suite | [Set up your own custom SAML application](https://support.google.com/a/answer/6087519?hl=en) | +| JumpCloud | [Single Sign On (SSO) with GitLab](https://support.jumpcloud.com/customer/en/portal/articles/2810701-single-sign-on-sso-with-gitlab) | +| Okta | [Setting up a SAML application in Okta](https://developer.okta.com/standards/SAML/setting_up_a_saml_application_in_okta) | +| OneLogin | [Use the OneLogin SAML Test Connector](https://onelogin.service-now.com/support?id=kb_article&sys_id=93f95543db109700d5505eea4b96198f) | +| Ping Identity | [Add and configure a new SAML application](https://docs.pingidentity.com/bundle/p1_enterpriseConfigSsoSaml_cas/page/enableAppWithoutURL.html) | + +## Unlinking accounts + +Users can unlink SAML for a group from their profile page. This can be helpful if: + +- You no longer want a group to be able to sign you in to GitLab.com. +- Your SAML NameID has changed and so GitLab can no longer find your user. + +For example, to unlink the `MyOrg` account, the following **Disconnect** button will be available under **Profile > Accounts**: + +![Unlink Group SAML](img/unlink_group_saml.png) + +## Glossary + +| Term | Description | +|------|-------------| +| Identity Provider | The service which manages your user identities such as ADFS, Okta, Onelogin or Ping Identity. | +| Service Provider | SAML considers GitLab to be a service provider. | +| Assertion | A piece of information about a user's identity, such as their name or role. Also know as claims or attributes. | +| SSO | Single Sign On. | +| Assertion consumer service URL | The callback on GitLab where users will be redirected after successfully authenticating with the identity provider. | +| Issuer | How GitLab identifies itself to the identity provider. Also known as a "Relying party trust identifier". | +| Certificate fingerprint | Used to confirm that communications over SAML are secure by checking that the server is signing communications with the correct certificate. Also known as a certificate thumbprint. | diff --git a/doc/user/group/saml_sso/scim_setup.md b/doc/user/group/saml_sso/scim_setup.md new file mode 100644 index 00000000000..ec27ec3e336 --- /dev/null +++ b/doc/user/group/saml_sso/scim_setup.md @@ -0,0 +1,102 @@ +# SCIM provisioning using SAML SSO for Groups **[SILVER ONLY]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9388) in [GitLab.com Silver](https://about.gitlab.com/pricing/) 11.10. + +GitLab's [SCIM API](https://docs.gitlab.com/ee/api/scim.html) implements part of [the RFC7644 protocol](https://tools.ietf.org/html/rfc7644). + +Currently, the following actions are available: + +- CREATE +- UPDATE +- DELETE (deprovisioning) + +The following identity providers are supported: + +- Azure + +## Requirements + +- [Group SSO](index.md) needs to be configured. +- The `scim_group` feature flag must be enabled: + + Run the following commands in a Rails console: + + ```sh + # Omnibus GitLab + gitlab-rails console + + # Installation from source + cd /home/git/gitlab + sudo -u git -H bin/rails console RAILS_ENV=production + ``` + + To enable SCIM for a group named `group_name`: + + ```ruby + group = Group.find_by_full_path('group_name') + Feature.enable(:group_scim, group) + ``` + +### GitLab configuration + +Once [Single sign-on](index.md) has been configured, we can: + +1. Navigate to the group and click **Settings > SAML SSO**. +1. Click on the **Generate a SCIM token** button. +1. Save the token and URL so they can be used in the next step. + +![SCIM token configuration](img/scim_token.png) + +## SCIM IdP configuration + +### Configuration on Azure + +In the [Single sign-on](index.md) configuration for the group, make sure +that the **Name identifier value** (NameID) points to a unique identifier, such +as the `user.objectid`. This will match the `extern_uid` used on GitLab. + +The GitLab app in Azure needs to be configured following +[Azure's SCIM setup](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/use-scim-to-provision-users-and-groups#getting-started). + +Note the following: + +- The `Tenant URL` and `secret token` are the ones retrieved in the +[previous step](#gitlab-configuration). +- Should there be any problems with the availability of GitLab or similar +errors, the notification email set will get those. +- For mappings, we will only leave `Synchronize Azure Active Directory Users to AppName` enabled. + +You can then test the connection clicking on `Test Connection`. + +### Synchronize Azure Active Directory users + +1. Click on `Synchronize Azure Active Directory Users to AppName`, to configure +the attribute mapping. +1. Select the unique identifier (in the example `objectId`) as the `id` and `externalId`, +and enable the `Create`, `Update`, and `Delete` actions. +1. Map the `userPricipalName` to `emails[type eq "work"].value` and `mailNickname` to +`userName`. + + Example configuration: + + ![Azure's attribute mapping configuration](img/scim_attribute_mapping.png) + +1. Click on **Show advanced options > Edit attribute list for AppName**. +1. Leave the `id` as the primary and only required field. + + NOTE: **Note:** + `username` should neither be primary nor required as we don't support + that field on GitLab SCIM yet. + + ![Azure's attribute advanced configuration](img/scim_advanced.png) + +1. Save all the screens and, in the **Provisioning** step, set +the `Provisioning Status` to `ON`. + + NOTE: **Note:** + You can control what is actually synced by selecting the `Scope`. For example, + `Sync only assigned users and groups` will only sync the users assigned to + the application (`Users and groups`), otherwise it will sync the whole Active Directory. + +Once enabled, the synchronization details and any errors will appear on the +bottom of the **Provisioning** screen, together with a link to the audit logs. diff --git a/doc/user/group/security_dashboard/index.md b/doc/user/group/security_dashboard/index.md new file mode 100644 index 00000000000..43e910b29fe --- /dev/null +++ b/doc/user/group/security_dashboard/index.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/security_dashboard/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/security_dashboard/index.html). -- cgit v1.2.3 From 56fee54a5df903fce52c13962bbb1d596fe6482c Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 12:27:26 +0000 Subject: =?UTF-8?q?Docs:=20Merge=20EE=20doc/=E2=80=8Buser/discussions=20to?= =?UTF-8?q?=20CE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/user/discussions/img/mr_review_resolve.png | Bin 0 -> 21941 bytes doc/user/discussions/img/mr_review_resolve2.png | Bin 0 -> 9430 bytes .../discussions/img/mr_review_second_comment.png | Bin 0 -> 11188 bytes .../img/mr_review_second_comment_added.png | Bin 0 -> 9673 bytes doc/user/discussions/img/mr_review_start.png | Bin 0 -> 23491 bytes doc/user/discussions/img/mr_review_unresolve.png | Bin 0 -> 11302 bytes doc/user/discussions/img/mr_review_unresolve2.png | Bin 0 -> 8976 bytes .../discussions/img/pending_review_comment.png | Bin 0 -> 8793 bytes .../img/review_comment_quickactions.png | Bin 0 -> 12392 bytes doc/user/discussions/img/review_preview.png | Bin 0 -> 19769 bytes doc/user/discussions/index.md | 70 +++++++++++++++++++++ 11 files changed, 70 insertions(+) create mode 100644 doc/user/discussions/img/mr_review_resolve.png create mode 100644 doc/user/discussions/img/mr_review_resolve2.png create mode 100644 doc/user/discussions/img/mr_review_second_comment.png create mode 100644 doc/user/discussions/img/mr_review_second_comment_added.png create mode 100644 doc/user/discussions/img/mr_review_start.png create mode 100644 doc/user/discussions/img/mr_review_unresolve.png create mode 100644 doc/user/discussions/img/mr_review_unresolve2.png create mode 100644 doc/user/discussions/img/pending_review_comment.png create mode 100644 doc/user/discussions/img/review_comment_quickactions.png create mode 100644 doc/user/discussions/img/review_preview.png (limited to 'doc/user') diff --git a/doc/user/discussions/img/mr_review_resolve.png b/doc/user/discussions/img/mr_review_resolve.png new file mode 100644 index 00000000000..34176f3fa8e Binary files /dev/null and b/doc/user/discussions/img/mr_review_resolve.png differ diff --git a/doc/user/discussions/img/mr_review_resolve2.png b/doc/user/discussions/img/mr_review_resolve2.png new file mode 100644 index 00000000000..e4adb5f2c2d Binary files /dev/null and b/doc/user/discussions/img/mr_review_resolve2.png differ diff --git a/doc/user/discussions/img/mr_review_second_comment.png b/doc/user/discussions/img/mr_review_second_comment.png new file mode 100644 index 00000000000..920ea05ad66 Binary files /dev/null and b/doc/user/discussions/img/mr_review_second_comment.png differ diff --git a/doc/user/discussions/img/mr_review_second_comment_added.png b/doc/user/discussions/img/mr_review_second_comment_added.png new file mode 100644 index 00000000000..1fb54348547 Binary files /dev/null and b/doc/user/discussions/img/mr_review_second_comment_added.png differ diff --git a/doc/user/discussions/img/mr_review_start.png b/doc/user/discussions/img/mr_review_start.png new file mode 100644 index 00000000000..38b44bda0d2 Binary files /dev/null and b/doc/user/discussions/img/mr_review_start.png differ diff --git a/doc/user/discussions/img/mr_review_unresolve.png b/doc/user/discussions/img/mr_review_unresolve.png new file mode 100644 index 00000000000..da895ceb89f Binary files /dev/null and b/doc/user/discussions/img/mr_review_unresolve.png differ diff --git a/doc/user/discussions/img/mr_review_unresolve2.png b/doc/user/discussions/img/mr_review_unresolve2.png new file mode 100644 index 00000000000..a824b806e4a Binary files /dev/null and b/doc/user/discussions/img/mr_review_unresolve2.png differ diff --git a/doc/user/discussions/img/pending_review_comment.png b/doc/user/discussions/img/pending_review_comment.png new file mode 100644 index 00000000000..916ef5b7452 Binary files /dev/null and b/doc/user/discussions/img/pending_review_comment.png differ diff --git a/doc/user/discussions/img/review_comment_quickactions.png b/doc/user/discussions/img/review_comment_quickactions.png new file mode 100644 index 00000000000..bd9880c329a Binary files /dev/null and b/doc/user/discussions/img/review_comment_quickactions.png differ diff --git a/doc/user/discussions/img/review_preview.png b/doc/user/discussions/img/review_preview.png new file mode 100644 index 00000000000..4bf53a81b9c Binary files /dev/null and b/doc/user/discussions/img/review_preview.png differ diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index c7e8bb5b33b..248f8395db1 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -5,6 +5,7 @@ The ability to contribute conversationally is offered throughout GitLab. You can leave a comment in the following places: - issues +- epics **[ULTIMATE]** - merge requests - snippets - commits @@ -279,6 +280,75 @@ edit existing comments. Non-team members are restricted from adding or editing c Additionally, locked issues and merge requests can not be reopened. +## Merge Request Reviews **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4213) in GitLab 11.4. + +When looking at a Merge Request diff, you are able to start a review. +This allows you to create comments inside a Merge Request that are **only visible to you** until published, +in order to allow you to submit them all as a single action. + +### Starting a review + +In order to start a review, simply write a comment on a diff as normal under the **Changes** tab +in an MR and click on the **Start a review** button. + +![Starting a review](img/mr_review_start.png) + +Once a review is started, you will see any comments that are part of this review marked `Pending`. +All comments that are part of a review show two buttons: + +- **Submit review**: Submits all comments that are part of the review, making them visible to other users. +- **Add comment now**: Submits the specific comment as a regular comment instead of as part of the review. + +![A comment that is part of a review](img/pending_review_comment.png) + +You can use [quick actions] inside review comments. The comment will show the actions that will be performed once published. + +![A review comment with quick actions](img/review_comment_quickactions.png) + +To add more comments to a review, start writing a comment as normal and click the **Add to review** button. + +![Adding a second comment to a review](img/mr_review_second_comment.png) + +This will add the comment to the review. + +![Second review comment](img/mr_review_second_comment_added.png) + +### Resolving/Unresolving discussions + +Review comments can also resolve/unresolve [resolvable discussions](#resolvable-comments-and-discussions). +When replying to a comment, you will see a checkbox that you can click in order to resolve or unresolve +the discussion once published. + +![Resolve checkbox](img/mr_review_resolve.png) +![Unresolve checkbox](img/mr_review_unresolve.png) + +If a particular pending comment will resolve or unresolve the discussion, this will be shown on the pending +comment itself. + +![Resolve status](img/mr_review_resolve2.png) +![Unresolve status](img/mr_review_unresolve2.png) + +### Submitting a review + +If you have any comments that have not been submitted, you will see a bar at the +bottom of the screen with two buttons: + +- **Discard**: Discards all comments that have not been submitted. +- **Finish review**: Opens a list of comments ready to be submitted for review. + Clicking **Submit review** will publish all comments. Any quick actions + submitted are performed at this time. + +Alternatively, every pending comment has a button to finish the entire review. + +![Review submission](img/review_preview.png) + +Submitting the review will send a single email to every notifiable user of the +merge request with all the comments associated to it. + +Replying to this email will, consequentially, create a new comment on the associated merge request. + ## Filtering notes > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/26723) in GitLab 11.5. -- cgit v1.2.3 From 0d598c55fb8182ae562c4b0b66ada933e10b1bf6 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 12:29:36 +0000 Subject: =?UTF-8?q?Docs:=20Merge=20EE=20doc/=E2=80=8Buser/project/clusters?= =?UTF-8?q?=20to=20CE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clusters/img/k8s_cluster_monitoring.png | Bin 0 -> 43150 bytes .../project/clusters/img/kubernetes_pod_logs.png | Bin 0 -> 147319 bytes .../project/clusters/img/pod_logs_deploy_board.png | Bin 0 -> 13291 bytes doc/user/project/clusters/index.md | 6 +++--- doc/user/project/clusters/kubernetes_pod_logs.md | 21 +++++++++++++++++++++ 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 doc/user/project/clusters/img/k8s_cluster_monitoring.png create mode 100644 doc/user/project/clusters/img/kubernetes_pod_logs.png create mode 100644 doc/user/project/clusters/img/pod_logs_deploy_board.png create mode 100644 doc/user/project/clusters/kubernetes_pod_logs.md (limited to 'doc/user') diff --git a/doc/user/project/clusters/img/k8s_cluster_monitoring.png b/doc/user/project/clusters/img/k8s_cluster_monitoring.png new file mode 100644 index 00000000000..e449893a606 Binary files /dev/null and b/doc/user/project/clusters/img/k8s_cluster_monitoring.png differ diff --git a/doc/user/project/clusters/img/kubernetes_pod_logs.png b/doc/user/project/clusters/img/kubernetes_pod_logs.png new file mode 100644 index 00000000000..e664a47386a Binary files /dev/null and b/doc/user/project/clusters/img/kubernetes_pod_logs.png differ diff --git a/doc/user/project/clusters/img/pod_logs_deploy_board.png b/doc/user/project/clusters/img/pod_logs_deploy_board.png new file mode 100644 index 00000000000..7f83382968b Binary files /dev/null and b/doc/user/project/clusters/img/pod_logs_deploy_board.png differ diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 52b1708fe2d..f0d70dafb3f 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -527,7 +527,7 @@ differentiate the new cluster with the rest. When adding more than one Kubernetes cluster to your project, you need to differentiate them with an environment scope. The environment scope associates clusters with [environments](../../../ci/environments.md) similar to how the -[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/README.html#limiting-environment-scopes-of-variables-premium) work. +[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/index.html#limiting-environment-scopes-of-environment-variables-premium) work. The default environment scope is `*`, which means all jobs, regardless of their environment, will use that cluster. Each scope can only be used by a single @@ -625,7 +625,7 @@ Common reasons for failure include: When [Prometheus is deployed](#installing-applications), GitLab will automatically monitor the cluster's health. At the top of the cluster settings page, CPU and Memory utilization is displayed, along with the total amount available. Keeping an eye on cluster resources can be important, if the cluster runs out of memory pods may be shutdown or fail to start. -![Cluster Monitoring](https://docs.gitlab.com/ee/user/project/clusters/img/k8s_cluster_monitoring.png) +![Cluster Monitoring](img/k8s_cluster_monitoring.png) ## Enabling or disabling the Kubernetes cluster integration @@ -656,7 +656,7 @@ and add a Kubernetes cluster again. ## View Kubernetes pod logs from GitLab **[ULTIMATE]** Learn how to easily -[view the logs of running pods in connected Kubernetes clusters](https://docs.gitlab.com/ee/user/project/clusters/kubernetes_pod_logs.html). +[view the logs of running pods in connected Kubernetes clusters](kubernetes_pod_logs.md). ## What you can get with the Kubernetes integration diff --git a/doc/user/project/clusters/kubernetes_pod_logs.md b/doc/user/project/clusters/kubernetes_pod_logs.md new file mode 100644 index 00000000000..d5b60250860 --- /dev/null +++ b/doc/user/project/clusters/kubernetes_pod_logs.md @@ -0,0 +1,21 @@ +# Kubernetes Pod Logs **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4752) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.0. + +GitLab makes it easy to view the logs of running pods in [connected Kubernetes clusters](index.md). +By displaying the logs directly in GitLab, developers can avoid having to manage console tools or jump to a different interface. + +## Overview + +[Kubernetes](https://kubernetes.io) pod logs can be viewed directly within GitLab. Logs can be displayed by clicking on a specific pod from [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html): + +1. Go to **Operations > Environments** and find the environment which contains the desired pod, like `production`. +1. On the **Environments** page, you should see the status of the environment's pods with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html). +1. When mousing over the list of pods, a tooltip will appear with the exact pod name and status. +![Deploy Boards pod list](img/pod_logs_deploy_board.png) +1. Click on the desired pod to bring up the logs view, which will contain the last 500 lines for that pod. Support for pods with multiple containers is coming [in a future release](https://gitlab.com/gitlab-org/gitlab-ee/issues/6502). +![Deploy Boards pod list](img/kubernetes_pod_logs.png) + +## Requirements + +[Enabling Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html#enabling-deploy-boards) is required in order to be able to use Pod Logs. -- cgit v1.2.3 From f4cf587dd5153f506f3e5b8ba49afea44360ec2f Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 12:31:44 +0000 Subject: =?UTF-8?q?Docs:=20Merge=20EE=20doc/=E2=80=8Buser/project/mileston?= =?UTF-8?q?es=20to=20CE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/user/project/milestones/burndown_charts.md | 70 +++++++++++++++++++++ doc/user/project/milestones/img/burndown_chart.png | Bin 0 -> 48403 bytes doc/user/project/milestones/index.md | 37 +++++++---- 3 files changed, 96 insertions(+), 11 deletions(-) create mode 100644 doc/user/project/milestones/burndown_charts.md create mode 100644 doc/user/project/milestones/img/burndown_chart.png (limited to 'doc/user') diff --git a/doc/user/project/milestones/burndown_charts.md b/doc/user/project/milestones/burndown_charts.md new file mode 100644 index 00000000000..0ad08da8ff5 --- /dev/null +++ b/doc/user/project/milestones/burndown_charts.md @@ -0,0 +1,70 @@ +# Burndown Charts **[STARTER]** + +> **Notes:** +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1540) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.1 for project milestones. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5354) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.8 for group milestones. +> - [Added](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6495) to [GitLab Starter](https://about.gitlab.com/pricing/) 11.2 for group milestones. +> - Closed or reopened issues prior to GitLab 9.1 won't have a `closed_at` +> value, so the burndown chart considers them as closed on the milestone +> `start_date`. In that case, a warning will be displayed. + +## Overview + +Burndown Charts are visual representations of the progress of completing a milestone. + +![burndown chart](img/burndown_chart.png) + +At a glance, you see the current state for the completion a given milestone. +Without them, you would have to organize the data from the milestone and plot it +yourself to have the same sense of progress. + +GitLab Starter plots it for you and presents it in a clear and beautiful chart. + +For an overview, check the video demonstration on [Mapping Work Versus Time, With Burndown Charts](https://about.gitlab.com/2017/04/25/mapping-work-to-do-versus-time-with-burndown-charts/). + +## Use cases + +Burndown Charts, in general, are used for tracking and analyzing the completion of +a milestone. Therefore, their use cases are tied to the +[use you are assigning your milestone to](index.md). + +To exemplify, suppose you lead a team of developers in a large company, +and you follow this workflow: + +- Your company set the goal for the quarter to deliver 10 new features for your app + in the upcoming major release. +- You create a milestone, and remind your team to assign that milestone to every new issue + and merge request that's part of the launch of your app. +- Every week, you open the milestone, visualize the progress, identify the gaps, + and help your team to get their work done. +- Every month, you check in with your supervisor, and show the progress of that milestone + from the Burndown Chart. +- By the end of the quarter, your team successfully delivered 100% of that milestone, as + it was taken care of closely throughout the whole quarter. + +## How it works + +A Burndown Chart is available for every project or group milestone that has been attributed a **start +date** and a **due date**. + +Find your project's **Burndown Chart** under **Project > Issues > Milestones**, +and select a milestone from your current ones, while for group's, access the **Groups** dashboard, +select a group, and go through **Issues > Milestones** on the sidebar. + +NOTE: **Note:** +You're able to [promote project](https://docs.gitlab.com/ee/user/project/milestones/#promoting-project-milestones-to-group-milestones) to group milestones and still see the **Burndown Chart** for them, respecting license limitations. + +The chart indicates the project's progress throughout that milestone (for issues assigned to it). + +In particular, it shows how many issues were or are still open for a given day in the +milestone's corresponding period. + +The Burndown Chart tracks when issues were created and when they were last closed—not their full history. For each day, it takes the number of issues still open and issues created that day and subtracts the number of issues closed that day. +**Issues that were created and assigned a milestone before its start date—and remain open as of the start date—are considered as having been opened on the start date**. Therefore, when the milestone start date is changed the number of opened issues on each day may change. +Reopened issues are +considered as having been opened on the day after they were last closed. + +The Burndown Chart can also be toggled to display the cumulative open issue +weight for a given day. When using this feature, make sure issue weights have +been properly assigned, since an open issue with no weight adds zero to the +cumulative value. diff --git a/doc/user/project/milestones/img/burndown_chart.png b/doc/user/project/milestones/img/burndown_chart.png new file mode 100644 index 00000000000..e06b24f9907 Binary files /dev/null and b/doc/user/project/milestones/img/burndown_chart.png differ diff --git a/doc/user/project/milestones/index.md b/doc/user/project/milestones/index.md index a7d6144e3ec..0d8ee0a6cd2 100644 --- a/doc/user/project/milestones/index.md +++ b/doc/user/project/milestones/index.md @@ -83,7 +83,10 @@ From the project issue/merge request list pages and the group issue/merge reques ### Filtering in issue boards -From [project issue boards](../issue_board.md), you can filter by both group milestones and project milestones in the [search and filter bar](../../search/index.md#issue-boards). +- From [project issue boards](../issue_board.md), you can filter by both group milestones and project milestones in the [search and filter bar](../../search/index.md#issue-boards). +- From [group issue boards](../issue_board.md#group-issue-boards-premium), you can filter by only group milestones in the [search and filter bar](../../search/index.md#issue-boards). **[PREMIUM]** +- From [project issue boards](../issue_board.md), you can filter by both group milestones and project milestones in the [issue board configuration](../issue_board.md#configurable-issue-boards-starter). **[STARTER]** +- From [group issue boards](../issue_board.md#group-issue-boards-premium) you can filter by only group milestones in the [issue board configuration](../issue_board.md#configurable-issue-boards-starter). **[STARTER]** ### Special milestone filters @@ -98,16 +101,17 @@ When filtering by milestone, in addition to choosing a specific project mileston Not all features in the project milestone view are available in the group milestone view. This table summarizes the differences: -| Feature | Project milestone view | Group milestone view | -|---|:---:|:---:| -| Title an description | ✓ | ✓ | -| Issues assigned to milestone | ✓ | | -| Merge requests assigned to milestone | ✓ | | -| Participants and labels used | ✓ | | -| Percentage complete | ✓ | ✓ | -| Start date and due date | ✓ | ✓ | -| Total issue time spent | ✓ | ✓ | -| Total issue weight | ✓ | | +| Feature | Project milestone view | Group milestone view | +|--------------------------------------|:----------------------:|:--------------------:| +| Title an description | ✓ | ✓ | +| Issues assigned to milestone | ✓ | | +| Merge requests assigned to milestone | ✓ | | +| Participants and labels used | ✓ | | +| Percentage complete | ✓ | ✓ | +| Start date and due date | ✓ | ✓ | +| Total issue time spent | ✓ | ✓ | +| Total issue weight | ✓ | | +| Burndown chart **[STARTER}** | ✓ | ✓ | The milestone view shows the title and description. @@ -118,6 +122,17 @@ These features are only available for project milestones and not group milestone - Issues assigned to the milestone are displayed in three columns: Unstarted issues, ongoing issues, and completed issues. - Merge requests assigned to the milestone are displayed in four columns: Work in progress merge requests, waiting for merge, rejected, and closed. - Participants and labels that are used in issues and merge requests that have the milestone assigned are displayed. +- [Burndown chart](#project-burndown-charts-starter). + +### Project Burndown Charts **[STARTER]** + +For project milestones in [GitLab Starter](https://about.gitlab.com/pricing), a [burndown chart](burndown_charts.md) is in the milestone view, showing the progress of completing a milestone. + +![burndown chart](img/burndown_chart.png) + +### Group Burndown Charts **[PREMIUM]** + +For group milestones in [GitLab Premium](https://about.gitlab.com/pricing), a [burndown chart](burndown_charts.md) is in the milestone view, showing the progress of completing a milestone. ### Milestone sidebar -- cgit v1.2.3 From 113da4577bfc4c8e7b71533fd1a657ba38e06c3e Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 13:07:20 +0000 Subject: =?UTF-8?q?Docs:=20Merge=20EE=20doc/=E2=80=8Buser=20to=20CE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/user/index.md | 16 +++-- doc/user/markdown.md | 3 + .../index_operations_dashboard_top_bar_icon.png | Bin 0 -> 3948 bytes .../index_operations_dashboard_with_projects.png | Bin 0 -> 30837 bytes doc/user/operations_dashboard/index.md | 37 ++++++++++ doc/user/permissions.md | 10 +-- doc/user/profile/preferences.md | 1 + doc/user/search/advanced_global_search.md | 75 +++++++++++++++++++++ doc/user/search/advanced_search_syntax.md | 69 +++++++++++++++++++ doc/user/search/img/advanced_global_search.png | Bin 0 -> 15017 bytes doc/user/search/img/multiple_assignees.png | Bin 0 -> 18897 bytes doc/user/search/index.md | 21 ++++++ 12 files changed, 223 insertions(+), 9 deletions(-) create mode 100644 doc/user/operations_dashboard/img/index_operations_dashboard_top_bar_icon.png create mode 100644 doc/user/operations_dashboard/img/index_operations_dashboard_with_projects.png create mode 100644 doc/user/operations_dashboard/index.md create mode 100644 doc/user/search/advanced_global_search.md create mode 100644 doc/user/search/advanced_search_syntax.md create mode 100644 doc/user/search/img/advanced_global_search.png create mode 100644 doc/user/search/img/multiple_assignees.png (limited to 'doc/user') diff --git a/doc/user/index.md b/doc/user/index.md index 8164b31c37e..67d5cbf06ec 100644 --- a/doc/user/index.md +++ b/doc/user/index.md @@ -51,19 +51,20 @@ With GitLab Enterprise Edition, you can also: - Provide support with [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html). - Improve collaboration with - [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/index.html#merge-request-approvals), + [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/index.html#merge-request-approvals-starter), [Multiple Assignees for Issues](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html), and [Multiple Issue Boards](project/issue_board.md#multiple-issue-boards-starter). - Create formal relationships between issues with [Related Issues](https://docs.gitlab.com/ee/user/project/issues/related_issues.html). - Use [Burndown Charts](https://docs.gitlab.com/ee/user/project/milestones/burndown_charts.html) to track progress during a sprint or while working on a new version of their software. -- Leverage [Elasticsearch](https://docs.gitlab.com/ee/integration/elasticsearch.html) with [Advanced Global Search](https://docs.gitlab.com/ee/user/search/advanced_global_search.html) and [Advanced Syntax Search](https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html) for faster, more advanced code search across your entire GitLab instance. +- Leverage [Elasticsearch](https://docs.gitlab.com/ee/integration/elasticsearch.html) with [Advanced Global Search](search/advanced_global_search.md) and [Advanced Syntax Search](search/advanced_search_syntax.md) for faster, more advanced code search across your entire GitLab instance. - [Authenticate users with Kerberos](https://docs.gitlab.com/ee/integration/kerberos.html). -- [Mirror a repository](https://docs.gitlab.com/ee/workflow/repository_mirroring.html) from elsewhere on your local server. +- [Mirror a repository](../workflow/repository_mirroring.md) from elsewhere on your local server. - [Export issues as CSV](https://docs.gitlab.com/ee/user/project/issues/csv_export.html). - View your entire CI/CD pipeline involving more than one project with [Multiple-Project Pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipeline_graphs.html). - [Lock files](https://docs.gitlab.com/ee/user/project/file_lock.html) to prevent conflicts. - View the current health and status of each CI environment running on Kubernetes with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html). - Leverage continuous delivery method with [Canary Deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html). +- Scan your code for vulnerabilities and [display them in merge requests](https://docs.gitlab.com/ee/user/application_security/sast/index.html). You can also [integrate](project/integrations/project_services.md) GitLab with numerous third-party applications, such as Mattermost, Microsoft Teams, HipChat, Trello, Slack, Bamboo CI, JIRA, and a lot more. @@ -106,8 +107,8 @@ to enjoy the best of GitLab. - [Permissions](permissions.md): Learn the different set of permissions levels for each user type (guest, reporter, developer, maintainer, owner). - [Feature highlight](feature_highlight.md): Learn more about the little blue dots - around the app that explain certain features -- [Abuse reports](abuse_reports.md): Report abuse from users to GitLab administrators + around the app that explain certain features. +- [Abuse reports](abuse_reports.md): Report abuse from users to GitLab administrators. ## Groups @@ -171,3 +172,8 @@ Learn what is [Git](../topics/git/index.md) and its best practices. ## Instance statistics See [various statistics](instance_statistics/index.md) of your GitLab instance. + +## Operations Dashboard **[PREMIUM]** + +See [Operations Dashboard](operations_dashboard/index.md) for a summary of each +project's operational health. diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 9891a43aa61..c1c2c036bae 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -20,6 +20,7 @@ You can use GFM in the following areas: - Snippets (the snippet must be named with a `.md` extension) - Wiki pages - Markdown documents inside repositories +- Epics **[ULTIMATE]** You can also use other rich text files in GitLab. You might have to install a dependency to do so. Please see the [`github-markup` gem readme](https://github.com/gitlabhq/markup#markups) for more information. @@ -320,6 +321,7 @@ GFM will recognize the following: | `#12345` | issue | | `!123` | merge request | | `$123` | snippet | +| `&123` | epic **[ULTIMATE]** | | `~123` | label by ID | | `~bug` | one-word label by name | | `~"feature request"` | multi-word label by name | @@ -340,6 +342,7 @@ GFM also recognizes certain cross-project references: | `namespace/project%123` | project milestone | | `namespace/project$123` | snippet | | `namespace/project@9ba12248` | specific commit | +| `group1/subgroup&123` | epic **[ULTIMATE]** | | `namespace/project@9ba12248...b19a04f5` | commit range comparison | | `namespace/project~"Some label"` | issues with given label | diff --git a/doc/user/operations_dashboard/img/index_operations_dashboard_top_bar_icon.png b/doc/user/operations_dashboard/img/index_operations_dashboard_top_bar_icon.png new file mode 100644 index 00000000000..9d6a509ea72 Binary files /dev/null and b/doc/user/operations_dashboard/img/index_operations_dashboard_top_bar_icon.png differ diff --git a/doc/user/operations_dashboard/img/index_operations_dashboard_with_projects.png b/doc/user/operations_dashboard/img/index_operations_dashboard_with_projects.png new file mode 100644 index 00000000000..ee33eee8134 Binary files /dev/null and b/doc/user/operations_dashboard/img/index_operations_dashboard_with_projects.png differ diff --git a/doc/user/operations_dashboard/index.md b/doc/user/operations_dashboard/index.md new file mode 100644 index 00000000000..66362f27299 --- /dev/null +++ b/doc/user/operations_dashboard/index.md @@ -0,0 +1,37 @@ +# Operations Dashboard **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5781) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.5. +[Moved](https://gitlab.com/gitlab-org/gitlab-ee/issues/9218) to +[GitLab Premium](https://about.gitlab.com/pricing/) in 11.10. + +The Operations Dashboard provides a summary of each project's operational health, +including pipeline and alert status. + +The dashboard can be accessed via the top bar, by clicking on the new +dashboard icon: + +![Operations Dashboard icon in top bar](img/index_operations_dashboard_top_bar_icon.png) + +## Adding a project to the dashboard + +NOTE: **Note:** +For GitLab.com, the Operations Dashboard is available for free for public projects. +If your project is private, the group it belongs to must have a +[Gold](https://about.gitlab.com/pricing/) plan. + +To add a project to the dashboard: + +1. Click the **Add projects** button in the homescreen of the dashboard. +1. Search and add one or more projects using the **Search your projects** field. +1. Click the **Add projects** button. + +Once added, the dashboard will display the project's number of active alerts, +last commit, pipeline status, and when it was last deployed. + +![Operations Dashboard with projects](img/index_operations_dashboard_with_projects.png) + +## Making it the default dashboard when you sign in + +The Operations Dashboard can also be made the default GitLab dashboard shown when +you sign in. To make it the default, visit your [profile preferences](../profile/preferences.md). diff --git a/doc/user/permissions.md b/doc/user/permissions.md index f03d2ca98ce..9b298e4eb30 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -42,8 +42,7 @@ The following table depicts the various user permission levels in a project. | Create confidential issue | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | | View confidential issues | (✓) [^2] | ✓ | ✓ | ✓ | ✓ | | Leave comments | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| Lock issue discussions | | ✓ | ✓ | ✓ | ✓ | -| Lock merge request discussions | | | ✓ | ✓ | ✓ | +| See related issues | ✓ | ✓ | ✓ | ✓ | ✓ | | See a list of jobs | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | | See a job log | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | | Download and browse job artifacts | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | @@ -87,11 +86,12 @@ The following table depicts the various user permission levels in a project. | Update a container registry | | | ✓ | ✓ | ✓ | | Remove a container registry image | | | ✓ | ✓ | ✓ | | Create/edit/delete project milestones | | | ✓ | ✓ | ✓ | -| View approved/blacklisted licenses **[ULTIMATE]** | | | ✓ | ✓ | ✓ | +| View approved/blacklisted licenses **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | | Use security dashboard **[ULTIMATE]** | | | ✓ | ✓ | ✓ | | Dismiss vulnerability **[ULTIMATE]** | | | ✓ | ✓ | ✓ | | Apply code change suggestions | | | ✓ | ✓ | ✓ | | Use environment terminals | | | | ✓ | ✓ | +| Run Web IDE's Interactive Web Terminals **[ULTIMATE ONLY]** | | | | ✓ | ✓ | | Add new team members | | | | ✓ | ✓ | | Push to protected branches | | | | ✓ | ✓ | | Enable/disable branch protection | | | | ✓ | ✓ | @@ -120,6 +120,7 @@ The following table depicts the various user permission levels in a project. | Remove protected branches [^4] | | | | | | | View project Audit Events | | | | ✓ | ✓ | | View project statistics | | ✓ | ✓ | ✓ | ✓ | +| View Insights charts **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | ## Project features permissions @@ -204,6 +205,7 @@ group. | Create/edit group epic **[ULTIMATE]** | | ✓ | ✓ | ✓ | ✓ | | Delete group epic **[ULTIMATE]** | | | | | ✓ | | View group Audit Events | | | | | ✓ | +| View Insights charts **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | ### Subgroup permissions @@ -348,7 +350,7 @@ for details about the pipelines security model. ## LDAP users permissions Since GitLab 8.15, LDAP user permissions can now be manually overridden by an admin user. -Read through the documentation on [LDAP users permissions](https://docs.gitlab.com/ee/articles/how_to_configure_ldap_gitlab_ee/index.html#updating-user-permissions-new-feature) to learn more. +Read through the documentation on [LDAP users permissions](https://docs.gitlab.com/ee/administration/auth/how_to_configure_ldap_gitlab_ee/index.html) to learn more. [^1]: On public and internal projects, all users are able to perform this action [^2]: Guest users can only view the confidential issues they created themselves diff --git a/doc/user/profile/preferences.md b/doc/user/profile/preferences.md index f399dc40164..b61216b7b67 100644 --- a/doc/user/profile/preferences.md +++ b/doc/user/profile/preferences.md @@ -79,6 +79,7 @@ You have 8 options here that you can use for your default dashboard view: - Your [Todos](../../workflow/todos.md) - Assigned Issues - Assigned Merge Requests +- Operations Dashboard **[PREMIUM]** ### Project overview content diff --git a/doc/user/search/advanced_global_search.md b/doc/user/search/advanced_global_search.md new file mode 100644 index 00000000000..38b26f31417 --- /dev/null +++ b/doc/user/search/advanced_global_search.md @@ -0,0 +1,75 @@ +# Advanced Global Search **[STARTER ONLY]** + +> - [Introduced][ee-109] in GitLab [Starter][ee] 8.4. +> - This is the user documentation. To install and configure Elasticsearch, +> visit the [administrator documentation](https://docs.gitlab.com/ee/integration/elasticsearch.html). + +NOTE: **Note** +Advanced Global Search (powered by Elasticsearch) is not yet available on GitLab.com. We are working on adding it. [Follow this epic for the latest updates](https://gitlab.com/groups/gitlab-org/-/epics/153). + +Leverage Elasticsearch for faster, more advanced code search across your entire +GitLab instance. + +## Overview + +The Advanced Global Search in GitLab is a powerful search service that saves +you time. Instead of creating duplicate code and wasting time, you can +now search for code within other teams that can help your own project. + +GitLab leverages the search capabilities of [Elasticsearch] and enables it when +searching in: + +- GitLab application +- Projects +- Repositories +- Commits +- Issues +- Merge requests +- Milestones +- Notes (comments) +- Snippets +- Wiki + +## Use cases + +The Advanced Global Search can be useful in various scenarios. + +### Faster searches + +If you are dealing with huge amount of data and want to keep GitLab's search +fast, the Advanced Global Search will help you achieve that. + +### Promote innersourcing + +Your company may consist of many different developer teams each of which has +their own group where the various projects are hosted. Some of your applications +may be connected to each other, so your developers need to instantly search +throughout the GitLab instance and find the code they search for. + +## Searching globally + +Just use the search as before and GitLab will show you matching code from each +project you have access to. + +![Advanced Global Search](img/advanced_global_search.png) + +You can also use the [Advanced Syntax Search](advanced_search_syntax.md) which +provides some useful queries. + +>**Note:** +Elasticsearch has only data for the default branch. That means that if you go +to the repository tree and switch the branch from the default to something else, +then the "Code" tab in the search result page will be served by the regular +search even if Elasticsearch is enabled. + +[ee-1305]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1305 +[aws-elastic]: http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html +[aws-iam]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html +[aws-instance-profile]: http://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-iam-instance-profile.html#getting-started-create-iam-instance-profile-cli +[ee-109]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/109 "Elasticsearch Merge Request" +[elasticsearch]: https://www.elastic.co/products/elasticsearch "Elasticsearch website" +[install]: https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html "Elasticsearch installation documentation" +[pkg]: https://about.gitlab.com/downloads/ "Download Omnibus GitLab" +[elastic-settings]: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html#settings "Elasticsearch configuration settings" +[ee]: https://about.gitlab.com/pricing/ +[es]: https://www.elastic.co/products/elasticsearch diff --git a/doc/user/search/advanced_search_syntax.md b/doc/user/search/advanced_search_syntax.md new file mode 100644 index 00000000000..8d4aac5f502 --- /dev/null +++ b/doc/user/search/advanced_search_syntax.md @@ -0,0 +1,69 @@ +# Advanced Syntax Search **[STARTER ONLY]** + +> **Notes:** +> - Introduced in [GitLab Enterprise Starter][ee] 9.2 +> - This is the user documentation. To install and configure Elasticsearch, +> visit the [administrator documentation](https://docs.gitlab.com/ee/integration/elasticsearch.html). + +NOTE: **Note** +Advanced Global Search (powered by Elasticsearch) is not yet available on GitLab.com. We are working on adding it. [Follow this epic for the latest updates](https://gitlab.com/groups/gitlab-org/-/epics/153). + +Use advanced queries for more targeted search results. + +## Overview + +The Advanced Syntax Search is a subset of the +[Advanced Global Search](advanced_global_search.md), which you can use if you +want to have more specific search results. + +## Use cases + +Let's say for example that the product you develop relies on the code of another +product that's hosted under some other group. + +Since under your GitLab instance there are hosted hundreds of different projects, +you need the search results to be as efficient as possible. You have a feeling +of what you want to find (e.g., a function name), but at the same you're also +not so sure. + +In that case, using the advanced search syntax in your query will yield much +better results. + +## Using the Advanced Syntax Search + +The Advanced Syntax Search supports fuzzy or exact search queries with prefixes, +boolean operators, and much more. + +Full details can be found in the [Elasticsearch documentation][elastic], but +here's a quick guide: + +- Searches look for all the words in a query, in any order - e.g.: searching + issues for `display bug` will return all issues matching both those words, in any order. +- To find the exact phrase (stemming still applies), use double quotes: `"display bug"` +- To find bugs not mentioning display, use `-`: `bug -display` +- To find a bug in display or sound, use `|`: `bug display | sound` +- To group terms together, use parentheses: `bug | (display +sound)` +- To match a partial word, use `*`: `bug find_by_*` +- To find a term containing one of these symbols, use `\`: `argument \-last` + +### Syntax search filters + +The Advanced Syntax Search also supports the use of filters. The available filters are: + + - filename: Filters by filename. You can use the glob (`*`) operator for fuzzy matching. + - path: Filters by path. You can use the glob (`*`) operator for fuzzy matching. + - extension: Filters by extension in the filename. Please write the extension without a leading dot. Exact match only. + +To use them, simply add them to your query in the format `:` without + any spaces between the colon (`:`) and the value. + +Examples: + +- Finding a file with any content named `hello_world.rb`: `* filename:hello_world.rb` +- Finding a file named `hello_world` with the text `whatever` inside of it: `whatever filename:hello_world` +- Finding the text 'def create' inside files with the `.rb` extension: `def create extension:rb` +- Finding the text `sha` inside files in a folder called `encryption`: `sha path:encryption` +- Finding any file starting with `hello` containing `world` and with the `.js` extension: `world filename:hello* extension:js` + +[ee]: https://about.gitlab.com/pricing/ +[elastic]: https://www.elastic.co/guide/en/elasticsearch/reference/5.3/query-dsl-simple-query-string-query.html#_simple_query_string_syntax diff --git a/doc/user/search/img/advanced_global_search.png b/doc/user/search/img/advanced_global_search.png new file mode 100644 index 00000000000..4903bbb07e1 Binary files /dev/null and b/doc/user/search/img/advanced_global_search.png differ diff --git a/doc/user/search/img/multiple_assignees.png b/doc/user/search/img/multiple_assignees.png new file mode 100644 index 00000000000..5c46f3dda46 Binary files /dev/null and b/doc/user/search/img/multiple_assignees.png differ diff --git a/doc/user/search/index.md b/doc/user/search/index.md index 705983cce2a..bb6c48471c7 100644 --- a/doc/user/search/index.md +++ b/doc/user/search/index.md @@ -84,6 +84,12 @@ You can view recent searches by clicking on the little arrow-clock icon, which i Individual filters can be removed by clicking on the filter's (x) button or backspacing. The entire search filter can be cleared by clicking on the search box's (x) button. +## Filtering with multiple filters of the same type + +Some filters can be added multiple times. These include but are not limited to assignees and labels. When you filter with these multiple filters of the same type, the AND logic is applied. For example, if you were filtering `assignee:@sam assignee:@sarah`, your results will only include entries whereby the assignees are assigned to both Sam and Sarah are returned. + +![multiple assignees filtering](img/multiple_assignees.png) + ### Shortcut You'll also find a shortcut on the search field on the top-right of the project's dashboard to @@ -136,3 +142,18 @@ you'll be able to, besides filtering them by **Name**, **Author**, **Assignee**, and **Labels**, select multiple issues to add to a list of your choice: ![search and select issues to add to board](img/search_issues_board.png) + +## Advanced Global Search **[STARTER]** + +Leverage Elasticsearch for faster, more advanced code search across your entire +GitLab instance. + +[Learn how to use the Advanced Global Search.](advanced_global_search.md) + +## Advanced Syntax Search **[STARTER]** + +Use advanced queries for more targeted search results. + +[Learn how to use the Advanced Syntax Search.](advanced_search_syntax.md) + +[ee]: https://about.gitlab.com/pricing/ -- cgit v1.2.3 From f3c4a7c1c232aa1f2a0955742f9b5d8c26336849 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 14:17:38 +0000 Subject: Docs: Merge EE doc/user/admin_area to CE --- doc/user/admin_area/geo_nodes.md | 57 ++++++++++++++ doc/user/admin_area/img/admin_wrench.png | Bin 0 -> 3314 bytes doc/user/admin_area/img/license_admin_area.png | Bin 0 -> 27826 bytes doc/user/admin_area/img/license_details.png | Bin 0 -> 119290 bytes .../admin_area/img/license_no_license_message.png | Bin 0 -> 5778 bytes doc/user/admin_area/img/license_upload.png | Bin 0 -> 10043 bytes doc/user/admin_area/index.md | 31 ++++---- doc/user/admin_area/license.md | 79 ++++++++++++++++++++ .../settings/account_and_limit_settings.md | 53 +++++++++++++ .../admin_area/settings/continuous_integration.md | 83 +++++++++++++++++++-- doc/user/admin_area/settings/email.md | 16 ++++ .../admin_area/settings/external_authorization.md | 2 +- .../admin_area/settings/img/additional_minutes.png | Bin 0 -> 32045 bytes .../settings/img/admin_area_group_edit.png | Bin 0 -> 5869 bytes .../admin_area/settings/img/admin_area_groups.png | Bin 0 -> 12088 bytes .../settings/img/admin_project_quota_view.png | Bin 0 -> 2670 bytes doc/user/admin_area/settings/img/buy_btn.png | Bin 0 -> 26960 bytes .../admin_area/settings/img/buy_minutes_card.png | Bin 0 -> 29329 bytes .../img/ci_shared_runners_build_minutes_quota.png | Bin 0 -> 6000 bytes .../admin_area/settings/img/email_settings.png | Bin 0 -> 53267 bytes .../settings/img/file_template_admin_area.png | Bin 0 -> 5624 bytes .../settings/img/file_template_user_dropdown.png | Bin 0 -> 8067 bytes .../settings/img/group_pipelines_quota.png | Bin 0 -> 7088 bytes .../admin_area/settings/img/group_quota_view.png | Bin 0 -> 1797 bytes .../admin_area/settings/img/group_settings.png | Bin 0 -> 3345 bytes .../admin_area/settings/img/mirror_settings.png | Bin 0 -> 9966 bytes doc/user/admin_area/settings/index.md | 2 + .../settings/instance_template_repository.md | 63 ++++++++++++++++ .../settings/visibility_and_access_controls.md | 10 +++ 29 files changed, 376 insertions(+), 20 deletions(-) create mode 100644 doc/user/admin_area/geo_nodes.md create mode 100644 doc/user/admin_area/img/admin_wrench.png create mode 100644 doc/user/admin_area/img/license_admin_area.png create mode 100644 doc/user/admin_area/img/license_details.png create mode 100644 doc/user/admin_area/img/license_no_license_message.png create mode 100644 doc/user/admin_area/img/license_upload.png create mode 100644 doc/user/admin_area/license.md create mode 100644 doc/user/admin_area/settings/account_and_limit_settings.md create mode 100644 doc/user/admin_area/settings/img/additional_minutes.png create mode 100644 doc/user/admin_area/settings/img/admin_area_group_edit.png create mode 100644 doc/user/admin_area/settings/img/admin_area_groups.png create mode 100644 doc/user/admin_area/settings/img/admin_project_quota_view.png create mode 100644 doc/user/admin_area/settings/img/buy_btn.png create mode 100644 doc/user/admin_area/settings/img/buy_minutes_card.png create mode 100644 doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png create mode 100644 doc/user/admin_area/settings/img/email_settings.png create mode 100644 doc/user/admin_area/settings/img/file_template_admin_area.png create mode 100644 doc/user/admin_area/settings/img/file_template_user_dropdown.png create mode 100644 doc/user/admin_area/settings/img/group_pipelines_quota.png create mode 100644 doc/user/admin_area/settings/img/group_quota_view.png create mode 100644 doc/user/admin_area/settings/img/group_settings.png create mode 100644 doc/user/admin_area/settings/img/mirror_settings.png create mode 100644 doc/user/admin_area/settings/instance_template_repository.md (limited to 'doc/user') diff --git a/doc/user/admin_area/geo_nodes.md b/doc/user/admin_area/geo_nodes.md new file mode 100644 index 00000000000..d6d6d9b2517 --- /dev/null +++ b/doc/user/admin_area/geo_nodes.md @@ -0,0 +1,57 @@ +# Geo nodes admin area **[PREMIUM ONLY]** + +For more information about setting up GitLab Geo, read the +[Geo documentation](https://docs.gitlab.com/ee/administration/geo/replication/index.html). + +When you're done, you can navigate to **Admin area > Geo** (`/admin/geo/nodes`). + +## Common settings + +All Geo nodes have the following settings: + +| Setting | Description | +| --------| ----------- | +| Primary | This marks a Geo Node as primary. There can be only one primary, make sure that you first add the primary node and then all the others. | +| URL | The instance's full URL, in the same way it is configured in `/etc/gitlab/gitlab.rb` (Omnibus GitLab installations) or `gitlab.yml` (source based installations). | + +The node you're reading from is indicated with a green `Current node` label, and +the primary is given a blue `Primary` label. Remember that you can only make +changes on the primary! + +## Secondary node settings + +Secondaries have a number of additional settings available: + +| Setting | Description | +|---------------------------|-------------| + Selective synchronization | Enable Geo [selective sync](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html#selective-synchronization) for this **secondary** node. | +| Repository sync capacity | Number of concurrent requests this **secondary** node will make to the **primary** node when backfilling repositories. | +| File sync capacity | Number of concurrent requests this **secondary** node will make to the **primary** node when backfilling files. | + +## Geo backfill + +Secondaries are notified of changes to repositories and files by the primary, +and will always attempt to synchronize those changes as quickly as possible. + +Backfill is the act of populating the secondary with repositories and files that +existed *before* the secondary was added to the database. Since there may be +extremely large numbers of repositories and files, it's infeasible to attempt to +download them all at once, so GitLab places an upper limit on the concurrency of +these operations. + +How long the backfill takes is a function of the maximum concurrency, but higher +values place more strain on the primary node. From [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3107), +the limits are configurable - if your primary node has lots of surplus capacity, +you can increase the values to complete backfill in a shorter time. If it's +under heavy load and backfill is reducing its availability for normal requests, +you can decrease them. + +## Using a different URL for synchronization + +The **primary** node's Internal URL is used by **secondary** nodes to contact it +(to sync repositories, for example). The name Internal URL distinguishes it from +[External URL](https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab) +which is used by users. Internal URL does not need to be a private address. + +Internal URL defaults to External URL, but you can customize it under +**Admin area > Geo Nodes**. diff --git a/doc/user/admin_area/img/admin_wrench.png b/doc/user/admin_area/img/admin_wrench.png new file mode 100644 index 00000000000..17eee143e87 Binary files /dev/null and b/doc/user/admin_area/img/admin_wrench.png differ diff --git a/doc/user/admin_area/img/license_admin_area.png b/doc/user/admin_area/img/license_admin_area.png new file mode 100644 index 00000000000..b5662b81c5e Binary files /dev/null and b/doc/user/admin_area/img/license_admin_area.png differ diff --git a/doc/user/admin_area/img/license_details.png b/doc/user/admin_area/img/license_details.png new file mode 100644 index 00000000000..2085bb437ad Binary files /dev/null and b/doc/user/admin_area/img/license_details.png differ diff --git a/doc/user/admin_area/img/license_no_license_message.png b/doc/user/admin_area/img/license_no_license_message.png new file mode 100644 index 00000000000..87b397f7905 Binary files /dev/null and b/doc/user/admin_area/img/license_no_license_message.png differ diff --git a/doc/user/admin_area/img/license_upload.png b/doc/user/admin_area/img/license_upload.png new file mode 100644 index 00000000000..29d55175a2d Binary files /dev/null and b/doc/user/admin_area/img/license_upload.png differ diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index f924ff8dfde..dd4e96c1f4a 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -14,19 +14,22 @@ Only admin users can access the Admin Area. The Admin Area is made up of the following sections: -| Section | Description | -|:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| -| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), users, groups, jobs, runners, and Gitaly servers. | -| Monitoring | View GitLab system information, and information on background jobs, logs, [health checks](monitoring/health_check.md), request profiles, and audit logs. | -| Messages | Send and manage [broadcast messages](broadcast_messages.md) for your users. | -| System Hooks | Configure [system hooks](../../system_hooks/system_hooks.md) for many events. | -| Applications | Create system [OAuth applications](../../integration/oauth_provider.md) for integrations with other services. | -| Abuse Reports | Manage [abuse reports](abuse_reports.md) submitted by your users. | -| Deploy Keys | Create instance-wide [SSH deploy keys](../../ssh/README.md#deploy-keys). | -| Service Templates | Create [service templates](../project/integrations/services_templates.md) for projects. | -| Labels | Create and maintain [labels](labels.md) for your GitLab instance. | -| Appearance | Customize [GitLab's appearance](../../customization/index.md). | -| Settings | Modify the [settings](settings/index.md) for your GitLab instance. | +| Section | Description | +|:---------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| +| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), users, groups, jobs, runners, and Gitaly servers. | +| Monitoring | View GitLab system information, and information on background jobs, logs, [health checks](monitoring/health_check.md), request profiles, and audit logs. | +| Messages | Send and manage [broadcast messages](broadcast_messages.md) for your users. | +| System Hooks | Configure [system hooks](../../system_hooks/system_hooks.md) for many events. | +| Applications | Create system [OAuth applications](../../integration/oauth_provider.md) for integrations with other services. | +| Abuse Reports | Manage [abuse reports](abuse_reports.md) submitted by your users. | +| License **[STARTER ONLY]** | Upload, display, and remove [licenses](license.md). | +| Push Rules **[STARTER]** | Configure pre-defined git [push rules](https://docs.gitlab.com/ee/push_rules/push_rules.html) for projects. | +| Geo **[PREMIUM ONLY]** | Configure and maintain [Geo nodes](geo_nodes.md). | +| Deploy Keys | Create instance-wide [SSH deploy keys](../../ssh/README.md#deploy-keys). | +| Service Templates | Create [service templates](../project/integrations/services_templates.md) for projects. | +| Labels | Create and maintain [labels](labels.md) for your GitLab instance. | +| Appearance | Customize [GitLab's appearance](../../customization/index.md). | +| Settings | Modify the [settings](settings/index.md) for your GitLab instance. | ## Admin Dashboard @@ -70,4 +73,4 @@ them as you type. Select from the **Namespace** dropdown to filter only projects in that namespace. You can combine the filter options. For example, click the **Public** tab, and enter `score` in -the **Filter by name...** input box to list only public projects with `score` in their name. \ No newline at end of file +the **Filter by name...** input box to list only public projects with `score` in their name. diff --git a/doc/user/admin_area/license.md b/doc/user/admin_area/license.md new file mode 100644 index 00000000000..45f986d480f --- /dev/null +++ b/doc/user/admin_area/license.md @@ -0,0 +1,79 @@ +# Activate all GitLab Enterprise Edition functionality with a license **[STARTER ONLY]** + +To activate all GitLab Enterprise Edition (EE) functionality, you need to upload +a license. Once you've received your license from GitLab Inc., you can upload it +by **signing into your GitLab instance as an admin**. + +The license has the form of a base64 encoded ASCII text with a `.gitlab-license` +extension and can be obtained when you [purchase one][pricing] or when you sign +up for a [free trial]. + +NOTE: **Note:** +As of GitLab Enterprise Edition 9.4.0, a newly-installed instance without an +uploaded license will only have the Core features active. A trial license will +activate all Ultimate features, but after +[the trial expires](#what-happens-when-your-license-expires), some functionality +will be locked. + +## Uploading your license + +The very first time you visit your GitLab EE installation signed in as an admin, +you should see a note urging you to upload a license with a link that takes you +straight to the License admin area. + +Otherwise, you can: + +1. Navigate manually to the **Admin Area** by clicking the wrench icon in the menu bar. + + ![Admin area icon](img/admin_wrench.png) + +1. And then going to the **License** tab and click on **Upload New License**. + + ![License admin area](img/license_admin_area.png) + +1. If you've received a `.gitlab-license` file, you should have already downloaded + it in your local machine. You can then upload it directly by choosing the + license file and clicking the **Upload license** button. In the image below, + you can see that the selected license file is named `GitLab.gitlab-license`. + + ![Upload license](img/license_upload.png) + + If you've received your license as plain text, you need to select the + "Enter license key" option, copy the license, paste it into the "License key" + field and click **Upload license**. + +--- + +Once the license is uploaded, all GitLab Enterprise Edition functionality +will be active until the end of the license period. When that period ends, the +instance will [fall back](#what-happens-when-your-license-expires) to Core-only +functionality. + +You can review the license details at any time in the License section of the +Admin Area. + +![License details](img/license_details.png) + +## Notification before the license expires + +One month before the license expires, a message informing when the expiration +is due to, will start appearing to GitLab admins. Make sure that you update your +license, otherwise you will miss all the paid features if it expires. + +## What happens when your license expires + +In case your license expires, GitLab will lock down some features like Git pushes, +issue creation, etc., and a message to inform of the expired license will be +presented to all admins. + +In order to get back all the previous functionality, a new license must be uploaded. +To fall back to having only the Core features active, you'll need to delete the +expired license(s). + +## License history + +It's possible to upload and view more than one license, +but only the latest license will be used as the active license. + +[free trial]: https://about.gitlab.com/free-trial/ +[pricing]: https://about.gitlab.com/pricing/ diff --git a/doc/user/admin_area/settings/account_and_limit_settings.md b/doc/user/admin_area/settings/account_and_limit_settings.md new file mode 100644 index 00000000000..4a5bfb6b677 --- /dev/null +++ b/doc/user/admin_area/settings/account_and_limit_settings.md @@ -0,0 +1,53 @@ +# Account and limit settings + +## Repository size limit **[STARTER]** + +> [Introduced][ee-740] in [GitLab Enterprise Edition 8.12][ee-8.12]. + +Repositories within your GitLab instance can grow quickly, especially if you are +using LFS. Their size can grow exponentially and eat up your storage device quite +fast. + +In order to avoid this from happening, you can set a hard limit for your +repositories' size. This limit can be set globally, per group, or per project, +with per project limits taking the highest priority. + +There are numerous cases where you'll need to set up a limit for repository size. +For instance, consider the following workflow: + +1. Your team develops apps which demand large files to be stored in + the application repository. +1. Although you have enabled [Git LFS](../../../workflow/lfs/manage_large_binaries_with_git_lfs.html#git-lfs) + to your project, your storage has grown significantly. +1. Before you blow your storage limit up, you set up a limit of 10 GB + per repository. + +### How it works + +Only a GitLab administrator can set those limits. Setting the limit to `0` means +there are no restrictions. + +These settings can be found within: + +- Each project's settings. +- A group's settings. +- The **Size limit per repository (MB)** field in the **Account and limit** section of a GitLab instance's + settings by navigating to either: + - **Admin Area > Settings > General**. + - The path `/admin/application_settings`. + +The very first push of a new project cannot be checked for size as of now, so +the first push will allow you to upload more than the limit dictates, but every +subsequent push will be denied. LFS objects, however, can be checked on first +push and **will** be rejected if the sum of their sizes exceeds the maximum +allowed repository size. + +For more manually purging the files, read the docs on +[reducing the repository size using Git][repo-size]. + +> **Note:** +> For GitLab.com, the repository size limit is 10 GB. + +[ee-740]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/740 +[repo-size]: ../../project/repository/reducing_the_repo_size_using_git.md +[ee-8.12]: https://about.gitlab.com/2016/09/22/gitlab-8-12-released/#limit-project-size-ee diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index 22011cc6967..834a1e2423a 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -10,8 +10,8 @@ You can find it in the admin area, under **Settings > Continuous Integration and To enable (or disable) [Auto DevOps](../../../topics/autodevops/index.md) for all projects: -1. Go to **Admin area > Settings > Continuous Integration and Deployment**. -1. Check (or uncheck to disable) the box that says "Default to Auto DevOps pipeline for all projects". +1. Go to **Admin area > Settings > Continuous Integration and Deployment** +1. Check (or uncheck to disable) the box that says "Default to Auto DevOps pipeline for all projects" 1. Optionally, set up the [Auto DevOps base domain](../../../topics/autodevops/index.md#auto-devops-base-domain) which is going to be used for Auto Deploy and Auto Review Apps. 1. Hit **Save changes** for the changes to take effect. @@ -24,9 +24,9 @@ If you want to disable it for a specific project, you can do so in ## Maximum artifacts size **[CORE ONLY]** -The maximum size of the [job artifacts][art-yml] can be set in the Admin area -of your GitLab instance. The value is in *MB* and the default is 100MB per job; -on GitLab.com it's [set to 1G](../../gitlab_com/index.md#gitlab-cicd). +The maximum size of the [job artifacts](../../../administration/job_artifacts.md) +can be set in the Admin area of your GitLab instance. The value is in *MB* and +the default is 100MB per job; on GitLab.com it's [set to 1G](../../gitlab_com/index.md#gitlab-cicd). To change it: @@ -50,6 +50,79 @@ This setting is set per job and can be overridden in [`.gitlab-ci.yml`](../../../ci/yaml/README.md#artifactsexpire_in). To disable the expiration, set it to `0`. The default unit is in seconds. +## Shared Runners pipeline minutes quota **[STARTER ONLY]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1078) +in GitLab Starter 8.16. + +If you have enabled shared Runners for your GitLab instance, you can limit their +usage by setting a maximum number of pipeline minutes that a group can use on +shared Runners per month. Setting this to `0` (default value) will grant +unlimited pipeline minutes. While build limits are stored as minutes, the +counting is done in seconds. Usage resets on the first day of each month. +On GitLab.com, the quota is calculated based on your +[subscription plan](https://about.gitlab.com/pricing/#gitlab-com). + +To change the pipelines minutes quota: + +1. Go to **Admin area > Settings > Continuous Integration and Deployment** +1. Set the pipeline minutes quota limit. +1. Hit **Save changes** for the changes to take effect + +--- + +While the setting in the Admin area has a global effect, as an admin you can +also change each group's pipeline minutes quota to override the global value. + +1. Navigate to the **Groups** admin area and hit the **Edit** button for the + group you wish to change the pipeline minutes quota. +1. Set the pipeline minutes quota to the desired value +1. Hit **Save changes** for the changes to take effect. + +Once saved, you can see the build quota in the group admin view. +The quota can also be viewed in the project admin view if shared Runners +are enabled. + +![Project admin info](img/admin_project_quota_view.png) + +When the pipeline minutes quota for a group is set to a value different than 0, +the **Pipelines quota** page is available to the group page settings list. +You can see there an overview of the pipeline minutes quota of all projects of +the group. + +![Group pipelines quota](img/group_pipelines_quota.png) + + +## Extra Shared Runners pipeline minutes quota + +NOTE: **Note:** +Only available on GitLab.com. + +If you have a Group with a [paid plan](https://about.gitlab.com/pricing/#gitlab-com) on GitLab.com, +then you can purchase additional CI minutes so your pipelines will not be blocked after you have +used all your CI minutes from your main quota. + +In order to purchase additional minutes, you should follow these steps: + +1. Go to **Group > Settings > Pipelines quota**. Once you are on that page, click on **Buy additional minutes**. + + ![Buy additional minutes](img/buy_btn.png) + +1. Locate the subscription card that is linked to your group on GitLab.com, +click on **Buy more CI minutes**, and complete the details about the transaction. + + ![Buy additional minutes](img/buy_minutes_card.png) + +1. Once we have processed your payment, the extra CI minutes +will be synced to your Group and you can visualize it from the +**Group > Settings > Pipelines quota** page: + + ![Additional minutes](img/additional_minutes.png) + +NOTE: **Important note**: If you have some minutes used over your default quota, these minutes will +be deducted from your Additional Minutes quota immediately after your purchase of additional +minutes. + ## Archive jobs **[CORE ONLY]** Archiving jobs is useful for reducing the CI/CD footprint on the system by diff --git a/doc/user/admin_area/settings/email.md b/doc/user/admin_area/settings/email.md index 50c318a4969..01a98cf15dc 100644 --- a/doc/user/admin_area/settings/email.md +++ b/doc/user/admin_area/settings/email.md @@ -4,6 +4,22 @@ The logo in the header of some emails can be customized, see the [logo customization section](../../../customization/branded_page_and_email_header.md). +## Custom additional text **[PREMIUM ONLY]** + +>[Introduced][ee-5031] in [GitLab Premium][eep] 10.7. + +The additional text will appear at the bottom of any email and can be used for +legal/auditing/compliance reasons. + +1. Go to **Admin area > Settings** (`/admin/application_settings`). +1. Under the **Email** section, change the **Additional text** field. +1. Hit **Save** for the changes to take effect. + +![Admin email settings](img/email_settings.png) + +[ee-5031]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5031 +[eep]: https://about.gitlab.com/pricing/ + ## Custom hostname for private commit emails > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22560) in GitLab 11.5. diff --git a/doc/user/admin_area/settings/external_authorization.md b/doc/user/admin_area/settings/external_authorization.md index 72e76ac2a84..06e00e02f3d 100644 --- a/doc/user/admin_area/settings/external_authorization.md +++ b/doc/user/admin_area/settings/external_authorization.md @@ -1,4 +1,4 @@ -# External authorization control +# External authorization control **[CORE ONLY]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4216) in > [GitLab Premium](https://about.gitlab.com/pricing) 10.6. diff --git a/doc/user/admin_area/settings/img/additional_minutes.png b/doc/user/admin_area/settings/img/additional_minutes.png new file mode 100644 index 00000000000..d148ed79b92 Binary files /dev/null and b/doc/user/admin_area/settings/img/additional_minutes.png differ diff --git a/doc/user/admin_area/settings/img/admin_area_group_edit.png b/doc/user/admin_area/settings/img/admin_area_group_edit.png new file mode 100644 index 00000000000..c9bd2f10b36 Binary files /dev/null and b/doc/user/admin_area/settings/img/admin_area_group_edit.png differ diff --git a/doc/user/admin_area/settings/img/admin_area_groups.png b/doc/user/admin_area/settings/img/admin_area_groups.png new file mode 100644 index 00000000000..ebdee0eafdc Binary files /dev/null and b/doc/user/admin_area/settings/img/admin_area_groups.png differ diff --git a/doc/user/admin_area/settings/img/admin_project_quota_view.png b/doc/user/admin_area/settings/img/admin_project_quota_view.png new file mode 100644 index 00000000000..8320be860da Binary files /dev/null and b/doc/user/admin_area/settings/img/admin_project_quota_view.png differ diff --git a/doc/user/admin_area/settings/img/buy_btn.png b/doc/user/admin_area/settings/img/buy_btn.png new file mode 100644 index 00000000000..0cc88b8a48f Binary files /dev/null and b/doc/user/admin_area/settings/img/buy_btn.png differ diff --git a/doc/user/admin_area/settings/img/buy_minutes_card.png b/doc/user/admin_area/settings/img/buy_minutes_card.png new file mode 100644 index 00000000000..cf4ad34ead7 Binary files /dev/null and b/doc/user/admin_area/settings/img/buy_minutes_card.png differ diff --git a/doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png b/doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png new file mode 100644 index 00000000000..269a3cf1fbc Binary files /dev/null and b/doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png differ diff --git a/doc/user/admin_area/settings/img/email_settings.png b/doc/user/admin_area/settings/img/email_settings.png new file mode 100644 index 00000000000..ed0a80d10ce Binary files /dev/null and b/doc/user/admin_area/settings/img/email_settings.png differ diff --git a/doc/user/admin_area/settings/img/file_template_admin_area.png b/doc/user/admin_area/settings/img/file_template_admin_area.png new file mode 100644 index 00000000000..269d997e1d9 Binary files /dev/null and b/doc/user/admin_area/settings/img/file_template_admin_area.png differ diff --git a/doc/user/admin_area/settings/img/file_template_user_dropdown.png b/doc/user/admin_area/settings/img/file_template_user_dropdown.png new file mode 100644 index 00000000000..8c9eb49f6c9 Binary files /dev/null and b/doc/user/admin_area/settings/img/file_template_user_dropdown.png differ diff --git a/doc/user/admin_area/settings/img/group_pipelines_quota.png b/doc/user/admin_area/settings/img/group_pipelines_quota.png new file mode 100644 index 00000000000..d94b609ad6f Binary files /dev/null and b/doc/user/admin_area/settings/img/group_pipelines_quota.png differ diff --git a/doc/user/admin_area/settings/img/group_quota_view.png b/doc/user/admin_area/settings/img/group_quota_view.png new file mode 100644 index 00000000000..791bfd868e0 Binary files /dev/null and b/doc/user/admin_area/settings/img/group_quota_view.png differ diff --git a/doc/user/admin_area/settings/img/group_settings.png b/doc/user/admin_area/settings/img/group_settings.png new file mode 100644 index 00000000000..a849d9cfdc1 Binary files /dev/null and b/doc/user/admin_area/settings/img/group_settings.png differ diff --git a/doc/user/admin_area/settings/img/mirror_settings.png b/doc/user/admin_area/settings/img/mirror_settings.png new file mode 100644 index 00000000000..090db6808a7 Binary files /dev/null and b/doc/user/admin_area/settings/img/mirror_settings.png differ diff --git a/doc/user/admin_area/settings/index.md b/doc/user/admin_area/settings/index.md index 8358fe64f18..0e697b9e445 100644 --- a/doc/user/admin_area/settings/index.md +++ b/doc/user/admin_area/settings/index.md @@ -6,6 +6,7 @@ instance like sign-up restrictions, account limits and quota, metrics, etc. Navigate to it by going to **Admin area > Settings**. Some of the settings include: +- [Account and limit settings](account_and_limit_settings.md) **[STARTER]** - [Continuous Integration and Deployment](continuous_integration.md) - [Email](email.md) - [Sign up restrictions](sign_up_restrictions.md) @@ -13,6 +14,7 @@ include: - [Third party offers](third_party_offers.md) - [Usage statistics](usage_statistics.md) - [Visibility and access controls](visibility_and_access_controls.md) +- [Custom templates repository](instance_template_repository.md) **[PREMIUM]** NOTE: **Note:** You can change the [first day of the week](../../profile/preferences.md) for the entire GitLab instance diff --git a/doc/user/admin_area/settings/instance_template_repository.md b/doc/user/admin_area/settings/instance_template_repository.md new file mode 100644 index 00000000000..4010008f694 --- /dev/null +++ b/doc/user/admin_area/settings/instance_template_repository.md @@ -0,0 +1,63 @@ +# Instance template repository **[PREMIUM ONLY]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5986) in +> [GitLab Premium](https://about.gitlab.com/pricing) 11.3. + +## Overview + +In hosted systems, enterprises often have a need to share their own templates +across teams. This feature allows an administrator to pick a project to be the +instance-wide collection of file templates. These templates are then exposed to +all users [via the web editor](../../project/repository/web_editor.md#template-dropdowns) +while the project remains secure. + +## Configuration + +As an administrator, navigate to **Admin area > Settings > Templates** and +select the project to serve as the custom template repository. + +![File templates in the admin area](img/file_template_admin_area.png) + +Once a project has been selected, you can add custom templates to the repository, +and they will appear in the appropriate places in the +[frontend](../../project/repository/web_editor.md#template-dropdowns) and +[API](../../../api/settings.md). + +Templates must be added to a specific subdirectory in the repository, +corresponding to the kind of template. The following types of custom templates +are supported: + +| Type | Directory | Extension | +| :---------------: | :-----------: | :-----------: | +| `Dockerfile` | `Dockerfile` | `.dockerfile` | +| `.gitignore` | `gitignore` | `.gitignore` | +| `.gitlab-ci.yml` | `gitlab-ci` | `.yml` | +| `LICENSE` | `LICENSE` | `.txt` | + +Each template must go in its respective subdirectory, have the correct +extension and not be empty. So, the hierarchy should look like this: + +```text +|-- README.md +|-- Dockerfile + |-- custom_dockerfile.dockerfile + |-- another_dockerfile.dockerfile +|-- gitignore + |-- custom_gitignore.gitignore + |-- another_gitignore.gitignore +|-- gitlab-ci + |-- custom_gitlab-ci.yml + |-- another_gitlab-ci.yml +|-- LICENSE + |-- custom_license.txt + |-- another_license.txt +``` + +Once this is established, the list of custom templates will be included when +creating a new file and the template type is selected. These will appear at the +top of the list. + +![Custom template dropdown menu](img/file_template_user_dropdown.png) + +If this feature is disabled or no templates are present, there will be +no "Custom" section in the selection dropdown. diff --git a/doc/user/admin_area/settings/visibility_and_access_controls.md b/doc/user/admin_area/settings/visibility_and_access_controls.md index 6a1e8004f87..4d1b7d0f252 100644 --- a/doc/user/admin_area/settings/visibility_and_access_controls.md +++ b/doc/user/admin_area/settings/visibility_and_access_controls.md @@ -49,5 +49,15 @@ block access to the server itself. The ports used for the protocol, be it SSH or HTTP, will still be accessible. What GitLab does is restrict access on the application level. +## Allow mirrors to be set up for projects + +> [Introduced][ee-3586] in GitLab 10.3. + +This option is enabled by default. By disabling it, both pull and push mirroring will no longer +work in every repository and can only be re-enabled on a per-project basis by an admin. + +![Mirror settings](img/mirror_settings.png) + [ce-4696]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4696 [ce-18021]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18021 +[ee-3586]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3586 -- cgit v1.2.3 From 4fa9ee849e59903e3dc19f2e194456fd1bd55eb1 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 14:44:13 +0000 Subject: Docs: Merge EE doc/user/project/repository and doc/push_rules to CE --- doc/user/project/repository/gpg_signed_commits/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md index 6495ede42e0..3260a355fdc 100644 --- a/doc/user/project/repository/gpg_signed_commits/index.md +++ b/doc/user/project/repository/gpg_signed_commits/index.md @@ -264,7 +264,7 @@ To remove a GPG key from your account: ## Rejecting commits that are not signed **[PREMIUM]** You can configure your project to reject commits that aren't GPG-signed -via [push rules](https://docs.gitlab.com/ee/push_rules/push_rules.html). +via [push rules](../../../../push_rules/push_rules.md). ## GPG signing API -- cgit v1.2.3 From 12e1969759d637a8a7dbda4124e89bae677361ce Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 14:52:24 +0000 Subject: Docs: Merge EE doc/user/project/merge_requests to CE --- .../merge_requests/browser_performance_testing.md | 54 ++++ doc/user/project/merge_requests/code_quality.md | 82 ++++++ .../project/merge_requests/code_quality_diff.md | 6 + .../project/merge_requests/container_scanning.md | 5 + doc/user/project/merge_requests/dast.md | 5 + .../project/merge_requests/dependency_scanning.md | 5 + .../merge_requests/img/approvals_can_override.png | Bin 0 -> 7634 bytes .../img/approvals_premium_mr_widget.png | Bin 0 -> 76524 bytes .../img/approvals_premium_project_edit.png | Bin 0 -> 47371 bytes .../img/approvals_remove_on_push.png | Bin 0 -> 6551 bytes .../img/approvals_starter_project_edit.png | Bin 0 -> 52442 bytes .../img/approvals_starter_project_empty.png | Bin 0 -> 50820 bytes doc/user/project/merge_requests/img/approve.png | Bin 0 -> 19329 bytes .../merge_requests/img/approve_additionally.png | Bin 0 -> 22700 bytes .../img/browser_performance_testing.png | Bin 0 -> 52100 bytes .../project/merge_requests/img/code_quality.gif | Bin 0 -> 2617453 bytes .../merge_requests/img/container_scanning.png | Bin 0 -> 32549 bytes .../img/create-issue-with-list-hover.png | Bin 0 -> 106954 bytes doc/user/project/merge_requests/img/dast_all.png | Bin 0 -> 25844 bytes .../project/merge_requests/img/dast_single.png | Bin 0 -> 69353 bytes .../merge_requests/img/dependency_scanning.png | Bin 0 -> 16167 bytes .../img/filter_approver_merge_requests.png | Bin 0 -> 90764 bytes .../merge_requests/img/interactive_reports.png | Bin 0 -> 23190 bytes .../merge_requests/img/license_management.png | Bin 0 -> 5184 bytes .../img/license_management_decision.png | Bin 0 -> 5981 bytes .../img/license_management_pipeline_tab.png | Bin 0 -> 12115 bytes .../img/license_management_settings.png | Bin 0 -> 13300 bytes .../project/merge_requests/img/remove_approval.png | Bin 0 -> 21902 bytes doc/user/project/merge_requests/img/sast.png | Bin 0 -> 24876 bytes .../project/merge_requests/img/security_report.png | Bin 0 -> 38475 bytes .../merge_requests/img/vulnerability_solution.png | Bin 0 -> 3421 bytes doc/user/project/merge_requests/index.md | 94 +++++- .../project/merge_requests/license_management.md | 5 + .../merge_requests/merge_request_approvals.md | 319 +++++++++++++++++++++ doc/user/project/merge_requests/sast.md | 5 + doc/user/project/merge_requests/sast_docker.md | 5 + 36 files changed, 576 insertions(+), 9 deletions(-) create mode 100644 doc/user/project/merge_requests/browser_performance_testing.md create mode 100644 doc/user/project/merge_requests/code_quality.md create mode 100644 doc/user/project/merge_requests/code_quality_diff.md create mode 100644 doc/user/project/merge_requests/container_scanning.md create mode 100644 doc/user/project/merge_requests/dast.md create mode 100644 doc/user/project/merge_requests/dependency_scanning.md create mode 100644 doc/user/project/merge_requests/img/approvals_can_override.png create mode 100644 doc/user/project/merge_requests/img/approvals_premium_mr_widget.png create mode 100644 doc/user/project/merge_requests/img/approvals_premium_project_edit.png create mode 100644 doc/user/project/merge_requests/img/approvals_remove_on_push.png create mode 100644 doc/user/project/merge_requests/img/approvals_starter_project_edit.png create mode 100644 doc/user/project/merge_requests/img/approvals_starter_project_empty.png create mode 100644 doc/user/project/merge_requests/img/approve.png create mode 100644 doc/user/project/merge_requests/img/approve_additionally.png create mode 100644 doc/user/project/merge_requests/img/browser_performance_testing.png create mode 100644 doc/user/project/merge_requests/img/code_quality.gif create mode 100644 doc/user/project/merge_requests/img/container_scanning.png create mode 100644 doc/user/project/merge_requests/img/create-issue-with-list-hover.png create mode 100644 doc/user/project/merge_requests/img/dast_all.png create mode 100644 doc/user/project/merge_requests/img/dast_single.png create mode 100644 doc/user/project/merge_requests/img/dependency_scanning.png create mode 100644 doc/user/project/merge_requests/img/filter_approver_merge_requests.png create mode 100644 doc/user/project/merge_requests/img/interactive_reports.png create mode 100644 doc/user/project/merge_requests/img/license_management.png create mode 100644 doc/user/project/merge_requests/img/license_management_decision.png create mode 100644 doc/user/project/merge_requests/img/license_management_pipeline_tab.png create mode 100644 doc/user/project/merge_requests/img/license_management_settings.png create mode 100644 doc/user/project/merge_requests/img/remove_approval.png create mode 100644 doc/user/project/merge_requests/img/sast.png create mode 100644 doc/user/project/merge_requests/img/security_report.png create mode 100644 doc/user/project/merge_requests/img/vulnerability_solution.png create mode 100644 doc/user/project/merge_requests/license_management.md create mode 100644 doc/user/project/merge_requests/merge_request_approvals.md create mode 100644 doc/user/project/merge_requests/sast.md create mode 100644 doc/user/project/merge_requests/sast_docker.md (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/browser_performance_testing.md b/doc/user/project/merge_requests/browser_performance_testing.md new file mode 100644 index 00000000000..65ee2e128ae --- /dev/null +++ b/doc/user/project/merge_requests/browser_performance_testing.md @@ -0,0 +1,54 @@ +# Browser Performance Testing **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3507) +in [GitLab Premium](https://about.gitlab.com/pricing/) 10.3. + +## Overview + +If your application offers a web interface and you are using +[GitLab CI/CD](../../../ci/README.md), you can quickly determine the performance +impact of pending code changes. + +GitLab uses [Sitespeed.io](https://www.sitespeed.io), a free and open source +tool for measuring the performance of web sites, and has built a simple +[Sitespeed plugin](https://gitlab.com/gitlab-org/gl-performance) +which outputs the results in a file called `performance.json`. This plugin +outputs the performance score for each page that is analyzed. + +The [Sitespeed.io performance score](http://examples.sitespeed.io/6.0/2017-11-23-23-43-35/help.html) +is a composite value based on best practices, and we will be expanding support +for [additional metrics](https://gitlab.com/gitlab-org/gitlab-ee/issues/4370) +in a future release. + +Going a step further, GitLab can show the Performance report right +in the merge request widget area: + +## Use cases + +For instance, consider the following workflow: + +1. A member of the marketing team is attempting to track engagement by adding a new tool +1. With browser performance metrics, they see how their changes are impacting the usability of the page for end users +1. The metrics show that after their changes the performance score of the page has gone down +1. When looking at the detailed report, they see that the new Javascript library was included in `` which affects loading page speed +1. They ask a front end developer to help them, who sets the library to load asynchronously +1. The frontend developer approves the merge request and authorizes its deployment to production + +## How it works + +First of all, you need to define a job in your `.gitlab-ci.yml` file that generates the +[Performance report artifact](../../../ci/yaml/README.md#artifactsreportsperformance-premium). +For more information on how the Performance job should look like, check the +example on [Testing Browser Performance](../../../ci/examples/browser_performance.md). + +GitLab then checks this report, compares key performance metrics for each page +between the source and target branches, and shows the information right on the merge request. + +>**Note:** +If the Performance report doesn't have anything to compare to, no information +will be displayed in the merge request area. That is the case when you add the +Performance job in your `.gitlab-ci.yml` for the very first time. +Consecutive merge requests will have something to compare to and the Performance +report will be shown properly. + +![Performance Widget](img/browser_performance_testing.png) diff --git a/doc/user/project/merge_requests/code_quality.md b/doc/user/project/merge_requests/code_quality.md new file mode 100644 index 00000000000..e6811b5df5e --- /dev/null +++ b/doc/user/project/merge_requests/code_quality.md @@ -0,0 +1,82 @@ +# Code Quality **[STARTER]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1984) +in [GitLab Starter](https://about.gitlab.com/pricing/) 9.3. + +## Overview + +If you are using [GitLab CI/CD](../../../ci/README.md), you can analyze your +source code quality using GitLab Code Quality. +Code Quality uses [Code Climate Engines](https://codeclimate.com), which are +free and open source. Code Quality doesn’t require a Code Climate subscription. + +Going a step further, GitLab can show the Code Quality report right +in the merge request widget area: + +![Code Quality Widget](img/code_quality.gif) + +## Use cases + +For instance, consider the following workflow: + +1. Your backend team member starts a new implementation for making certain feature in your app faster +1. With Code Quality reports, they analyze how their implementation is impacting the code quality +1. The metrics show that their code degrade the quality in 10 points +1. You ask a co-worker to help them with this modification +1. They both work on the changes until Code Quality report displays no degradations, only improvements +1. You approve the merge request and authorize its deployment to staging +1. Once verified, their changes are deployed to production + +## How it works + +First of all, you need to define a job in your `.gitlab-ci.yml` file that generates the +[Code Quality report artifact](../../../ci/yaml/README.md#artifactsreportscodequality-starter). + +The Code Quality report artifact is a subset of the +[Code Climate spec](https://github.com/codeclimate/spec/blob/master/SPEC.md#data-types). +It must be a JSON file containing an array of objects with the following properties: + +| Name | Description | +| ---------------------- | -------------------------------------------------------------------------------------- | +| `description` | A description of the code quality violation. | +| `fingerprint` | A unique fingerprint to identify the code quality violation. For example, an MD5 hash. | +| `location.path` | The relative path to the file containing the code quality violation. | +| `location.lines.begin` | The line on which the code quality violation occurred. | + +Example: + +```json +[ + { + "description": "'unused' is assigned a value but never used.", + "fingerprint": "7815696ecbf1c96e6894b779456d330e", + "location": { + "path": "lib/index.js", + "lines": { + "begin": 42 + } + } + } +] +``` + +NOTE: **Note:** +Although the Code Climate spec supports more properties, those are ignored by GitLab. + +For more information on how the Code Quality job should look like, check the +example on [analyzing a project's code quality](../../../ci/examples/code_quality.md). + +GitLab then checks this report, compares the metrics between the source and target +branches, and shows the information right on the merge request. + +CAUTION: **Caution:** +If multiple jobs in a pipeline generate a code quality artifact, only the artifact from +the last created job (the job with the largest job ID) is used. To avoid confusion, +configure only one job to generate a code quality artifact. + +NOTE: **Note:** +If the Code Quality report doesn't have anything to compare to, no information +will be displayed in the merge request area. That is the case when you add the +Code Quality job in your `.gitlab-ci.yml` for the very first time. +Consecutive merge requests will have something to compare to and the Code Quality +report will be shown properly. diff --git a/doc/user/project/merge_requests/code_quality_diff.md b/doc/user/project/merge_requests/code_quality_diff.md new file mode 100644 index 00000000000..890058eec6f --- /dev/null +++ b/doc/user/project/merge_requests/code_quality_diff.md @@ -0,0 +1,6 @@ +--- +redirect_from: 'https://docs.gitlab.com/ee/user/project/merge_requests/code_quality_diff.html' +redirect_to: 'code_quality.md' +--- + +This document was moved to [another location](code_quality.md). diff --git a/doc/user/project/merge_requests/container_scanning.md b/doc/user/project/merge_requests/container_scanning.md new file mode 100644 index 00000000000..4d41e424f4a --- /dev/null +++ b/doc/user/project/merge_requests/container_scanning.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html). diff --git a/doc/user/project/merge_requests/dast.md b/doc/user/project/merge_requests/dast.md new file mode 100644 index 00000000000..b676c661267 --- /dev/null +++ b/doc/user/project/merge_requests/dast.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/dast/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/dast/index.html). diff --git a/doc/user/project/merge_requests/dependency_scanning.md b/doc/user/project/merge_requests/dependency_scanning.md new file mode 100644 index 00000000000..3a8b53b425c --- /dev/null +++ b/doc/user/project/merge_requests/dependency_scanning.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html). diff --git a/doc/user/project/merge_requests/img/approvals_can_override.png b/doc/user/project/merge_requests/img/approvals_can_override.png new file mode 100644 index 00000000000..8d207d018e0 Binary files /dev/null and b/doc/user/project/merge_requests/img/approvals_can_override.png differ diff --git a/doc/user/project/merge_requests/img/approvals_premium_mr_widget.png b/doc/user/project/merge_requests/img/approvals_premium_mr_widget.png new file mode 100644 index 00000000000..b6dc86f312e Binary files /dev/null and b/doc/user/project/merge_requests/img/approvals_premium_mr_widget.png differ diff --git a/doc/user/project/merge_requests/img/approvals_premium_project_edit.png b/doc/user/project/merge_requests/img/approvals_premium_project_edit.png new file mode 100644 index 00000000000..b6f6188b9cd Binary files /dev/null and b/doc/user/project/merge_requests/img/approvals_premium_project_edit.png differ diff --git a/doc/user/project/merge_requests/img/approvals_remove_on_push.png b/doc/user/project/merge_requests/img/approvals_remove_on_push.png new file mode 100644 index 00000000000..73964827587 Binary files /dev/null and b/doc/user/project/merge_requests/img/approvals_remove_on_push.png differ diff --git a/doc/user/project/merge_requests/img/approvals_starter_project_edit.png b/doc/user/project/merge_requests/img/approvals_starter_project_edit.png new file mode 100644 index 00000000000..868b9d58740 Binary files /dev/null and b/doc/user/project/merge_requests/img/approvals_starter_project_edit.png differ diff --git a/doc/user/project/merge_requests/img/approvals_starter_project_empty.png b/doc/user/project/merge_requests/img/approvals_starter_project_empty.png new file mode 100644 index 00000000000..7375820224c Binary files /dev/null and b/doc/user/project/merge_requests/img/approvals_starter_project_empty.png differ diff --git a/doc/user/project/merge_requests/img/approve.png b/doc/user/project/merge_requests/img/approve.png new file mode 100644 index 00000000000..e68259ac5c2 Binary files /dev/null and b/doc/user/project/merge_requests/img/approve.png differ diff --git a/doc/user/project/merge_requests/img/approve_additionally.png b/doc/user/project/merge_requests/img/approve_additionally.png new file mode 100644 index 00000000000..3db5a9159e5 Binary files /dev/null and b/doc/user/project/merge_requests/img/approve_additionally.png differ diff --git a/doc/user/project/merge_requests/img/browser_performance_testing.png b/doc/user/project/merge_requests/img/browser_performance_testing.png new file mode 100644 index 00000000000..eea77fb8b93 Binary files /dev/null and b/doc/user/project/merge_requests/img/browser_performance_testing.png differ diff --git a/doc/user/project/merge_requests/img/code_quality.gif b/doc/user/project/merge_requests/img/code_quality.gif new file mode 100644 index 00000000000..bab921cf38b Binary files /dev/null and b/doc/user/project/merge_requests/img/code_quality.gif differ diff --git a/doc/user/project/merge_requests/img/container_scanning.png b/doc/user/project/merge_requests/img/container_scanning.png new file mode 100644 index 00000000000..e47f62acd9d Binary files /dev/null and b/doc/user/project/merge_requests/img/container_scanning.png differ diff --git a/doc/user/project/merge_requests/img/create-issue-with-list-hover.png b/doc/user/project/merge_requests/img/create-issue-with-list-hover.png new file mode 100644 index 00000000000..7d70e8299f5 Binary files /dev/null and b/doc/user/project/merge_requests/img/create-issue-with-list-hover.png differ diff --git a/doc/user/project/merge_requests/img/dast_all.png b/doc/user/project/merge_requests/img/dast_all.png new file mode 100644 index 00000000000..b6edc928dc3 Binary files /dev/null and b/doc/user/project/merge_requests/img/dast_all.png differ diff --git a/doc/user/project/merge_requests/img/dast_single.png b/doc/user/project/merge_requests/img/dast_single.png new file mode 100644 index 00000000000..26ca4bde786 Binary files /dev/null and b/doc/user/project/merge_requests/img/dast_single.png differ diff --git a/doc/user/project/merge_requests/img/dependency_scanning.png b/doc/user/project/merge_requests/img/dependency_scanning.png new file mode 100644 index 00000000000..18df356f846 Binary files /dev/null and b/doc/user/project/merge_requests/img/dependency_scanning.png differ diff --git a/doc/user/project/merge_requests/img/filter_approver_merge_requests.png b/doc/user/project/merge_requests/img/filter_approver_merge_requests.png new file mode 100644 index 00000000000..9c386391a4f Binary files /dev/null and b/doc/user/project/merge_requests/img/filter_approver_merge_requests.png differ diff --git a/doc/user/project/merge_requests/img/interactive_reports.png b/doc/user/project/merge_requests/img/interactive_reports.png new file mode 100644 index 00000000000..9f9812dc69d Binary files /dev/null and b/doc/user/project/merge_requests/img/interactive_reports.png differ diff --git a/doc/user/project/merge_requests/img/license_management.png b/doc/user/project/merge_requests/img/license_management.png new file mode 100644 index 00000000000..cdce6b5fe38 Binary files /dev/null and b/doc/user/project/merge_requests/img/license_management.png differ diff --git a/doc/user/project/merge_requests/img/license_management_decision.png b/doc/user/project/merge_requests/img/license_management_decision.png new file mode 100644 index 00000000000..0763130c375 Binary files /dev/null and b/doc/user/project/merge_requests/img/license_management_decision.png differ diff --git a/doc/user/project/merge_requests/img/license_management_pipeline_tab.png b/doc/user/project/merge_requests/img/license_management_pipeline_tab.png new file mode 100644 index 00000000000..80ffca815b9 Binary files /dev/null and b/doc/user/project/merge_requests/img/license_management_pipeline_tab.png differ diff --git a/doc/user/project/merge_requests/img/license_management_settings.png b/doc/user/project/merge_requests/img/license_management_settings.png new file mode 100644 index 00000000000..b5490e59074 Binary files /dev/null and b/doc/user/project/merge_requests/img/license_management_settings.png differ diff --git a/doc/user/project/merge_requests/img/remove_approval.png b/doc/user/project/merge_requests/img/remove_approval.png new file mode 100644 index 00000000000..6083e1745ef Binary files /dev/null and b/doc/user/project/merge_requests/img/remove_approval.png differ diff --git a/doc/user/project/merge_requests/img/sast.png b/doc/user/project/merge_requests/img/sast.png new file mode 100644 index 00000000000..2c75592c32a Binary files /dev/null and b/doc/user/project/merge_requests/img/sast.png differ diff --git a/doc/user/project/merge_requests/img/security_report.png b/doc/user/project/merge_requests/img/security_report.png new file mode 100644 index 00000000000..ba41b707238 Binary files /dev/null and b/doc/user/project/merge_requests/img/security_report.png differ diff --git a/doc/user/project/merge_requests/img/vulnerability_solution.png b/doc/user/project/merge_requests/img/vulnerability_solution.png new file mode 100644 index 00000000000..7443b9b6eea Binary files /dev/null and b/doc/user/project/merge_requests/img/vulnerability_solution.png differ diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 2765a32c845..2bb2d906453 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -23,7 +23,7 @@ With GitLab merge requests, you can: - Assign it to any registered user, and change the assignee how many times you need - Assign a [milestone](../../project/milestones/index.md) and track the development of a broader implementation - Organize your issues and merge requests consistently throughout the project with [labels](../../project/labels.md) -- Add a time estimation and the time spent with that merge request with [Time Tracking](../../../workflow/time_tracking.html#time-tracking) +- Add a time estimation and the time spent with that merge request with [Time Tracking](../../../workflow/time_tracking.md#time-tracking) - [Resolve merge conflicts from the UI](#resolve-conflicts) - Enable [fast-forward merge requests](#fast-forward-merge-requests) - Enable [semi-linear history merge requests](#semi-linear-history-merge-requests) as another security layer to guarantee the pipeline is passing in the target branch @@ -33,9 +33,16 @@ With GitLab merge requests, you can: With **[GitLab Enterprise Edition][ee]**, you can also: -- View the deployment process across projects with [Multi-Project Pipeline Graphs](https://docs.gitlab.com/ee/ci/multi_project_pipeline_graphs.html#multi-project-pipeline-graphs) **[PREMIUM]** -- Request [approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) from your managers **[STARTER]** -- Analyze the impact of your changes with [Code Quality reports](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html) **[STARTER]** +- Prepare a full review and submit it once it's ready with [Merge Request Reviews](https://docs.gitlab.com/ee/user/discussions/index.md#merge-request-reviews-premium) **[PREMIUM]** +- View the deployment process across projects with [Multi-Project Pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipelines.md) **[PREMIUM]** +- Request [approvals](merge_request_approvals.md) from your managers **[STARTER]** +- Analyze the impact of your changes with [Code Quality reports](code_quality.md) **[STARTER]** +- Manage the licenses of your dependencies with [License Management](https://docs.gitlab.com/ee/user/application_security/license_management/index.md) **[ULTIMATE]** +- Analyze your source code for vulnerabilities with [Static Application Security Testing](https://docs.gitlab.com/ee/user/application_security/sast/index.md) **[ULTIMATE]** +- Analyze your running web applications for vulnerabilities with [Dynamic Application Security Testing](https://docs.gitlab.com/ee/user/application_security/dast/index.md) **[ULTIMATE]** +- Analyze your dependencies for vulnerabilities with [Dependency Scanning](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.md) **[ULTIMATE]** +- Analyze your Docker images for vulnerabilities with [Container Scanning](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.md) **[ULTIMATE]** +- Determine the performance impact of changes with [Browser Performance Testing](#browser-performance-testing-premium) **[PREMIUM]** ## Use cases @@ -43,19 +50,21 @@ A. Consider you are a software developer working in a team: 1. You checkout a new branch, and submit your changes through a merge request 1. You gather feedback from your team +1. You work on the implementation optimizing code with [Code Quality reports](code_quality.md) **[STARTER]** 1. You verify your changes with [JUnit test reports](../../../ci/junit_test_reports.md) in GitLab CI/CD -1. You request the approval from your manager -1. Your manager pushes a commit with his final review, [approves the merge request](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html), and set it to [merge when pipeline succeeds](#merge-when-pipeline-succeeds) (Merge Request Approvals are available in GitLab Starter) +1. You avoid using dependencies whose license is not compatible with your project with [License Management reports](license_management.md) **[ULTIMATE]** +1. You request the [approval](#merge-request-approvals-starter) from your manager +1. Your manager pushes a commit with their final review, [approves the merge request](merge_request_approvals.md), and set it to [merge when pipeline succeeds](#merge-when-pipeline-succeeds) (Merge Request Approvals are available in GitLab Starter) 1. Your changes get deployed to production with [manual actions](../../../ci/yaml/README.md#whenmanual) for GitLab CI/CD 1. Your implementations were successfully shipped to your customer -B. Consider you're a web developer writing a webpage for your company's: +B. Consider you're a web developer writing a webpage for your company's website: 1. You checkout a new branch, and submit a new page through a merge request 1. You gather feedback from your reviewers 1. Your changes are previewed with [Review Apps](../../../ci/review_apps/index.md) 1. You request your web designers for their implementation -1. You request the [approval](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) from your manager **[STARTER]** +1. You request the [approval](merge_request_approvals.md) from your manager **[STARTER]** 1. Once approved, your merge request is [squashed and merged](squash_and_merge.md), and [deployed to staging with GitLab Pages](https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/) 1. Your production team [cherry picks](#cherry-pick-changes) the merge commit into production @@ -159,6 +168,21 @@ in a Merge Request. To do so, click the **...** button in the gutter of the Merg ![Comment on any diff file line](img/comment-on-any-diff-line.png) +## Perform a Review **[PREMIUM]** + +Start a review in order to create multiple comments on a diff and publish them once you're ready. +Starting a review allows you to get all your thoughts in order and ensure you haven't missed anything +before submitting all your comments. + +[Learn more about Merge Request Reviews](https://docs.gitlab.com/ee/user/discussions/index.html#merge-request-reviews-premium) + +## Squash and merge + +GitLab allows you to squash all changes present in a merge request into a single +commit when merging, to allow for a neater commit history. + +[Learn more about squash and merge.](squash_and_merge.md) + ## Suggest changes > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6. @@ -182,7 +206,7 @@ To assign multiple assignees to a merge request: 1. From a merge request, expand the right sidebar and locate the **Assignees** section. 1. Click on **Edit** and from the dropdown menu, select as many users as you want -to assign the merge request to. + to assign the merge request to. Similarly, assignees are removed by deselecting them from the same dropdown menu. @@ -336,6 +360,52 @@ have been marked as a **Work In Progress**. [Learn more about setting a merge request as "Work In Progress".](work_in_progress_merge_requests.md) +## Merge request approvals **[STARTER]** + +> Included in [GitLab Starter][products]. + +If you want to make sure every merge request is approved by one or more people, +you can enforce this workflow by using merge request approvals. Merge request +approvals allow you to set the number of necessary approvals and predefine a +list of approvers that will need to approve every merge request in a project. + +[Read more about merge request approvals.](merge_request_approvals.md) + +## Code Quality **[STARTER]** + +> Introduced in [GitLab Starter][products] 9.3. + +If you are using [GitLab CI][ci], you can analyze your source code quality using +the [Code Climate][cc] analyzer [Docker image][cd]. Going a step further, GitLab +can show the Code Climate report right in the merge request widget area. + +[Read more about Code Quality reports.](code_quality.md) + +## Browser Performance Testing **[PREMIUM]** + +> Introduced in [GitLab Premium][products] 10.3. + +If your application offers a web interface and you are using [GitLab CI/CD][ci], you can quickly determine the performance impact of pending code changes. GitLab uses [Sitespeed.io][sitespeed], a free and open source tool for measuring the performance of web sites, to analyze the performance of specific pages. + +GitLab runs the [Sitespeed.io container][sitespeed-container] and displays the difference in overall performance scores between the source and target branches. + +[Read more about Browser Performance Testing.](browser_performance_testing.md) + +## Security reports **[ULTIMATE]** + +GitLab can scan and report any vulnerabilities found in your project. + +[Read more about security reports.](https://docs.gitlab.com/ee/user/application_security/index.html) + +## Live preview with Review Apps + +If you configured [Review Apps](https://about.gitlab.com/features/review-apps/) for your project, +you can preview the changes submitted to a feature-branch through a merge request +in a per-branch basis. No need to checkout the branch, install and preview locally; +all your changes will be available to preview by anyone with the Review Apps link. + +[Read more about Review Apps.](../../../ci/review_apps/index.md) + ## Merge request diff file navigation When reviewing changes in the **Changes** tab the diff can be navigated using @@ -528,5 +598,11 @@ And to check out a particular merge request: git checkout origin/merge-requests/1 ``` +[products]: https://about.gitlab.com/products/ "GitLab products page" [protected branches]: ../protected_branches.md +[ci]: ../../../ci/README.md +[cc]: https://codeclimate.com/ +[cd]: https://hub.docker.com/r/codeclimate/codeclimate/ +[sitespeed]: https://www.sitespeed.io +[sitespeed-container]: https://hub.docker.com/r/sitespeedio/sitespeed.io/ [ee]: https://about.gitlab.com/pricing/ "GitLab Enterprise Edition" diff --git a/doc/user/project/merge_requests/license_management.md b/doc/user/project/merge_requests/license_management.md new file mode 100644 index 00000000000..08704425a75 --- /dev/null +++ b/doc/user/project/merge_requests/license_management.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/license_management/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/license_management/index.html). diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md new file mode 100644 index 00000000000..265871a7b4b --- /dev/null +++ b/doc/user/project/merge_requests/merge_request_approvals.md @@ -0,0 +1,319 @@ +# Merge request approvals **[STARTER]** + +> Introduced in [GitLab Enterprise Edition 7.12](https://about.gitlab.com/2015/06/22/gitlab-7-12-released/#merge-request-approvers-ee-only). + +NOTE: **Note:** +If you are running a self-managed instance, the new interface shown on +this page will not be available unless the feature flag +`approval_rules` is enabled, which can be done from the Rails console by +instance administrators. + +Use these commands to start the Rails console: + +```sh +# Omnibus GitLab +gitlab-rails console + +# Installation from source +cd /home/git/gitlab +sudo -u git -H bin/rails console RAILS_ENV=production +``` + +Then run `Feature.enable(:approval_rules)` to enable the feature flag. + +The documentation for the older interface can be accessed +[here](/11.7/ee/user/project/merge_requests/merge_request_approvals.html). + +## Overview + +Merge request approvals enable enforced code review by requiring specified people to approve a merge request before it can be unblocked for merging. + +## Use cases + +1. Enforcing review of all code that gets merged into a repository. +2. Specifying code maintainers for an entire repository. +3. Specifying reviewers for a given proposed code change. +4. Specifying categories of reviewers, such as BE, FE, QA, DB, etc., for all proposed code changes. + +## Editing approvals + +To edit the merge request approvals: + +1. Navigate to your project's **Settings > General** and expand + **Merge request approvals**. + + ![Approvals starter project empty](img/approvals_starter_project_empty.png) + +1. Click **Edit**. +1. Search for users or groups that will be [eligible to approve](#eligible-approvers) + merge requests and click the **Add** button to add them as approvers. Note: selecting + approvers is optional. +1. Set the minimum number of required approvals under the **No. approvals required** + box. Note: the minimum can be 0. +1. Click **Update approvers**. + + ![Approvals starter project edit](img/approvals_starter_project_edit.png) + +The steps above are the minimum required to get approvals working in your +merge requests, but there are a couple more options available that might be +suitable to your workflow: + +- Choose whether the default settings can be + [overridden per merge request](#overriding-the-merge-request-approvals-default-settings) +- Choose whether [approvals will be reset with new pushed commits](#resetting-approvals-on-push) + +## Editing approvals **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. + +CAUTION: **Caution:** +There was a [regression affecting this feature in 11.8](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9648). We recommend upgrading _at least_ to version 11.8.2. to avoid any issues. + +NOTE: **Note:** +In 11.8 this feature does not work in [private groups](https://gitlab.com/gitlab-org/gitlab-ee/issues/10356). + +For GitLab Premium, [multiple approver rules](#multiple-approval-rules-premium) can be configured. To configure the merge +request approval rules: + +1. Navigate to your project's **Settings > General** and expand **Merge request approvals**. +1. Click **Add approvers** to create a new approval rule. +1. Just like in [GitLab Starter](#editing-approvals), select the approval members and aprovals required. +1. Give the approval rule a name that describes the set of approvers selected. +1. Click **Add approvers** to submit the new rule. + + ![Approvals premium project edit](img/approvals_premium_project_edit.png) + +## Multiple approval rules **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1979) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.8. + +For GitLab Premium, a merge request's overall approval status is determined by a set of rules. Each rule contains: + +- A set of [eligible approvers](#eligible-approvers). +- A minimum number of approvals required. + +When an [eligible approver](#eligible-approvers) approves a merge request, it will reduce the number of approvals left for +all rules that the approver belongs to. + +![Approvals premium merge request widget](img/approvals_premium_mr_widget.png) + +If no approval rules are set, then the overall minimum number of approvals required can be configured. With no approval rules, +any [eligible approver](#eligible-approvers) may approve. + +## Eligible approvers + +The following can approve merge requests: + +- Users being added as approvers at project or merge request level. +- [Code owners](https://docs.gitlab.com/ee/user/project/code_owners.html) related to the merge request ([introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7933) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.5). + +An individual user can be added as an approver for a project if they are a member of: + +- The project. +- The project's immediate parent group. +- A group that has access to the project via a [share](../members/share_project_with_groups.md). + +A group can also be added as an approver. [In the future](https://gitlab.com/gitlab-org/gitlab-ee/issues/2048), +group approvers will be restricted. + +If a user is added as an individual approver and is also part of a group approver, +then that user is just counted once. The merge request author, as well as users who have committed +to the merge request, do not count as eligible approvers, +if [**Prevent author approval**](#allowing-merge-request-authors-to-approve-their-own-merge-requests) (enabled by default) +and [**Prevent committers approval**](#prevent-approval-of-merge-requests-by-their-committers) (disabled by default) +are enabled on the project settings. + +### Implicit approvers + +If the number of required approvals is greater than the number of approvers, +other users will become implicit approvers to fill the gap. +Those implicit approvers include members of the given project with Developer role or higher. + +## Adding or removing an approval + +If approvals are activated for the given project, when a user visits an open +merge request, depending on their [eligibility](#eligible-approvers), one of +the following is possible: + +- **They are not an eligible approver**: They cannot do anything with respect + to approving this merge request. + +- **They have not approved this merge request**: + + - If the required number of approvals has _not_ been yet met, they can approve + it by clicking the displayed **Approve** button. + ![Approve](img/approve.png) + - If the required number of approvals has already been met, they can still + approve it by clicking the displayed **Approve additionally** button. + ![Add approval](img/approve_additionally.png) + +- **They have already approved this merge request**: They can remove their approval. + + ![Remove approval](img/remove_approval.png) + +NOTE: **Note:** +The merge request author is only allowed to approve their own merge request +if [**Prevent author approval**](#allowing-merge-request-authors-to-approve-their-own-merge-requests) is disabled on the project settings. + +For a given merge request, if the approval restrictions have been satisfied, +the merge request is unblocked and can be merged. +Note, that meeting the required number of approvals is a necessary, but not +sufficient condition for unblocking a merge request from being merged. There +are other conditions that may block it, such as merge conflicts, +[pending discussions](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-discussions-are-resolved) +or a [failed CI/CD pipeline](merge_when_pipeline_succeeds.md). + +## Code Owners approvals **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4418) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.9. + +It is possible to require at least one approval for each entry in the +[`CODEOWNERS` file](https://docs.gitlab.com/ee/user/project/code_owners.html) that matches a file changed in +the merge request. To enable this feature: + +1. Navigate to your project's **Settings > General** and expand + **Merge request approvals**. +1. Tick the **Require approval from code owners** checkbox + checkbox. +1. Click **Save changes**. + +When this feature is enabled, all merge requests will need approval +from one code owner per matched rule before it can be merged. + +## Overriding the merge request approvals default settings + +> Introduced in GitLab Enterprise Edition 9.4. + +NOTE: **Note:** +If you are using GitLab Premium, things are a little different with [multiple approval rules](#multiple-approval-rules-premium). +Read the differences [in GitLab Premium when overriding merge request approvals](#overriding-merge-request-approvals-default-settings-premium). + +If approvals are [set at the project level](#editing-approvals), the +default configuration (number of required approvals and approvers) can be +overridden for each merge request in that project. + +One possible scenario would be to to assign a group of approvers at the project +level and change them later when creating or editing the merge request. + +First, you have to enable this option in the project's settings: + +1. Navigate to your project's **Settings > General** and expand + **Merge request approvals** +1. Tick the "Can override approvers and approvals required per merge request" + checkbox + + ![Approvals can override](img/approvals_can_override.png) + +1. Click **Save changes** + +NOTE: **Note:** +If approver overriding is enabled +and the project level approvers are changed after a merge request is created, +the merge request retains the previous approvers. +However, the approvers can be changed by [editing the merge request](#overriding-the-merge-request-approvals-default-settings). + +--- + +The default approval settings can now be overridden when creating a +[merge request](index.md) or by editing it after it's been created: + +1. Click **Edit** under the **Approvers** section. +1. Search for users or groups that will be [eligible to approve](#eligible-approvers) + merge requests and click the **Add** button to add them as approvers or + remove existing approvers that were set in the project's settings. +1. If you want to change the number of required approvals, set a new number + in the **No. approvals required** box. +1. Click **Update approvers**. + +There are however some restrictions: + +- The amount of required approvals, if changed, must be greater than the default + set at the project level. This ensures that you're not forced to adjust settings + when someone is unavailable for approval, yet the process is still enforced. + +NOTE: **Note:** +If you are contributing to a forked project, things are a little different. +Read what happens when the +[source and target branches are not the same](#merge-requests-with-different-source-branch-and-target-branch-projects). + +## Overriding merge request approvals default settings **[PREMIUM]** + +In GitLab Premium, when the approval rules are [set at the project level](#editing-approvals-premium), and +**Can override approvers and approvals required per merge request** is checked, there are a few more +restrictions (compared to [GitLab Starter](#overriding-the-merge-request-approvals-default-settings)): + +- Approval rules can be added to an MR with no restriction. +- For project sourced approval rules, editing and removing approvers is not allowed. +- The approvals required of all approval rules is configurable, but if a rule is backed by a project rule, then it is restricted +to the minimum approvals required set in the project's corresponding rule. + +## Resetting approvals on push + +If approvals are [set at the project level](#editing-approvals), +you can choose whether all approvals on a merge request are removed when +new commits are pushed to the source branch of the merge request: + +1. Navigate to your project's **Settings > General** and expand + **Merge request approvals** +1. Tick the "Remove all approvals in a merge request when new commits are pushed to its source branch" + checkbox + + ![Approvals remove on push](img/approvals_remove_on_push.png) + +1. Click **Save changes** + +NOTE: **Note:** +Approvals do not get reset when [rebasing a merge request](fast_forward_merge.md) +from the UI. +However, approvals will be reset if the target branch is changed. + +If you want approvals to persist, independent of changes to the merge request, +turn this setting to off by unchecking the box and saving the changes. + +## Allowing merge request authors to approve their own merge requests + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3349) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.3. + +You can allow merge request authors to self-approve merge requests by +enabling it [at the project level](#editing-approvals). Authors +also need to be included in the approvers list in order to be able to +approve their merge request. + +1. Navigate to your project's **Settings > General** and expand **Merge request approvals**. +1. Uncheck the **Prevent approval of merge requests by merge request author** checkbox, which is enabled by default. +1. Click **Save changes**. + +## Prevent approval of merge requests by their committers + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/10441) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.10. + +You can prevent users that have committed to a merge request from approving it by +enabling [**Prevent approval of merge requests by their committers**](#prevent-approval-of-merge-requests-by-their-committers). + +1. Navigate to your project's **Settings > General** and expand **Merge request approvals**. +1. Tick the checkbox **Prevent approval of merge requests by their committers**. +1. Click **Save changes**. + +## Merge requests with different source branch and target branch projects + +If the merge request source branch and target branch belong to different +projects (which happens in merge requests in forked projects), everything is +with respect to the target branch's project (typically the original project). +In particular, since the merge request in this case is part of the target +branch's project, the relevant settings are the target project's. The source +branch's project settings are not applicable. Even if you start the merge +request from the source branch's project UI, pay attention to the created merge +request itself. It belongs to the target branch's project. + +## Approver suggestions + +Approvers are suggested for merge requests based on the previous authors of the files affected by the merge request. + +## Filtering merge requests by approvers + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9468) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.9. + +To filter merge requests by an individual approver, you can type (or select from +the dropdown) `approver` and select the user. + +![Filter MRs by an approver](img/filter_approver_merge_requests.png) diff --git a/doc/user/project/merge_requests/sast.md b/doc/user/project/merge_requests/sast.md new file mode 100644 index 00000000000..688cc79d0f6 --- /dev/null +++ b/doc/user/project/merge_requests/sast.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/sast/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/sast/index.html). diff --git a/doc/user/project/merge_requests/sast_docker.md b/doc/user/project/merge_requests/sast_docker.md new file mode 100644 index 00000000000..4d41e424f4a --- /dev/null +++ b/doc/user/project/merge_requests/sast_docker.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html). -- cgit v1.2.3 From 03bd17e56af13a58d177d130c273951cf7ee3227 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 14:59:11 +0000 Subject: Docs: Merge EE doc/user/project/issues to CE --- doc/user/project/issues/create_new_issue.md | 20 ++++++ doc/user/project/issues/csv_export.md | 77 +++++++++++++++++++++ ...create_issue_from_group_level_issue_tracker.png | Bin 0 -> 29358 bytes doc/user/project/issues/img/csv_export_button.png | Bin 0 -> 7383 bytes doc/user/project/issues/img/csv_export_modal.png | Bin 0 -> 16825 bytes doc/user/project/issues/img/multiple_assignees.gif | Bin 0 -> 877551 bytes .../issues/img/multiple_assignees_for_issues.png | Bin 0 -> 39710 bytes doc/user/project/issues/img/related_issues_add.png | Bin 0 -> 12900 bytes .../project/issues/img/related_issues_remove.png | Bin 0 -> 5450 bytes ...lect_project_from_group_level_issue_tracker.png | Bin 0 -> 23706 bytes doc/user/project/issues/issue_data_and_actions.md | 6 +- .../issues/multiple_assignees_for_issues.md | 41 +++++++++++ doc/user/project/issues/related_issues.md | 45 ++++++++++++ 13 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 doc/user/project/issues/csv_export.md create mode 100644 doc/user/project/issues/img/create_issue_from_group_level_issue_tracker.png create mode 100644 doc/user/project/issues/img/csv_export_button.png create mode 100644 doc/user/project/issues/img/csv_export_modal.png create mode 100644 doc/user/project/issues/img/multiple_assignees.gif create mode 100644 doc/user/project/issues/img/multiple_assignees_for_issues.png create mode 100644 doc/user/project/issues/img/related_issues_add.png create mode 100644 doc/user/project/issues/img/related_issues_remove.png create mode 100644 doc/user/project/issues/img/select_project_from_group_level_issue_tracker.png create mode 100644 doc/user/project/issues/multiple_assignees_for_issues.md create mode 100644 doc/user/project/issues/related_issues.md (limited to 'doc/user') diff --git a/doc/user/project/issues/create_new_issue.md b/doc/user/project/issues/create_new_issue.md index 9a147deecd4..5e05846b77f 100644 --- a/doc/user/project/issues/create_new_issue.md +++ b/doc/user/project/issues/create_new_issue.md @@ -65,6 +65,26 @@ In GitLab 11.7, we updated the format of the generated email address. However the older format is still supported, allowing existing aliases or contacts to continue working._ +## New issue via Service Desk **[PREMIUM]** + +Enable [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) to your project and offer email support. +By doing so, when your customer sends a new email, a new issue can be created in +the appropriate project and followed up from there. + +## New issue from the group-level Issue Tracker + +Head to the Group dashboard and click "Issues" in the sidebar to visit the Issue Tracker +for all projects in your Group. Select the project you'd like to add an issue for +using the dropdown button at the top-right of the page. + +![Select project to create issue](img/select_project_from_group_level_issue_tracker.png) + +We'll keep track of the project you selected most recently, and use it as the default +for your next visit. This should save you a lot of time and clicks, if you mostly +create issues for the same project. + +![Create issue from group-level issue tracker](img/create_issue_from_group_level_issue_tracker.png) + ## New issue via URL with prefilled fields You can link directly to the new issue page for a given project, with prefilled diff --git a/doc/user/project/issues/csv_export.md b/doc/user/project/issues/csv_export.md new file mode 100644 index 00000000000..56b94585672 --- /dev/null +++ b/doc/user/project/issues/csv_export.md @@ -0,0 +1,77 @@ +# Export Issues to CSV **[STARTER]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep). + +Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment. + +## Overview + +**Export Issues to CSV** enables you and your team to export all the data collected from issues into +a **[comma-separated values](https://en.wikipedia.org/wiki/Comma-separated_values)** (CSV) file, +which stores tabular data in plain text. + +> _CSVs are a handy way of getting data from one program to another where one program cannot read the other ones normal output._ [Ref](https://www.quora.com/What-is-a-CSV-file-and-its-uses) + +CSV files can be used with any plotter or spreadsheet-based program, such as Microsoft Excel, +Open Office Calc, or Google Spreadsheets. + +## Use cases + +Among numerous use cases for exporting issues for CSV, we can name a few: + +- Make a snapshot of issues for offline analysis or to communicate with other teams who may not be in GitLab +- Create diagrams, graphs, and charts from the CSV data +- Present the data in any other format for auditing or sharing reasons +- Import the issues elsewhere to a system outside of GitLab +- Long-term issues' data analysis with multiple snapshots created along the time +- Use the long-term data to gather relevant feedback given in the issues, and improve your product based on real metrics + +## Choosing which issues to include + +From the issues page you can narrow down which issues to export using the search bar, along with the All/Open/Closed tabs. All issues returned will be exported, including those not shown on the first page. + +![CSV export button](img/csv_export_button.png) + +You will be asked to confirm the number of issues and email address for the export, after which the email will begin being prepared. + +![CSV export modal dialog](img/csv_export_modal.png) + +## Sorting + +Exported issues are always sorted by `Issue ID`. + +## Format + +> **Time Estimate** and **Time Spent** columns were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2627) in GitLab Starter 10.0. +> +> **Weight** and **Locked** columns were [introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5300) in GitLab Starter 10.8. + +Data will be encoded with a comma as the column delimiter, with `"` used to quote fields if needed, and newlines to separate rows. The first row will be the headers, which are listed in the following table along with a description of the values: + + +| Column | Description | +|---------|-------------| +| Issue ID | Issue `iid` | +| URL | A link to the issue on GitLab | +| Title | Issue `title` | +| State | `Open` or `Closed` | +| Description | Issue `description` | +| Author | Full name of the issue author | +| Author Username | Username of the author, with the `@` symbol omitted | +| Assignee | Full name of the issue assignee | +| Assignee Username | Username of the author, with the `@` symbol omitted | +| Confidential | `Yes` or `No` | +| Locked | `Yes` or `No` | +| Due Date | Formated as `YYYY-MM-DD` | +| Created At (UTC) | Formated as `YYYY-MM-DD HH:MM:SS` | +| Updated At (UTC) | Formated as `YYYY-MM-DD HH:MM:SS` | +| Milestone | Title of the issue milestone | +| Weight | Issue weight | +| Labels | Title of any labels joined with a `,` | +| Time Estimate | [Time estimate](../../../workflow/time_tracking.md#estimates) in seconds | +| Time Spent | [Time spent](../../../workflow/time_tracking.md#time-spent) in seconds | + + +## Limitations + +As the issues will be sent as an email attachment, there is a limit on how much data can be exported. Currently this limit is 20MB to ensure successful delivery across a range of email providers. If this limit is reached we suggest narrowing the search before export, perhaps by exporting open and closed issues separately. diff --git a/doc/user/project/issues/img/create_issue_from_group_level_issue_tracker.png b/doc/user/project/issues/img/create_issue_from_group_level_issue_tracker.png new file mode 100644 index 00000000000..8996490ae63 Binary files /dev/null and b/doc/user/project/issues/img/create_issue_from_group_level_issue_tracker.png differ diff --git a/doc/user/project/issues/img/csv_export_button.png b/doc/user/project/issues/img/csv_export_button.png new file mode 100644 index 00000000000..f9fcfd71c2f Binary files /dev/null and b/doc/user/project/issues/img/csv_export_button.png differ diff --git a/doc/user/project/issues/img/csv_export_modal.png b/doc/user/project/issues/img/csv_export_modal.png new file mode 100644 index 00000000000..f988deec966 Binary files /dev/null and b/doc/user/project/issues/img/csv_export_modal.png differ diff --git a/doc/user/project/issues/img/multiple_assignees.gif b/doc/user/project/issues/img/multiple_assignees.gif new file mode 100644 index 00000000000..055a0efd9ae Binary files /dev/null and b/doc/user/project/issues/img/multiple_assignees.gif differ diff --git a/doc/user/project/issues/img/multiple_assignees_for_issues.png b/doc/user/project/issues/img/multiple_assignees_for_issues.png new file mode 100644 index 00000000000..e8ae37d427d Binary files /dev/null and b/doc/user/project/issues/img/multiple_assignees_for_issues.png differ diff --git a/doc/user/project/issues/img/related_issues_add.png b/doc/user/project/issues/img/related_issues_add.png new file mode 100644 index 00000000000..f59d2335386 Binary files /dev/null and b/doc/user/project/issues/img/related_issues_add.png differ diff --git a/doc/user/project/issues/img/related_issues_remove.png b/doc/user/project/issues/img/related_issues_remove.png new file mode 100644 index 00000000000..be2ec59e61b Binary files /dev/null and b/doc/user/project/issues/img/related_issues_remove.png differ diff --git a/doc/user/project/issues/img/select_project_from_group_level_issue_tracker.png b/doc/user/project/issues/img/select_project_from_group_level_issue_tracker.png new file mode 100644 index 00000000000..97d93620b2a Binary files /dev/null and b/doc/user/project/issues/img/select_project_from_group_level_issue_tracker.png differ diff --git a/doc/user/project/issues/issue_data_and_actions.md b/doc/user/project/issues/issue_data_and_actions.md index 69f90318e4a..ef9fcaec3e6 100644 --- a/doc/user/project/issues/issue_data_and_actions.md +++ b/doc/user/project/issues/issue_data_and_actions.md @@ -50,7 +50,7 @@ where there is shared ownership of an issue. In [GitLab Starter](https://about.gitlab.com/pricing/), you can assign multiple people to an issue. -Learn more in the [Multiple Assignees documentation](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html). +Learn more in the [Multiple Assignees documentation](multiple_assignees_for_issues.md). #### 4. Milestone @@ -90,7 +90,7 @@ If a label doesn't exist yet, you can click **Edit**, and it opens a dropdown me - Assign a weight. Larger values are used to indicate more effort is required to complete the issue. Only positive values or zero are allowed. -Learn more in the [Issue Weight documentation](../../../workflow/issue_weight.md). +Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workflow/issue_weight.html). #### 9. Participants @@ -103,7 +103,7 @@ Learn more in the [Issue Weight documentation](../../../workflow/issue_weight.md - Unsubscribe: if you are receiving notifications on that issue but no longer want to receive them, unsubscribe from it. -Read more in the [notifications documentation](../../../workflow/notifications.md#issue--epics--merge-request-events). +Read more in the [notifications documentation](https://docs.gitlab.com/ee/workflow/notifications.html#issue--epics--merge-request-events). #### 11. Reference diff --git a/doc/user/project/issues/multiple_assignees_for_issues.md b/doc/user/project/issues/multiple_assignees_for_issues.md new file mode 100644 index 00000000000..8781ebdd5b0 --- /dev/null +++ b/doc/user/project/issues/multiple_assignees_for_issues.md @@ -0,0 +1,41 @@ +# Multiple Assignees for Issues **[STARTER]** + +> **Note:** +[Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/1904) +in [GitLab Starter 9.2](https://about.gitlab.com/2017/05/22/gitlab-9-2-released/#multiple-assignees-for-issues). + +## Overview + +In large teams, where there is shared ownership of an issue, it can be difficult +to track who is working on it, who already completed their contributions, who +didn't even start yet. + +In [GitLab Enterprise Edition](https://about.gitlab.com/pricing/), +you can also select multiple assignees to an issue, making it easier to +track, and making clearer who is accountable for it. + +![multiple assignees for issues](img/multiple_assignees_for_issues.png) + +## Use cases + +Consider a team formed by frontend developers, backend developers, +UX designers, QA testers, and a product manager working together to bring an idea to +market. + +Multiple Assignees for Issues makes collaboration smother, +and allows shared responsibilities to be clearly displayed. +All assignees are shown across your team's workflows and receive notifications (as they +would as single assignees), simplifying communication and ownership. + +Once an assignee had their work completed, they would remove themselves as assignees, making +it clear that their role is complete. + +## How it works + +From an opened issue, expand the right sidebar, locate the assignees entry, +and click on **Edit**. From the dropdown menu, select as many users as you want +to assign the issue to. + +![adding multiple assignees](img/multiple_assignees.gif) + +An assignee can be easily removed by deselecting them from the same dropdown menu. diff --git a/doc/user/project/issues/related_issues.md b/doc/user/project/issues/related_issues.md new file mode 100644 index 00000000000..db0ab65b442 --- /dev/null +++ b/doc/user/project/issues/related_issues.md @@ -0,0 +1,45 @@ +# Related issues **[STARTER]** + +> [Introduced][ee-1797] in [GitLab Starter][ee] 9.4. + +Related issues are a bi-directional relationship between any two issues +and appear in a block below the issue description. Issues can be across groups +and projects. + +The relationship only shows up in the UI if the user can see both issues. + +## Adding a related issue + +You can relate one issue to another by clicking the related issues "+" button +in the header of the related issue block. Then, input the issue reference number +or paste in the full URL of the issue. + +Issues of the same project can be specified just by the reference number. +Issues from a different project require additional information like the +group and the project name. For example: + +- same project: `#44` +- same group: `project#44 ` +- different group: `group/project#44` + +Valid references will be added to a temporary list that you can review. +When ready, click the green "Add related issues" button to submit. + +![Adding a related issue](img/related_issues_add.png) + +## Removing a related issue + +In the related issues block, click the "x" icon on the right-side of each issue +token that you wish to remove. Due to the bi-directional relationship, it +will no longer appear in either issue. + +![Removing a related issue](img/related_issues_remove.png) + +Please access our [permissions] page for more information. + +Additionally, you are also able to manage related issues through [our API]. + +[ee]: https://about.gitlab.com/pricing/ +[ee-1797]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1797 +[permissions]: ../../permissions.md +[Our API]: https://docs.gitlab.com/ee/api/issue_links.html -- cgit v1.2.3 From 363c15141a9d8c1e1a3b0a4aa39f75785c9e2832 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 15:26:15 +0000 Subject: Docs: Merge misc EE doc/user/project/i* dirs to CE --- doc/user/project/import/gemnasium.md | 102 +++++++ .../import/img/gemnasium/connect_github.png | Bin 0 -> 49966 bytes .../import/img/gemnasium/create_project.png | Bin 0 -> 85728 bytes .../import/img/gemnasium/edit_gitlab-ci.png | Bin 0 -> 79052 bytes doc/user/project/import/img/gemnasium/pipeline.png | Bin 0 -> 40872 bytes .../import/img/gemnasium/project_connected.png | Bin 0 -> 21575 bytes doc/user/project/import/img/gemnasium/report.png | Bin 0 -> 144883 bytes .../import/img/gemnasium/select_project.png | Bin 0 -> 8927 bytes doc/user/project/import/index.md | 3 + .../insights/img/insights_example_bar_chart.png | Bin 0 -> 21767 bytes .../img/insights_example_bar_time_series_chart.png | Bin 0 -> 34068 bytes .../insights/img/insights_example_line_chart.png | Bin 0 -> 120678 bytes .../insights/img/insights_example_pie_chart.png | Bin 0 -> 10889 bytes .../img/insights_example_stacked_bar_chart.png | Bin 0 -> 81587 bytes doc/user/project/insights/img/project_insights.png | Bin 0 -> 41210 bytes doc/user/project/insights/index.md | 300 +++++++++++++++++++++ doc/user/project/integrations/github.md | 48 ++++ .../integrations/img/github_configuration.png | Bin 0 -> 12515 bytes .../img/github_status_check_pipeline_update.png | Bin 0 -> 21075 bytes .../integrations/img/prometheus_add_metric.png | Bin 0 -> 53571 bytes .../project/integrations/img/prometheus_alert.png | Bin 0 -> 24452 bytes .../integrations/img/prometheus_service_alerts.png | Bin 0 -> 40727 bytes doc/user/project/integrations/project_services.md | 2 + doc/user/project/integrations/prometheus.md | 81 +++++- .../integrations/prometheus_library/kubernetes.md | 24 +- 25 files changed, 558 insertions(+), 2 deletions(-) create mode 100644 doc/user/project/import/gemnasium.md create mode 100644 doc/user/project/import/img/gemnasium/connect_github.png create mode 100644 doc/user/project/import/img/gemnasium/create_project.png create mode 100644 doc/user/project/import/img/gemnasium/edit_gitlab-ci.png create mode 100644 doc/user/project/import/img/gemnasium/pipeline.png create mode 100644 doc/user/project/import/img/gemnasium/project_connected.png create mode 100644 doc/user/project/import/img/gemnasium/report.png create mode 100644 doc/user/project/import/img/gemnasium/select_project.png create mode 100644 doc/user/project/insights/img/insights_example_bar_chart.png create mode 100644 doc/user/project/insights/img/insights_example_bar_time_series_chart.png create mode 100644 doc/user/project/insights/img/insights_example_line_chart.png create mode 100644 doc/user/project/insights/img/insights_example_pie_chart.png create mode 100644 doc/user/project/insights/img/insights_example_stacked_bar_chart.png create mode 100644 doc/user/project/insights/img/project_insights.png create mode 100644 doc/user/project/insights/index.md create mode 100644 doc/user/project/integrations/github.md create mode 100644 doc/user/project/integrations/img/github_configuration.png create mode 100644 doc/user/project/integrations/img/github_status_check_pipeline_update.png create mode 100644 doc/user/project/integrations/img/prometheus_add_metric.png create mode 100644 doc/user/project/integrations/img/prometheus_alert.png create mode 100644 doc/user/project/integrations/img/prometheus_service_alerts.png (limited to 'doc/user') diff --git a/doc/user/project/import/gemnasium.md b/doc/user/project/import/gemnasium.md new file mode 100644 index 00000000000..dc5b3fcd0bb --- /dev/null +++ b/doc/user/project/import/gemnasium.md @@ -0,0 +1,102 @@ +# Gemnasium **[ULTIMATE]** + +This guide describes how to migrate from Gemnasium.com to your own GitLab +instance or GitLab.com. + +## Why is Gemnasium.com closed? + +Gemnasium has been [acquired by GitLab](https://about.gitlab.com/press/releases/2018-01-30-gemnasium-acquisition.html) +in January 2018. Since May 15, 2018, the services provided by Gemnasium are no longer available. +The team behind Gemnasium has joined GitLab as the new Security Products team +and is working on a wider range of tools than just Dependency Scanning: +[SAST](https://docs.gitlab.com/ee/user/application_security/sast/index.html), +[DAST](https://docs.gitlab.com/ee/user/application_security/dast/index.html), +[Container Scanning](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html) and more. +If you want to continue monitoring your dependencies, see the +[Migrating to GitLab](#migrating-to-gitlab) section below. + +## What happened to my account? + +Your account has been automatically closed on May 15th, 2018. If you had a paid +subscription at that time, your card will be refunded on a pro rata temporis basis. +You may contact `gemnasium@gitlab.com` regarding your closed account. + +## Will my account/data be transferred to GitLab Inc.? + +All accounts and data have been deleted on May 15th, 2018. GitLab Inc. +doesn't know anything about your private data, nor your projects, and therefore +if they were vulnerable or not. GitLab Inc. takes personal information very seriously. + +## What happened to my badge? + +To avoid broken 404 images, all badges pointing to Gemnasium.com will be a +placeholder, inviting you to migrate to GitLab (and pointing to this page). + +## Migrating to GitLab + +Gemnasium has been ported and integrated directly into GitLab CI/CD. +You can still benefit from our dependency monitoring features, and it requires +some steps to migrate your projects. There is no automatic import since GitLab +doesn't know anything about any projects which existed on Gemnasium.com. +Security features are free for public (open-source) projects hosted on GitLab.com. + +### If your project is hosted on GitLab (https://gitlab.com / self-hosted) + +You're almost set! If you're already using +[Auto DevOps](../../../topics/autodevops/), you are already covered. +Otherwise, you must configure your `.gitlab-ci.yml` according to the +[dependency scanning page](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html). + +### If your project is hosted on GitHub (https://github.com / GitHub Enterprise) + +Since [GitLab 10.6 comes with GitHub integration](https://about.gitlab.com/features/github/), +GitLab users can now create a CI/CD project in GitLab connected to an external +GitHub.com or GitHub Enterprise repository. This will automatically prompt +GitLab CI/CD to run whenever code is pushed to GitHub and post CI/CD results +back to both GitLab and GitHub when completed. + +1. Create a new project, and select the "CI/CD for external repo" tab: + + ![Create new Project](img/gemnasium/create_project.png) + +1. Use the "GitHub" button to connect your repositories. + + ![Connect from GitHub](img/gemnasium/connect_github.png) + +1. Select the project(s) to be set up with GitLab CI/CD and chose "Connect". + + ![Select projects](img/gemnasium/select_project.png) + + Once the configuration is done, you may click on your new + project on GitLab. + + ![click on connected project](img/gemnasium/project_connected.png) + + Your project is now mirrored on GitLab, where the Runners will be able to access + your source code and run your tests. + + Optional step: If you set this up on GitLab.com, make sure the project is + public (in the project settings) if your GitHub project is public, since + the security feature is available only for [GitLab Ultimate](https://about.gitlab.com/pricing). + +1. To set up the dependency scanning job, corresponding to what Gemnasium was + doing, you must create a `.gitlab-ci.yml` file, or update it according to + the [dependency scanning docs](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html). + The mirroring is pull-only by default, so you may create or update the file on + GitHub: + + ![Edit gitlab-ci.yml file](img/gemnasium/edit_gitlab-ci.png) + +1. Once your file has been committed, a new pipeline will be automatically + triggered if your file is valid: + + ![pipeline](img/gemnasium/pipeline.png) + +1. The result of the job will be visible directly from the pipeline view: + + ![security report](img/gemnasium/report.png) + +NOTE: **Note:** +If you don't commit very often to your project, you may want to use +[scheduled pipelines](../pipelines/schedules.md) to run the job on a regular +basis. diff --git a/doc/user/project/import/img/gemnasium/connect_github.png b/doc/user/project/import/img/gemnasium/connect_github.png new file mode 100644 index 00000000000..5933f4d5d0a Binary files /dev/null and b/doc/user/project/import/img/gemnasium/connect_github.png differ diff --git a/doc/user/project/import/img/gemnasium/create_project.png b/doc/user/project/import/img/gemnasium/create_project.png new file mode 100644 index 00000000000..6e00bf63405 Binary files /dev/null and b/doc/user/project/import/img/gemnasium/create_project.png differ diff --git a/doc/user/project/import/img/gemnasium/edit_gitlab-ci.png b/doc/user/project/import/img/gemnasium/edit_gitlab-ci.png new file mode 100644 index 00000000000..8336c803b83 Binary files /dev/null and b/doc/user/project/import/img/gemnasium/edit_gitlab-ci.png differ diff --git a/doc/user/project/import/img/gemnasium/pipeline.png b/doc/user/project/import/img/gemnasium/pipeline.png new file mode 100644 index 00000000000..ae4d5295ffa Binary files /dev/null and b/doc/user/project/import/img/gemnasium/pipeline.png differ diff --git a/doc/user/project/import/img/gemnasium/project_connected.png b/doc/user/project/import/img/gemnasium/project_connected.png new file mode 100644 index 00000000000..8e7216c015b Binary files /dev/null and b/doc/user/project/import/img/gemnasium/project_connected.png differ diff --git a/doc/user/project/import/img/gemnasium/report.png b/doc/user/project/import/img/gemnasium/report.png new file mode 100644 index 00000000000..5c4d58662c0 Binary files /dev/null and b/doc/user/project/import/img/gemnasium/report.png differ diff --git a/doc/user/project/import/img/gemnasium/select_project.png b/doc/user/project/import/img/gemnasium/select_project.png new file mode 100644 index 00000000000..588c5ca7ce1 Binary files /dev/null and b/doc/user/project/import/img/gemnasium/select_project.png differ diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index cc73ea95f51..ebbc5ca133b 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -13,11 +13,14 @@ 1. [From TFS](tfs.md) 1. [From repo by URL](repo_by_url.md) 1. [By uploading a manifest file (AOSP)](manifest.md) +1. [From Gemnasium](gemnasium.md) In addition to the specific migration documentation above, you can import any Git repository via HTTP from the New Project page. Be aware that if the repository is too large the import can timeout. +There is also the option of [connecting your external repository to get CI/CD benefits](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html). **[PREMIUM]** + ## Migrating from self-hosted GitLab to GitLab.com If you only need to migrate git repos, you can [import each project by URL](repo_by_url.md), but issues and merge requests can't be imported. diff --git a/doc/user/project/insights/img/insights_example_bar_chart.png b/doc/user/project/insights/img/insights_example_bar_chart.png new file mode 100644 index 00000000000..eb96eb4a90f Binary files /dev/null and b/doc/user/project/insights/img/insights_example_bar_chart.png differ diff --git a/doc/user/project/insights/img/insights_example_bar_time_series_chart.png b/doc/user/project/insights/img/insights_example_bar_time_series_chart.png new file mode 100644 index 00000000000..28aa81939d8 Binary files /dev/null and b/doc/user/project/insights/img/insights_example_bar_time_series_chart.png differ diff --git a/doc/user/project/insights/img/insights_example_line_chart.png b/doc/user/project/insights/img/insights_example_line_chart.png new file mode 100644 index 00000000000..131dbedd35e Binary files /dev/null and b/doc/user/project/insights/img/insights_example_line_chart.png differ diff --git a/doc/user/project/insights/img/insights_example_pie_chart.png b/doc/user/project/insights/img/insights_example_pie_chart.png new file mode 100644 index 00000000000..518ed7338f9 Binary files /dev/null and b/doc/user/project/insights/img/insights_example_pie_chart.png differ diff --git a/doc/user/project/insights/img/insights_example_stacked_bar_chart.png b/doc/user/project/insights/img/insights_example_stacked_bar_chart.png new file mode 100644 index 00000000000..aafec4b394e Binary files /dev/null and b/doc/user/project/insights/img/insights_example_stacked_bar_chart.png differ diff --git a/doc/user/project/insights/img/project_insights.png b/doc/user/project/insights/img/project_insights.png new file mode 100644 index 00000000000..2d0292dda54 Binary files /dev/null and b/doc/user/project/insights/img/project_insights.png differ diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md new file mode 100644 index 00000000000..720f4c6604e --- /dev/null +++ b/doc/user/project/insights/index.md @@ -0,0 +1,300 @@ +# Insights **[ULTIMATE]** + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.9 behind the `insights` feature flag. + +CAUTION: **Beta:** +Insights is considered beta, and is not ready for production use. +Follow [gitlab-org&725](https://gitlab.com/groups/gitlab-org/-/epics/725) for +updates. + +Configure the Insights that matter for your projects to explore data such as +triage hygiene, issues created/closed per a given period, average time for merge +requests to be merged and much more. + +![Insights example stacked bar chart](img/project_insights.png) + +NOTE: **Note:** +This feature is [also available at the group level](https://docs.gitlab.com/ee/user/group/insights/index.html). + +## Configure your Insights + +Insights are configured using a YAML file called `.gitlab/insights.yml` within +a project. That file will then be used in the project's Insights page. + +See [Writing your `.gitlab/insights.yml`](#writing-your-gitlabinsightsyml) below +for details about the content of this file. + +NOTE: **Note:** +Once the configuration file is created, you can also +[use it for your project's group](https://docs.gitlab.com/ee/user/group/insights/index.html#configure-your-insights). + +NOTE: **Note:** +If the project doesn't have any configuration file, it'll try to use +the group configuration if possible. If the group doesn't have any +configuration, the default configuration will be used. + +## Permissions + +If you have access to view a project, then you have access to view their +Insights. + +NOTE: **Note:** +Issues or merge requests that you don't have access to (because you don't have +access to the project they belong to, or because they are confidential) are +filtered out of the Insights charts. + +You may also consult the [group permissions table](../../permissions.md#group-members-permissions). + +## Writing your `.gitlab/insights.yml` + +The `.gitlab/insights.yml` file defines the structure and order of the Insights +charts that will be displayed in each Insights page of your project or group. + +Each page has a unique key and a collection of charts to fetch and display. + +For example, here's a single definition for Insights that will display one page with one chart: + +```yaml +bugsCharts: + title: 'Charts for Bugs' + charts: + - title: Monthly Bugs Created (bar) + type: bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + group_by: month + period_limit: 24 +``` + +Each chart definition is made up of a hash composed of key-value pairs. + +For example, here's single chart definition: + +```yaml +monthlyBugsCreated: + title: Monthly Bugs Created (bar) + type: bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + group_by: month + period_limit: 24 +``` + +## Configuration parameters + +A chart is defined as a list of parameters that define the chart's behavior. + +The following table lists available parameters for charts: + +| Keyword | Description | +|:---------------------------------------------------|:------------| +| [`title`](#title) | The title of the chart. This will displayed on the Insights page. | +| [`type`](#type) | The type of chart: `bar`, `line`, `stacked-bar`, `pie` etc. | +| [`query`](#query) | A hash that defines the conditions for issues / merge requests to be part of the chart. | + +## Parameter details + +The following are detailed explanations for parameters used to configure +Insights charts. + +### `title` + +`title` is the title of the chart as it will be displayed on the Insights page. +For example: + +```yaml +monthlyBugsCreated: + title: Monthly Bugs Created (bar) +``` + +### `type` + +`type` is the chart type. + +For example: + +```yaml +monthlyBugsCreated: + title: Monthly Bugs Created (bar) + type: bar +``` + +Supported values are: + +| Name | Example | +| ----- | ------- | +| `bar` | ![Insights example bar chart](img/insights_example_bar_chart.png) | +| `bar` (time series, i.e. when `group_by` is used) | ![Insights example bar time series chart](img/insights_example_bar_time_series_chart.png) | +| `pie` | ![Insights example pie chart](img/insights_example_pie_chart.png) | +| `line` | ![Insights example stacked bar chart](img/insights_example_line_chart.png) | +| `stacked-bar` | ![Insights example stacked bar chart](img/insights_example_stacked_bar_chart.png) | + +### `query` + +`query` allows to define the conditions for issues / merge requests to be part +of the chart. + +Example: + +```yaml +monthlyBugsCreated: + title: Monthly Bugs Created (bar) + type: bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + collection_labels: + - S1 + - S2 + - S3 + - S4 + group_by: week + period_limit: 104 +``` + +#### `query.issuable_type` + +Defines the type of "issuable" you want to create a chart for. + +Supported values are: + +- `issue`: The chart will display issues' data. +- `merge_request`: The chart will display merge requests' data. + +#### `query.issuable_state` + +Filter by the state of the queried "issuable". + +If you omit it, no state filter will be applied. + +Supported values are: + +- `opened`: Open issues / merge requests. +- `closed`: Closed Open issues / merge requests. +- `locked`: Issues / merge requests that have their discussion locked. +- `merged`: Merged merge requests. + +#### `query.filter_labels` + +Filter by labels applied to the queried "issuable". + +If you omit it, no labels filter will be applied. All the defined labels must be +applied to the "issuable" in order for it to be selected. + +Example: + +```yaml +monthlyBugsCreated: + title: Monthly regressions Created (bar) + type: bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + - regression +``` + +#### `query.collection_labels` + +Group "issuable" by the configured labels. + +If you omit it, no grouping will be done. When using this keyword, you need to +set `type` to either `line` or `stacked-bar`. + +Example: + +```yaml +weeklyBugsBySeverity: + title: Weekly Bugs By Severity (stacked bar) + type: stacked-bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + collection_labels: + - S1 + - S2 + - S3 + - S4 +``` + +#### `query.group_by` + +Define the X-axis of your chart. + +Supported values are: + +- `day`: Group data per day. +- `week`: Group data per week. +- `month`: Group data per month. + +#### `query.period_limit` + +Define how far "issuables" are queried in the past. + +The unit is related to the `query.group_by` you defined. For instance if you +defined `query.group_by: 'day'` then `query.period_limit: 365` would mean +"Gather and display data for the last 365 days". + +If you omit it, default values will be applied depending on the `query.group_by` +you defined. + +| `query.group_by` | Default value | +| ---------------- | ------------- | +| `day` | 30 | +| `week` | 4 | +| `month` | 12 | + +## Complete example + +```yaml +bugsCharts: + title: 'Charts for Bugs' + charts: + - title: Monthly Bugs Created (bar) + type: bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + group_by: month + period_limit: 24 + - title: Weekly Bugs By Severity (stacked bar) + type: stacked-bar + query: + issuable_type: issue + issuable_state: opened + filter_labels: + - bug + collection_labels: + - S1 + - S2 + - S3 + - S4 + group_by: week + period_limit: 104 + - title: Monthly Bugs By Team (line) + type: line + query: + issuable_type: merge_request + issuable_state: opened + filter_labels: + - bug + collection_labels: + - Manage + - Plan + - Create + group_by: month + period_limit: 24 +``` diff --git a/doc/user/project/integrations/github.md b/doc/user/project/integrations/github.md new file mode 100644 index 00000000000..cdb0e34fdf6 --- /dev/null +++ b/doc/user/project/integrations/github.md @@ -0,0 +1,48 @@ +# GitHub project integration **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3836) in GitLab Premium 10.6. + +GitLab provides an integration for updating the pipeline statuses on GitHub. +This is especially useful if using GitLab for CI/CD only. + +This project integration is separate from the [instance wide GitHub integration](../import/github.md#mirroring-and-pipeline-status-sharing) +and is automatically configured on [GitHub import](../../../integration/github.md). + +![Pipeline status update on GitHub](img/github_status_check_pipeline_update.png) + +## Configuration + +### Complete these steps on GitHub + +This integration requires a [GitHub API token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) +with `repo:status` access granted: + +1. Go to your "Personal access tokens" page at https://github.com/settings/tokens +1. Click "Generate New Token" +1. Ensure that `repo:status` is checked and click "Generate token" +1. Copy the generated token to use on GitLab + +### Complete these steps on GitLab + +1. Navigate to the project you want to configure. +1. Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +1. Click "GitHub". +1. Select the "Active" checkbox. +1. Paste the token you've generated on GitHub +1. Enter the path to your project on GitHub, such as `https://github.com/username/repository` +1. Optionally check "Static status check names" checkbox to enable static status check names. +1. Save or optionally click "Test Settings". + +#### Static / dynamic status check names + +Since GitLab 11.5 it is possible to opt-in to using static status check names. + +This makes it possible to mark these status checks as _Required_ on GitHub. +If you check "Static status check names" checkbox on the integration page, your +GitLab instance host name is going to be appended to a status check name, +whereas in case of dynamic status check names, a branch name is going to be +appended. + +Dynamic status check name is a default behavior. + +![Configure GitHub Project Integration](img/github_configuration.png) diff --git a/doc/user/project/integrations/img/github_configuration.png b/doc/user/project/integrations/img/github_configuration.png new file mode 100644 index 00000000000..9f2d47921c7 Binary files /dev/null and b/doc/user/project/integrations/img/github_configuration.png differ diff --git a/doc/user/project/integrations/img/github_status_check_pipeline_update.png b/doc/user/project/integrations/img/github_status_check_pipeline_update.png new file mode 100644 index 00000000000..9d02ca18497 Binary files /dev/null and b/doc/user/project/integrations/img/github_status_check_pipeline_update.png differ diff --git a/doc/user/project/integrations/img/prometheus_add_metric.png b/doc/user/project/integrations/img/prometheus_add_metric.png new file mode 100644 index 00000000000..e85670e1a13 Binary files /dev/null and b/doc/user/project/integrations/img/prometheus_add_metric.png differ diff --git a/doc/user/project/integrations/img/prometheus_alert.png b/doc/user/project/integrations/img/prometheus_alert.png new file mode 100644 index 00000000000..a37f0477fd9 Binary files /dev/null and b/doc/user/project/integrations/img/prometheus_alert.png differ diff --git a/doc/user/project/integrations/img/prometheus_service_alerts.png b/doc/user/project/integrations/img/prometheus_service_alerts.png new file mode 100644 index 00000000000..a81dfe7da14 Binary files /dev/null and b/doc/user/project/integrations/img/prometheus_service_alerts.png differ diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index 339e6873c41..f560de427c5 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -34,10 +34,12 @@ Click on the service links to see further configuration instructions and details | [Emails on push](emails_on_push.md) | Email the commits and diff of each push to a list of recipients | | External Wiki | Replaces the link to the internal wiki with a link to an external wiki | | Flowdock | Flowdock is a collaboration web app for technical teams | +| [GitHub](github.md) **[PREMIUM]** | Sends pipeline notifications to GitHub | | [Hangouts Chat](hangouts_chat.md) | Receive events notifications in Google Hangouts Chat | | [HipChat](hipchat.md) | Private group chat and IM | | [Irker (IRC gateway)](irker.md) | Send IRC messages, on update, to a list of recipients through an Irker gateway | | [JIRA](jira.md) | JIRA issue tracker | +| [Jenkins](https://docs.gitlab.com/ee/integration/jenkins.html) **[STARTER]** | An extendable open source continuous integration server | | JetBrains TeamCity CI | A continuous integration and build server | | [Mattermost slash commands](mattermost_slash_commands.md) | Mattermost chat and ChatOps slash commands | | [Mattermost Notifications](mattermost.md) | Receive event notifications in Mattermost | diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md index 43a9e24526d..40113624430 100644 --- a/doc/user/project/integrations/prometheus.md +++ b/doc/user/project/integrations/prometheus.md @@ -13,7 +13,7 @@ There are two ways to set up Prometheus integration, depending on where your app - For deployments on Kubernetes, GitLab can automatically [deploy and manage Prometheus](#managed-prometheus-on-kubernetes). - For other deployment targets, simply [specify the Prometheus server](#manual-configuration-of-prometheus). -Once enabled, GitLab will automatically detect metrics from known services in the [metric library](#monitoring-cicd-environments). +Once enabled, GitLab will automatically detect metrics from known services in the [metric library](#monitoring-cicd-environments). You are also able to [add your own metrics](#adding-additional-metrics-premium) as well. ## Enabling Prometheus Integration @@ -93,6 +93,85 @@ GitLab will automatically scan the Prometheus server for metrics from known serv You can view the performance dashboard for an environment by [clicking on the monitoring button](../../../ci/environments.md#monitoring-environments). +### Adding additional metrics **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3799) in [GitLab Premium](https://about.gitlab.com/pricing/) 10.6. + +Additional metrics can be monitored by adding them on the Prometheus integration page. Once saved, they will be displayed on the environment performance dashboard. + +![Add New Metric](img/prometheus_add_metric.png) + +A few fields are required: + +- **Name**: Chart title +- **Type**: Type of metric. Metrics of the same type will be shown together. +- **Query**: Valid [PromQL query](https://prometheus.io/docs/prometheus/latest/querying/basics/). +- **Y-axis label**: Y axis title to display on the dashboard. +- **Unit label**: Query units, for example `req / sec`. Shown next to the value. + +Multiple metrics can be displayed on the same chart if the fields **Name**, **Type**, and **Y-axis label** match between metrics. For example, a metric with **Name** `Requests Rate`, **Type** `Business`, and **Y-axis label** `rec / sec` would display on the same chart as a second metric with the same values. A **Legend label** is suggested if this feature used. + +#### Query Variables + +GitLab supports a limited set of [CI variables](../../../ci/variables/README.html) in the Prometheus query. This is particularly useful for identifying a specific environment, for example with `CI_ENVIRONMENT_SLUG`. The supported variables are: + +- CI_ENVIRONMENT_SLUG +- KUBE_NAMESPACE + +To specify a variable in a query, enclose it in curly braces with a leading percent. For example: `%{ci_environment_slug}`. + +### Setting up alerts for Prometheus metrics **[ULTIMATE]** + +#### Managed Prometheus instances + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6590) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.2 for [custom metrics](#adding-additional-metrics-premium), and 11.3 for [library metrics](prometheus_library/metrics.md). + +For managed Prometheus instances using auto configuration, alerts for metrics [can be configured](#adding-additional-metrics-premium) directly in the performance dashboard. + +To set an alert, click on the alarm icon in the top right corner of the metric you want to create the alert for. A dropdown +will appear, with options to set the threshold and operator. Click **Add** to save and activate the alert. + +![Adding an alert](img/prometheus_alert.png) + +To remove the alert, click back on the alert icon for the desired metric, and click **Delete**. + +#### External Prometheus instances + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9258) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.8. + +For manually configured Prometheus servers, a notify endpoint is provided to use with Prometheus webhooks. If you have manual configuration enabled, an **Alerts** section is added to **Settings > Integrations > Prometheus**. This contains the *URL* and *Authorization Key*. The **Reset Key** button will invalidate the key and generate a new one. + +![Prometheus service configuration of Alerts](img/prometheus_service_alerts.png) + +To send GitLab alert notifications, copy the *URL* and *Authorization Key* into the [`webhook_configs`](https://prometheus.io/docs/alerting/configuration/#webhook_config) section of your Prometheus Alertmanager configuration: + +```yaml +receivers: + name: gitlab + webhook_configs: + - http_config: + bearer_token: 9e1cbfcd546896a9ea8be557caf13a76 + send_resolved: true + url: http://192.168.178.31:3001/root/manual_prometheus/prometheus/alerts/notify.json + ... +``` + +### Taking action on incidents **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4925) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.11. + +Alerts can be used to trigger actions, like open an issue automatically. To configure the actions: + +1. Navigate to your project's **Settings > Operations > Incidents**. +1. Enable the option to create issues. +1. Choose the [issue template](../description_templates.md) to create the issue from. +1. Optionally, select whether to send an email notification to the developers of the project. +1. Click **Save changes**. + +Once enabled, an issue will be opened automatically when an alert is triggered. To further customize the issue, you can add labels, mentions, or any other supported [quick action](../quick_actions.md) in the selected issue template. + +If the metric exceeds the threshold of the alert for over 5 minutes, an email will be sent to all [Maintainers and Owners](../../permissions.md#project-members-permissions) of the project. + ## Determining the performance impact of a merge > [Introduced][ce-10408] in GitLab 9.2. diff --git a/doc/user/project/integrations/prometheus_library/kubernetes.md b/doc/user/project/integrations/prometheus_library/kubernetes.md index 7a45c87ada0..436129f1dbc 100644 --- a/doc/user/project/integrations/prometheus_library/kubernetes.md +++ b/doc/user/project/integrations/prometheus_library/kubernetes.md @@ -1,6 +1,6 @@ # Monitoring Kubernetes -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8935) in GitLab 9.0 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8935) in GitLab 9.0. GitLab has support for automatically detecting and monitoring Kubernetes metrics. @@ -35,3 +35,25 @@ Prometheus needs to be deployed into the cluster and configured properly in orde In order to isolate and only display relevant CPU and Memory metrics for a given environment, GitLab needs a method to detect which containers it is running. Because these metrics are tracked at the container level, traditional Kubernetes labels are not available. Instead, the [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) or [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) name should begin with [CI_ENVIRONMENT_SLUG](../../../../ci/variables/README.md#predefined-environment-variables). It can be followed by a `-` and additional content if desired. For example, a deployment name of `review-homepage-5620p5` would match the `review/homepage` environment. + +## Displaying Canary metrics **[PREMIUM]** + +> Introduced in [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15201). + +GitLab also gathers Kubernetes metrics for [canary deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html), allowing easy comparison between the current deployed version and the canary. + +These metrics expect the [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) or [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) name to begin with `$CI_ENVIRONMENT_SLUG-canary`, to isolate the canary metrics. + +### Canary metrics supported + +- Average Memory Usage (MB) + + ``` + avg(sum(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"}) without (job)) /1024/1024 + ``` + +- Average CPU Utilization (%) + + ``` + avg(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container_name!="POD",pod_name=~"^%{ci_environment_slug}-canary-(.*)",namespace="%{kube_namespace}"}[15m])) by (pod_name)) + ``` -- cgit v1.2.3 From 4d4bb01d532ae139dab8e5d8a59eb4c6c278bc13 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 15:31:04 +0000 Subject: Docs: Merge 4 EE doc/user/project dirs to CE --- doc/user/project/operations/feature_flags.md | 177 +++++++++++ .../project/operations/img/feature_flags_list.png | Bin 0 -> 14963 bytes doc/user/project/operations/img/specs_list.png | Bin 0 -> 43574 bytes doc/user/project/operations/index.md | 4 +- doc/user/project/operations/tracing.md | 34 ++ .../project/packages/img/maven_package_view.png | Bin 0 -> 16105 bytes doc/user/project/packages/img/npm_package_view.png | Bin 0 -> 24443 bytes doc/user/project/packages/maven.md | 5 + doc/user/project/packages/maven_packages.md | 5 + doc/user/project/packages/maven_repository.md | 341 +++++++++++++++++++++ doc/user/project/packages/npm_registry.md | 120 ++++++++ doc/user/project/settings/index.md | 8 +- doc/user/project/web_ide/index.md | 118 +++++++ 13 files changed, 808 insertions(+), 4 deletions(-) create mode 100644 doc/user/project/operations/feature_flags.md create mode 100644 doc/user/project/operations/img/feature_flags_list.png create mode 100644 doc/user/project/operations/img/specs_list.png create mode 100644 doc/user/project/operations/tracing.md create mode 100644 doc/user/project/packages/img/maven_package_view.png create mode 100644 doc/user/project/packages/img/npm_package_view.png create mode 100644 doc/user/project/packages/maven.md create mode 100644 doc/user/project/packages/maven_packages.md create mode 100644 doc/user/project/packages/maven_repository.md create mode 100644 doc/user/project/packages/npm_registry.md (limited to 'doc/user') diff --git a/doc/user/project/operations/feature_flags.md b/doc/user/project/operations/feature_flags.md new file mode 100644 index 00000000000..a5db3d70bb9 --- /dev/null +++ b/doc/user/project/operations/feature_flags.md @@ -0,0 +1,177 @@ +# Feature Flags **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) in GitLab 11.4. + +CAUTION: **Warning:** +This an _alpha_ feature and is subject to change at any time without +prior notice. + +Feature flags allow you to ship a project in different flavors by +dynamically toggling certain functionality. + +## Overview + +Feature Flags offer a feature toggle system for your application. They enable teams +to achieve Continuous Delivery by deploying new features to production at smaller +batches for controlled testing, separating feature delivery from customer launch. +This helps reducing risk and allows you to easily manage which features to enable. + +GitLab offers a Feature Flags interface that allows you to create, toggle and +remove feature flags. + +## How it works + +Underneath, GitLab uses [unleash](https://github.com/Unleash/unleash), a feature +toggle service. GitLab provides an API where your application can talk to and get the +list of feature flags you set in GitLab. + +The application must be configured to talk to GitLab, so that's up to the +developers to use a compatible [client library](#client-libraries) and +integrate it in their app. + +By setting a flag active or inactive via GitLab, your application will automatically +know which features to enable or disable respectively. + +## Adding a new feature flag + +To add a new feature flag: + +1. Navigate to your project's **Operations > Feature Flags**. +1. Click on the **New Feature Flag** button. +1. Give it a name. + + NOTE: **Note:** + A name can contain only lowercase letters, digits, underscores (`_`) + and dashes (`-`), must start with a letter, and cannot end with a dash (`-`) + or an underscore (`_`). + +1. Give it a description (optional, 255 characters max). +1. Define environment [specs](#define-environment-specs). If you want the flag on by default, enable the catch-all [wildcard spec (`*`)](#define-environment-specs) +1. Click **Create feature flag**. + +Once a feature flag is created, the list of existing feature flags will be presented +with ability to edit or remove them. + +To make a feature flag active or inactive, click the pencil icon to edit it, +and toggle the status for each [spec](#define-environment-specs). + +![Feature flags list](img/feature_flags_list.png) + +## Define environment specs + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/8621) in GitLab 11.8. + +In general, an application is deployed to multiple environments, such as +production, staging and [review apps](../../../ci/review_apps/index.md). +For example, you may not want to enable a feature flag on production until your QA team has +first confirmed that the feature is working correctly on testing environments. + +To handle these situations, you can enable a feature flag on a particular environment +with [Environment specs](../../../ci/environments.md#scoping-environments-with-specs-premium). +You can define multiple specs per flag so that you can control your feature flag more granularly. + +To define specs for each environment: + +1. Navigate to your project's **Operations > Feature Flags**. +1. Click on the **New Feature Flag** button or edit an existing flag. +1. Set the status of the default [spec](../../../ci/environments.md#scoping-environments-with-specs-premium) (`*`). This status will be used for _all_ environments. +1. If you want to enable/disable the feature on a specific environment, create a new [spec](../../../ci/environments.md#scoping-environments-with-specs-premium) and type the environment name. +1. Set the status of the additional spec. This status takes precedence over the default spec's status since we always use the most specific match available. +1. Click **Create feature flag** or **Update feature flag**. + +![Feature flag specs list](img/specs_list.png) + +NOTE: **NOTE** +We'd highly recommend you to use the [Environment](../../../ci/environments.md) +feature in order to quickly assess which flag is enabled per environment. + +## Integrating with your application + +In order to use Feature Flags, you need to first +[get the access credentials](#configuring-feature-flags) from GitLab and then +prepare your application and hook it with a [client library](#client-libraries). + +### Configuring Feature Flags + +To get the access credentials that your application will need to talk to GitLab: + +1. Navigate to your project's **Operations > Feature Flags**. +1. Click on the **Configure** button to see the values: + - **API URL**: URL where the client (application) connects to get a list of feature flags. + - **Instance ID**: Unique token that authorizes the retrieval of the feature flags. + - **Application name**: The name of the running environment. For instance, + if the application runs for production server, application name would be + `production` or similar. This value is used for + [the environment spec evaluation](#define-environment-specs). + +NOTE: **Note:** +The meaning of these fields might change over time. For example, we are not sure +if **Instance ID** will be single token or multiple tokens, assigned to the +**Environment**. Also, **Application name** could describe the version of +application instead of the running environment. + +### Client libraries + +GitLab currently implements a single backend that is compatible with +[Unleash](https://github.com/Unleash/unleash#client-implementations) clients. + +Unleash clients allow the developers to define in the app's code the default +values for flags. Each feature flag evaluation can express the desired +outcome in case the flag isn't present on the provided configuration file. + +Unleash currently offers a number of official SDKs for various frameworks and +a number of community contributed libraries. + +Official clients: + +- [unleash/unleash-client-java](https://github.com/unleash/unleash-client-java) +- [unleash/unleash-client-node](https://github.com/unleash/unleash-client-node) +- [unleash/unleash-client-go](https://github.com/unleash/unleash-client-go) +- [unleash/unleash-client-ruby](https://github.com/unleash/unleash-client-ruby) + +Community contributed clients: + +- [stiano/unleash-client-dotnet](https://github.com/stiano/unleash-client-dotnet) (.Net Core) +- [onybo/unleash-client-core](https://github.com/onybo/unleash-client-core) (.Net Core) +- [aes/unleash-client-python](https://github.com/aes/unleash-client-python) (Python 3) + +### Golang application example + +Here's an example of how to integrate the feature flags in a Golang application: + +```golang +package main + +import ( + "io" + "log" + "net/http" + + "github.com/Unleash/unleash-client-go" +) + +type metricsInterface struct { +} + +func init() { + unleash.Initialize( + unleash.WithUrl("https://gitlab.com/api/v4/feature_flags/unleash/42"), + unleash.WithInstanceId("29QmjsW6KngPR5JNPMWx"), + unleash.WithAppName("production"), + unleash.WithListener(&metricsInterface{}), + ) +} + +func helloServer(w http.ResponseWriter, req *http.Request) { + if unleash.IsEnabled("my_feature_name") { + io.WriteString(w, "Feature enabled\n") + } else { + io.WriteString(w, "hello, world!\n") + } +} + +func main() { + http.HandleFunc("/", helloServer) + log.Fatal(http.ListenAndServe(":8080", nil)) +} +``` diff --git a/doc/user/project/operations/img/feature_flags_list.png b/doc/user/project/operations/img/feature_flags_list.png new file mode 100644 index 00000000000..5313a163fec Binary files /dev/null and b/doc/user/project/operations/img/feature_flags_list.png differ diff --git a/doc/user/project/operations/img/specs_list.png b/doc/user/project/operations/img/specs_list.png new file mode 100644 index 00000000000..9630c907cfc Binary files /dev/null and b/doc/user/project/operations/img/specs_list.png differ diff --git a/doc/user/project/operations/index.md b/doc/user/project/operations/index.md index b0f9936be5c..0086c15c98a 100644 --- a/doc/user/project/operations/index.md +++ b/doc/user/project/operations/index.md @@ -7,5 +7,5 @@ your applications: - Deploy to different [environments](../../../ci/environments.md). - Connect your project to a [Kubernetes cluster](../clusters/index.md). - Discover and view errors generated by your applications with [Error Tracking](error_tracking.md). -- Create, toggle, and remove [Feature Flags](https://docs.gitlab.com/ee/user/project/operations/feature_flags.html). **[PREMIUM]** -- [Trace](https://docs.gitlab.com/ee/user/project/operations/tracing.html) the performance and health of a deployed application. **[ULTIMATE]** +- Create, toggle, and remove [Feature Flags](feature_flags.md). **[PREMIUM]** +- [Trace](tracing.md) the performance and health of a deployed application. **[ULTIMATE]** diff --git a/doc/user/project/operations/tracing.md b/doc/user/project/operations/tracing.md new file mode 100644 index 00000000000..0416e096cf2 --- /dev/null +++ b/doc/user/project/operations/tracing.md @@ -0,0 +1,34 @@ +# Tracing **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7903) in GitLab Ultimate 11.5. + +Tracing provides insight into the performance and health of a deployed application, +tracking each function or microservice which handles a given request. + +This makes it easy to +understand the end-to-end flow of a request, regardless of whether you are using a monolithic or distributed system. + +## Jaeger tracing + +[Jaeger](https://www.jaegertracing.io/) is an open source, end-to-end distributed +tracing system used for monitoring and troubleshooting microservices-based distributed +systems. + +### Deploying Jaeger + +To learn more about deploying Jaeger, read the official +[Getting Started documentation](https://www.jaegertracing.io/docs/latest/getting-started/). +There is an easy to use [all-in-one Docker image](https://www.jaegertracing.io/docs/latest/getting-started/#AllinoneDockerimage), +as well as deployment options for [Kubernetes](https://github.com/jaegertracing/jaeger-kubernetes) +and [OpenShift](https://github.com/jaegertracing/jaeger-openshift). + +### Enabling Jaeger + +GitLab provides an easy way to open the Jaeger UI from within your project: + +1. [Set up Jaeger](#deploying-jaeger) and configure your application using one of the + [client libraries](https://www.jaegertracing.io/docs/latest/client-libraries/). +1. Navigate to your project's **Settings > Operations** and provide the Jaeger URL. +1. Click **Save changes** for the changes to take effect. +1. You can now visit **Operations > Tracing** in your project's sidebar and + GitLab will redirect you to the configured Jaeger URL. \ No newline at end of file diff --git a/doc/user/project/packages/img/maven_package_view.png b/doc/user/project/packages/img/maven_package_view.png new file mode 100644 index 00000000000..2eb4b6f76b4 Binary files /dev/null and b/doc/user/project/packages/img/maven_package_view.png differ diff --git a/doc/user/project/packages/img/npm_package_view.png b/doc/user/project/packages/img/npm_package_view.png new file mode 100644 index 00000000000..8baf7d0ef9f Binary files /dev/null and b/doc/user/project/packages/img/npm_package_view.png differ diff --git a/doc/user/project/packages/maven.md b/doc/user/project/packages/maven.md new file mode 100644 index 00000000000..266225fdb8d --- /dev/null +++ b/doc/user/project/packages/maven.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'maven_repository.md' +--- + +This document was moved to [another location](maven_repository.md). diff --git a/doc/user/project/packages/maven_packages.md b/doc/user/project/packages/maven_packages.md new file mode 100644 index 00000000000..266225fdb8d --- /dev/null +++ b/doc/user/project/packages/maven_packages.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'maven_repository.md' +--- + +This document was moved to [another location](maven_repository.md). diff --git a/doc/user/project/packages/maven_repository.md b/doc/user/project/packages/maven_repository.md new file mode 100644 index 00000000000..94785eb6aec --- /dev/null +++ b/doc/user/project/packages/maven_repository.md @@ -0,0 +1,341 @@ +# GitLab Maven Repository **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5811) in + [GitLab Premium](https://about.gitlab.com/pricing/) 11.3. + +With the GitLab [Maven](https://maven.apache.org) Repository, every +project can have its own space to store its Maven artifacts. + +![GitLab Maven Repository](img/maven_package_view.png) + +## Enabling the Maven Repository + +NOTE: **Note:** +This option is available only if your GitLab administrator has +[enabled support for the Maven repository](https://docs.gitlab.com/ee/administration/packages.html).**[PREMIUM ONLY]** + +After the Packages feature is enabled, the Maven Repository will be available for +all new projects by default. To enable it for existing projects, or if you want +to disable it: + +1. Navigate to your project's **Settings > General > Permissions**. +1. Find the Packages feature and enable or disable it. +1. Click on **Save changes** for the changes to take effect. + +You should then be able to see the **Packages** section on the left sidebar. +Next, you must configure your project to authorize with the GitLab Maven +repository. + +## Authenticating to the GitLab Maven Repository + +If a project is private or you want to upload Maven artifacts to GitLab, +credentials will need to be provided for authorization. Support is available for +[personal access tokens](#authenticating-with-a-personal-access-token) and +[CI job tokens](#authenticating-with-a-ci-job-token) only. +[Deploy tokens](../deploy_tokens/index.md) and regular username/password +credentials do not work. + +### Authenticating with a personal access token + +To authenticate with a [personal access token](../../profile/personal_access_tokens.md), +add a corresponding section to your +[`settings.xml`](https://maven.apache.org/settings.html) file: + +```xml + + + + gitlab-maven + + + + Private-Token + REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN + + + + + + +``` + +You should now be able to upload Maven artifacts to your project. + +### Authenticating with a CI job token + +If you're using Maven with GitLab CI/CD, a CI job token can be used instead +of a personal access token. + +To authenticate with a CI job token, add a corresponding section to your +[`settings.xml`](https://maven.apache.org/settings.html) file: + +```xml + + + + gitlab-maven + + + + Job-Token + ${env.CI_JOB_TOKEN} + + + + + + +``` + +You can read more on +[how to create Maven packages using GitLab CI/CD](#creating-maven-packages-with-gitlab-cicd). + +## Configuring your project to use the GitLab Maven repository URL + +To download and upload packages from GitLab, you need a `repository` and +`distributionManagement` section in your `pom.xml` file. + +Depending on your workflow and the amount of Maven packages you have, there are +3 ways you can configure your project to use the GitLab endpoint for Maven packages: + +- **Project level**: Useful when you have few Maven packages which are not under + the same GitLab group. +- **Group level**: Useful when you have many Maven packages under the same GitLab + group. +- **Instance level**: Useful when you have many Maven packages under different + GitLab groups or on their own namespace. + +NOTE: **Note:** +In all cases, you need a project specific URL for uploading a package in +the `distributionManagement` section. + +### Project level Maven endpoint + +The example below shows how the relevant `repository` section of your `pom.xml` +would look like: + +```xml + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + +``` + +The `id` must be the same with what you +[defined in `settings.xml`](#authenticating-to-the-gitlab-maven-repository). + +Replace `PROJECT_ID` with your project ID which can be found on the home page +of your project. + +If you have a self-hosted GitLab installation, replace `gitlab.com` with your +domain name. + +NOTE: **Note:** +For retrieving artifacts, you can use either the +[URL encoded](../../../api/README.md#namespaced-path-encoding) path of the project +(e.g., `group%2Fproject`) or the project's ID (e.g., `42`). However, only the +project's ID can be used for uploading. + +### Group level Maven endpoint + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8798) in GitLab Premium 11.7. + +If you rely on many packages, it might be inefficient to include the `repository` section +with a unique URL for each package. Instead, you can use the group level endpoint for +all your Maven packages stored within one GitLab group. Only packages you have access to +will be available for download. + +The group level endpoint works with any package names, which means the you +have the flexibility of naming compared to [instance level endpoint](#instance-level-maven-endpoint). +However, GitLab will not guarantee the uniqueness of the package names within +the group. You can have two projects with the same package name and package +version. As a result, GitLab will serve whichever one is more recent. + +The example below shows how the relevant `repository` section of your `pom.xml` +would look like. You still need a project specific URL for uploading a package in +the `distributionManagement` section: + +```xml + + + gitlab-maven + https://gitlab.com/api/v4/groups/my-group/-/packages/maven + + + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + +``` + +The `id` must be the same with what you +[defined in `settings.xml`](#authenticating-to-the-gitlab-maven-repository). + +Replace `my-group` with your group name and `PROJECT_ID` with your project ID +which can be found on the home page of your project. + +If you have a self-hosted GitLab installation, replace `gitlab.com` with your +domain name. + +NOTE: **Note:** +For retrieving artifacts, you can use either the +[URL encoded](../../../api/README.md#namespaced-path-encoding) path of the group +(e.g., `group%2Fsubgroup`) or the group's ID (e.g., `12`). + +### Instance level Maven endpoint + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8274) in GitLab Premium 11.7. + +If you rely on many packages, it might be inefficient to include the `repository` section +with a unique URL for each package. Instead, you can use the instance level endpoint for +all maven packages stored in GitLab and the packages you have access to will be available +for download. + +Note that **only packages that have the same path as the project** are exposed via +the instance level endpoint. + +| Project | Package | Instance level endpoint available | +| ------- | ------- | --------------------------------- | +| `foo/bar` | `foo/bar/1.0-SNAPSHOT` | Yes | +| `gitlab-org/gitlab-ce` | `foo/bar/1.0-SNAPSHOT` | No | +| `gitlab-org/gitlab-ce` | `gitlab-org/gitlab-ce/1.0-SNAPSHOT` | Yes | + +The example below shows how the relevant `repository` section of your `pom.xml` +would look like. You still need a project specific URL for uploading a package in +the `distributionManagement` section: + +```xml + + + gitlab-maven + https://gitlab.com/api/v4/packages/maven + + + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + + gitlab-maven + https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven + + +``` + +The `id` must be the same with what you +[defined in `settings.xml`](#authenticating-to-the-gitlab-maven-repository). + +Replace `PROJECT_ID` with your project ID which can be found on the home page +of your project. + +If you have a self-hosted GitLab installation, replace `gitlab.com` with your +domain name. + +NOTE: **Note:** +For retrieving artifacts, you can use either the +[URL encoded](../../../api/README.md#namespaced-path-encoding) path of the project +(e.g., `group%2Fproject`) or the project's ID (e.g., `42`). However, only the +project's ID can be used for uploading. + +## Uploading packages + +Once you have set up the [authentication](#authenticating-to-the-gitlab-maven-repository) +and [configuration](#configuring-your-project-to-use-the-gitlab-maven-repository-url), +test to upload a Maven artifact from a project of yours: + +```sh +mvn deploy +``` + +You can then navigate to your project's **Packages** page and see the uploaded +artifacts or even delete them. + +## Creating Maven packages with GitLab CI/CD + +Once you have your repository configured to use the GitLab Maven Repository, +you can configure GitLab CI/CD to build new packages automatically. The example below +shows how to create a new package each time the `master` branch is updated: + +1. Create a `ci_settings.xml` file that will serve as Maven's `settings.xml` file. + Add the server section with the same id you defined in your `pom.xml` file. + For example, in our case it's `gitlab-maven`: + + ```xml + + + + gitlab-maven + + + + Job-Token + ${env.CI_JOB_TOKEN} + + + + + + + ``` + +1. Make sure your `pom.xml` file includes the following: + + ```xml + + + gitlab-maven + https://gitlab.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + + + gitlab-maven + https://gitlab.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + gitlab-maven + https://gitlab.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + ``` + + TIP: **Tip:** + You can either let Maven utilize the CI environment variables or hardcode your project's ID. + +1. Add a `deploy` job to your `.gitlab-ci.yml` file: + + ```yaml + deploy: + image: maven:3.3.9-jdk-8 + script: + - 'mvn deploy -s ci_settings.xml' + only: + - master + ``` + +1. Push those files to your repository. + +The next time the `deploy` job runs, it will copy `ci_settings.xml` to the +user's home location (in this case the user is `root` since it runs in a +Docker container), and Maven will utilize the configured CI +[environment variables](../../../ci/variables/README.md#predefined-environment-variables). diff --git a/doc/user/project/packages/npm_registry.md b/doc/user/project/packages/npm_registry.md new file mode 100644 index 00000000000..9f4c01c9a0a --- /dev/null +++ b/doc/user/project/packages/npm_registry.md @@ -0,0 +1,120 @@ +# GitLab NPM Registry **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5934) + in [GitLab Premium](https://about.gitlab.com/pricing/) 11.7. + +With the GitLab NPM Registry, every +project can have its own space to store NPM packages. + +![GitLab NPM Registry](img/npm_package_view.png) + +NOTE: **Note:** +Only [scoped](https://docs.npmjs.com/misc/scope) packages are supported. + + +NOTE: **Note:** +As `@group/subgroup/project` is not a valid NPM package name, publishing a package +within a subgroup is not supported yet. + +## Enabling the NPM Registry + +NOTE: **Note:** +This option is available only if your GitLab administrator has +[enabled support for the NPM registry](https://docs.gitlab.com/ee/administration/packages.html).**[PREMIUM ONLY]** + +After the NPM registry is enabled, it will be available for all new projects +by default. To enable it for existing projects, or if you want to disable it: + +1. Navigate to your project's **Settings > General > Permissions**. +1. Find the Packages feature and enable or disable it. +1. Click on **Save changes** for the changes to take effect. + +You should then be able to see the **Packages** section on the left sidebar. + +Before proceeding to authenticating with the GitLab NPM Registry, you should +get familiar with the package naming convention. + +## Package naming convention + +**Only packages that have the same path as the project** are supported. For + example: + +| Project | Package | Supported | +| ---------------------- | ----------------------- | --------- | +| `foo/bar` | `@foo/bar` | Yes | +| `gitlab-org/gitlab-ce` | `@gitlab-org/gitlab-ce` | Yes | +| `gitlab-org/gitlab-ce` | `@foo/bar` | No | + +Now, you can configure your project to authenticate with the GitLab NPM +Registry. + +## Authenticating to the GitLab NPM Registry + +If a project is private or you want to upload an NPM package to GitLab, +credentials will need to be provided for authentication. Support is available +only for [OAuth tokens](../../../api/oauth2.md#resource-owner-password-credentials-flow). + +CAUTION: **2FA not supported:** +Authentication for personal access tokens is not yet supported +([#9140](https://gitlab.com/gitlab-org/gitlab-ee/issues/9140)). If you have 2FA +enabled, you won't be able to authenticate to the GitLab NPM Registry. + +### Authenticating with an OAuth token + +To authenticate with an [OAuth token](../../../api/oauth2.md#resource-owner-password-credentials-flow), +add a corresponding section to your `.npmrc` file: + +```ini +; Set URL for your scoped packages. +; For example package with name `@foo/bar` will use this URL for download +@foo:registry=https://gitlab.com/api/v4/packages/npm/ + +; Add the OAuth token for the scoped packages URL. This will allow you to download +; `@foo/` packages from private projects. +//gitlab.com/api/v4/packages/npm/:_authToken= + +; Add OAuth token for uploading to the registry. Replace +; with the project you want your package to be uploaded to. +//gitlab.com/api/v4/projects//packages/npm/:_authToken= +``` + +Replace `` with your project ID which can be found on the home page +of your project and `` with your OAuth token. + +If you have a self-hosted GitLab installation, replace `gitlab.com` with your +domain name. + +You should now be able to download and upload NPM packages to your project. + +## Uploading packages + +Before you will be able to upload a package, you need to specify the registry +for NPM. To do this, add the following section to the bottom of `package.json`: + +```json + "publishConfig": { + "@foo:registry":"https://gitlab.com/api/v4/projects//packages/npm/" + } +``` + +Replace `` with your project ID, which can be found on the home +page of your project, and replace `@foo` with your own scope. + +If you have a self-hosted GitLab installation, replace `gitlab.com` with your +domain name. + +Once you have enabled it and set up [authentication](#authenticating-to-the-gitlab-npm-registry), +you can upload an NPM package to your project: + +```sh +npm publish +``` + +You can then navigate to your project's **Packages** page and see the uploaded +packages or even delete them. + +## Uploading a package with the same version twice + +If you upload a package with a same name and version twice, GitLab will show +both packages in the UI, but the GitLab NPM Registry will expose the most recent +one as it supports only one package per version for `npm install`. diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md index d5f4a7fd4ac..99dd018a3ba 100644 --- a/doc/user/project/settings/index.md +++ b/doc/user/project/settings/index.md @@ -42,9 +42,9 @@ Set up your project's merge request settings: ![project's merge request settings](img/merge_requests_settings.png) -### Service Desk +### Service Desk **[PREMIUM]** -Enable [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) for your project to offer customer support. Service Desk is available in [GitLab Premium](https://about.gitlab.com/pricing/). +Enable [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) for your project to offer customer support. ### Export project @@ -128,3 +128,7 @@ namespace if needed. ### Error Tracking Configure Error Tracking to discover and view [Sentry errors within GitLab](../operations/error_tracking.md). + +### Jaeger tracing **[ULTIMATE]** + +Add the URL of a Jaeger server to allow your users to [easily access the Jaeger UI from within GitLab](../operations/tracing.md). diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md index 46a1b2bc3aa..2a2507d98a3 100644 --- a/doc/user/project/web_ide/index.md +++ b/doc/user/project/web_ide/index.md @@ -128,5 +128,123 @@ IDE. An example `package.json` is below. } ``` +## Interactive Web Terminals for the Web IDE **[ULTIMATE ONLY]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5426) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6. + +CAUTION: **Warning:** +Interactive Web Terminals for the Web IDE is currently in **Beta**. + +[Interactive web terminals](../../../ci/interactive_web_terminal/index.md) +give the user access to a terminal to interact with the Runner directly from +GitLab, including through the Web IDE. + +Only project [**maintainers**](../../permissions.md#project-members-permissions) +can run Interactive Web Terminals through the Web IDE. + +CAUTION: **Warning:** +GitLab.com [does not support Interactive Web Terminals yet](https://gitlab.com/gitlab-org/gitlab-ce/issues/52611). +Shared Runners in private instances are not supported either. + +### Runner configuration + +Some things need to be configured in the runner for the interactive web terminal +to work: + +- The Runner needs to have + [`[session_server]` configured properly](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-session_server-section). +- If you are using a reverse proxy with your GitLab instance, web terminals need to be + [enabled](../../../administration/integration/terminal.md#enabling-and-disabling-terminal-support). **[ULTIMATE ONLY]** + +If you have the terminal open and the job has finished with its tasks, the +terminal will block the job from finishing for the duration configured in +[`[session_server].terminal_max_retention_time`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-session_server-section) +until you close the terminal window. + +NOTE: **Note:** Not all executors are +[supported](https://docs.gitlab.com/runner/executors/#compatibility-chart) + +### Web IDE configuration file + +In order to enable the Web IDE terminals you need to create the file +`.gitlab/.gitlab-webide.yml` inside the repository's root. This +file is fairly similar to the [CI configuration file](../../../ci/yaml/README.md) +syntax but with some restrictions: + +- No global blocks can be defined (ie: `before_script` or `after_script`) +- Only one job named `terminal` can be added to this file. +- Only the keywords `image`, `services`, `tags`, `before_script`, `script`, and +`variables` are allowed to be used to configure the job. +- To connect to the interactive terminal, the `terminal` job must be still alive +and running, otherwise the terminal won't be able to connect to the job's session. +By default the `script` keyword has the value `sleep 60` to prevent +the job from ending and giving the Web IDE enough time to connect. This means +that, if you override the default `script` value, you'll have to add a command +which would keep the job running, like `sleep`. + +In the code below there is an example of this configuration file: + +```yaml +terminal: + before_script: + - apt-get update + script: sleep 60 + variables: + RAILS_ENV: "test" + NODE_ENV: "test" +``` + +Once the terminal has started, the console will be displayed and we could access +the project repository files. + +**Important**. The terminal job is branch dependant. This means that the +configuration file used to trigger and configure the terminal will be the one in +the selected branch of the Web IDE. + +If there is no configuration file in a branch, an error message will be shown. + +### Running Interactive Terminals in the Web IDE + +If Interactive Terminals are available for the current user, the **Terminal** button +will be visible in the right sidebar of the Web IDE. Click this button to open +or close the terminal tab. + +Once open, the tab will show the **Start Web Terminal** button. This button may +be disabled if the environment is not configured correctly. If so, a status +message will describe the issue. Here are some reasons why **Start Web Terminal** +may be disabled: + +- `.gitlab/.gitlab-webide.yml` does not exist or is set up incorrectly. +- No active private runners are available for the project. + +If active, clicking the **Start Web Terminal** button will load the terminal view +and start connecting to the runner's terminal. At any time, the **Terminal** tab +can be closed and reopened and the state of the terminal will not be affected. + +When the terminal is started and is successfully connected to the runner, then the +runner's shell prompt will appear in the terminal. From here, you can enter +commands that will be executed within the runner's environment. This is similar +to running commands in a local terminal or through SSH. + +While the terminal is running, it can be stopped by clicking **Stop Terminal**. +This will disconnect the terminal and stop the runner's terminal job. From here, +click **Restart Terminal** to start a new terminal session. + +### Limitations + +Interactive Terminals is in a beta phase and will continue to be improved upon in upcoming +releases. In the meantime, please note that the user is limited to having only one +active terminal at a time. + +### Troubleshooting + +- If the terminal's text is gray and unresponsive, then the terminal has stopped + and it can no longer be used. A stopped terminal can be restarted by clicking + **Restart Terminal**. +- If the terminal displays **Connection Failure**, then the terminal could not + connect to the runner. Please try to stop and restart the terminal. If the + problem persists, double check your runner configuration. + + [ce]: https://about.gitlab.com/pricing/ [ee]: https://about.gitlab.com/pricing/ -- cgit v1.2.3 From 9991d3948b456fae7cf8023cd453c4a01826ae13 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 15:37:18 +0000 Subject: Docs: Merge EE doc/user/project/*.md to CE --- doc/user/project/canary_deployments.md | 71 +++++++++++ doc/user/project/ci_cd_for_external_repo.md | 5 + doc/user/project/code_owners.md | 85 +++++++++++++ doc/user/project/deploy_boards.md | 132 +++++++++++++++++++++ doc/user/project/description_templates.md | 47 +++++++- doc/user/project/file_lock.md | 107 +++++++++++++++++ doc/user/project/img/assignee_lists.png | Bin 0 -> 134635 bytes .../img/deploy_boards_canary_deployments.png | Bin 0 -> 17380 bytes .../project/img/deploy_boards_kubernetes_label.png | Bin 0 -> 43978 bytes .../project/img/deploy_boards_landing_page.png | Bin 0 -> 16107 bytes .../img/description_templates_default_settings.png | Bin 0 -> 26395 bytes doc/user/project/img/file_lock.png | Bin 0 -> 26973 bytes doc/user/project/img/file_lock_folders.png | Bin 0 -> 22900 bytes doc/user/project/img/file_lock_list.png | Bin 0 -> 18243 bytes .../img/file_lock_merge_request_error_message.png | Bin 0 -> 24573 bytes doc/user/project/img/file_lock_repository_view.png | Bin 0 -> 22947 bytes doc/user/project/img/key_value_labels.png | Bin 0 -> 6208 bytes doc/user/project/img/labels_epic_sidebar.png | Bin 0 -> 47869 bytes .../project/img/project_security_dashboard.png | Bin 0 -> 49062 bytes .../protected_branches_select_roles_and_users.png | Bin 0 -> 7155 bytes ...tected_branches_select_roles_and_users_list.png | Bin 0 -> 7408 bytes .../img/service_desk_confirmation_email.png | Bin 0 -> 24165 bytes doc/user/project/img/service_desk_disabled.png | Bin 0 -> 18654 bytes doc/user/project/img/service_desk_enabled.png | Bin 0 -> 33243 bytes .../project/img/service_desk_issue_tracker.png | Bin 0 -> 95087 bytes doc/user/project/img/service_desk_nav_item.png | Bin 0 -> 30323 bytes doc/user/project/img/service_desk_reply.png | Bin 0 -> 15186 bytes doc/user/project/img/service_desk_thread.png | Bin 0 -> 60850 bytes doc/user/project/index.md | 23 +++- doc/user/project/labels.md | 51 +++++++- doc/user/project/maven_packages.md | 5 + doc/user/project/protected_branches.md | 24 +++- doc/user/project/quick_actions.md | 4 +- doc/user/project/security_dashboard.md | 5 + doc/user/project/service_desk.md | 124 +++++++++++++++++++ 35 files changed, 673 insertions(+), 10 deletions(-) create mode 100644 doc/user/project/canary_deployments.md create mode 100644 doc/user/project/ci_cd_for_external_repo.md create mode 100644 doc/user/project/code_owners.md create mode 100644 doc/user/project/deploy_boards.md create mode 100644 doc/user/project/file_lock.md create mode 100644 doc/user/project/img/assignee_lists.png create mode 100644 doc/user/project/img/deploy_boards_canary_deployments.png create mode 100644 doc/user/project/img/deploy_boards_kubernetes_label.png create mode 100644 doc/user/project/img/deploy_boards_landing_page.png create mode 100644 doc/user/project/img/description_templates_default_settings.png create mode 100644 doc/user/project/img/file_lock.png create mode 100644 doc/user/project/img/file_lock_folders.png create mode 100644 doc/user/project/img/file_lock_list.png create mode 100644 doc/user/project/img/file_lock_merge_request_error_message.png create mode 100644 doc/user/project/img/file_lock_repository_view.png create mode 100644 doc/user/project/img/key_value_labels.png create mode 100644 doc/user/project/img/labels_epic_sidebar.png create mode 100644 doc/user/project/img/project_security_dashboard.png create mode 100644 doc/user/project/img/protected_branches_select_roles_and_users.png create mode 100644 doc/user/project/img/protected_branches_select_roles_and_users_list.png create mode 100644 doc/user/project/img/service_desk_confirmation_email.png create mode 100644 doc/user/project/img/service_desk_disabled.png create mode 100644 doc/user/project/img/service_desk_enabled.png create mode 100644 doc/user/project/img/service_desk_issue_tracker.png create mode 100644 doc/user/project/img/service_desk_nav_item.png create mode 100644 doc/user/project/img/service_desk_reply.png create mode 100644 doc/user/project/img/service_desk_thread.png create mode 100644 doc/user/project/maven_packages.md create mode 100644 doc/user/project/security_dashboard.md create mode 100644 doc/user/project/service_desk.md (limited to 'doc/user') diff --git a/doc/user/project/canary_deployments.md b/doc/user/project/canary_deployments.md new file mode 100644 index 00000000000..cce862b0911 --- /dev/null +++ b/doc/user/project/canary_deployments.md @@ -0,0 +1,71 @@ +# Canary Deployments **[PREMIUM]** + +> [Introduced][ee-1659] in [GitLab Premium][eep] 9.1. + +A popular [Continuous Integration](https://en.wikipedia.org/wiki/Continuous_integration) +strategy, where a small portion of the fleet is updated to the new version of +your application. + +## Overview + +When embracing [Continuous Delivery][cd-blog], a company needs to decide what +type of deployment strategy to use. One of the most popular strategies is canary +deployments, where a small portion of the fleet is updated to the new version +first. This subset, the canaries, then serve as the proverbial +[canary in the coal mine](https://en.wiktionary.org/wiki/canary_in_a_coal_mine). + +If there is a problem with the new version of the application, only a small +percentage of users are affected and the change can either be fixed or quickly +reverted. + +Leveraging [Kubernetes' Canary deployments][kube-canary], visualize your canary +deployments right inside the [Deploy Board], without the need to leave GitLab. + +## Use cases + +Canary deployments can be used when you want to ship features to only a portion of +your pods fleet and watch their behavior as a percentage of your user base +visits the temporarily deployed feature. If all works well, you can deploy the +feature to production knowing that it won't cause any problems. + +Canary deployments are also especially useful for backend refactors, performance +improvements, or other changes where the user interface doesn't change, but you +want to make sure the performance stays the same, or improves. Developers need +to be careful when using canaries with user-facing changes, because by default, +requests from the same user will be randomly distributed between canary and +non-canary pods, which could result in confusion or even errors. If needed, you +may want to consider [setting `service.spec.sessionAffinity` to `ClientIP` in +your Kubernetes service definitions][kube-net], but that is beyond the scope of +this document. + +## Enabling Canary Deployments + +Canary deployments require that you properly configure Deploy Boards: + +1. Follow the steps to [enable Deploy Boards](deploy_boards.md#enabling-deploy-boards). +1. To track canary deployments you need to label your Kubernetes deployments and + pods with `track: canary`. To get started quickly, you can use the [Auto Deploy] + template for canary deployments that GitLab provides. + +Depending on the deploy, the label should be either `stable` or `canary`. +Usually, `stable` and blank or missing label means the same thing, and `canary` +or any other track means canary/temporary. +This allows GitLab to discover whether deployment is stable or canary (temporary). + +Once all of the above are set up and the pipeline has run at least once, +navigate to the environments page under **Pipelines > Environments**. +As the pipeline executes Deploy Boards will clearly mark canary pods, enabling +quick and easy insight into the status of each environment and deployment. + +Canary deployments are marked with a yellow dot in the Deploy Board so that you +can easily notice them. + +![Canary deployments on Deploy Board](img/deploy_boards_canary_deployments.png) + +[autodeploy]: ../../ci/autodeploy/index.md "GitLab Autodeploy" +[eep]: https://about.gitlab.com/pricing/ +[ee-1659]: https://gitlab.com/gitlab-org/gitlab-ee/issues/1659 +[kube-canary]: https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#canary-deployments +[deploy board]: deploy_boards.md +[cd-blog]: https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/ +[kube-net]: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies diff --git a/doc/user/project/ci_cd_for_external_repo.md b/doc/user/project/ci_cd_for_external_repo.md new file mode 100644 index 00000000000..51b86a68c7b --- /dev/null +++ b/doc/user/project/ci_cd_for_external_repo.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html). diff --git a/doc/user/project/code_owners.md b/doc/user/project/code_owners.md new file mode 100644 index 00000000000..a4937e6cf6b --- /dev/null +++ b/doc/user/project/code_owners.md @@ -0,0 +1,85 @@ +# Code Owners **[STARTER]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6916) +in [GitLab Starter](https://about.gitlab.com/pricing/) 11.3. + +You can use a `CODEOWNERS` file to specify users that are responsible +for certain files in a repository. + +You can choose and add the `CODEOWNERS` file in three places: + +- to the root directory of the repository +- inside the `.gitlab/` directory +- inside the `docs/` directory + +The `CODEOWNERS` file is scoped to a branch, which means that with the +introduction of new files, the person adding the new content can +specify themselves as a code owner, all before the new changes +get merged to the default branch. + +When a file matches multiple entries in the `CODEOWNERS` file, +the users from all entries are displayed on the blob page of +the given file. + +## The syntax of Code Owners files + +Files can be specified using the same kind of patterns you would use +in the `.gitignore` file followed by the `@username` or email of one +or more users that should be owners of the file. + +The order in which the paths are defined is significant: the last +pattern that matches a given path will be used to find the code +owners. + +Starting a line with a `#` indicates a comment. This needs to be +escaped using `\#` to address files for which the name starts with a +`#`. + +Example `CODEOWNERS` file: + +``` +# This is an example code owners file, lines starting with a `#` will +# be ignored. + +# app/ @commented-rule + +# We can specifiy a default match using wildcards: +* @default-codeowner + +# Rules defined later in the file take precedence over the rules +# defined before. +# This will match all files for which the file name ends in `.rb` +*.rb @ruby-owner + +# Files with a `#` can still be accesssed by escaping the pound sign +\#file_with_pound.rb @owner-file-with-pound + +# Multiple codeowners can be specified, separated by whitespace +CODEOWNERS @multiple @owners @tab-separated + +# Both usernames or email addresses can be used to match +# users. Everything else will be ignored. For example this will +# specify `@legal` and a user with email `janedoe@gitlab.com` as the +# owner for the LICENSE file +LICENSE @legal this_does_not_match janedoe@gitlab.com + +# Ending a path in a `/` will specify the code owners for every file +# nested in that directory, on any level +/docs/ @all-docs + +# Ending a path in `/*` will specify code owners for every file in +# that directory, but not nested deeper. This will match +# `docs/index.md` but not `docs/projects/index.md` +/docs/* @root-docs + +# This will make a `lib` directory nested anywhere in the repository +# match +lib/ @lib-owner + +# This will only match a `config` directory in the root of the +# repository +/config/ @config-owner + +# If the path contains spaces, these need to be escaped like this: +path\ with\ spaces/ @space-owner +``` diff --git a/doc/user/project/deploy_boards.md b/doc/user/project/deploy_boards.md new file mode 100644 index 00000000000..2f2a9c5eec3 --- /dev/null +++ b/doc/user/project/deploy_boards.md @@ -0,0 +1,132 @@ +# Deploy Boards **[PREMIUM]** + +> [Introduced][ee-1589] in [GitLab Premium][ee] 9.0. + +GitLab's Deploy Boards offer a consolidated view of the current health and +status of each CI [environment] running on [Kubernetes], displaying the status +of the pods in the deployment. Developers and other teammates can view the +progress and status of a rollout, pod by pod, in the workflow they already use +without any need to access Kubernetes. + +## Overview + +With Deploy Boards you can gain more insight into deploys with benefits such as: + +- Following a deploy from the start, not just when it's done +- Watching the rollout of a build across multiple servers +- Finer state detail (Waiting, Deploying, Finished, Unknown) +- See [Canary Deployments](canary_deployments.md) + +Here's an example of a Deploy Board of the production environment. + +![Deploy Boards landing page](img/deploy_boards_landing_page.png) + +The squares represent pods in your Kubernetes cluster that are associated with +the given environment. Hovering above each square you can see the state of a +deploy rolling out. The percentage is the percent of the pods that are updated +to the latest release. + +Since Deploy Boards are tightly coupled with Kubernetes, there is some required +knowledge. In particular you should be familiar with: + +- [Kubernetes pods](https://kubernetes.io/docs/user-guide/pods) +- [Kubernetes labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) +- [Kubernetes namespaces](https://kubernetes.io/docs/user-guide/namespaces/) +- [Kubernetes canary deployments](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#canary-deployments) + +## Use cases + +Since the Deploy Board is a visual representation of the Kubernetes pods for a +specific environment, there are lot of uses cases. To name a few: + +- You want to promote what's running in staging, to production. You go to the + environments list, verify that what's running in staging is what you think is + running, then click on the [manual action](../../ci/yaml/README.md#whenmanual) to deploy to production. +- You trigger a deploy, and you've got lots of containers to upgrade so you know + it'll take a while (you've also throttled your deploy to only take down X + containers at a time). But you need to tell someone when it's deployed, so you + go to the environments list, look at the production environment to see what + the progress is in real-time as each pod is rolled. +- You get a report that something is weird in production, so you look at the + production environment to see what is running, and if a deploy is ongoing or + stuck or failed. +- You've got an MR that looks good, but you want to run it on staging because + staging is set up in some way closer to production. You go to the environment + list, find the [Review App][review apps] you're interested in, and click the + manual action to deploy it to staging. + +## Enabling Deploy Boards + +To display the Deploy Boards for a specific [environment] you should: + +1. Have a Kubernetes cluster up and running. + + NOTE: **Running on OpenShift:** + If you are using OpenShift, ensure that you're using the `Deployment` resource + instead of `DeploymentConfiguration`, otherwise the Deploy Boards won't render + correctly. For more information, read the + [OpenShift docs](https://docs.openshift.com/container-platform/3.7/dev_guide/deployments/kubernetes_deployments.html#kubernetes-deployments-vs-deployment-configurations) + and [GitLab issue #4584](https://gitlab.com/gitlab-org/gitlab-ee/issues/4584). + +1. [Configure GitLab Runner][runners] with the [Docker][docker-exec] or + [Kubernetes][kube-exec] executor. +1. Configure the [Kubernetes service][kube-service] in your project for the + cluster. The Kubernetes namespace is of particular note as you will need it + for your deployment scripts (exposed by the `KUBE_NAMESPACE` env variable). +1. Ensure Kubernetes annotations of `app.gitlab.com/env: $CI_ENVIRONMENT_SLUG` + and `app.gitlab.com/app: $CI_PROJECT_PATH_SLUG` are applied to the + deployments, replica sets, and pods, where `$CI_ENVIRONMENT_SLUG` and + `$CI_PROJECT_PATH_SLUG` are the values of the CI variables. This is so we can + lookup the proper environment in a cluster/namespace which may have more + than one. These resources should be contained in the namespace defined in + the Kubernetes service setting. You can use an [Autodeploy] `.gitlab-ci.yml` + template which has predefined stages and commands to use, and automatically + applies the annotations. Each project will need to have a unique namespace in + Kubernetes as well. The image below demonstrates how this is shown inside + Kubernetes. + + NOTE: **Note:** + The Kubernetes label of `app` is deprecated and may be removed in next major + release, GitLab 12.0. + + ![Deploy Boards Kubernetes Label](img/deploy_boards_kubernetes_label.png) + +Once all of the above are set up and the pipeline has run at least once, +navigate to the environments page under **Operations > Environments**. + +Deploy Boards are visible by default. You can explicitly click +the triangle next to their respective environment name in order to hide them. +GitLab will then query Kubernetes for the state of each pod (e.g., waiting, +deploying, finished, unknown), and the Deploy Board status will finally appear. + +GitLab will only display a Deploy Board for top-level environments. Foldered +environments like `review/*` (usually used for [Review Apps]) won't have a +Deploy Board attached to them. + +## Canary Deployments + +A popular CI strategy, where a small portion of the fleet is updated to the new +version of your application. + +[Read more about Canary Deployments.](canary_deployments.md) + +## Further reading + +- [GitLab Autodeploy][autodeploy] +- [GitLab CI environment variables][variables] +- [Environments and deployments][environment] +- [Kubernetes deploy example][kube-deploy] + +[ee-1589]: https://gitlab.com/gitlab-org/gitlab-ee/issues/1589 "Deploy Boards initial issue" +[ee]: https://about.gitlab.com/pricing/ "GitLab Enterprise Edition landing page" +[kube-deploy]: https://gitlab.com/gitlab-examples/kubernetes-deploy "Kubernetes deploy example project" +[kubernetes]: https://kubernetes.io "Kubernetes website" +[environment]: ../../ci/environments.md "Environments and deployments documentation" +[docker-exec]: https://docs.gitlab.com/runner/executors/docker.html "GitLab Runner Docker executor" +[kube-exec]: https://docs.gitlab.com/runner/executors/kubernetes.html "GitLab Runner Kubernetes executor" +[kube-service]: integrations/kubernetes.md "Kubernetes project service" +[review apps]: ../../ci/review_apps/index.md "Review Apps documentation" +[variables]: ../../ci/variables/README.md "GitLab CI variables" +[autodeploy]: ../../ci/autodeploy/index.md "GitLab Autodeploy" +[kube-image]: https://gitlab.com/gitlab-examples/kubernetes-deploy/container_registry "Kubernetes deploy Container Registry" +[runners]: ../../ci/runners/README.md diff --git a/doc/user/project/description_templates.md b/doc/user/project/description_templates.md index 08647caaf07..e230444fa67 100644 --- a/doc/user/project/description_templates.md +++ b/doc/user/project/description_templates.md @@ -2,8 +2,12 @@ >[Introduced][ce-4981] in GitLab 8.11. +We all know that a properly submitted issue is more likely to be addressed in +a timely manner by the developers of a project. + Description templates allow you to define context-specific templates for issue -and merge request description fields for your project. +and merge request description fields for your project, as well as help filter +out a lot of unnecessary noise from issues. ## Overview @@ -18,6 +22,18 @@ Description templates must be written in [Markdown](../markdown.md) and stored in your project's repository under a directory named `.gitlab`. Only the templates of the default branch will be taken into account. +## Use-cases + +- Add a template to be used in every issue for a specific project, +giving instructions and guidelines, requiring for information specific to that subject. +For example, if you have a project for tracking new blog posts, you can require the +title, outlines, author name, author social media information, etc. +- Following the previous example, you can make a template for every MR submitted +with a new blog post, requiring information about the post date, frontmatter data, +images guidelines, link to the related issue, reviewer name, etc. +- You can also create issues and merge request templates for different +stages of your workflow, e.g., feature proposal, feature improvement, bug report, etc. + ## Creating issue templates Create a new Markdown (`.md`) file inside the `.gitlab/issue_templates/` @@ -39,6 +55,32 @@ changes you made after picking the template and return it to its initial status. ![Description templates](img/description_templates.png) +## Setting a default template for issues and merge requests **[STARTER]** + +> **Notes:** +> - This feature was introduced before [description templates](#overview) and is +> available in [GitLab Starter][products]. It can be enabled +> in the project's settings. +> - Templates for issues were [introduced][ee-28] in GitLab EE 8.1. +> - Templates for merge requests were [introduced][ee-7478ece] in GitLab EE 6.9. + +The visibility of issues and/or merge requests should be set to either "Everyone +with access" or "Only team members" in your project's **Settings** otherwise the +template text areas won't show. This is the default behavior so in most cases +you should be fine. + +Go to your project's **Settings** and fill in the "Default description template +for issues" and "Default description template for merge requests" text areas +for issues and merge requests respectively. Since GitLab issues and merge +request support [Markdown](../markdown.md), you can use special markup like +headings, lists, etc. + +![Default description templates](img/description_templates_default_settings.png) + +After you add the description, hit **Save changes** for the settings to take +effect. Now, every time a new issue or merge request is created, it will be +pre-filled with the text you entered in the template(s). + ## Description template example We make use of Description Templates for Issues and Merge Requests within the GitLab Community Edition project. Please refer to the [`.gitlab` folder][gitlab-ce-templates] for some examples. @@ -93,3 +135,6 @@ Possible fixes [ce-4981]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4981 [gitlab-ce-templates]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/.gitlab +[ee-28]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/28 "Merge Request for adding issues template" +[ee-7478ece]: https://gitlab.com/gitlab-org/gitlab-ee/commit/7478ece8b48e80782b5465b96c79f85cc91d391b "Commit that introduced merge requests templates" +[products]: https://about.gitlab.com/pricing/ diff --git a/doc/user/project/file_lock.md b/doc/user/project/file_lock.md new file mode 100644 index 00000000000..541023692ea --- /dev/null +++ b/doc/user/project/file_lock.md @@ -0,0 +1,107 @@ +# File Locking **[PREMIUM]** + +> **Notes:** +> - [Introduced][ee-440] in [GitLab Premium][ee] 8.9. +> - This feature needs to have a license with the "File Lock" option enabled. If +> you are using Premium but you don't see the "Lock" button, +> ask your GitLab administrator. + +File Locking helps you avoid merge conflicts and better manage your binary files. +Lock any file or directory, make your changes, and then unlock it so another +member of the team can edit it. + +## Overview + +Working with multiple people on the same file can be a risk. Conflicts +when merging a non-text file are hard to overcome and will require a lot +of manual work to resolve. With GitLab Premium, File +Locking helps you avoid merge conflicts and better manage your binary +files by preventing everyone, except you, from modifying a specific file +or entire directory. + +## Use-cases + +The file locking feature is useful in situations when: + +- Multiple people are working on the same file and you want to avoid merge + conflicts. +- Your repository contains binary files in which situation there is no easy + way to tell the diff between yours and your colleagues' changes. +- Prevent design assets from being overwritten. + +Locked directories are locked recursively, which means that everything that +lies under them is also locked. + +## Permissions on file locking + +The user that locks a file or directory **is the only one** that can edit and +push their changes back to the repository where the locked objects are located. + +Locks can be created by any person who has [push access] to the repository; i.e., +Developer and higher level, and can be removed solely by their author and any +user with Maintainer permissions and above. + +If a file is locked and you are not the author of its locked state, a +pre-receive hook will reject your changes when you try to push. In the +following example, a user who has no permissions on the locked `.gitignore` +file will see the message below: + +```bash +Counting objects: 3, done. +Delta compression using up to 4 threads. +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 320 bytes | 0 bytes/s, done. +Total 3 (delta 1), reused 0 (delta 0) +remote: GitLab: The path '.gitignore' is locked by Administrator +To https://example.com/gitlab-org/gitlab-ce.git + ! [remote rejected] master -> master (pre-receive hook declined) + error: failed to push some refs to 'https://example.com/gitlab-org/gitlab-ce.git' +``` + +Similarly, when a user that is not the author of the locked state of a file +accepts a merge request, an error message will appear stating that the file +is locked. + +![Merge request error message](img/file_lock_merge_request_error_message.png) + +## Locking a file or a directory + +>**Note:** +Locking only works for the default branch you have set in the project's settings +(usually `master`). + +To lock a file, navigate to the repository tree under the **Repository > Files** tab, +pick the file you want to lock and hit the "Lock" button. + +![Locking file](img/file_lock.png) + +--- + +To lock an entire directory, look for the "Lock" link next to "History". + +![Locking directory](img/file_lock_folders.png) + +--- + +After you lock a file or directory, it will appear as locked in the repository +view. + +![Repository view](img/file_lock_repository_view.png) + +## Unlocking a file or a directory + +To unlock a file or a directory, follow the same procedure as when you locked +them. For a detailed view of every existing lock, see the next section on +"Viewing and managing existing locks". + +## Viewing and managing existing locks + +To view or manage every existing lock, navigate to the +**Project > Repository > Locked Files** area. There, you can view all existing +locks and [remove the ones you have permission for](#permissions-on-file-locking). + +![Locked Files](img/file_lock_list.png) + +[ee-440]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/440 "File Lock" +[ee]: https://about.gitlab.com/pricing/ +[push access]: ../../user/permissions.md diff --git a/doc/user/project/img/assignee_lists.png b/doc/user/project/img/assignee_lists.png new file mode 100644 index 00000000000..f2660cd8f80 Binary files /dev/null and b/doc/user/project/img/assignee_lists.png differ diff --git a/doc/user/project/img/deploy_boards_canary_deployments.png b/doc/user/project/img/deploy_boards_canary_deployments.png new file mode 100644 index 00000000000..037b4a908ab Binary files /dev/null and b/doc/user/project/img/deploy_boards_canary_deployments.png differ diff --git a/doc/user/project/img/deploy_boards_kubernetes_label.png b/doc/user/project/img/deploy_boards_kubernetes_label.png new file mode 100644 index 00000000000..19785c74d07 Binary files /dev/null and b/doc/user/project/img/deploy_boards_kubernetes_label.png differ diff --git a/doc/user/project/img/deploy_boards_landing_page.png b/doc/user/project/img/deploy_boards_landing_page.png new file mode 100644 index 00000000000..c9621a06860 Binary files /dev/null and b/doc/user/project/img/deploy_boards_landing_page.png differ diff --git a/doc/user/project/img/description_templates_default_settings.png b/doc/user/project/img/description_templates_default_settings.png new file mode 100644 index 00000000000..ab314e83d06 Binary files /dev/null and b/doc/user/project/img/description_templates_default_settings.png differ diff --git a/doc/user/project/img/file_lock.png b/doc/user/project/img/file_lock.png new file mode 100644 index 00000000000..33f96f20e91 Binary files /dev/null and b/doc/user/project/img/file_lock.png differ diff --git a/doc/user/project/img/file_lock_folders.png b/doc/user/project/img/file_lock_folders.png new file mode 100644 index 00000000000..5ff3d4d9dbd Binary files /dev/null and b/doc/user/project/img/file_lock_folders.png differ diff --git a/doc/user/project/img/file_lock_list.png b/doc/user/project/img/file_lock_list.png new file mode 100644 index 00000000000..2c276335c83 Binary files /dev/null and b/doc/user/project/img/file_lock_list.png differ diff --git a/doc/user/project/img/file_lock_merge_request_error_message.png b/doc/user/project/img/file_lock_merge_request_error_message.png new file mode 100644 index 00000000000..65bc3692da0 Binary files /dev/null and b/doc/user/project/img/file_lock_merge_request_error_message.png differ diff --git a/doc/user/project/img/file_lock_repository_view.png b/doc/user/project/img/file_lock_repository_view.png new file mode 100644 index 00000000000..8f4ef52aacd Binary files /dev/null and b/doc/user/project/img/file_lock_repository_view.png differ diff --git a/doc/user/project/img/key_value_labels.png b/doc/user/project/img/key_value_labels.png new file mode 100644 index 00000000000..bec901f127f Binary files /dev/null and b/doc/user/project/img/key_value_labels.png differ diff --git a/doc/user/project/img/labels_epic_sidebar.png b/doc/user/project/img/labels_epic_sidebar.png new file mode 100644 index 00000000000..f8162d89e9d Binary files /dev/null and b/doc/user/project/img/labels_epic_sidebar.png differ diff --git a/doc/user/project/img/project_security_dashboard.png b/doc/user/project/img/project_security_dashboard.png new file mode 100644 index 00000000000..3294e59e943 Binary files /dev/null and b/doc/user/project/img/project_security_dashboard.png differ diff --git a/doc/user/project/img/protected_branches_select_roles_and_users.png b/doc/user/project/img/protected_branches_select_roles_and_users.png new file mode 100644 index 00000000000..4f62b057cc7 Binary files /dev/null and b/doc/user/project/img/protected_branches_select_roles_and_users.png differ diff --git a/doc/user/project/img/protected_branches_select_roles_and_users_list.png b/doc/user/project/img/protected_branches_select_roles_and_users_list.png new file mode 100644 index 00000000000..519f2267496 Binary files /dev/null and b/doc/user/project/img/protected_branches_select_roles_and_users_list.png differ diff --git a/doc/user/project/img/service_desk_confirmation_email.png b/doc/user/project/img/service_desk_confirmation_email.png new file mode 100644 index 00000000000..e08dced1e38 Binary files /dev/null and b/doc/user/project/img/service_desk_confirmation_email.png differ diff --git a/doc/user/project/img/service_desk_disabled.png b/doc/user/project/img/service_desk_disabled.png new file mode 100644 index 00000000000..3ae64dcbe96 Binary files /dev/null and b/doc/user/project/img/service_desk_disabled.png differ diff --git a/doc/user/project/img/service_desk_enabled.png b/doc/user/project/img/service_desk_enabled.png new file mode 100644 index 00000000000..329348e4b52 Binary files /dev/null and b/doc/user/project/img/service_desk_enabled.png differ diff --git a/doc/user/project/img/service_desk_issue_tracker.png b/doc/user/project/img/service_desk_issue_tracker.png new file mode 100644 index 00000000000..485751fab0a Binary files /dev/null and b/doc/user/project/img/service_desk_issue_tracker.png differ diff --git a/doc/user/project/img/service_desk_nav_item.png b/doc/user/project/img/service_desk_nav_item.png new file mode 100644 index 00000000000..3420e355f67 Binary files /dev/null and b/doc/user/project/img/service_desk_nav_item.png differ diff --git a/doc/user/project/img/service_desk_reply.png b/doc/user/project/img/service_desk_reply.png new file mode 100644 index 00000000000..ae6ce31713b Binary files /dev/null and b/doc/user/project/img/service_desk_reply.png differ diff --git a/doc/user/project/img/service_desk_thread.png b/doc/user/project/img/service_desk_thread.png new file mode 100644 index 00000000000..8d8ac39cc5b Binary files /dev/null and b/doc/user/project/img/service_desk_thread.png differ diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 64139f9dbe9..6b3b40bf9f8 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -13,7 +13,7 @@ the number of private projects you create. When you create a project in GitLab, you'll have access to a large number of [features](https://about.gitlab.com/features/): -**Issues and merge requests:** +**Repositories:** - [Issue tracker](issues/index.md): Discuss implementations with your team within issues - [Issue Boards](issue_board.md): Organize and prioritize your workflow @@ -28,6 +28,13 @@ When you create a project in GitLab, you'll have access to a large number of permission to create tags, and prevent accidental update or deletion - [Signing commits](gpg_signed_commits/index.md): use GPG to sign your commits - [Deploy tokens](deploy_tokens/index.md): Manage project-based deploy tokens that allow permanent access to the repository and Container Registry. +- [Web IDE](web_ide/index.md) + +**Issues and merge requests:** + +- [Issue tracker](issues/index.md): Discuss implementations with your team within issues + - [Issue Boards](issue_board.md): Organize and prioritize your workflow + - [Multiple Issue Boards](issue_board.md#multiple-issue-boards-starter): Allow your teams to create their own workflows (Issue Boards) for the same project **[STARTER]** - [Merge Requests](merge_requests/index.md): Apply your branching strategy and get reviewed by your team - [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html): Ask for approval before @@ -67,6 +74,8 @@ When you create a project in GitLab, you'll have access to a large number of timeout (defines the maximum amount of time in minutes that a job is able run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline's visibility, and much more - [Kubernetes cluster integration](clusters/index.md): Connecting your GitLab project with a Kubernetes cluster + - [Feature Flags](https://docs.gitlab.com/ee/user/project/operations/feature_flags.html): Feature flags allow you to ship a project in + different flavors by dynamically toggling certain functionality **[PREMIUM]** - [GitLab Pages](pages/index.md): Build, test, and deploy your static website with GitLab Pages @@ -75,12 +84,17 @@ When you create a project in GitLab, you'll have access to a large number of - [Wiki](wiki/index.md): document your GitLab project in an integrated Wiki. - [Snippets](../snippets.md): store, share and collaborate on code snippets. - [Cycle Analytics](cycle_analytics.md): review your development lifecycle. +- [Security Dashboard](security_dashboard.md): Security Dashboard. **[ULTIMATE]** - [Syntax highlighting](highlighting.md): an alternative to customize your code blocks, overriding GitLab's default choice of language. - [Badges](badges.md): badges for the project overview. - [Releases](releases/index.md): a way to track deliverables in your project as snapshot in time of the source, build output, and other metadata or artifacts associated with a released version of your code. +- [Maven packages](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html): your private Maven repository in GitLab. **[PREMIUM]** +- [NPM packages](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html): your private NPM package registry in GitLab. **[PREMIUM]** +- [Code owners](code_owners.md): specify code owners for certain files **[STARTER]** +- [License Management](https://docs.gitlab.com/ee/user/application_security/license_management/index.html): approve and blacklist licenses for projects. **[ULTIMATE]** ### Project integrations @@ -116,6 +130,13 @@ Read through the documentation on [project settings](settings/index.md). - [Export a project from GitLab](settings/import_export.md#exporting-a-project-and-its-data) - [Importing and exporting projects between GitLab instances](settings/import_export.md) +## CI/CD for external repositories **[PREMIUM]** + +Instead of importing a repository directly to GitLab, you can connect your repository +as a CI/CD project. + +Read through the documentation on [CI/CD for external repositories](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html). + ## Project members Learn how to [add members to your projects](members/index.md). diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index 73d61bedde1..bfc3e3a7de0 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -8,9 +8,48 @@ Labels allow you to categorize issues or merge requests using descriptive titles In GitLab, you can create project and group labels: -- **Project labels** can be assigned to issues or merge requests in that project only. +- **Project labels** can be assigned to issues or merge requests in that project only. - **Group labels** can be assigned to any issue or merge request of any project in that group or any subgroups of the group. +## Scoped labels **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9175) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. + +Scoped labels allow teams to use the simple and familiar feature of labels to +annotate their issues, merge requests, and epics to achieve custom fields and +custom workflow states by leveraging a special label title syntax. + +A scoped label is a kind of label defined only by a special double-colon syntax +in the label’s title, using the format `key::value`. For example: + +![A sample scoped label](img/key_value_labels.png) + +Two scoped labels with the same key but a different value cannot simultaneeously +apply to an issue, epic, or merge request. For example, if an issue already has `priority::3` +and you apply `priority::2` to it, `priority::3` is automatically removed from the issue. + +An issue, epic, or merge request cannot have two scoped labels with the same key. +For example, if an issue is already labeled `priority::3` and you apply the label `priority::2` to it, +`priority::3` is automatically removed. + +### Workflows with scoped labels **[PREMIUM]** + +Suppose you wanted a custom field in issues to track the platform operating system +that your features target, where each issue should only target one platform. You +would then create labels `platform::iOS`, `platform::Android`, `platform::Linux`, +etc., as necessary. Applying any one of these labels on a given issue would +automatically remove any other existing label that starts with `platform::`. + +The same pattern could be applied to represent the workflow states of your teams. +Suppose you have the labels `workflow::development`, `workflow::review`, and +`workflow::deployed`. If an issue already has the label `workflow::development` +applied, and a developer wanted to advance the issue to `workflow::review`, they +would simply apply that label, and the `workflow::development` label would +automatically be removed. This behavior already exists when you move issues +across label lists in an [issue board](issue_board.md#creating-workflows), but +now, team members who may not be working in an issue board directly would still +be able to advance workflow states consistently in issues themselves. + ## Creating labels >**Note:** @@ -35,6 +74,9 @@ GitLab will add the following default labels to the project: To create a **group label**, follow similar steps from above to project labels. Navigate to **Issues > Labels** in the group and create it from there. This page only shows group labels in this group. +Alternatively, you can create group labels also from Epic sidebar. Please note that the created label will belong to the immediate group to which epic belongs. + +![Create Labels from Epic](img/labels_epic_sidebar.png) Group labels appear in every label list page of the group's child projects. @@ -81,7 +123,7 @@ top-right: GitLab will consider the label title and description for the search. -## Filtering issues and merge requests by label +## Filtering issues, merge requests and epics by label ### Filtering in list pages @@ -89,11 +131,16 @@ From the project issue list page and the project merge request list page, you ca From the group issue list page and the group merge request list page, you can [filter](../search/index.md#issues-and-merge-requests) by both group labels (including subgroup ancestors and subgroup descendants) and project labels. +From the group epic list page, you can [filter](../search/index.md#issues-and-merge-requests) by both current group labels as well as decendent group labels. + ![Labels group issues](img/labels_group_issues.png) ### Filtering in issue boards - From [project boards](issue_board.md), you can filter by both group labels and project labels in the [search and filter bar](../search/index.md#issue-boards). +- From [group issue boards](issue_board.md#group-issue-boards-premium), you can filter by only group labels in the [search and filter bar](../search/index.md#issue-boards). **[PREMIUM]** +- From [project boards](issue_board.md), you can filter by both group labels and project labels in the [issue board configuration](issue_board.md#configurable-issue-boards-starter). **[STARTER]** +- From [group issue boards](issue_board.md#group-issue-boards-premium), you can filter by only group labels in the [issue board configuration](issue_board.md#configurable-issue-boards-starter). **[STARTER]** ## Subscribing to labels diff --git a/doc/user/project/maven_packages.md b/doc/user/project/maven_packages.md new file mode 100644 index 00000000000..d32d6084b38 --- /dev/null +++ b/doc/user/project/maven_packages.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/project/packages/maven_repository.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html). diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md index 2060b5dd4a2..56e8f1731ae 100644 --- a/doc/user/project/protected_branches.md +++ b/doc/user/project/protected_branches.md @@ -15,12 +15,10 @@ By default, a protected branch does four simple things: - it prevents **anyone** from force pushing to the branch - it prevents **anyone** from deleting the branch -See the [Changelog](#changelog) section for changes over time. +>**Note**: +A GitLab admin is allowed to push to the protected branches. -> ->Additional functionality for GitLab Enterprise Edition: -> ->- Restrict push and merge access to [certain users][ee-restrict] +See the [Changelog](#changelog) section for changes over time. ## Configuring protected branches @@ -68,6 +66,21 @@ dropdown list in the "Already protected" area. If you don't choose any of those options while creating a protected branch, they are set to "Maintainers" by default. +## Restricting push and merge access to certain users **[STARTER]** + +> This feature was [introduced][ce-5081] in [GitLab Starter][ee] 8.11. + +With GitLab Enterprise Edition you can restrict access to protected branches +by choosing a role (Maintainers, Developers) as well as certain users. From the +dropdown menu select the role and/or the users you want to have merge or push +access. + +![Select roles and users](img/protected_branches_select_roles_and_users.png) + +Click **Protect** and the branch will appear in the "Protected branch" list. + +![Roles and users list](img/protected_branches_select_roles_and_users_list.png) + ## Wildcard protected branches > [Introduced][ce-4665] in GitLab 8.10. @@ -169,3 +182,4 @@ for details about the pipelines security model. [ce-21393]: https://gitlab.com/gitlab-org/gitlab-ce/issues/21393 [ee-restrict]: http://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users [perm]: ../permissions.md +[ee]: https://about.gitlab.com/pricing/ diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md index 2040e2ee004..15eb862b431 100644 --- a/doc/user/project/quick_actions.md +++ b/doc/user/project/quick_actions.md @@ -46,13 +46,15 @@ discussions, and descriptions: | `/remove_due_date` | Remove due date | ✓ | | | `/weight 0,1,2, ...` | Set weight **[STARTER]** | ✓ | | | `/clear_weight` | Clears weight **[STARTER]** | ✓ | | -| `/epic ` | Add to epic **[ULTIMATE]** | ✓ | | +| `/epic <&epic | group&epic | Epic URL>` | Add to epic **[ULTIMATE]** | ✓ | | | `/remove_epic` | Removes from epic **[ULTIMATE]** | ✓ | | +| `/promote` | Promote issue to epic **[ULTIMATE]** | ✓ | | | `/confidential` | Make confidential | ✓ | | | `/duplicate #issue` | Mark this issue as a duplicate of another issue | ✓ | | `/move path/to/project` | Move this issue to another project | ✓ | | | `/target_branch ` | Set target branch | | ✓ | | `/wip` | Toggle the Work In Progress status | | ✓ | +| `/approve` | Approve the merge request | | ✓ | | `/merge` | Merge (when pipeline succeeds) | | ✓ | | `/create_merge_request ` | Create a new merge request starting from the current issue | ✓ | | diff --git a/doc/user/project/security_dashboard.md b/doc/user/project/security_dashboard.md new file mode 100644 index 00000000000..43e910b29fe --- /dev/null +++ b/doc/user/project/security_dashboard.md @@ -0,0 +1,5 @@ +--- +redirect_to: 'https://docs.gitlab.com/ee/user/application_security/security_dashboard/index.html' +--- + +This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/security_dashboard/index.html). diff --git a/doc/user/project/service_desk.md b/doc/user/project/service_desk.md new file mode 100644 index 00000000000..1a582164d03 --- /dev/null +++ b/doc/user/project/service_desk.md @@ -0,0 +1,124 @@ +# Service Desk **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/149) in [GitLab Premium 9.1](https://about.gitlab.com/2017/04/22/gitlab-9-1-released/#service-desk-eep). + +## Overview + +Service Desk is a module that allows your team to connect directly +with any external party through email right inside of GitLab; no external tools required. +An ongoing conversation right where your software is built ensures that user feedback ends +up directly where it's needed, helping you build the right features to solve your users' +real problems. + +With Service Desk, you can provide efficient email support to your customers, who can now +email you bug reports, feature requests, or general feedback that will all end up in your +GitLab project as new issues. In turn, your team can respond straight from the project. + +As Service Desk is built right into GitLab itself, the complexity and inefficiencies +of multiple tools and external integrations are eliminated, significantly shortening +the cycle time from feedback to software update. + +For an overview, check the video demonstration on [GitLab Service Desk](https://about.gitlab.com/2017/05/09/demo-service-desk/). + +## Use cases + +For instance, let's assume you develop a game for iOS or Android. +The codebase is hosted in your GitLab instance, built and deployed +with GitLab CI. + +Here's how Service Desk will work for you: + +1. You'll provide a project-specific email address to your paying customers, who can email you directly from within the app +1. Each email they send creates an issue in the appropriate project +1. Your team members navigate to the Service Desk issue tracker, where they can see new support requests and respond inside associated issues +1. Your team communicates back and forth with the customer to understand the request +1. Your team starts working on implementing code to solve your customer's problem +1. When your team finishes the implementation, whereupon the merge request is merged and the issue is closed automatically +1. The customer will have been attended successfully via email, without having real access to your GitLab instance +1. Your team saved time by not having to leave GitLab (or setup any integrations) to follow up with your customer + +## How it works + +GitLab Service Desk is a simple way to allow people to create issues in your +GitLab instance without needing their own user account. + +It provides a unique email address for end users to create issues in a project, +and replies can be sent either through the GitLab interface or by email. End +users will only see the thread through email. + +## Configuring Service Desk + +> **Note:** +Service Desk is enabled on GitLab.com. If you're a +[Silver subscriber](https://about.gitlab.com/gitlab-com/), +you can skip the step 1 below; you only need to enable it per project. + +1. [Set up incoming email](../../administration/incoming_email.md#set-it-up) for the GitLab instance. This must + support [email sub-addressing](../../administration/incoming_email.md#email-sub-addressing). +2. Navigate to your project's **Settings** and scroll down to the **Service Desk** + section. +3. If you have the correct access and an Premium license, + you will see an option to set up Service Desk: + + ![Activate Service Desk option](img/service_desk_disabled.png) + +4. Checking that box will enable Service Desk for the project, and show a + unique email address to email issues to the project. These issues will be + [confidential](issues/confidential_issues.md), so they will only be visible to project members. + + **Warning**: this email address can be used by anyone to create an issue on + this project, whether or not they have access to your GitLab instance. + We recommend **putting this behind an alias** so that it can be changed if + needed, and **[enabling Akismet](../../integration/akismet.md)** on your GitLab instance to add spam + checking to this service. Unblocked email spam would result in many spam + issues being created, and may disrupt your GitLab service. + + ![Service Desk enabled](img/service_desk_enabled.png) + + _In GitLab 11.7, we updated the format of the generated email address. + However the older format is still supported, allowing existing aliases + or contacts to continue working._ + + +5. Service Desk is now enabled for this project! You should be able to access it from your project's navigation **Issue submenu**: + + ![Service Desk Navigation Item](img/service_desk_nav_item.png) + +## Using Service Desk + +### As an end user (issue creator) + +To create a Service Desk issue, an end user doesn't need to know anything about +the GitLab instance. They just send an email to the address they are given, and +receive an email back confirming receipt: + +![Service Desk enabled](img/service_desk_confirmation_email.png) + +This also gives the end user an option to unsubscribe. + +If they don't choose to unsubscribe, then any new comments added to the issue +will be sent as emails: + +![Service Desk reply email](img/service_desk_reply.png) + +And any responses they send will be displayed in the issue itself. + +### As a responder to the issue + +For responders to the issue, everything works as usual. They'll see a familiar looking +issue tracker, where they can see issues created via customer support requests and +filter and interact with them just like other GitLab issues. + +![Service Desk Issue tracker](img/service_desk_issue_tracker.png) + +Messages from the end user will show as coming from the special Support Bot user, but apart from that, +you can read and write comments as you normally do: + +![Service Desk issue thread](img/service_desk_thread.png) + +> Note that the project's visibility (private, internal, public) does not affect Service Desk. + +### Support Bot user + +Behind the scenes, Service Desk works by the special Support Bot user creating issues. This user +does not count toward the license limit count. -- cgit v1.2.3 From 3c00603198609093dbde61fae82c32d40fb8e60b Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Sun, 5 May 2019 16:12:56 +0000 Subject: Docs: Merge EE doc/user/application_security to CE --- .../container_scanning/img/container_scanning.png | Bin 0 -> 32549 bytes .../container_scanning/index.md | 202 ++++++++++++++++ .../application_security/dast/img/dast_all.png | Bin 0 -> 25844 bytes .../application_security/dast/img/dast_single.png | Bin 0 -> 69353 bytes doc/user/application_security/dast/index.md | 262 ++++++++++++++++++++ .../img/dependency_scanning.png | Bin 0 -> 16167 bytes .../dependency_scanning/index.md | 224 +++++++++++++++++ .../img/create_issue_with_list_hover.png | Bin 0 -> 106954 bytes .../img/interactive_reports.png | Bin 0 -> 23190 bytes doc/user/application_security/img/issue.png | Bin 0 -> 4780 bytes .../img/vulnerability_solution.png | Bin 0 -> 3421 bytes doc/user/application_security/index.md | 104 ++++++++ .../license_management/img/license_management.png | Bin 0 -> 5184 bytes .../img/license_management_decision.png | Bin 0 -> 5981 bytes .../img/license_management_pipeline_tab.png | Bin 0 -> 12115 bytes .../img/license_management_settings.png | Bin 0 -> 13300 bytes .../license_management/index.md | 264 +++++++++++++++++++++ doc/user/application_security/sast/img/sast.png | Bin 0 -> 24876 bytes .../sast/img/security_report.png | Bin 0 -> 38475 bytes doc/user/application_security/sast/index.md | 252 ++++++++++++++++++++ .../security_dashboard/img/dashboard.png | Bin 0 -> 66467 bytes .../img/project_security_dashboard.png | Bin 0 -> 49062 bytes .../security_dashboard/index.md | 103 ++++++++ 23 files changed, 1411 insertions(+) create mode 100644 doc/user/application_security/container_scanning/img/container_scanning.png create mode 100644 doc/user/application_security/container_scanning/index.md create mode 100644 doc/user/application_security/dast/img/dast_all.png create mode 100644 doc/user/application_security/dast/img/dast_single.png create mode 100644 doc/user/application_security/dast/index.md create mode 100644 doc/user/application_security/dependency_scanning/img/dependency_scanning.png create mode 100644 doc/user/application_security/dependency_scanning/index.md create mode 100644 doc/user/application_security/img/create_issue_with_list_hover.png create mode 100644 doc/user/application_security/img/interactive_reports.png create mode 100644 doc/user/application_security/img/issue.png create mode 100644 doc/user/application_security/img/vulnerability_solution.png create mode 100644 doc/user/application_security/index.md create mode 100644 doc/user/application_security/license_management/img/license_management.png create mode 100644 doc/user/application_security/license_management/img/license_management_decision.png create mode 100644 doc/user/application_security/license_management/img/license_management_pipeline_tab.png create mode 100644 doc/user/application_security/license_management/img/license_management_settings.png create mode 100644 doc/user/application_security/license_management/index.md create mode 100644 doc/user/application_security/sast/img/sast.png create mode 100644 doc/user/application_security/sast/img/security_report.png create mode 100644 doc/user/application_security/sast/index.md create mode 100644 doc/user/application_security/security_dashboard/img/dashboard.png create mode 100644 doc/user/application_security/security_dashboard/img/project_security_dashboard.png create mode 100644 doc/user/application_security/security_dashboard/index.md (limited to 'doc/user') diff --git a/doc/user/application_security/container_scanning/img/container_scanning.png b/doc/user/application_security/container_scanning/img/container_scanning.png new file mode 100644 index 00000000000..e47f62acd9d Binary files /dev/null and b/doc/user/application_security/container_scanning/img/container_scanning.png differ diff --git a/doc/user/application_security/container_scanning/index.md b/doc/user/application_security/container_scanning/index.md new file mode 100644 index 00000000000..ce86ade3c1a --- /dev/null +++ b/doc/user/application_security/container_scanning/index.md @@ -0,0 +1,202 @@ +# Container Scanning **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3672) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4. + +## Overview + +If you are using [GitLab CI/CD](../../../ci/README.md), you can check your Docker +images (or more precisely the containers) for known vulnerabilities by using +[Clair](https://github.com/coreos/clair) and [clair-scanner](https://github.com/arminc/clair-scanner), +two open source tools for Vulnerability Static Analysis for containers. + +You can take advantage of Container Scanning by either [including the CI job](#including-the-provided-template) in +your existing `.gitlab-ci.yml` file or by implicitly using +[Auto Container Scanning](../../../topics/autodevops/index.md#auto-container-scanning) +that is provided by [Auto DevOps](../../../topics/autodevops/index.md). + +GitLab checks the Container Scanning report, compares the found vulnerabilities +between the source and target branches, and shows the information right on the +merge request. + +![Container Scanning Widget](img/container_scanning.png) + +## Use cases + +If you distribute your application with Docker, then there's a great chance +that your image is based on other Docker images that may in turn contain some +known vulnerabilities that could be exploited. + +Having an extra job in your pipeline that checks for those vulnerabilities, +and the fact that they are displayed inside a merge request, makes it very easy +to perform audits for your Docker-based apps. + +## Requirements + +To enable Container Scanning in your pipeline, you need: + +- A GitLab Runner with the + [`docker`](https://docs.gitlab.com/runner/executors/docker.html#use-docker-in-docker-with-privileged-mode) or + [`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html#running-privileged-containers-for-the-runners) + executor running in privileged mode. If you're using the shared Runners on GitLab.com, + this is enabled by default. +- To [build and push](../../../ci/docker/using_docker_build.md#container-registry-examples) + your Docker image to your project's [Container Registry](../../project/container_registry.md). + The name of the Docker image should match the following scheme: + + ``` + $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA + ``` + + The variables above can be found in the + [predefined environment variables](../../../ci/variables/predefined_variables.md) + document. + +## Configuring Container Scanning + +To enable Container Scanning in your project, define a job in your +`.gitlab-ci.yml` file that generates the +[Container Scanning report artifact](../../../ci/yaml/README.md#artifactsreportscontainer_scanning-ultimate). + +This can be done in two ways: + +- For GitLab 11.9 and later, including the provided + `Container-Scanning.gitlab-ci.yml` template (recommended). +- Manually specifying the job definition. Not recommended unless using GitLab + 11.8 and earlier. + +### Including the provided template + +NOTE: **Note:** +The CI/CD Container Scanning template is supported on GitLab 11.9 and later versions. +For earlier versions, use the [manual job definition](#manual-job-definition-for-gitlab-115-and-later). + +A CI/CD [Container Scanning template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml) +with the default Container Scanning job definition is provided as a part of your GitLab +installation that you can [include](../../../ci/yaml/README.md#includetemplate) +in your `.gitlab-ci.yml` file. + +To enable Container Scanning using the provided template, add the following to +your `.gitlab-ci.yml` file: + +```yaml +include: + template: Container-Scanning.gitlab-ci.yml +``` + +The included template will: + +- Create a `container_scanning` job in your CI/CD pipeline. +- Pull the already built Docker image from your project's + [Container Registry](../../project/container_registry.md) (see [requirements](#requirements)) + and scan it for possible vulnerabilities. + +The report will be saved as a +[Container Scanning report artifact](../../../ci/yaml/README.md#artifactsreportscontainer_scanning-ultimate) +that you can later download and analyze. +Due to implementation limitations, we always take the latest Container Scanning +artifact available. Behind the scenes, the +[GitLab Container Scanning analyzer](https://gitlab.com/gitlab-org/security-products/container-scanning) +is used and runs the scans. + +If you want to whitelist some specific vulnerabilities, you can do so by defining +them in a YAML file named `clair-whitelist.yml`. Read more in the +[Clair documentation](https://github.com/arminc/clair-scanner/blob/master/README.md#example-whitelist-yaml-file). + +### Manual job definition for GitLab 11.5 and later + +CAUTION: **Caution:** +The job definition shown below is supported on GitLab 11.5 and later versions. +However, if you're using GitLab 11.9+, it's recommended to use +[the provided Container Scanning template](#including-the-provided-template). + +For GitLab 11.5 and GitLab Runner 11.5 and later, the following `container_scanning` +job can be added: + +```yaml +container_scanning: + image: docker:stable + variables: + DOCKER_DRIVER: overlay2 + ## Define two new variables based on GitLab's CI/CD predefined variables + ## https://docs.gitlab.com/ee/ci/variables/#predefined-environment-variables + CI_APPLICATION_REPOSITORY: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG + CI_APPLICATION_TAG: $CI_COMMIT_SHA + allow_failure: true + services: + - docker:stable-dind + script: + - docker run -d --name db arminc/clair-db:latest + - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.6 + - apk add -U wget ca-certificates + - docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} + - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 + - mv clair-scanner_linux_amd64 clair-scanner + - chmod +x clair-scanner + - touch clair-whitelist.yml + - while( ! wget -q -O /dev/null http://docker:6060/v1/namespaces ) ; do sleep 1 ; done + - retries=0 + - echo "Waiting for clair daemon to start" + - while( ! wget -T 10 -q -O /dev/null http://docker:6060/v1/namespaces ) ; do sleep 1 ; echo -n "." ; if [ $retries -eq 10 ] ; then echo " Timeout, aborting." ; exit 1 ; fi ; retries=$(($retries+1)) ; done + - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-container-scanning-report.json -l clair.log -w clair-whitelist.yml ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} || true + artifacts: + reports: + container_scanning: gl-container-scanning-report.json +``` + +### Manual job definition for GitLab 11.4 and earlier (deprecated) + +CAUTION: **Deprecated:** +Before GitLab 11.5, the Container Scanning job and artifact had to be named specifically +to automatically extract report data and show it in the merge request widget. +While these old job definitions are still maintained, they have been deprecated +and may be removed in the next major release, GitLab 12.0. You are strongly +advised to update your current `.gitlab-ci.yml` configuration to reflect that change. + +For GitLab 11.4 and earlier, the Container Scanning job should look like: + +```yaml +container_scanning: + image: docker:stable + variables: + DOCKER_DRIVER: overlay2 + ## Define two new variables based on GitLab's CI/CD predefined variables + ## https://docs.gitlab.com/ee/ci/variables/#predefined-environment-variables + CI_APPLICATION_REPOSITORY: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG + CI_APPLICATION_TAG: $CI_COMMIT_SHA + allow_failure: true + services: + - docker:stable-dind + script: + - docker run -d --name db arminc/clair-db:latest + - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.6 + - apk add -U wget ca-certificates + - docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} + - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 + - mv clair-scanner_linux_amd64 clair-scanner + - chmod +x clair-scanner + - touch clair-whitelist.yml + - while( ! wget -q -O /dev/null http://docker:6060/v1/namespaces ) ; do sleep 1 ; done + - retries=0 + - echo "Waiting for clair daemon to start" + - while( ! wget -T 10 -q -O /dev/null http://docker:6060/v1/namespaces ) ; do sleep 1 ; echo -n "." ; if [ $retries -eq 10 ] ; then echo " Timeout, aborting." ; exit 1 ; fi ; retries=$(($retries+1)) ; done + - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-container-scanning-report.json -l clair.log -w clair-whitelist.yml ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} || true + artifacts: + paths: [gl-container-scanning-report.json] +``` + +Alternatively, the job name could be `sast:container` +and the artifact name could be `gl-sast-container-report.json`. +These names have been deprecated with GitLab 11.0 +and may be removed in the next major release, GitLab 12.0. + +## Security Dashboard + +The Security Dashboard is a good place to get an overview of all the security +vulnerabilities in your groups and projects. Read more about the +[Security Dashboard](../security_dashboard/index.md). + +## Interacting with the vulnerabilities + +Once a vulnerability is found, you can interact with it. Read more on how to +[interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). diff --git a/doc/user/application_security/dast/img/dast_all.png b/doc/user/application_security/dast/img/dast_all.png new file mode 100644 index 00000000000..b6edc928dc3 Binary files /dev/null and b/doc/user/application_security/dast/img/dast_all.png differ diff --git a/doc/user/application_security/dast/img/dast_single.png b/doc/user/application_security/dast/img/dast_single.png new file mode 100644 index 00000000000..26ca4bde786 Binary files /dev/null and b/doc/user/application_security/dast/img/dast_single.png differ diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md new file mode 100644 index 00000000000..904c9e8fefe --- /dev/null +++ b/doc/user/application_security/dast/index.md @@ -0,0 +1,262 @@ +# Dynamic Application Security Testing (DAST) **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4348) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4. + +Running [static checks](../sast/index.md) on your code is the first step to detect +vulnerabilities that can put the security of your code at risk. Yet, once +deployed, your application is exposed to a new category of possible attacks, +such as cross-site scripting or broken authentication flaws. This is where +Dynamic Application Security Testing (DAST) comes into place. + +## Overview + +If you are using [GitLab CI/CD](../../../ci/README.md), you can analyze your running web application(s) +for known vulnerabilities using Dynamic Application Security Testing (DAST). + +You can take advantage of DAST by either [including the CI job](#configuring-dast) in +your existing `.gitlab-ci.yml` file or by implicitly using +[Auto DAST](../../../topics/autodevops/index.md#auto-dast-ultimate) +that is provided by [Auto DevOps](../../../topics/autodevops/index.md). + +GitLab checks the DAST report, compares the found vulnerabilities between the source and target +branches, and shows the information right on the merge request. + +![DAST Widget](img/dast_all.png) + +By clicking on one of the detected linked vulnerabilities, you will be able to +see the details and the URL(s) affected. + +![DAST Widget Clicked](img/dast_single.png) + +[Dynamic Application Security Testing (DAST)](https://en.wikipedia.org/wiki/Dynamic_Application_Security_Testing) +is using the popular open source tool [OWASP ZAProxy](https://github.com/zaproxy/zaproxy) +to perform an analysis on your running web application. + +By default, DAST executes [ZAP Baseline Scan](https://github.com/zaproxy/zaproxy/wiki/ZAP-Baseline-Scan) and will perform passive scanning only. It will not actively attack your application. + +However, DAST can be [configured](#full-scan) +to also perform a so-called "active scan". That is, attack your application and produce a more extensive security report. +It can be very useful combined with [Review Apps](../../../ci/review_apps/index.md). + +## Use cases + +It helps you automatically find security vulnerabilities in your running web +applications while you are developing and testing your applications. + +## Requirements + +To run a DAST job, you need GitLab Runner with the +[`docker`](https://docs.gitlab.com/runner/executors/docker.html#use-docker-in-docker-with-privileged-mode) or +[`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html#running-privileged-containers-for-the-runners) +executor running in privileged mode. If you're using the shared Runners on GitLab.com, +this is enabled by default. + +## Configuring DAST + +To enable DAST in your project, define a job in your `.gitlab-ci.yml` file that generates the +[DAST report artifact](../../../ci/yaml/README.md#artifactsreportsdast-ultimate). + +This can be done in two ways: + +- For GitLab 11.9 and later, including the provided DAST `.gitlab-ci.yml` template (recommended). +- Manually specifying the job definition. Not recommended unless using GitLab + 11.8 and earlier. + +### Including the provided template + +NOTE: **Note:** +The CI/CD DAST template is supported on GitLab 11.9 and later versions. +For earlier versions, use the [manual job definition](#manual-job-definition-for-gitlab-115-and-later). + +A CI/CD [DAST template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml) +with the default DAST job definition is provided as a part of your GitLab +installation which you can [include](../../../ci/yaml/README.md#includetemplate) +in your `.gitlab-ci.yml` file. + +To enable DAST using the provided template, add the following to your `.gitlab-ci.yml` +file: + +```yaml +include: + template: DAST.gitlab-ci.yml + +variables: + DAST_WEBSITE: https://example.com +``` + +The included template will create a `dast` job in your CI/CD pipeline and scan +your project's source code for possible vulnerabilities. + +The report will be saved as a +[DAST report artifact](../../../ci/yaml/README.md#artifactsreportsdast-ultimate) +that you can later download and analyze. Due to implementation limitations we +always take the latest DAST artifact available. Behind the scenes, the +[GitLab DAST Docker image](https://gitlab.com/gitlab-org/security-products/dast) +is used to run the tests on the specified URL and scan it for possible vulnerabilities. + +There are two ways to define the URL to be scanned by DAST: + +- Set the `DAST_WEBSITE` [variable](../../../ci/yaml/README.md#variables). +- Add it in an `environment_url.txt` file at the root of your project. + +#### Authenticated scan + +It's also possible to authenticate the user before performing the DAST checks: + +```yaml +include: + template: DAST.gitlab-ci.yml + +variables: + DAST_WEBSITE: https://example.com + DAST_AUTH_URL: https://example.com/sign-in + DAST_USERNAME: john.doe@example.com + DAST_PASSWORD: john-doe-password + DAST_USERNAME_FIELD: session[user] # the name of username field at the sign-in HTML form + DAST_PASSWORD_FIELD: session[password] # the name of password field at the sign-in HTML form + DAST_AUTH_EXCLUDE_URLS: http://example.com/sign-out,http://example.com/sign-out-2 # optional, URLs to skip during the authenticated scan; comma-separated, no spaces in between +``` + +The report will be saved as a +[DAST report artifact](../../../ci/yaml/README.md#artifactsreportsdast-ultimate) +that you can later download and analyze. +Due to implementation limitations, we always take the latest DAST artifact available. + +#### Full scan + +DAST can be configured to perform [ZAP Full Scan](https://github.com/zaproxy/zaproxy/wiki/ZAP-Full-Scan), which +includes both passive and active scanning against the same target website: + +```yaml +include: + template: DAST.gitlab-ci.yml + +variables: + DAST_FULL_SCAN_ENABLED: "true" +``` + +#### Customizing the DAST settings + +The SAST settings can be changed through environment variables by using the +[`variables`](../../../ci/yaml/README.md#variables) parameter in `.gitlab-ci.yml`. +These variables are documented in the [DAST README](https://gitlab.com/gitlab-org/security-products/dast#settings). + +For example: + +```yaml +include: + template: DAST.gitlab-ci.yml + +variables: + DAST_WEBSITE: https://example.com + DAST_TARGET_AVAILABILITY_TIMEOUT: 120 +``` + +Because the template is [evaluated before](../../../ci/yaml/README.md#include) the pipeline +configuration, the last mention of the variable will take precedence. + +#### Overriding the DAST template + +If you want to override the job definition (for example, change properties like +`variables` or `dependencies`), you need to declare a `dast` job after the +template inclusion and specify any additional keys under it. For example: + +```yaml +include: + template: DAST.gitlab-ci.yml + +dast: + stage: dast # IMPORTANT: don't forget to add this + variables: + DAST_WEBSITE: https://example.com + CI_DEBUG_TRACE: "true" +``` + +As the DAST job belongs to a separate `dast` stage that runs after all +[default stages](../../../ci/yaml/README.md#stages), +don't forget to add `stage: dast` when you override the template job definition. + +### Manual job definition for GitLab 11.5 and later + +For GitLab 11.5 and GitLab Runner 11.5 and later, the following `dast` +job can be added: + +```yaml +dast: + image: registry.gitlab.com/gitlab-org/security-products/zaproxy + variables: + website: "https://example.com" + allow_failure: true + script: + - mkdir /zap/wrk/ + - /zap/zap-baseline.py -J gl-dast-report.json -t $website || true + - cp /zap/wrk/gl-dast-report.json . + artifacts: + reports: + dast: gl-dast-report.json +``` + +Where the `website` variable holds the URL to run the tests against. + +For an authenticated scan, use the following definition: + +```yaml +dast: + image: registry.gitlab.com/gitlab-org/security-products/zaproxy + variables: + website: "https://example.com" + login_url: "https://example.com/sign-in" + username: "john.doe@example.com" + password: "john-doe-password" + allow_failure: true + script: + - mkdir /zap/wrk/ + - /zap/zap-baseline.py -J gl-dast-report.json -t $website + --auth-url $login_url + --auth-username $username + --auth-password $password || true + - cp /zap/wrk/gl-dast-report.json . + artifacts: + reports: + dast: gl-dast-report.json +``` + +See the [zaproxy documentation](https://gitlab.com/gitlab-org/security-products/zaproxy) +to learn more about the authentication settings. + +### Manual job definition for GitLab 11.4 and earlier (deprecated) + +CAUTION: **Caution:** +Before GitLab 11.5, DAST job and artifact had to be named specifically +to automatically extract report data and show it in the merge request widget. +While these old job definitions are still maintained they have been deprecated +and may be removed in next major release, GitLab 12.0. You are strongly advised +to update your current `.gitlab-ci.yml` configuration to reflect that change. + +For GitLab 11.4 and earlier, the job should look like: + +```yaml +dast: + image: registry.gitlab.com/gitlab-org/security-products/zaproxy + variables: + website: "https://example.com" + allow_failure: true + script: + - mkdir /zap/wrk/ + - /zap/zap-baseline.py -J gl-dast-report.json -t $website || true + - cp /zap/wrk/gl-dast-report.json . + artifacts: + paths: [gl-dast-report.json] +``` + +## Security Dashboard + +The Security Dashboard is a good place to get an overview of all the security +vulnerabilities in your groups and projects. Read more about the +[Security Dashboard](../security_dashboard/index.md). + +## Interacting with the vulnerabilities + +Once a vulnerability is found, you can interact with it. Read more on how to +[interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). diff --git a/doc/user/application_security/dependency_scanning/img/dependency_scanning.png b/doc/user/application_security/dependency_scanning/img/dependency_scanning.png new file mode 100644 index 00000000000..18df356f846 Binary files /dev/null and b/doc/user/application_security/dependency_scanning/img/dependency_scanning.png differ diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md new file mode 100644 index 00000000000..29db6fc8958 --- /dev/null +++ b/doc/user/application_security/dependency_scanning/index.md @@ -0,0 +1,224 @@ +# Dependency Scanning **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5105) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.7. + +## Overview + +If you are using [GitLab CI/CD](../../../ci/README.md), you can analyze your dependencies for known +vulnerabilities using Dependency Scanning. + +You can take advantage of Dependency Scanning by either [including the CI job](#including-the-provided-template) +in your existing `.gitlab-ci.yml` file or by implicitly using +[Auto Dependency Scanning](../../../topics/autodevops/index.md#auto-dependency-scanning-ultimate) +that is provided by [Auto DevOps](../../../topics/autodevops/index.md). + +GitLab checks the Dependency Scanning report, compares the found vulnerabilities +between the source and target branches, and shows the information right on the +merge request. + +![Dependency Scanning Widget](img/dependency_scanning.png) + +The results are sorted by the priority of the vulnerability: + +1. High +1. Medium +1. Low +1. Unknown +1. Everything else + +## Use cases + +It helps to automatically find security vulnerabilities in your dependencies +while you are developing and testing your applications. For example when your +application is using an external (open source) library which is known to be vulnerable. + +## Requirements + +To run a Dependency Scanning job, you need GitLab Runner with the +[`docker`](https://docs.gitlab.com/runner/executors/docker.html#use-docker-in-docker-with-privileged-mode) or +[`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html#running-privileged-containers-for-the-runners) +executor running in privileged mode. If you're using the shared Runners on GitLab.com, +this is enabled by default. + +## Supported languages and package managers + +The following languages and dependency managers are supported. + +| Language (package managers) | Scan tool | +|-----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| +| JavaScript ([npm](https://www.npmjs.com/), [yarn](https://yarnpkg.com/en/)) | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium/general), [Retire.js](https://retirejs.github.io/retire.js) | +| Python ([pip](https://pip.pypa.io/en/stable/)) (only `requirements.txt` supported) | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium/general) | +| Ruby ([gem](https://rubygems.org/)) | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium/general), [bundler-audit](https://github.com/rubysec/bundler-audit) | +| Java ([Maven](https://maven.apache.org/)) | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium/general) | +| PHP ([Composer](https://getcomposer.org/)) | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium/general) | + +Some scanners require to send a list of project dependencies to GitLab's central +servers to check for vulnerabilities. To learn more about this or to disable it, +refer to the [GitLab Dependency Scanning tool documentation](https://gitlab.com/gitlab-org/security-products/dependency-scanning#remote-checks). + +## Configuring Dependency Scanning + +To enable Dependency Scanning in your project, define a job in your `.gitlab-ci.yml` +file that generates the +[Dependency Scanning report artifact](../../../ci/yaml/README.md#artifactsreportsdependency_scanning-ultimate). + +This can be done in two ways: + +- For GitLab 11.9 and later, including the provided Dependency Scanning + `.gitlab-ci.yml` template (recommended). +- Manually specifying the job definition. Not recommended unless using GitLab + 11.8 and earlier. + +### Including the provided template + +NOTE: **Note:** +The CI/CD Dependency Scanning template is supported on GitLab 11.9 and later versions. +For earlier versions, use the [manual job definition](#manual-job-definition-for-gitlab-115-and-later). + +A CI/CD [Dependency Scanning template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml) +with the default Dependency Scanning job definition is provided as a part of your GitLab +installation which you can [include](../../../ci/yaml/README.md#includetemplate) +in your `.gitlab-ci.yml` file. + +To enable Dependency Scanning using the provided template, add the following to +your `.gitlab-ci.yml` file: + +```yaml +include: + template: Dependency-Scanning.gitlab-ci.yml +``` + +The included template will create a `dependency_scanning` job in your CI/CD +pipeline and scan your project's source code for possible vulnerabilities. + +The report will be saved as a +[Dependency Scanning report artifact](../../../ci/yaml/README.md#artifactsreportsdependency_scanning-ultimate) +that you can later download and analyze. Due to implementation limitations, we +always take the latest Dependency Scanning artifact available. + +Some security scanners require to send a list of project dependencies to GitLab +central servers to check for vulnerabilities. To learn more about this or to +disable it, check the +[GitLab Dependency Scanning tool documentation](https://gitlab.com/gitlab-org/security-products/dependency-scanning#remote-checks). + +#### Customizing the Dependency Scanning settings + +The Dependency Scanning settings can be changed through environment variables by using the +[`variables`](../../../ci/yaml/README.md#variables) parameter in `.gitlab-ci.yml`. +These variables are documented in the +[Dependency Scanning tool documentation](https://gitlab.com/gitlab-org/security-products/dependency-scanning#settings). + +For example: + +```yaml +include: + template: Dependency-Scanning.gitlab-ci.yml + +variables: + DEP_SCAN_DISABLE_REMOTE_CHECKS: true +``` + +Because template is [evaluated before](../../../ci/yaml/README.md#include) the pipeline +configuration, the last mention of the variable will take precedence. + +#### Overriding the Dependency Scanning template + +If you want to override the job definition (for example, change properties like +`variables` or `dependencies`), you need to declare a `dependency_scanning` job +after the template inclusion and specify any additional keys under it. For example: + +```yaml +include: + template: Dependency-Scanning.gitlab-ci.yml + +dependency_scanning: + variables: + CI_DEBUG_TRACE: "true" +``` + +### Manual job definition for GitLab 11.5 and later + +For GitLab 11.5 and GitLab Runner 11.5 and later, the following `dependency_scanning` +job can be added: + +```yaml +dependency_scanning: + image: docker:stable + variables: + DOCKER_DRIVER: overlay2 + allow_failure: true + services: + - docker:stable-dind + script: + - export DS_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')} + - | + docker run \ + --env DS_ANALYZER_IMAGES \ + --env DS_ANALYZER_IMAGE_PREFIX \ + --env DS_ANALYZER_IMAGE_TAG \ + --env DS_DEFAULT_ANALYZERS \ + --env DEP_SCAN_DISABLE_REMOTE_CHECKS \ + --env DS_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \ + --env DS_PULL_ANALYZER_IMAGE_TIMEOUT \ + --env DS_RUN_ANALYZER_TIMEOUT \ + --volume "$PWD:/code" \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$DS_VERSION" /code + dependencies: [] + artifacts: + reports: + dependency_scanning: gl-dependency-scanning-report.json +``` + +You can supply many other [settings variables](https://gitlab.com/gitlab-org/security-products/dependency-scanning#settings) +via `docker run --env` to customize your job execution. + +### Manual job definition for GitLab 11.4 and earlier (deprecated) + +CAUTION: **Caution:** +Before GitLab 11.5, the Dependency Scanning job and artifact had to be named specifically +to automatically extract the report data and show it in the merge request widget. +While these old job definitions are still maintained, they have been deprecated +and may be removed in the next major release, GitLab 12.0. You are strongly advised +to update your current `.gitlab-ci.yml` configuration to reflect that change. + +For GitLab 11.4 and earlier, the job should look like: + +```yaml +dependency_scanning: + image: docker:stable + variables: + DOCKER_DRIVER: overlay2 + allow_failure: true + services: + - docker:stable-dind + script: + - export DS_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')} + - | + docker run \ + --env DS_ANALYZER_IMAGES \ + --env DS_ANALYZER_IMAGE_PREFIX \ + --env DS_ANALYZER_IMAGE_TAG \ + --env DS_DEFAULT_ANALYZERS \ + --env DEP_SCAN_DISABLE_REMOTE_CHECKS \ + --env DS_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \ + --env DS_PULL_ANALYZER_IMAGE_TIMEOUT \ + --env DS_RUN_ANALYZER_TIMEOUT \ + --volume "$PWD:/code" \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$DS_VERSION" /code + artifacts: + paths: [gl-dependency-scanning-report.json] +``` + +## Security Dashboard + +The Security Dashboard is a good place to get an overview of all the security +vulnerabilities in your groups and projects. Read more about the +[Security Dashboard](../security_dashboard/index.md). + +## Interacting with the vulnerabilities + +Once a vulnerability is found, you can interact with it. Read more on how to +[interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). diff --git a/doc/user/application_security/img/create_issue_with_list_hover.png b/doc/user/application_security/img/create_issue_with_list_hover.png new file mode 100644 index 00000000000..7d70e8299f5 Binary files /dev/null and b/doc/user/application_security/img/create_issue_with_list_hover.png differ diff --git a/doc/user/application_security/img/interactive_reports.png b/doc/user/application_security/img/interactive_reports.png new file mode 100644 index 00000000000..9f9812dc69d Binary files /dev/null and b/doc/user/application_security/img/interactive_reports.png differ diff --git a/doc/user/application_security/img/issue.png b/doc/user/application_security/img/issue.png new file mode 100644 index 00000000000..6467201df3f Binary files /dev/null and b/doc/user/application_security/img/issue.png differ diff --git a/doc/user/application_security/img/vulnerability_solution.png b/doc/user/application_security/img/vulnerability_solution.png new file mode 100644 index 00000000000..7443b9b6eea Binary files /dev/null and b/doc/user/application_security/img/vulnerability_solution.png differ diff --git a/doc/user/application_security/index.md b/doc/user/application_security/index.md new file mode 100644 index 00000000000..64e72fab198 --- /dev/null +++ b/doc/user/application_security/index.md @@ -0,0 +1,104 @@ +# GitLab Secure **[ULTIMATE]** + +Check your application for security vulnerabilities that may lead to unauthorized access, +data leaks, and denial of services. GitLab will perform static and dynamic tests on the +code of your application, looking for known flaws and report them in the merge request +so you can fix them before merging. Security teams can use dashboards to get a +high-level view on projects and groups, and start remediation processes when needed. + +## Security scanning tools + +GitLab can scan and report any vulnerabilities found in your project. + +| Secure scanning tools | Description | +|:-----------------------------------------------------------------------------|:-----------------------------------------------------------------------| +| [Container Scanning](container_scanning/index.md) **[ULTIMATE]** | Scan Docker containers for known vulnerabilities. | +| [Dependency Scanning](dependency_scanning/index.md) **[ULTIMATE]** | Analyze your dependencies for known vulnerabilities. | +| [Dynamic Application Security Testing (DAST)](dast/index.md) **[ULTIMATE]** | Analyze running web applications for known vulnerabilities. | +| [License Management](license_management/index.md) **[ULTIMATE]** | Search your project's dependencies for their licenses. | +| [Security Dashboard](security_dashboard/index.md) **[ULTIMATE]** | View vulnerabilities in all your projects and groups. | +| [Static Application Security Testing (SAST)](sast/index.md) **[ULTIMATE]** | Analyze source code for known vulnerabilities. | + +## Interacting with the vulnerabilities + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 10.8. + +CAUTION: **Warning:** +This feature is currently [Alpha](https://about.gitlab.com/handbook/product/#alpha-beta-ga) and while you can start using it, it may receive important changes in the future. + +Each security vulnerability in the merge request report or the +[Security Dashboard](security_dashboard/index.md) is actionable. Clicking on an +entry, a detailed information will pop up with different possible options: + +- [Dismiss vulnerability](#dismissing-a-vulnerability): Dismissing a vulnerability + will place a strikethrough styling on it. +- [Create issue](#creating-an-issue-for-a-vulnerability): The new issue will + have the title and description pre-populated with the information from the + vulnerability report and will be created as [confidential](../project/issues/confidential_issues.md) by default. +- [Solution](#solutions-for-vulnerabilities): For some vulnerabilities + ([Dependency Scanning](dependency_scanning/index.md) and [Container Scanning](container_scanning/index.md)) + a solution is provided for how to fix the vulnerability. + +![Interacting with security reports](img/interactive_reports.png) + +### Dismissing a vulnerability + +You can dismiss vulnerabilities by clicking the **Dismiss vulnerability** button. +This will dismiss the vulnerability and re-render it to reflect its dismissed state. +If you wish to undo this dismissal, you can click the **Undo dismiss** button. + +### Creating an issue for a vulnerability + +You can create an issue for a vulnerability by selecting the **Create issue** +button from within the vulnerability modal or using the action buttons to the right of +a vulnerability row when in the group security dashboard. + +This will create a [confidential issue](../project/issues/confidential_issues.md) +on the project this vulnerability came from and pre-fill it with some useful +information taken from the vulnerability report. Once the issue is created, you +will be redirected to it so you can edit, assign, or comment on it. + +Upon returning to the group security dashboard, you'll see that +the vulnerability will now have an associated issue next to the name. + +![Linked issue in the group security dashboard](img/issue.png) + +### Solutions for vulnerabilities + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.7. + +CAUTION: **Warning:** +Automatic Patch creation is only available for a subset of +[Dependency Scanning](dependency_scanning/index.md). At the moment only Node.JS +projects managed with yarn are supported. + +Some vulnerabilities can be fixed by applying the solution that GitLab +automatically generates. + +#### Manually applying the suggested patch + +Some vulnerabilities can be fixed by applying a patch that is automatically +generated by GitLab. To apply the fix: + +1. Click on the vulnerability. +1. Download and review the patch file `remediation.patch`. +2. Ensure your local project has the same commit checked out that was used to generate the patch. +3. Run `git apply remediation.patch`. +4. Verify and commit the changes to your branch. + +![Apply patch for dependency scanning](img/vulnerability_solution.png) + +#### Creating a merge request from a vulnerability + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9224) in + [GitLab Ultimate](https://about.gitlab.com/pricing) 11.9. + +In certain cases, GitLab will allow you to create a merge request that will +automatically remediate the vulnerability. Any vulnerability that has a +[solution](#solutions-for-vulnerabilities) can have a merge request created to +automatically solve the issue. + +If this action is available there will be a **Create merge request** button in the vulnerability modal. +Clicking on this button will create a merge request to apply the solution onto the source branch. + +![Create merge request from vulnerability](img/create_issue_with_list_hover.png) diff --git a/doc/user/application_security/license_management/img/license_management.png b/doc/user/application_security/license_management/img/license_management.png new file mode 100644 index 00000000000..cdce6b5fe38 Binary files /dev/null and b/doc/user/application_security/license_management/img/license_management.png differ diff --git a/doc/user/application_security/license_management/img/license_management_decision.png b/doc/user/application_security/license_management/img/license_management_decision.png new file mode 100644 index 00000000000..0763130c375 Binary files /dev/null and b/doc/user/application_security/license_management/img/license_management_decision.png differ diff --git a/doc/user/application_security/license_management/img/license_management_pipeline_tab.png b/doc/user/application_security/license_management/img/license_management_pipeline_tab.png new file mode 100644 index 00000000000..80ffca815b9 Binary files /dev/null and b/doc/user/application_security/license_management/img/license_management_pipeline_tab.png differ diff --git a/doc/user/application_security/license_management/img/license_management_settings.png b/doc/user/application_security/license_management/img/license_management_settings.png new file mode 100644 index 00000000000..b5490e59074 Binary files /dev/null and b/doc/user/application_security/license_management/img/license_management_settings.png differ diff --git a/doc/user/application_security/license_management/index.md b/doc/user/application_security/license_management/index.md new file mode 100644 index 00000000000..8b75995c377 --- /dev/null +++ b/doc/user/application_security/license_management/index.md @@ -0,0 +1,264 @@ +# License Management **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5483) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.0. + +## Overview + +If you are using [GitLab CI/CD](../../../ci/README.md), you can search your project dependencies for their licenses +using License Management. + +You can take advantage of License Management by either [including the job](#configuring-license-management) +in your existing `.gitlab-ci.yml` file or by implicitly using +[Auto License Management](../../../topics/autodevops/index.md#auto-license-management-ultimate) +that is provided by [Auto DevOps](../../../topics/autodevops/index.md). + +GitLab checks the License Management report, compares the licenses between the +source and target branches, and shows the information right on the merge request. +Blacklisted licenses will be clearly visible with an `x` red icon next to them +as well as new licenses which need a decision from you. In addition, you can +[manually approve or blacklist](#project-policies-for-license-management) +licenses in your project's settings. + +NOTE: **Note:** +If the license management report doesn't have anything to compare to, no information +will be displayed in the merge request area. That is the case when you add the +`license_management` job in your `.gitlab-ci.yml` for the first time. +Consecutive merge requests will have something to compare to and the license +management report will be shown properly. + +![License Management Widget](img/license_management.png) + +If you are a project or group Maintainer, you can click on a license to be given +the choice to approve it or blacklist it. + +![License approval decision](img/license_management_decision.png) + +## Use cases + +It helps you find what licenses your project uses in its dependencies, and decide for each of then +whether to allow it or forbid it. For example, your application is using an external (open source) +library whose license is incompatible with yours. + +## Supported languages and package managers + +The following languages and package managers are supported. + +| Language | Package managers | +|------------|-------------------------------------------------------------------| +| JavaScript | [Bower](https://bower.io/), [npm](https://www.npmjs.com/) | +| Go | [Godep](https://github.com/tools/godep), go get | +| Java | [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/) | +| .NET | [Nuget](https://www.nuget.org/) | +| Python | [pip](https://pip.pypa.io/en/stable/) | +| Ruby | [gem](https://rubygems.org/) | + +## Requirements + +To run a License Management scanning job, you need GitLab Runner with the +[`docker` executor](https://docs.gitlab.com/runner/executors/docker.html). + +## Configuring License Management + +To enable License Management in your project, define a job in your `.gitlab-ci.yml` +file that generates the [License Management report artifact](../../../ci/yaml/README.md#artifactsreportslicense_management-ultimate). + +This can be done in two ways: + +- For GitLab 11.9 and later, including the provided License Management `.gitlab-ci.yml` template (recommended). +- Manually specifying the job definition. Not recommended unless using GitLab + 11.8 and earlier. + +### Including the provided template + +NOTE: **Note:** +The CI/CD License Management template is supported on GitLab 11.9 and later versions. +For earlier versions, use the [manual job definition](#manual-job-definition-for-gitlab-115-and-later). + +A CI/CD [License Management template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml) +with the default License Management job definition is provided as a part of your GitLab +installation which you can [include](../../../ci/yaml/README.md#includetemplate) +in your `.gitlab-ci.yml` file. + +To enable License Management using the provided template, add the following to +your `.gitlab-ci.yml` file: + +```yaml +include: + template: License-Management.gitlab-ci.yml +``` + +The included template will create a `license_management` job in your CI/CD pipeline +and scan your dependencies to find their licenses. + +The report will be saved as a +[License Management report artifact](../../../ci/yaml/README.md#artifactsreportslicense_management-ultimate) +that you can later download and analyze. Due to implementation limitations, we +always take the latest License Management artifact available. Behind the scenes, the +[GitLab License Management Docker image](https://gitlab.com/gitlab-org/security-products/license-management) +is used to detect the languages/frameworks and in turn analyzes the licenses. + +#### Installing custom dependencies + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.4. + +The `license_management` image already embeds many auto-detection scripts, languages, +and packages. Nevertheless, it's almost impossible to cover all cases for all projects. +That's why sometimes it's necessary to install extra packages, or to have extra steps +in the project automated setup, like the download and installation of a certificate. +For that, a `LICENSE_MANAGEMENT_SETUP_CMD` environment variable can be passed to the container, +with the required commands to run before the license detection. + +If present, this variable will override the setup step necessary to install all the packages +of your application (e.g.: for a project with a `Gemfile`, the setup step could be +`bundle install`). + +For example: + +```yaml +include: + template: License-Management.gitlab-ci.yml + +variables: + LICENSE_MANAGEMENT_SETUP_CMD: sh my-custom-install-script.sh +``` + +In this example, `my-custom-install-script.sh` is a shell script at the root +directory of your project. + +#### Overriding the template + +If you want to override the job definition (for example, change properties like +`variables` or `dependencies`), you need to declare a `license_management` job +after the template inclusion and specify any additional keys under it. For example: + +```yaml +include: + template: License-Management.gitlab-ci.yml + +license_management: + variables: + CI_DEBUG_TRACE: "true" +``` + +#### Configuring Maven projects + +The License Management tool provides a `MAVEN_CLI_OPTS` environment variable which can hold +the command line arguments to pass to the `mvn install` command which is executed under the hood. +Feel free to use it for the customization of Maven execution. For example: + +```yaml +include: + template: License-Management.gitlab-ci.yml + +license_management: + variables: + MAVEN_CLI_OPTS: --debug +``` + +`mvn install` runs through all of the [build life cycle](http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html) +stages prior to `install`, including `test`. Running unit tests is not directly +necessary for the license scanning purposes and consumes time, so it's skipped +by having the default value of `MAVEN_CLI_OPTS` as `-DskipTests`. If you want +to supply custom `MAVEN_CLI_OPTS` and skip tests at the same time, don't forget +to explicitly add `-DskipTests` to your options. +If you still need to run tests during `mvn install`, add `-DskipTests=false` to +`MAVEN_CLI_OPTS`. + +### Manual job definition for GitLab 11.5 and later + +For GitLab 11.5 and GitLab Runner 11.5 and later, the following `license_management` +job can be added: + +```yaml +license_management: + image: + name: "registry.gitlab.com/gitlab-org/security-products/license-management:$CI_SERVER_VERSION_MAJOR-$CI_SERVER_VERSION_MINOR-stable" + entrypoint: [""] + stage: test + allow_failure: true + script: + - /run.sh analyze . + artifacts: + reports: + license_management: gl-license-management-report.json +``` + +If you want to install custom project dependencies via the `SETUP_CMD` variable: + +```yaml +license_management: + image: + name: "registry.gitlab.com/gitlab-org/security-products/license-management:$CI_SERVER_VERSION_MAJOR-$CI_SERVER_VERSION_MINOR-stable" + entrypoint: [""] + stage: test + variables: + SETUP_CMD: ./my-custom-install-script.sh + allow_failure: true + script: + - /run.sh analyze . + artifacts: + reports: + license_management: gl-license-management-report.json +``` + +### Manual job definition for GitLab 11.4 and earlier (deprecated) + +CAUTION: **Caution:** +Before GitLab 11.5, the License Management job and artifact had to be named specifically +to automatically extract the report data and show it in the merge request widget. +While these old job definitions are still maintained, they have been deprecated +and may be removed in the next major release, GitLab 12.0. You are strongly advised +to update your current `.gitlab-ci.yml` configuration to reflect that change. + +For GitLab 11.4 and earlier, the job should look like: + +```yaml +license_management: + image: + name: "registry.gitlab.com/gitlab-org/security-products/license-management:$CI_SERVER_VERSION_MAJOR-$CI_SERVER_VERSION_MINOR-stable" + entrypoint: [""] + stage: test + allow_failure: true + script: + - /run.sh analyze . + artifacts: + paths: [gl-license-management-report.json] +``` + +## Project policies for License Management + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5940) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.4. + +From the project's settings: + +- The list of licenses and their status can be managed. +- Licenses can be manually approved or blacklisted. + +To approve or blacklist a license: + +1. Either use the **Manage licenses** button in the merge request widget, or + navigate to the project's **Settings > CI/CD** and expand the + **License Management** section. +1. Click the **Add a license** button. +1. In the **License name** dropdown, either: + - Select one of the available licenses. You can search for licenses in the field + at the top of the list. + - Enter arbitrary text in the field at the top of the list. This will cause the text to be + added as a license name to the list. +1. Select the **Approve** or **Blacklist** radio button to approve or blacklist respectively + the selected license. + + ![License Management Settings](img/license_management_settings.png) + +## License Management report under pipelines + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5491) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.2. + +From your project's left sidebar, navigate to **CI/CD > Pipelines** and click on the +pipeline ID that has a `license_management` job to see the Licenses tab with the listed +licenses (if any). + +![License Management Pipeline Tab](img/license_management_pipeline_tab.png) diff --git a/doc/user/application_security/sast/img/sast.png b/doc/user/application_security/sast/img/sast.png new file mode 100644 index 00000000000..2c75592c32a Binary files /dev/null and b/doc/user/application_security/sast/img/sast.png differ diff --git a/doc/user/application_security/sast/img/security_report.png b/doc/user/application_security/sast/img/security_report.png new file mode 100644 index 00000000000..ba41b707238 Binary files /dev/null and b/doc/user/application_security/sast/img/security_report.png differ diff --git a/doc/user/application_security/sast/index.md b/doc/user/application_security/sast/index.md new file mode 100644 index 00000000000..377d218321a --- /dev/null +++ b/doc/user/application_security/sast/index.md @@ -0,0 +1,252 @@ +# Static Application Security Testing (SAST) **[ULTIMATE]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3775) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.3. + +NOTE: **4 of the top 6 attacks were application based.** +Download our whitepaper, +["A Seismic Shift in Application Security"](https://about.gitlab.com/resources/whitepaper-seismic-shift-application-security/) +to learn how to protect your organization. + +## Overview + +If you are using [GitLab CI/CD](../../../ci/README.md), you can analyze your source code for known +vulnerabilities using Static Application Security Testing (SAST). + +You can take advantage of SAST by either [including the CI job](#configuring-sast) in +your existing `.gitlab-ci.yml` file or by implicitly using +[Auto SAST](../../../topics/autodevops/index.md#auto-sast-ultimate) +that is provided by [Auto DevOps](../../../topics/autodevops/index.md). + +GitLab checks the SAST report, compares the found vulnerabilities between the +source and target branches, and shows the information right on the merge request. + +![SAST Widget](img/sast.png) + +The results are sorted by the priority of the vulnerability: + +1. Critical +1. High +1. Medium +1. Low +1. Unknown +1. Everything else + +## Use cases + +- Your code has a potentially dangerous attribute in a class, or unsafe code + that can lead to unintended code execution. +- Your application is vulnerable to cross-site scripting (XSS) attacks that can + be leveraged to unauthorized access to session data. + +## Requirements + +To run a SAST job, you need GitLab Runner with the +[`docker`](https://docs.gitlab.com/runner/executors/docker.html#use-docker-in-docker-with-privileged-mode) or +[`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html#running-privileged-containers-for-the-runners) +executor running in privileged mode. If you're using the shared Runners on GitLab.com, +this is enabled by default. + +## Supported languages and frameworks + +The following table shows which languages, package managers and frameworks are supported and which tools are used. + +| Language (package managers) / framework | Scan tool | Introduced in GitLab Version | +|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------| +| .NET | [Security Code Scan](https://security-code-scan.github.io) | 11.0 | +| Any | [Gitleaks](https://github.com/zricethezav/gitleaks) and [TruffleHog](https://github.com/dxa4481/truffleHog) | 11.9 | +| C/C++ | [Flawfinder](https://www.dwheeler.com/flawfinder/) | 10.7 | +| Elixir (Phoenix) | [Sobelow](https://github.com/nccgroup/sobelow) | 11.10 | +| Go | [Gosec](https://github.com/securego/gosec) | 10.7 | +| Groovy ([Ant](https://ant.apache.org/), [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/) and [SBT](https://www.scala-sbt.org/)) | [SpotBugs](https://spotbugs.github.io/) with the [find-sec-bugs](https://find-sec-bugs.github.io/) plugin | 11.3 (Gradle) & 11.9 (Ant, Maven, SBT) | +| Java ([Ant](https://ant.apache.org/), [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/) and [SBT](https://www.scala-sbt.org/)) | [SpotBugs](https://spotbugs.github.io/) with the [find-sec-bugs](https://find-sec-bugs.github.io/) plugin | 10.6 (Maven), 10.8 (Gradle) & 11.9 (Ant, SBT) | +| Javascript | [ESLint security plugin](https://github.com/nodesecurity/eslint-plugin-security) | 11.8 | +| Node.js | [NodeJsScan](https://github.com/ajinabraham/NodeJsScan) | 11.1 | +| PHP | [phpcs-security-audit](https://github.com/FloeDesignTechnologies/phpcs-security-audit) | 10.8 | +| Python ([pip](https://pip.pypa.io/en/stable/)) | [bandit](https://github.com/openstack/bandit) | 10.3 | +| Ruby on Rails | [brakeman](https://brakemanscanner.org) | 10.3 | +| Scala ([Ant](https://ant.apache.org/), [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/) and [SBT](https://www.scala-sbt.org/)) | [SpotBugs](https://spotbugs.github.io/) with the [find-sec-bugs](https://find-sec-bugs.github.io/) plugin | 11.0 (SBT) & 11.9 (Ant, Gradle, Maven) | +| Typescript | [TSLint config security](https://github.com/webschik/tslint-config-security/) | 11.9 | + +NOTE: **Note:** +The Java analyzers can also be used for variants like the +[Gradle wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html), +[Grails](https://grails.org/) and the [Maven wrapper](https://github.com/takari/maven-wrapper). + +## Configuring SAST + +To enable SAST in your project, define a job in your `.gitlab-ci.yml` file that generates the +[SAST report artifact](../../../ci/yaml/README.md#artifactsreportssast-ultimate). + +This can be done in two ways: + +- For GitLab 11.9 and later, including the provided SAST `.gitlab-ci.yml` template (recommended). +- Manually specifying the job definition. Not recommended unless using GitLab + 11.8 and earlier. + +### Including the provided template + +NOTE: **Note:** +The CI/CD SAST template is supported on GitLab 11.9 and later versions. +For earlier versions, use the [manual job definition](#manual-job-definition-for-gitlab-115-and-later). + +A CI/CD [SAST template](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml) +with the default SAST job definition is provided as a part of your GitLab +installation which you can [include](../../../ci/yaml/README.md#includetemplate) +in your `.gitlab-ci.yml` file. + +To enable SAST using the provided template, add the following to your `.gitlab-ci.yml` +file: + +```yaml +include: + template: SAST.gitlab-ci.yml +``` + +The included template will create a `sast` job in your CI/CD pipeline and scan +your project's source code for possible vulnerabilities. + +The report will be saved as a +[SAST report artifact](../../../ci/yaml/README.md#artifactsreportssast-ultimate) +that you can later download and analyze. Due to implementation limitations, we +always take the latest SAST artifact available. Behind the scenes, the +[GitLab SAST Docker image](https://gitlab.com/gitlab-org/security-products/sast) +is used to detect the languages/frameworks and in turn runs the matching scan tools. + +#### Customizing the SAST settings + +The SAST settings can be changed through environment variables by using the +[`variables`](../../../ci/yaml/README.md#variables) parameter in `.gitlab-ci.yml`. +These variables are documented in the +[SAST tool documentation](https://gitlab.com/gitlab-org/security-products/sast#settings). + +In the following example, we include the SAST template and at the same time we +set the `SAST_GOSEC_LEVEL` variable to `2`: + +```yaml +include: + template: SAST.gitlab-ci.yml + +variables: + SAST_GOSEC_LEVEL: 2 +``` + +Because the template is [evaluated before](../../../ci/yaml/README.md#include) +the pipeline configuration, the last mention of the variable will take precedence. + +#### Overriding the SAST template + +If you want to override the job definition (for example, change properties like +`variables` or `dependencies`), you need to declare a `sast` job after the +template inclusion and specify any additional keys under it. For example: + +```yaml +include: + template: SAST.gitlab-ci.yml + +sast: + variables: + CI_DEBUG_TRACE: "true" +``` + +### Manual job definition for GitLab 11.5 and later + +For GitLab 11.5 and GitLab Runner 11.5 and later, the following `sast` +job can be added: + +```yaml +sast: + stage: test + image: docker:stable + variables: + DOCKER_DRIVER: overlay2 + allow_failure: true + services: + - docker:stable-dind + script: + - export SAST_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')} + - | + docker run \ + --env SAST_ANALYZER_IMAGES \ + --env SAST_ANALYZER_IMAGE_PREFIX \ + --env SAST_ANALYZER_IMAGE_TAG \ + --env SAST_DEFAULT_ANALYZERS \ + --env SAST_BRAKEMAN_LEVEL \ + --env SAST_GOSEC_LEVEL \ + --env SAST_FLAWFINDER_LEVEL \ + --env SAST_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \ + --env SAST_PULL_ANALYZER_IMAGE_TIMEOUT \ + --env SAST_RUN_ANALYZER_TIMEOUT \ + --volume "$PWD:/code" \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + "registry.gitlab.com/gitlab-org/security-products/sast:$SAST_VERSION" /app/bin/run /code + dependencies: [] + artifacts: + reports: + sast: gl-sast-report.json +``` + +You can supply many other [settings variables](https://gitlab.com/gitlab-org/security-products/sast#settings) +via `docker run --env` to customize your job execution. + +## Manual job definition for GitLab 11.4 and earlier (deprecated) + +CAUTION: **Deprecated:** +Before GitLab 11.5, the SAST job and artifact had to be named specifically +to automatically extract report data and show it in the merge request widget. +While these old job definitions are still maintained, they have been deprecated +and may be removed in the next major release, GitLab 12.0. You are strongly +advised to update your current `.gitlab-ci.yml` configuration to reflect that change. + +For GitLab 11.4 and earlier, the SAST job should look like: + +```yaml +sast: + image: docker:stable + variables: + DOCKER_DRIVER: overlay2 + allow_failure: true + services: + - docker:stable-dind + script: + - export SAST_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')} + - docker run + --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}" + --volume "$PWD:/code" + --volume /var/run/docker.sock:/var/run/docker.sock + "registry.gitlab.com/gitlab-org/security-products/sast:$SAST_VERSION" /app/bin/run /code + artifacts: + paths: [gl-sast-report.json] +``` + +## Secret detection + +GitLab is also able to detect secrets and credentials that have been unintentionally pushed to the repository. +For example, an API key that allows write access to third-party deployment environments. + +This check is performed by a specific analyzer during the `sast` job. It runs regardless of the programming +language of your app, and you don't need to change anything to your +CI/CD configuration file to turn it on. Results are available in the SAST report. + +GitLab currently includes [Gitleaks](https://github.com/zricethezav/gitleaks) and [TruffleHog](https://github.com/dxa4481/truffleHog) checks. + +## Security report under pipelines + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/3776) +in [GitLab Ultimate](https://about.gitlab.com/pricing) 10.6. + +Visit any pipeline page which has a `sast` job and you will be able to see +the security report tab with the listed vulnerabilities (if any). + +![Security Report](img/security_report.png) + +## Security Dashboard + +The Security Dashboard is a good place to get an overview of all the security +vulnerabilities in your groups and projects. Read more about the +[Security Dashboard](../security_dashboard/index.md). + +## Interacting with the vulnerabilities + +Once a vulnerability is found, you can interact with it. Read more on how to +[interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). diff --git a/doc/user/application_security/security_dashboard/img/dashboard.png b/doc/user/application_security/security_dashboard/img/dashboard.png new file mode 100644 index 00000000000..d52a6dacdbf Binary files /dev/null and b/doc/user/application_security/security_dashboard/img/dashboard.png differ diff --git a/doc/user/application_security/security_dashboard/img/project_security_dashboard.png b/doc/user/application_security/security_dashboard/img/project_security_dashboard.png new file mode 100644 index 00000000000..3294e59e943 Binary files /dev/null and b/doc/user/application_security/security_dashboard/img/project_security_dashboard.png differ diff --git a/doc/user/application_security/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md new file mode 100644 index 00000000000..ca31e15c65f --- /dev/null +++ b/doc/user/application_security/security_dashboard/index.md @@ -0,0 +1,103 @@ +# GitLab Security Dashboard **[ULTIMATE]** + +The Security Dashboard is a good place to get an overview of all the security +vulnerabilities in your groups and projects. + +You can also drill down into a vulnerability and get extra information, see which +project it comes from, the file it's in, and various metadata to help you analyze +the risk. You can also action these vulnerabilities by creating an issue for them, +or by dismissing them. + +To benefit from the Security Dashboard you must first configure one of the +[security reports](../index.md). + +## Supported reports + +The Security Dashboard supports the following reports: + +- [Container Scanning](../container_scanning/index.md) +- [DAST](../dast/index.md) +- [Dependency Scanning](../dependency_scanning/index.md) +- [SAST](../sast/index.md) + +## Requirements + +To use the project or group security dashboard: + +1. At least one project inside a group must be configured with at least one of + the [supported reports](#supported-reports). +2. The configured jobs must use the [new `reports` syntax](../../../ci/yaml/README.md#artifactsreports). +3. [GitLab Runner](https://docs.gitlab.com/runner/) 11.5 or newer must be used. + If you're using the shared Runners on GitLab.com, this is already the case. + +## Project Security Dashboard + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6165) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.1. + +At the project level, the Security Dashboard displays the latest security reports +for your project. Use it to find and fix vulnerabilities affecting the +[default branch](../../project/repository/branches/index.md#default-branch). + +![Project Security Dashboard](img/project_security_dashboard.png) + +## Group Security Dashboard + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6709) in + [GitLab Ultimate](https://about.gitlab.com/pricing) 11.5. + +The group Security Dashboard gives an overview of the vulnerabilities of all the +projects in a group and its subgroups. + +First, navigate to the Security Dashboard found under your group's +**Overview > Security Dashboard**. + +Once you're on the dashboard, at the top you should see a series of filters for: + +- Severity +- Report type +- Project + +![dashboard with action buttons and metrics](img/dashboard.png) + +Selecting one or more filters will filter the results in this page. +The first section is an overview of all the vulnerabilities, grouped by severity. +Underneath this overview is a timeline chart that shows how many open +vulnerabilities your projects had at various points in time. You can filter among 30, 60, and +90 days, with the default being 90. Hover over the chart to get more details about +the open vulnerabilities at a specific time. + +Finally, there is a list of all the vulnerabilities in the group, sorted by severity. +In that list, you can see the severity of the vulnerability, its name, its +confidence (likelihood of the vulnerability to be a positive one), and the project +it's from. + +If you hover over a row, there will appear some actions you can take: + +- "More info" +- "Create issue" +- "Dismiss vulnerability" + +Read more on how to [interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). + +## Keeping the dashboards up to date + +The Security Dashboard displays information from the results of the most recent +security scan on the [default branch](../../project/repository/branches/index.md#default-branch), +which means that security scans are performed every time the branch is updated. + +If the default branch is updated infrequently, scans are run infrequently and the +information on the Security Dashboard can become outdated as new vulnerabilities +are discovered. + +To ensure the information on the Security Dashboard is regularly updated, +[configure a scheduled pipeline](../../project/pipelines/schedules.md) to run a +daily security scan. This will update the information displayed on the Security +Dashboard regardless of how often the default branch is updated. + +That way, reports are created even if no code change happens. + +## Security scans using Auto DevOps + +When using [Auto DevOps](../../../topics/autodevops/index.md), use +[special environment variables](../../../topics/autodevops/index.md#environment-variables) +to configure daily security scans. -- cgit v1.2.3 From 5d1d085126aeaef4ba4cb7342ae403244b4700a6 Mon Sep 17 00:00:00 2001 From: Thong Kuah Date: Mon, 6 May 2019 10:16:35 +1200 Subject: Document Prometheus app can be uninstalled --- doc/user/project/clusters/index.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index f0d70dafb3f..157afb3a78c 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -406,6 +406,27 @@ Upgrades will reset values back to the values built into the `runner` chart plus the values set by [`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) +### Uninstalling applications + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/60665) in +> GitLab 11.11. + +The applications below can be uninstalled. + +| Application | GitLab version | Notes | +| ----------- | -------------- | ----- | +| Prometheus | 11.11+ | All data will be deleted and cannot be restored. | + +To uninstall an application: + +1. Navigate to your project's **Operations > Kubernetes**. +1. Select your cluster. +1. Click the **Uninstall** button for the application. + +Support for uninstalling all applications will be progressively +introduced (see [related +epic](https://gitlab.com/groups/gitlab-org/-/epics/1201)). + ### Troubleshooting applications Applications can fail with the following error: -- cgit v1.2.3 From 1775c8c73b20cb637d85703a1ee03aaf7d1f5e5e Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Mon, 6 May 2019 00:56:13 +0000 Subject: Docs: Realigning scattered EE docs into CE --- doc/user/admin_area/geo_nodes.md | 37 +++++++++++++++------- .../dependency_scanning/index.md | 1 + doc/user/application_security/sast/index.md | 2 ++ doc/user/project/labels.md | 2 +- 4 files changed, 29 insertions(+), 13 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/geo_nodes.md b/doc/user/admin_area/geo_nodes.md index d6d6d9b2517..776ab139c64 100644 --- a/doc/user/admin_area/geo_nodes.md +++ b/doc/user/admin_area/geo_nodes.md @@ -11,37 +11,38 @@ All Geo nodes have the following settings: | Setting | Description | | --------| ----------- | -| Primary | This marks a Geo Node as primary. There can be only one primary, make sure that you first add the primary node and then all the others. | -| URL | The instance's full URL, in the same way it is configured in `/etc/gitlab/gitlab.rb` (Omnibus GitLab installations) or `gitlab.yml` (source based installations). | +| Primary | This marks a Geo Node as **primary** node. There can be only one **primary** node; make sure that you first add the **primary** node and then all the others. | +| Name | The unique identifier for the Geo node. Must match the setting `gitlab_rails[geo_node_name]` in `/etc/gitlab/gitlab.rb`. The setting defaults to `external_url` with a trailing slash. | +| URL | The instance's user-facing URL. | The node you're reading from is indicated with a green `Current node` label, and -the primary is given a blue `Primary` label. Remember that you can only make -changes on the primary! +the **primary** node is given a blue `Primary` label. Remember that you can only make +changes on the **primary** node! -## Secondary node settings +## **Secondary** node settings -Secondaries have a number of additional settings available: +**Secondary** nodes have a number of additional settings available: | Setting | Description | |---------------------------|-------------| - Selective synchronization | Enable Geo [selective sync](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html#selective-synchronization) for this **secondary** node. | +| Selective synchronization | Enable Geo [selective sync](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html#selective-synchronization) for this **secondary** node. | | Repository sync capacity | Number of concurrent requests this **secondary** node will make to the **primary** node when backfilling repositories. | | File sync capacity | Number of concurrent requests this **secondary** node will make to the **primary** node when backfilling files. | ## Geo backfill -Secondaries are notified of changes to repositories and files by the primary, +**Secondary** nodes are notified of changes to repositories and files by the **primary** node, and will always attempt to synchronize those changes as quickly as possible. -Backfill is the act of populating the secondary with repositories and files that -existed *before* the secondary was added to the database. Since there may be +Backfill is the act of populating the **secondary** node with repositories and files that +existed *before* the **secondary** node was added to the database. Since there may be extremely large numbers of repositories and files, it's infeasible to attempt to download them all at once, so GitLab places an upper limit on the concurrency of these operations. How long the backfill takes is a function of the maximum concurrency, but higher -values place more strain on the primary node. From [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3107), -the limits are configurable - if your primary node has lots of surplus capacity, +values place more strain on the **primary** node. From [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3107), +the limits are configurable. If your **primary** node has lots of surplus capacity, you can increase the values to complete backfill in a shorter time. If it's under heavy load and backfill is reducing its availability for normal requests, you can decrease them. @@ -55,3 +56,15 @@ which is used by users. Internal URL does not need to be a private address. Internal URL defaults to External URL, but you can customize it under **Admin area > Geo Nodes**. + +## Multiple secondary nodes behind a load balancer + +In GitLab 11.11, **secondary** nodes can use identical external URLs as long as +a unique `name` is set for each Geo node. The `gitlab.rb` setting +`gitlab_rails[geo_node_name]` must: + +- Be set for each GitLab instance that runs `unicorn`, `sidekiq`, or `geo_logcursor`. +- Match a Geo node name. + +The load balancer must use sticky sessions in order to avoid authentication +failures and cross site request errors. diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 29db6fc8958..2d0c2be4233 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -201,6 +201,7 @@ dependency_scanning: --env DS_ANALYZER_IMAGE_PREFIX \ --env DS_ANALYZER_IMAGE_TAG \ --env DS_DEFAULT_ANALYZERS \ + --env DS_EXCLUDED_PATHS \ --env DEP_SCAN_DISABLE_REMOTE_CHECKS \ --env DS_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \ --env DS_PULL_ANALYZER_IMAGE_TIMEOUT \ diff --git a/doc/user/application_security/sast/index.md b/doc/user/application_security/sast/index.md index 377d218321a..02c115b7f22 100644 --- a/doc/user/application_security/sast/index.md +++ b/doc/user/application_security/sast/index.md @@ -171,6 +171,8 @@ sast: --env SAST_ANALYZER_IMAGE_PREFIX \ --env SAST_ANALYZER_IMAGE_TAG \ --env SAST_DEFAULT_ANALYZERS \ + --env SAST_EXCLUDED_PATHS \ + --env SAST_BANDIT_EXCLUDED_PATHS \ --env SAST_BRAKEMAN_LEVEL \ --env SAST_GOSEC_LEVEL \ --env SAST_FLAWFINDER_LEVEL \ diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index bfc3e3a7de0..9003018a521 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -24,7 +24,7 @@ in the label’s title, using the format `key::value`. For example: ![A sample scoped label](img/key_value_labels.png) -Two scoped labels with the same key but a different value cannot simultaneeously +Two scoped labels with the same key but a different value cannot simultaneously apply to an issue, epic, or merge request. For example, if an issue already has `priority::3` and you apply `priority::2` to it, `priority::3` is automatically removed from the issue. -- cgit v1.2.3 From 8973f32d428ab8961986700700a2bad51fe7d4af Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Mon, 25 Mar 2019 14:29:51 +0000 Subject: Remove cleaned up OIDs from database and cache --- doc/user/project/repository/reducing_the_repo_size_using_git.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/repository/reducing_the_repo_size_using_git.md b/doc/user/project/repository/reducing_the_repo_size_using_git.md index 672567a8d7d..2339759ecc8 100644 --- a/doc/user/project/repository/reducing_the_repo_size_using_git.md +++ b/doc/user/project/repository/reducing_the_repo_size_using_git.md @@ -98,6 +98,12 @@ up its own internal state, maximizing the space saved. `git gc` against the repository. You will receive an email once it has completed. +This process will remove some copies of the rewritten commits from GitLab's +cache and database, but there are still numerous gaps in coverage - at present, +some of the copies may persist indefinitely. [Clearing the instance cache] +(../../../administration/raketasks/maintenance.md#clear-redis-cache) may help to +remove some of them, but it should not be depended on for security purposes! + ## Using `git filter-branch` 1. Navigate to your repository: -- cgit v1.2.3 From f06941031c60984e680ecff46c699357c5916ab1 Mon Sep 17 00:00:00 2001 From: Simon Hardt Date: Mon, 6 May 2019 11:04:20 +0000 Subject: remove note that multi-line suggestions are not yet available (#53310 is now done) --- doc/user/discussions/index.md | 5 ----- 1 file changed, 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 248f8395db1..9327865c682 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -385,11 +385,6 @@ the Merge Request authored by the user that applied them. ![Add a new comment](img/insert_suggestion.png) - > **Note:** - The suggestion will only affect the commented line. Multi-line - suggestions are currently not supported. Will be introduced by - [#53310](https://gitlab.com/gitlab-org/gitlab-ce/issues/53310). - 1. In the comment, add your suggestion to the pre-populated code block: ![Add a suggestion into a code block tagged properly](img/make_suggestion.png) -- cgit v1.2.3 From c8a530a319d6e2550f41cbf61203e6b2712dc7e0 Mon Sep 17 00:00:00 2001 From: Peter Leitzen Date: Mon, 6 May 2019 16:24:14 +0000 Subject: Show health graphs on group-level Tweak cluster helper and refactor its specs. --- doc/user/group/clusters/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index ae09453ce52..53c82169e15 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -28,6 +28,7 @@ deployments. | [Helm Tiller](https://docs.helm.sh) | 11.6+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | | [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress) | 11.6+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps](../../../topics/autodevops/index.md) or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | | [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | +| [Prometheus](https://prometheus.io/docs/introduction/overview/) | 11.11+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | | [GitLab Runner](https://docs.gitlab.com/runner/) | 11.10+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](../../project/clusters/index.md#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | NOTE: **Note:** @@ -38,8 +39,6 @@ applications in a group-level cluster is planned for future releases. For update - Support installing [JupyterHub in group-level clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51989) -- Support installing [Prometheus in group-level - clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51963) ## RBAC compatibility -- cgit v1.2.3 From d24d77a93a64e4698163c5ca579954f61ad9248a Mon Sep 17 00:00:00 2001 From: Paul Slaughter Date: Mon, 6 May 2019 12:56:48 -0500 Subject: Resolve discussion when suggestion is applied - Adds color and a tooltip to describe this new behavior - Does not resolve if discussion is already resolved - Adds an action `resolveDiscussion` to simplify `toggleResolveNote` - Updates docs https://gitlab.com/gitlab-org/gitlab-ce/issues/54405 --- doc/user/discussions/index.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 248f8395db1..9c29265847e 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -401,13 +401,10 @@ the Merge Request authored by the user that applied them. ![Apply suggestions](img/suggestion.png) - > **Note:** - Discussions are _not_ automatically resolved. Will be introduced by - [#54405](https://gitlab.com/gitlab-org/gitlab-ce/issues/54405). - Once the author applies a suggestion, it will be marked with the **Applied** label, -and GitLab will create a new commit with the message `Apply suggestion to ` -and push the suggested change directly into the codebase in the merge request's branch. +the discussion will be automatically resolved, and GitLab will create a new commit +with the message `Apply suggestion to ` and push the suggested change +directly into the codebase in the merge request's branch. [Developer permission](../permissions.md) is required to do so. > **Note:** -- cgit v1.2.3 From 92663f73235456c5872d9ca572e572134ed4d41c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 7 May 2019 18:53:25 +0000 Subject: Document EE License Auto Import During Install - Document how to properly configure `GITLAB_LICENSE_FILE` environment variable in source and omnibus installations. Resolves: https://gitlab.com/gitlab-org/gitlab-ee/issues/10808 Signed-off-by: Robert Marshall --- doc/user/admin_area/license.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/license.md b/doc/user/admin_area/license.md index 45f986d480f..49959a9daef 100644 --- a/doc/user/admin_area/license.md +++ b/doc/user/admin_area/license.md @@ -2,7 +2,8 @@ To activate all GitLab Enterprise Edition (EE) functionality, you need to upload a license. Once you've received your license from GitLab Inc., you can upload it -by **signing into your GitLab instance as an admin**. +by **signing into your GitLab instance as an admin** or add it at +installation time. The license has the form of a base64 encoded ASCII text with a `.gitlab-license` extension and can be obtained when you [purchase one][pricing] or when you sign @@ -42,6 +43,36 @@ Otherwise, you can: "Enter license key" option, copy the license, paste it into the "License key" field and click **Upload license**. +## Add your license at install time + +The license may be automatically injected during installation using one of +two methods. + +The first requires a license file named `Gitlab.gitlab-release`. + +Place it in the `config/` directory if installing from source or in the +`/etc/gitlab/` directory if installing Omnibus. + +The second allows the administrator to configure the location and +filename of the license. + +Source installations should set the `GITLAB_LICENSE_FILE` environment +variable with the path to a valid GitLab Enterprise Edition license. + +```sh +export GITLAB_LICENSE_FILE="/path/to/license/file" +``` + +Omnibus installations should add this entry to `gitlab.rb`: + +```ruby +gitlab_rails['license_file'] = "/path/to/license/file" +``` + +CAUTION:: **Caution:** +These methods will only add a license at the time of installation. Use the +admin area in the web ui to renew or upgrade licenses. + --- Once the license is uploaded, all GitLab Enterprise Edition functionality -- cgit v1.2.3 From 8f044f9cd41f7e4d827398cef3b962bcf5b5439a Mon Sep 17 00:00:00 2001 From: Emilie Schario Date: Tue, 7 May 2019 23:44:38 +0000 Subject: Add info to docs about mapping a ping to the category it belongs to. --- doc/user/admin_area/settings/usage_statistics.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/usage_statistics.md b/doc/user/admin_area/settings/usage_statistics.md index e165a120162..8b5d80efb0d 100644 --- a/doc/user/admin_area/settings/usage_statistics.md +++ b/doc/user/admin_area/settings/usage_statistics.md @@ -48,6 +48,8 @@ You can view the exact JSON payload in the administration panel. To view the pay 1. Expand **Settings** in the left sidebar and click on **Metrics and profiling**. 1. Expand **Usage statistics** and click on the **Preview payload** button. +You can see how [the usage ping data maps to different stages of the product](https://gitlab.com/gitlab-data/analytics/blob/master/transform/snowflake-dbt/data/ping_metrics_to_stage_mapping_data.csv). + ### Deactivate the usage ping The usage ping is opt-out. If you want to deactivate this feature, go to -- cgit v1.2.3 From 64491af8db3efdb94af30c73926310bea5378af4 Mon Sep 17 00:00:00 2001 From: gfyoung Date: Fri, 10 May 2019 08:23:05 +0000 Subject: Update option to enforce HTTPS --- doc/user/project/pages/lets_encrypt_for_gitlab_pages.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md index ea22f3e905b..da1b7c59c8e 100644 --- a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md +++ b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md @@ -145,8 +145,8 @@ Now that your certificate has been issued, let's add it to your Pages site: 1. Visit your website at `https://example.com`. To force `https` connections on your site, navigate to your -project's **Settings > Pages** and check **Force domains with SSL -certificates to use HTTPS**. +project's **Settings > Pages** and check **Force HTTPS (requires +valid certificates)**. ## Renewal -- cgit v1.2.3 From bf8a25c486786569a3ec82e8558d922107482659 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Fri, 10 May 2019 16:23:00 +0000 Subject: Update CI minutes docs to reflect this is available to all plans --- doc/user/admin_area/settings/continuous_integration.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index 834a1e2423a..42fc4efa4ce 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -98,8 +98,7 @@ the group. NOTE: **Note:** Only available on GitLab.com. -If you have a Group with a [paid plan](https://about.gitlab.com/pricing/#gitlab-com) on GitLab.com, -then you can purchase additional CI minutes so your pipelines will not be blocked after you have +You can purchase additional CI minutes so your pipelines will not be blocked after you have used all your CI minutes from your main quota. In order to purchase additional minutes, you should follow these steps: -- cgit v1.2.3 From aabdac77c592a0ec6c9bb3a009461c0cd8612f0c Mon Sep 17 00:00:00 2001 From: Maneschi Romain Date: Sun, 12 May 2019 15:25:15 +0000 Subject: update `updated_at`field too Not my initial idea but when I write the issue I see this field is wrong --- doc/user/project/integrations/webhooks.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index 8e1603f9ec9..10eb3a4f3b7 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -321,8 +321,14 @@ X-Gitlab-Event: Issue Hook "group_id": 41 }], "changes": { - "updated_by_id": [null, 1], - "updated_at": ["2017-09-15 16:50:55 UTC", "2017-09-15 16:52:00 UTC"], + "updated_by_id": { + "previous": null, + "current": 1 + }, + "updated_at": { + "previous": "2017-09-15 16:50:55 UTC", + "current": "2017-09-15 16:52:00 UTC" + }, "labels": { "previous": [{ "id": 206, @@ -851,8 +857,14 @@ X-Gitlab-Event: Merge Request Hook "group_id": 41 }], "changes": { - "updated_by_id": [null, 1], - "updated_at": ["2017-09-15 16:50:55 UTC", "2017-09-15 16:52:00 UTC"], + "updated_by_id": { + "previous": null, + "current": 1 + }, + "updated_at": { + "previous": "2017-09-15 16:50:55 UTC", + "current":"2017-09-15 16:52:00 UTC" + }, "labels": { "previous": [{ "id": 206, -- cgit v1.2.3 From 503a861e8674d2ee6c6c294532b7cd2e6d8f43dc Mon Sep 17 00:00:00 2001 From: Evan Read Date: Tue, 14 May 2019 00:42:23 +0000 Subject: Use real mermaid for mermaid result --- doc/user/img/mermaid_diagram_render_gfm.png | Bin 2202 -> 0 bytes doc/user/markdown.md | 13 +++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 doc/user/img/mermaid_diagram_render_gfm.png (limited to 'doc/user') diff --git a/doc/user/img/mermaid_diagram_render_gfm.png b/doc/user/img/mermaid_diagram_render_gfm.png deleted file mode 100644 index 9d192a30a85..00000000000 Binary files a/doc/user/img/mermaid_diagram_render_gfm.png and /dev/null differ diff --git a/doc/user/markdown.md b/doc/user/markdown.md index c1c2c036bae..c4f9fe45211 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -480,7 +480,7 @@ GitLab 10.3. > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#mermaid -It is possible to generate diagrams and flowcharts from text using [Mermaid][mermaid]. +It is possible to generate diagrams and flowcharts from text using [Mermaid](https://mermaidjs.github.io/). In order to generate a diagram or flowchart, you should write your text inside the `mermaid` block. @@ -496,9 +496,15 @@ Example: Becomes: - +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` -For details see the [Mermaid official page][mermaid]. +For details see the [Mermaid official page](https://mermaidjs.github.io/). ### Front matter @@ -1072,7 +1078,6 @@ A link starting with a `/` is relative to the wiki root. [^2]: This is my awesome footnote. [markdown.md]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md -[mermaid]: https://mermaidjs.github.io/ "Mermaid website" [rouge]: http://rouge.jneen.net/ "Rouge website" [redcarpet]: https://github.com/vmg/redcarpet "Redcarpet website" [katex]: https://github.com/Khan/KaTeX "KaTeX website" -- cgit v1.2.3 From 8a7eb934b5a701aaeeb2e8990f3c9905d84039b6 Mon Sep 17 00:00:00 2001 From: Tristan Williams <2390023-tristan@users.noreply.gitlab.com> Date: Tue, 14 May 2019 05:47:08 +0000 Subject: Update group project templates to premium/silver --- doc/user/group/custom_project_templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/custom_project_templates.md b/doc/user/group/custom_project_templates.md index 8e101407ac0..f67325272a6 100644 --- a/doc/user/group/custom_project_templates.md +++ b/doc/user/group/custom_project_templates.md @@ -1,4 +1,4 @@ -# Custom group-level project templates **[PREMIUM ONLY]** +# Custom group-level project templates **[PREMIUM]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6861) in [GitLab Premium](https://about.gitlab.com/pricing) 11.6. -- cgit v1.2.3 From 1b5149f53d49abea6347ae446d6953d7e739d2e1 Mon Sep 17 00:00:00 2001 From: Quantum Operations Date: Tue, 14 May 2019 11:17:55 +0000 Subject: fix a typo of sast --- doc/user/application_security/dast/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md index 904c9e8fefe..f3b7d7fd471 100644 --- a/doc/user/application_security/dast/index.md +++ b/doc/user/application_security/dast/index.md @@ -138,7 +138,7 @@ variables: #### Customizing the DAST settings -The SAST settings can be changed through environment variables by using the +The DAST settings can be changed through environment variables by using the [`variables`](../../../ci/yaml/README.md#variables) parameter in `.gitlab-ci.yml`. These variables are documented in the [DAST README](https://gitlab.com/gitlab-org/security-products/dast#settings). -- cgit v1.2.3 From 6a2875e1e62a7d22cc151c622661390bc9504121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= Date: Tue, 14 May 2019 06:56:28 -0500 Subject: Update extra CI minutes docs Apply suggestion to continuous_integration.md --- doc/user/admin_area/settings/continuous_integration.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index 42fc4efa4ce..9dd476656ed 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -118,7 +118,15 @@ will be synced to your Group and you can visualize it from the ![Additional minutes](img/additional_minutes.png) -NOTE: **Important note**: If you have some minutes used over your default quota, these minutes will +Be aware that: + +1. If you have purchased extra CI minutes before the purchase of a paid plan, +we will calculate a pro-rated charge for your paid plan. That means you may +be charged for less than one year since your subscription was previously +created with the extra CI minutes. +1. Once the extra CI minutes has been assigned to a Group they cannot be transferred +to a different Group. +1. If you have some minutes used over your default quota, these minutes will be deducted from your Additional Minutes quota immediately after your purchase of additional minutes. -- cgit v1.2.3 From 929a864c250a70ffe77afda15bd24230918be519 Mon Sep 17 00:00:00 2001 From: Brett Walker Date: Wed, 15 May 2019 09:30:31 -0500 Subject: Example should better reflect our default 'origin' --- doc/user/project/merge_requests/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 2bb2d906453..fb0a8f7d965 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -539,13 +539,13 @@ Add the following alias to your `~/.gitconfig`: Now you can check out a particular merge request from any repository and any remote. For example, to check out the merge request with ID 5 as shown in GitLab -from the `upstream` remote, do: +from the `origin` remote, do: ``` -git mr upstream 5 +git mr origin 5 ``` -This will fetch the merge request into a local `mr-upstream-5` branch and check +This will fetch the merge request into a local `mr-origin-5` branch and check it out. #### Checkout locally by modifying `.git/config` for a given repository -- cgit v1.2.3 From ed02e2f58a4340c7257d6b1e084aafc46bff3461 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 16 May 2019 18:03:13 -0500 Subject: Resync the docs that were submitted to EE instead of CE --- doc/user/application_security/container_scanning/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/application_security/container_scanning/index.md b/doc/user/application_security/container_scanning/index.md index ce86ade3c1a..5c635b09503 100644 --- a/doc/user/application_security/container_scanning/index.md +++ b/doc/user/application_security/container_scanning/index.md @@ -122,12 +122,13 @@ container_scanning: ## https://docs.gitlab.com/ee/ci/variables/#predefined-environment-variables CI_APPLICATION_REPOSITORY: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG CI_APPLICATION_TAG: $CI_COMMIT_SHA + CLAIR_LOCAL_SCAN_VERSION: v2.0.8_fe9b059d930314b54c78f75afe265955faf4fdc1 allow_failure: true services: - docker:stable-dind script: - docker run -d --name db arminc/clair-db:latest - - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.6 + - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:${CLAIR_LOCAL_SCAN_VERSION} - apk add -U wget ca-certificates - docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 @@ -164,12 +165,13 @@ container_scanning: ## https://docs.gitlab.com/ee/ci/variables/#predefined-environment-variables CI_APPLICATION_REPOSITORY: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG CI_APPLICATION_TAG: $CI_COMMIT_SHA + CLAIR_LOCAL_SCAN_VERSION: v2.0.8_fe9b059d930314b54c78f75afe265955faf4fdc1 allow_failure: true services: - docker:stable-dind script: - docker run -d --name db arminc/clair-db:latest - - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.6 + - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:${CLAIR_LOCAL_SCAN_VERSION} - apk add -U wget ca-certificates - docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 -- cgit v1.2.3 From afe009f5349cc982c386e068e1497d636d2230b6 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 16 May 2019 18:03:13 -0500 Subject: Fix docs intro version for force auth for approvers This feature was introduced in 12.0, not in 11.11. --- doc/user/project/merge_requests/merge_request_approvals.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md index 265871a7b4b..ea86633d9e2 100644 --- a/doc/user/project/merge_requests/merge_request_approvals.md +++ b/doc/user/project/merge_requests/merge_request_approvals.md @@ -294,6 +294,18 @@ enabling [**Prevent approval of merge requests by their committers**](#prevent-a 1. Tick the checkbox **Prevent approval of merge requests by their committers**. 1. Click **Save changes**. +## Require authentication when approving a merge request **[STARTER]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5981) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.0. + +You can force the approver to enter a password in order to authenticate who is approving the merge request by +enabling **Require user password to approve**. This enables an Electronic Signature +for approvals such as the one defined by [CFR Part 11](https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=11&showFR=1&subpartNode=21:1.0.1.1.8.3)): + +1. Navigate to your project's **Settings > General** and expand **Merge request approvals**. +1. Tick the checkbox **Require user password to approve**. +1. Click **Save changes**. + ## Merge requests with different source branch and target branch projects If the merge request source branch and target branch belong to different -- cgit v1.2.3 From 1b3c419355be6667a63ff5956535fbc4ee697f94 Mon Sep 17 00:00:00 2001 From: Paul Gascou-Vaillancourt Date: Fri, 17 May 2019 00:23:09 +0000 Subject: Fix emojis URLs --- doc/user/markdown.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index c4f9fe45211..5dad9621802 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -286,15 +286,15 @@ On Linux, you can download [Noto Color Emoji](https://www.google.com/get/noto/he Ubuntu 18.04 (like many modern Linux distros) has this font installed by default. ``` -Sometimes you want to around a bit and add some to your . Well we have a gift for you: +Sometimes you want to around a bit and add some to your . Well we have a gift for you: -You can use emoji anywhere GFM is supported. +You can use emoji anywhere GFM is supported. -You can use it to point out a or warn about patches. And if someone improves your really code, send them some . People will you for that. +You can use it to point out a or warn about patches. And if someone improves your really code, send them some . People will you for that. -If you are new to this, don't be . You can easily join the emoji . All you need to do is to look up one of the supported codes. +If you are new to this, don't be . You can easily join the emoji . All you need to do is to look up one of the supported codes. -Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. +Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of all supported emoji codes. Most emoji are natively supported on macOS, Windows, iOS, Android and will fallback to image-based emoji where there is lack of support. -- cgit v1.2.3 From 6adfe606245034c8cf37b97d5d9a8e7d9e53600a Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 17 May 2019 00:29:35 +0000 Subject: Docs: Delete orphaned images in `merge_requests/img` --- .../project/merge_requests/img/container_scanning.png | Bin 32549 -> 0 bytes .../img/create-issue-with-list-hover.png | Bin 106954 -> 0 bytes doc/user/project/merge_requests/img/dast_all.png | Bin 25844 -> 0 bytes doc/user/project/merge_requests/img/dast_single.png | Bin 69353 -> 0 bytes .../project/merge_requests/img/dependency_scanning.png | Bin 16167 -> 0 bytes .../project/merge_requests/img/interactive_reports.png | Bin 23190 -> 0 bytes .../project/merge_requests/img/license_management.png | Bin 5184 -> 0 bytes .../merge_requests/img/license_management_decision.png | Bin 5981 -> 0 bytes .../img/license_management_pipeline_tab.png | Bin 12115 -> 0 bytes .../merge_requests/img/license_management_settings.png | Bin 13300 -> 0 bytes .../merge_requests/img/revert_changes_commit.png | Bin 95647 -> 0 bytes .../project/merge_requests/img/revert_changes_mr.png | Bin 104954 -> 0 bytes doc/user/project/merge_requests/img/sast.png | Bin 24876 -> 0 bytes .../project/merge_requests/img/security_report.png | Bin 38475 -> 0 bytes .../merge_requests/img/vulnerability_solution.png | Bin 3421 -> 0 bytes 15 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/user/project/merge_requests/img/container_scanning.png delete mode 100644 doc/user/project/merge_requests/img/create-issue-with-list-hover.png delete mode 100644 doc/user/project/merge_requests/img/dast_all.png delete mode 100644 doc/user/project/merge_requests/img/dast_single.png delete mode 100644 doc/user/project/merge_requests/img/dependency_scanning.png delete mode 100644 doc/user/project/merge_requests/img/interactive_reports.png delete mode 100644 doc/user/project/merge_requests/img/license_management.png delete mode 100644 doc/user/project/merge_requests/img/license_management_decision.png delete mode 100644 doc/user/project/merge_requests/img/license_management_pipeline_tab.png delete mode 100644 doc/user/project/merge_requests/img/license_management_settings.png delete mode 100644 doc/user/project/merge_requests/img/revert_changes_commit.png delete mode 100644 doc/user/project/merge_requests/img/revert_changes_mr.png delete mode 100644 doc/user/project/merge_requests/img/sast.png delete mode 100644 doc/user/project/merge_requests/img/security_report.png delete mode 100644 doc/user/project/merge_requests/img/vulnerability_solution.png (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/container_scanning.png b/doc/user/project/merge_requests/img/container_scanning.png deleted file mode 100644 index e47f62acd9d..00000000000 Binary files a/doc/user/project/merge_requests/img/container_scanning.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/create-issue-with-list-hover.png b/doc/user/project/merge_requests/img/create-issue-with-list-hover.png deleted file mode 100644 index 7d70e8299f5..00000000000 Binary files a/doc/user/project/merge_requests/img/create-issue-with-list-hover.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/dast_all.png b/doc/user/project/merge_requests/img/dast_all.png deleted file mode 100644 index b6edc928dc3..00000000000 Binary files a/doc/user/project/merge_requests/img/dast_all.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/dast_single.png b/doc/user/project/merge_requests/img/dast_single.png deleted file mode 100644 index 26ca4bde786..00000000000 Binary files a/doc/user/project/merge_requests/img/dast_single.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/dependency_scanning.png b/doc/user/project/merge_requests/img/dependency_scanning.png deleted file mode 100644 index 18df356f846..00000000000 Binary files a/doc/user/project/merge_requests/img/dependency_scanning.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/interactive_reports.png b/doc/user/project/merge_requests/img/interactive_reports.png deleted file mode 100644 index 9f9812dc69d..00000000000 Binary files a/doc/user/project/merge_requests/img/interactive_reports.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/license_management.png b/doc/user/project/merge_requests/img/license_management.png deleted file mode 100644 index cdce6b5fe38..00000000000 Binary files a/doc/user/project/merge_requests/img/license_management.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/license_management_decision.png b/doc/user/project/merge_requests/img/license_management_decision.png deleted file mode 100644 index 0763130c375..00000000000 Binary files a/doc/user/project/merge_requests/img/license_management_decision.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/license_management_pipeline_tab.png b/doc/user/project/merge_requests/img/license_management_pipeline_tab.png deleted file mode 100644 index 80ffca815b9..00000000000 Binary files a/doc/user/project/merge_requests/img/license_management_pipeline_tab.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/license_management_settings.png b/doc/user/project/merge_requests/img/license_management_settings.png deleted file mode 100644 index b5490e59074..00000000000 Binary files a/doc/user/project/merge_requests/img/license_management_settings.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/revert_changes_commit.png b/doc/user/project/merge_requests/img/revert_changes_commit.png deleted file mode 100644 index c9dd0019024..00000000000 Binary files a/doc/user/project/merge_requests/img/revert_changes_commit.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/revert_changes_mr.png b/doc/user/project/merge_requests/img/revert_changes_mr.png deleted file mode 100644 index 06b841b3002..00000000000 Binary files a/doc/user/project/merge_requests/img/revert_changes_mr.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/sast.png b/doc/user/project/merge_requests/img/sast.png deleted file mode 100644 index 2c75592c32a..00000000000 Binary files a/doc/user/project/merge_requests/img/sast.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/security_report.png b/doc/user/project/merge_requests/img/security_report.png deleted file mode 100644 index ba41b707238..00000000000 Binary files a/doc/user/project/merge_requests/img/security_report.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/vulnerability_solution.png b/doc/user/project/merge_requests/img/vulnerability_solution.png deleted file mode 100644 index 7443b9b6eea..00000000000 Binary files a/doc/user/project/merge_requests/img/vulnerability_solution.png and /dev/null differ -- cgit v1.2.3 From 795681e2f7060f41a31a4d14b8a6d3ea3eaafe7c Mon Sep 17 00:00:00 2001 From: Jeremy Watson Date: Fri, 17 May 2019 07:09:01 +0000 Subject: SSO enforcement docs details added from 11.11 --- doc/user/group/saml_sso/index.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md index ee3137d032e..53116606201 100644 --- a/doc/user/group/saml_sso/index.md +++ b/doc/user/group/saml_sso/index.md @@ -22,8 +22,16 @@ SAML SSO for groups is used only as a convenient way to add users and does not s ![Issuer and callback for configuring SAML identity provider with GitLab.com](img/group_saml_configuration_information.png) -NOTE: **Note:** -Partial SSO enforcement was introduced in [11.8](https://gitlab.com/gitlab-org/gitlab-ee/issues/5291). With this option enabled, users must use your group's GitLab single sign on URL to be added to the group or be added via SCIM. Users can no longer be added manually. After a user has been added to the group, GitLab does not continue to enforce the use of SSO, but we'll [add a persistent check](https://gitlab.com/gitlab-org/gitlab-ee/issues/9255) in a later version. +### SSO enforcement + +SSO enforcement was: + +- [Introduced in GitLab 11.8](https://gitlab.com/gitlab-org/gitlab-ee/issues/5291). +- [Improved upon in GitLab 11.11 with ongoing enforcement in the GitLab UI](https://gitlab.com/gitlab-org/gitlab-ee/issues/9255). + +With this option enabled, users must use your group's GitLab single sign on URL to be added to the group or be added via SCIM. Users cannot be added manually, and may only access project/group resources via the UI by signing in through the SSO URL. + +We intend to add a similar SSO requirement for [Git and API activity](https://gitlab.com/gitlab-org/gitlab-ee/issues/9152) in the future. ### NameID -- cgit v1.2.3 From a43909a65979530e8170f7bb9fc5d6ceeb9e400d Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Fri, 17 May 2019 17:34:44 +0000 Subject: Add documentation for dependency proxy feature Signed-off-by: Dmitriy Zaporozhets --- .../img/group_dependency_proxy.png | Bin 0 -> 40162 bytes doc/user/group/dependency_proxy/index.md | 74 +++++++++++++++++++++ doc/user/group/index.md | 4 ++ 3 files changed, 78 insertions(+) create mode 100644 doc/user/group/dependency_proxy/img/group_dependency_proxy.png create mode 100644 doc/user/group/dependency_proxy/index.md (limited to 'doc/user') diff --git a/doc/user/group/dependency_proxy/img/group_dependency_proxy.png b/doc/user/group/dependency_proxy/img/group_dependency_proxy.png new file mode 100644 index 00000000000..035aff0b6c4 Binary files /dev/null and b/doc/user/group/dependency_proxy/img/group_dependency_proxy.png differ diff --git a/doc/user/group/dependency_proxy/index.md b/doc/user/group/dependency_proxy/index.md new file mode 100644 index 00000000000..4fc2d8e9509 --- /dev/null +++ b/doc/user/group/dependency_proxy/index.md @@ -0,0 +1,74 @@ +# Dependency Proxy **[PREMIUM]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11. + +NOTE: **Note:** +This is the user guide. In order to use the dependency proxy, an administrator +must first [configure it](../../../administration/dependency_proxy.md). + +For many organizations, it is desirable to have a local proxy for frequently used +upstream images/packages. In the case of CI/CD, the proxy is responsible for +receiving a request and returning the upstream image from a registry, acting +as a pull-through cache. + +The dependency proxy is available in the group level. To access it, navigate to +a group's **Overview > Dependency Proxy**. + +![Dependency Proxy group page](img/group_dependency_proxy.png) + +## Supported dependency proxies + +NOTE: **Note:** +For a list of the upcoming additions to the proxies, visit the +[direction page](https://about.gitlab.com/direction/package/dependency_proxy/#top-vision-items). + +The following dependency proxies are supported. + +| Dependency proxy | GitLab version | +| ---------------- | -------------- | +| Docker | 11.11+ | + +## Using the Docker dependency proxy + +With the Docker dependency proxy, you can use GitLab as a source for a Docker image. +To get a Docker image into the dependency proxy: + +1. Find the proxy URL on your group's page under **Overview > Dependency Proxy**, + for example `gitlab.com/groupname/dependency_proxy/containers`. +1. Trigger GitLab to pull the Docker image you want (e.g., `alpine:latest` or + `linuxserver/nextcloud:latest`) and store it in the proxy storage by using + one of the following ways: + + - Manually pulling the Docker image: + + ```bash + docker pull gitlab.com/groupname/dependency_proxy/containers/alpine:latest + ``` + + - From a `Dockerfile`: + + ```bash + FROM gitlab.com/groupname/dependency_proxy/containers/alpine:latest + ``` + + - In [`.gitlab-ci.yml`](../../../ci/yaml/README.md#image): + + ```bash + image: gitlab.com/groupname/dependency_proxy/containers/alpine:latest + ``` + +GitLab will then pull the Docker image from Docker Hub and will cache the blobs +on the GitLab server. The next time you pull the same image, it will get the latest +information about the image from Docker Hub but will serve the existing blobs +from GitLab. + +The blobs are kept forever, and there is no hard limit on how much data can be +stored. + +## Limitations + +The following limitations apply: + +- Only public groups are supported (authentication is not supported yet). +- Only Docker Hub is supported. +- This feature requires Docker Hub being available. diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 06564fd6cd1..a5e3bfda70e 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -368,5 +368,9 @@ and issues) performed by your group members. With [GitLab Issues Analytics](issues_analytics/index.md), in groups, you can see a bar chart of the number of issues created each month. +## Dependency Proxy **[PREMIUM]** + +Use GitLab as a [dependency proxy](dependency_proxy/index.md) for upstream Docker images. + [ee]: https://about.gitlab.com/pricing/ [ee-2534]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2534 -- cgit v1.2.3 From 644a639295d0e33ad6db591ee2399bb2c8e9d26e Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Fri, 17 May 2019 17:56:23 +0000 Subject: Add pod logs to our cluster docs page Add "read more" line to pod logs Fix bad link to pod logs --- doc/user/project/clusters/index.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 157afb3a78c..afad8f0fa9d 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -674,11 +674,6 @@ To remove the Kubernetes cluster integration from your project, simply click the **Remove integration** button. You will then be able to follow the procedure and add a Kubernetes cluster again. -## View Kubernetes pod logs from GitLab **[ULTIMATE]** - -Learn how to easily -[view the logs of running pods in connected Kubernetes clusters](kubernetes_pod_logs.md). - ## What you can get with the Kubernetes integration Here's what you can do with GitLab if you enable the Kubernetes integration. @@ -701,6 +696,12 @@ the need to leave GitLab. [Read more about Canary Deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html) +### Pod logs **[ULTIMATE]** + +GitLab makes it easy to view the logs of running pods in connected Kubernetes clusters. By displaying the logs directly in GitLab, developers can avoid having to manage console tools or jump to a different interface. + +[Read more about Kubernetes pod logs](kubernetes_pod_logs.md) + ### Kubernetes monitoring Automatically detect and monitor Kubernetes metrics. Automatic monitoring of -- cgit v1.2.3 From 20e2c8e024e2492f90b48593bfdc9a956f9a12e9 Mon Sep 17 00:00:00 2001 From: Lucas Charles Date: Fri, 17 May 2019 19:06:51 +0000 Subject: Update merge_request_approvals.md - fix typos --- doc/user/project/merge_requests/merge_request_approvals.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md index ea86633d9e2..d0291c4cef5 100644 --- a/doc/user/project/merge_requests/merge_request_approvals.md +++ b/doc/user/project/merge_requests/merge_request_approvals.md @@ -77,7 +77,7 @@ request approval rules: 1. Navigate to your project's **Settings > General** and expand **Merge request approvals**. 1. Click **Add approvers** to create a new approval rule. -1. Just like in [GitLab Starter](#editing-approvals), select the approval members and aprovals required. +1. Just like in [GitLab Starter](#editing-approvals), select the approval members and approvals required. 1. Give the approval rule a name that describes the set of approvers selected. 1. Click **Add approvers** to submit the new rule. @@ -173,8 +173,7 @@ the merge request. To enable this feature: 1. Navigate to your project's **Settings > General** and expand **Merge request approvals**. -1. Tick the **Require approval from code owners** checkbox - checkbox. +1. Tick the **Require approval from code owners** checkbox. 1. Click **Save changes**. When this feature is enabled, all merge requests will need approval -- cgit v1.2.3 From 54358d6199ea9262c6da23c990df10abffffe53f Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 17 May 2019 19:21:48 +0000 Subject: Docs: Remove all remaining orphaned images. --- doc/user/admin_area/img/license_no_license_message.png | Bin 5778 -> 0 bytes .../img/admin_area_default_artifacts_expiration.png | Bin 5360 -> 0 bytes .../admin_area/settings/img/admin_area_group_edit.png | Bin 5869 -> 0 bytes doc/user/admin_area/settings/img/admin_area_groups.png | Bin 12088 -> 0 bytes .../settings/img/admin_area_maximum_artifacts_size.png | Bin 4771 -> 0 bytes .../img/ci_shared_runners_build_minutes_quota.png | Bin 6000 -> 0 bytes doc/user/admin_area/settings/img/group_quota_view.png | Bin 1797 -> 0 bytes doc/user/admin_area/settings/img/group_settings.png | Bin 3345 -> 0 bytes doc/user/group/img/group_issue_board.png | Bin 63528 -> 0 bytes doc/user/group/img/new_group_form.png | Bin 32510 -> 0 bytes doc/user/project/img/assignee_lists.png | Bin 134635 -> 0 bytes doc/user/project/img/issue_board.png | Bin 284759 -> 0 bytes doc/user/project/img/labels_sidebar_inline.png | Bin 11083 -> 0 bytes doc/user/project/img/priority_sort_order.png | Bin 69978 -> 0 bytes doc/user/project/img/project_security_dashboard.png | Bin 49062 -> 0 bytes .../project/img/protected_branches_choose_branch.png | Bin 7009 -> 0 bytes doc/user/project/img/protected_branches_error_ui.png | Bin 13117 -> 0 bytes .../import_projects_from_github_select_auth_method.png | Bin 17611 -> 0 bytes .../project/integrations/img/jira_project_name.png | Bin 26680 -> 0 bytes doc/user/project/integrations/img/jira_service.png | Bin 36976 -> 0 bytes .../integrations/img/prometheus_yaml_deploy.png | Bin 9456 -> 0 bytes doc/user/project/issues/img/group_issues_list_view.png | Bin 46595 -> 0 bytes doc/user/project/issues/img/issue_template.png | Bin 25019 -> 0 bytes .../members/img/add_new_user_to_project_settings.png | Bin 11004 -> 0 bytes doc/user/project/members/img/add_user_members_menu.png | Bin 28988 -> 0 bytes doc/user/project/members/img/max_access_level.png | Bin 34710 -> 0 bytes doc/user/project/pages/img/pages_create_project.png | Bin 6062 -> 0 bytes doc/user/project/pages/img/pages_create_user_page.png | Bin 14435 -> 0 bytes doc/user/project/pages/img/pages_dns_details.png | Bin 5350 -> 0 bytes doc/user/project/pages/img/pages_multiple_domains.png | Bin 12930 -> 0 bytes doc/user/project/pages/img/pages_new_domain_button.png | Bin 8763 -> 0 bytes doc/user/project/pages/img/pages_upload_cert.png | Bin 22888 -> 0 bytes doc/user/project/web_ide/img/enable_web_ide.png | Bin 11364 -> 0 bytes doc/user/search/img/issues_any_assignee.png | Bin 90455 -> 0 bytes doc/user/search/img/issues_author.png | Bin 55217 -> 0 bytes 35 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/user/admin_area/img/license_no_license_message.png delete mode 100644 doc/user/admin_area/settings/img/admin_area_default_artifacts_expiration.png delete mode 100644 doc/user/admin_area/settings/img/admin_area_group_edit.png delete mode 100644 doc/user/admin_area/settings/img/admin_area_groups.png delete mode 100644 doc/user/admin_area/settings/img/admin_area_maximum_artifacts_size.png delete mode 100644 doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png delete mode 100644 doc/user/admin_area/settings/img/group_quota_view.png delete mode 100644 doc/user/admin_area/settings/img/group_settings.png delete mode 100644 doc/user/group/img/group_issue_board.png delete mode 100644 doc/user/group/img/new_group_form.png delete mode 100644 doc/user/project/img/assignee_lists.png delete mode 100644 doc/user/project/img/issue_board.png delete mode 100644 doc/user/project/img/labels_sidebar_inline.png delete mode 100644 doc/user/project/img/priority_sort_order.png delete mode 100644 doc/user/project/img/project_security_dashboard.png delete mode 100644 doc/user/project/img/protected_branches_choose_branch.png delete mode 100644 doc/user/project/img/protected_branches_error_ui.png delete mode 100644 doc/user/project/import/img/import_projects_from_github_select_auth_method.png delete mode 100644 doc/user/project/integrations/img/jira_project_name.png delete mode 100644 doc/user/project/integrations/img/jira_service.png delete mode 100644 doc/user/project/integrations/img/prometheus_yaml_deploy.png delete mode 100644 doc/user/project/issues/img/group_issues_list_view.png delete mode 100644 doc/user/project/issues/img/issue_template.png delete mode 100644 doc/user/project/members/img/add_new_user_to_project_settings.png delete mode 100644 doc/user/project/members/img/add_user_members_menu.png delete mode 100644 doc/user/project/members/img/max_access_level.png delete mode 100644 doc/user/project/pages/img/pages_create_project.png delete mode 100644 doc/user/project/pages/img/pages_create_user_page.png delete mode 100644 doc/user/project/pages/img/pages_dns_details.png delete mode 100644 doc/user/project/pages/img/pages_multiple_domains.png delete mode 100644 doc/user/project/pages/img/pages_new_domain_button.png delete mode 100644 doc/user/project/pages/img/pages_upload_cert.png delete mode 100644 doc/user/project/web_ide/img/enable_web_ide.png delete mode 100644 doc/user/search/img/issues_any_assignee.png delete mode 100644 doc/user/search/img/issues_author.png (limited to 'doc/user') diff --git a/doc/user/admin_area/img/license_no_license_message.png b/doc/user/admin_area/img/license_no_license_message.png deleted file mode 100644 index 87b397f7905..00000000000 Binary files a/doc/user/admin_area/img/license_no_license_message.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/admin_area_default_artifacts_expiration.png b/doc/user/admin_area/settings/img/admin_area_default_artifacts_expiration.png deleted file mode 100644 index 723be23e77b..00000000000 Binary files a/doc/user/admin_area/settings/img/admin_area_default_artifacts_expiration.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/admin_area_group_edit.png b/doc/user/admin_area/settings/img/admin_area_group_edit.png deleted file mode 100644 index c9bd2f10b36..00000000000 Binary files a/doc/user/admin_area/settings/img/admin_area_group_edit.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/admin_area_groups.png b/doc/user/admin_area/settings/img/admin_area_groups.png deleted file mode 100644 index ebdee0eafdc..00000000000 Binary files a/doc/user/admin_area/settings/img/admin_area_groups.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/admin_area_maximum_artifacts_size.png b/doc/user/admin_area/settings/img/admin_area_maximum_artifacts_size.png deleted file mode 100644 index 3f827f1f7a3..00000000000 Binary files a/doc/user/admin_area/settings/img/admin_area_maximum_artifacts_size.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png b/doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png deleted file mode 100644 index 269a3cf1fbc..00000000000 Binary files a/doc/user/admin_area/settings/img/ci_shared_runners_build_minutes_quota.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/group_quota_view.png b/doc/user/admin_area/settings/img/group_quota_view.png deleted file mode 100644 index 791bfd868e0..00000000000 Binary files a/doc/user/admin_area/settings/img/group_quota_view.png and /dev/null differ diff --git a/doc/user/admin_area/settings/img/group_settings.png b/doc/user/admin_area/settings/img/group_settings.png deleted file mode 100644 index a849d9cfdc1..00000000000 Binary files a/doc/user/admin_area/settings/img/group_settings.png and /dev/null differ diff --git a/doc/user/group/img/group_issue_board.png b/doc/user/group/img/group_issue_board.png deleted file mode 100644 index a0da74a320f..00000000000 Binary files a/doc/user/group/img/group_issue_board.png and /dev/null differ diff --git a/doc/user/group/img/new_group_form.png b/doc/user/group/img/new_group_form.png deleted file mode 100644 index 1c4d3ec6ceb..00000000000 Binary files a/doc/user/group/img/new_group_form.png and /dev/null differ diff --git a/doc/user/project/img/assignee_lists.png b/doc/user/project/img/assignee_lists.png deleted file mode 100644 index f2660cd8f80..00000000000 Binary files a/doc/user/project/img/assignee_lists.png and /dev/null differ diff --git a/doc/user/project/img/issue_board.png b/doc/user/project/img/issue_board.png deleted file mode 100644 index b753593d212..00000000000 Binary files a/doc/user/project/img/issue_board.png and /dev/null differ diff --git a/doc/user/project/img/labels_sidebar_inline.png b/doc/user/project/img/labels_sidebar_inline.png deleted file mode 100644 index 2186f14ea92..00000000000 Binary files a/doc/user/project/img/labels_sidebar_inline.png and /dev/null differ diff --git a/doc/user/project/img/priority_sort_order.png b/doc/user/project/img/priority_sort_order.png deleted file mode 100644 index cd1dd8237c0..00000000000 Binary files a/doc/user/project/img/priority_sort_order.png and /dev/null differ diff --git a/doc/user/project/img/project_security_dashboard.png b/doc/user/project/img/project_security_dashboard.png deleted file mode 100644 index 3294e59e943..00000000000 Binary files a/doc/user/project/img/project_security_dashboard.png and /dev/null differ diff --git a/doc/user/project/img/protected_branches_choose_branch.png b/doc/user/project/img/protected_branches_choose_branch.png deleted file mode 100644 index c2848db9c96..00000000000 Binary files a/doc/user/project/img/protected_branches_choose_branch.png and /dev/null differ diff --git a/doc/user/project/img/protected_branches_error_ui.png b/doc/user/project/img/protected_branches_error_ui.png deleted file mode 100644 index 62839e49d89..00000000000 Binary files a/doc/user/project/img/protected_branches_error_ui.png and /dev/null differ diff --git a/doc/user/project/import/img/import_projects_from_github_select_auth_method.png b/doc/user/project/import/img/import_projects_from_github_select_auth_method.png deleted file mode 100644 index 90e6243aec0..00000000000 Binary files a/doc/user/project/import/img/import_projects_from_github_select_auth_method.png and /dev/null differ diff --git a/doc/user/project/integrations/img/jira_project_name.png b/doc/user/project/integrations/img/jira_project_name.png deleted file mode 100644 index 981c7f7ca18..00000000000 Binary files a/doc/user/project/integrations/img/jira_project_name.png and /dev/null differ diff --git a/doc/user/project/integrations/img/jira_service.png b/doc/user/project/integrations/img/jira_service.png deleted file mode 100644 index 0ae2fa28756..00000000000 Binary files a/doc/user/project/integrations/img/jira_service.png and /dev/null differ diff --git a/doc/user/project/integrations/img/prometheus_yaml_deploy.png b/doc/user/project/integrations/img/prometheus_yaml_deploy.png deleted file mode 100644 index 78dd178a077..00000000000 Binary files a/doc/user/project/integrations/img/prometheus_yaml_deploy.png and /dev/null differ diff --git a/doc/user/project/issues/img/group_issues_list_view.png b/doc/user/project/issues/img/group_issues_list_view.png deleted file mode 100644 index c951a9e2dcd..00000000000 Binary files a/doc/user/project/issues/img/group_issues_list_view.png and /dev/null differ diff --git a/doc/user/project/issues/img/issue_template.png b/doc/user/project/issues/img/issue_template.png deleted file mode 100644 index 6cb2c07d27e..00000000000 Binary files a/doc/user/project/issues/img/issue_template.png and /dev/null differ diff --git a/doc/user/project/members/img/add_new_user_to_project_settings.png b/doc/user/project/members/img/add_new_user_to_project_settings.png deleted file mode 100644 index e49ea1a3e3d..00000000000 Binary files a/doc/user/project/members/img/add_new_user_to_project_settings.png and /dev/null differ diff --git a/doc/user/project/members/img/add_user_members_menu.png b/doc/user/project/members/img/add_user_members_menu.png deleted file mode 100644 index 6f08088b52f..00000000000 Binary files a/doc/user/project/members/img/add_user_members_menu.png and /dev/null differ diff --git a/doc/user/project/members/img/max_access_level.png b/doc/user/project/members/img/max_access_level.png deleted file mode 100644 index 42a0416ffbb..00000000000 Binary files a/doc/user/project/members/img/max_access_level.png and /dev/null differ diff --git a/doc/user/project/pages/img/pages_create_project.png b/doc/user/project/pages/img/pages_create_project.png deleted file mode 100644 index 69e84b84984..00000000000 Binary files a/doc/user/project/pages/img/pages_create_project.png and /dev/null differ diff --git a/doc/user/project/pages/img/pages_create_user_page.png b/doc/user/project/pages/img/pages_create_user_page.png deleted file mode 100644 index 2f1a19ae424..00000000000 Binary files a/doc/user/project/pages/img/pages_create_user_page.png and /dev/null differ diff --git a/doc/user/project/pages/img/pages_dns_details.png b/doc/user/project/pages/img/pages_dns_details.png deleted file mode 100644 index 3e57f43f7ba..00000000000 Binary files a/doc/user/project/pages/img/pages_dns_details.png and /dev/null differ diff --git a/doc/user/project/pages/img/pages_multiple_domains.png b/doc/user/project/pages/img/pages_multiple_domains.png deleted file mode 100644 index 76c39101439..00000000000 Binary files a/doc/user/project/pages/img/pages_multiple_domains.png and /dev/null differ diff --git a/doc/user/project/pages/img/pages_new_domain_button.png b/doc/user/project/pages/img/pages_new_domain_button.png deleted file mode 100644 index cd59defa006..00000000000 Binary files a/doc/user/project/pages/img/pages_new_domain_button.png and /dev/null differ diff --git a/doc/user/project/pages/img/pages_upload_cert.png b/doc/user/project/pages/img/pages_upload_cert.png deleted file mode 100644 index 64e5f8eced1..00000000000 Binary files a/doc/user/project/pages/img/pages_upload_cert.png and /dev/null differ diff --git a/doc/user/project/web_ide/img/enable_web_ide.png b/doc/user/project/web_ide/img/enable_web_ide.png deleted file mode 100644 index 196baa82ad2..00000000000 Binary files a/doc/user/project/web_ide/img/enable_web_ide.png and /dev/null differ diff --git a/doc/user/search/img/issues_any_assignee.png b/doc/user/search/img/issues_any_assignee.png deleted file mode 100644 index 2f902bcc66c..00000000000 Binary files a/doc/user/search/img/issues_any_assignee.png and /dev/null differ diff --git a/doc/user/search/img/issues_author.png b/doc/user/search/img/issues_author.png deleted file mode 100644 index 792f9746db6..00000000000 Binary files a/doc/user/search/img/issues_author.png and /dev/null differ -- cgit v1.2.3 From c44a2fdbed4e62ae598c9c82c4cb7648994e3868 Mon Sep 17 00:00:00 2001 From: Noveed Safipour Date: Sun, 19 May 2019 19:38:27 +0000 Subject: Clarified order of column headers and recommended test import --- doc/user/project/issues/csv_import.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/issues/csv_import.md b/doc/user/project/issues/csv_import.md index 032e3a73ad0..b0b1cfcfdf7 100644 --- a/doc/user/project/issues/csv_import.md +++ b/doc/user/project/issues/csv_import.md @@ -1,17 +1,23 @@ -# Importing Issues from CSV +# Importing issues from CSV > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23532) in GitLab 11.7. -Issues can be imported to a project by uploading a CSV file. Supported fields are -`title` and `description`. +Issues can be imported to a project by uploading a CSV file with the columns +`title` and `description`, in that order. The user uploading the CSV file will be set as the author of the imported issues. > **Note:** A permission level of `Developer` or higher is required to import issues. +## Prepare for the import + +- Consider importing a test file containing only a few issues. There is no way to undo a large import without using the GitLab API. +- Ensure your CSV file meets the [file format](#csv-file-format) requirements. + +## Import the file + To import issues: -1. Ensure your CSV file meets the [file format](#csv-file-format) requirements. 1. Navigate to a project's Issues list page. 1. If existing issues are present, click the import icon at the top right, next to the **Edit issues** button. 1. For a project without any issues, click the button labeled **Import CSV** in the middle of the page. @@ -20,11 +26,11 @@ To import issues: The file is processed in the background and a notification email is sent to you once the import is completed. -## CSV File Format +## CSV file format ### Header row -CSV files must contain a header row beginning with at least two columns, `title` and `description`, in that order. +CSV files must contain a header row where the first column header is `title` and the second is `description`. If additional columns are present, they will be ignored. ### Column separator @@ -53,7 +59,7 @@ The limit depends on the configuration value of Max Attachment Size for the GitL For GitLab.com, it is set to 10 MB. -## Sample Data +## Sample data ```csv title,description -- cgit v1.2.3 From 0429195af6930ba8b9833ce01f890b9f89b01291 Mon Sep 17 00:00:00 2001 From: Jed Brown Date: Sun, 19 May 2019 20:33:19 +0000 Subject: sast/index.md: link to current repository for "bandit" (Python tool) --- doc/user/application_security/sast/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/application_security/sast/index.md b/doc/user/application_security/sast/index.md index 02c115b7f22..db328262aba 100644 --- a/doc/user/application_security/sast/index.md +++ b/doc/user/application_security/sast/index.md @@ -63,7 +63,7 @@ The following table shows which languages, package managers and frameworks are s | Javascript | [ESLint security plugin](https://github.com/nodesecurity/eslint-plugin-security) | 11.8 | | Node.js | [NodeJsScan](https://github.com/ajinabraham/NodeJsScan) | 11.1 | | PHP | [phpcs-security-audit](https://github.com/FloeDesignTechnologies/phpcs-security-audit) | 10.8 | -| Python ([pip](https://pip.pypa.io/en/stable/)) | [bandit](https://github.com/openstack/bandit) | 10.3 | +| Python ([pip](https://pip.pypa.io/en/stable/)) | [bandit](https://github.com/PyCQA/bandit) | 10.3 | | Ruby on Rails | [brakeman](https://brakemanscanner.org) | 10.3 | | Scala ([Ant](https://ant.apache.org/), [Gradle](https://gradle.org/), [Maven](https://maven.apache.org/) and [SBT](https://www.scala-sbt.org/)) | [SpotBugs](https://spotbugs.github.io/) with the [find-sec-bugs](https://find-sec-bugs.github.io/) plugin | 11.0 (SBT) & 11.9 (Ant, Gradle, Maven) | | Typescript | [TSLint config security](https://github.com/webschik/tslint-config-security/) | 11.9 | -- cgit v1.2.3 From 817c2c44f528fda8b68a98ada04b9741a3c9e3d1 Mon Sep 17 00:00:00 2001 From: Jan Provaznik Date: Mon, 20 May 2019 10:18:08 +0200 Subject: Add a note about nested scopes matching --- doc/user/project/labels.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index ac91cd4ea98..8869d85bbe0 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -32,6 +32,12 @@ An issue, epic, or merge request cannot have two scoped labels with the same key For example, if an issue is already labeled `priority::3` and you apply the label `priority::2` to it, `priority::3` is automatically removed. +NOTE: **Note:** +In the case where labels have multiple sets of `::`, the longest path is used +for mutual exclusivity check. For example, for label `some::key::value` we +would check for exclusivity on `some::key::` level instead of `some::` - this +allows finer grained organization. + ### Workflows with scoped labels **[PREMIUM]** Suppose you wanted a custom field in issues to track the platform operating system -- cgit v1.2.3 From 2f6a20ce665de6a23fe2c1cc28cc6398afcb1b71 Mon Sep 17 00:00:00 2001 From: Yoginth Date: Mon, 20 May 2019 14:11:44 +0000 Subject: Fix typos in the whole gitlab-ce project --- doc/user/project/code_owners.md | 2 +- doc/user/project/labels.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/code_owners.md b/doc/user/project/code_owners.md index a4937e6cf6b..ae04616943f 100644 --- a/doc/user/project/code_owners.md +++ b/doc/user/project/code_owners.md @@ -43,7 +43,7 @@ Example `CODEOWNERS` file: # app/ @commented-rule -# We can specifiy a default match using wildcards: +# We can specify a default match using wildcards: * @default-codeowner # Rules defined later in the file take precedence over the rules diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index ac91cd4ea98..8e9e9aa79cf 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -131,7 +131,7 @@ From the project issue list page and the project merge request list page, you ca From the group issue list page and the group merge request list page, you can [filter](../search/index.md#issues-and-merge-requests) by both group labels (including subgroup ancestors and subgroup descendants) and project labels. -From the group epic list page, you can [filter](../search/index.md#issues-and-merge-requests) by both current group labels as well as decendent group labels. +From the group epic list page, you can [filter](../search/index.md#issues-and-merge-requests) by both current group labels as well as descendant group labels. ![Labels group issues](img/labels_group_issues.png) -- cgit v1.2.3 From c42aaec33e12f5be06403d7ff656d9083385df3d Mon Sep 17 00:00:00 2001 From: James Fargher Date: Mon, 20 May 2019 16:51:52 +0000 Subject: Initial instance level cluster docs --- doc/user/group/clusters/index.md | 8 ++++---- doc/user/instance/clusters/index.md | 23 +++++++++++++++++++++++ doc/user/project/clusters/index.md | 6 ++++-- 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 doc/user/instance/clusters/index.md (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 53c82169e15..ff6aa4f5930 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -5,10 +5,10 @@ ## Overview -Similar to [project Kubernetes -clusters](../../project/clusters/index.md), Group-level Kubernetes -clusters allow you to connect a Kubernetes cluster to your group, -enabling you to use the same cluster across multiple projects. +Similar to [project-level](../../project/clusters/index.md) and +[instance-level](../../instance/clusters/index.md) Kubernetes clusters, +group-level Kubernetes clusters allow you to connect a Kubernetes cluster to +your group, enabling you to use the same cluster across multiple projects. ## Installing applications diff --git a/doc/user/instance/clusters/index.md b/doc/user/instance/clusters/index.md new file mode 100644 index 00000000000..894f83d3c75 --- /dev/null +++ b/doc/user/instance/clusters/index.md @@ -0,0 +1,23 @@ +# Instance-level Kubernetes clusters + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/39840) in GitLab 11.11. +> Instance-level cluster integration is currently in [Beta](https://about.gitlab.com/handbook/product/#alpha-beta-ga). + +## Overview + +Similar to [project-level](../../project/clusters/index.md) +and [group-level](../../group/clusters/index.md) Kubernetes clusters, +instance-level Kubernetes clusters allow you to connect a Kubernetes cluster to +the GitLab instance, which enables you to use the same cluster across multiple +projects. + +## Cluster precedence + +GitLab will try match to clusters in the following order: + +- Project-level clusters +- Group-level clusters +- Instance level + +To be selected, the cluster must be enabled and +match the [environment selector](../../../ci/environments.md#scoping-environments-with-specs-premium). diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index afad8f0fa9d..e60317bc199 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -19,8 +19,10 @@ or provide the credentials to an [existing Kubernetes cluster](#adding-an-existi NOTE: **Note:** From [GitLab 11.6](https://gitlab.com/gitlab-org/gitlab-ce/issues/34758) you -can also associate a Kubernetes cluster to your groups. Learn more about -[group Kubernetes clusters](../../group/clusters/index.md). +can also associate a Kubernetes cluster to your groups and from +[GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-ce/issues/39840), +to the GitLab instance. Learn more about [group-level](../../group/clusters/index.md) +and [instance-level](../../instance/clusters/index.md) Kubernetes clusters. ## Adding and creating a new GKE cluster via GitLab -- cgit v1.2.3 From 09ef4348cf7c399c4a4ac9ce3f5a84139dc2b611 Mon Sep 17 00:00:00 2001 From: Lucas Charles Date: Mon, 20 May 2019 18:13:10 +0000 Subject: Update dependency scanning docs - Clarify sort order --- doc/user/application_security/dependency_scanning/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 2d0c2be4233..5d2bb4e572b 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -19,8 +19,9 @@ merge request. ![Dependency Scanning Widget](img/dependency_scanning.png) -The results are sorted by the priority of the vulnerability: +The results are sorted by the severity of the vulnerability: +1. Critical 1. High 1. Medium 1. Low -- cgit v1.2.3 From c68d77117ad7636c6c61e0f708ca4ddd421c7bdf Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 20 May 2019 18:27:49 +0000 Subject: Link to JUnit test reports from the MR index page --- doc/user/project/merge_requests/index.md | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 2bb2d906453..723195224d0 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -397,6 +397,14 @@ GitLab can scan and report any vulnerabilities found in your project. [Read more about security reports.](https://docs.gitlab.com/ee/user/application_security/index.html) +## JUnit test reports + +Configure your CI jobs to use JUnit test reports, and let GitLab display a report +on the merge request so that it’s easier and faster to identify the failure +without having to check the entire job log. + +[Read more about JUnit test reports](../../../ci/junit_test_reports.md). + ## Live preview with Review Apps If you configured [Review Apps](https://about.gitlab.com/features/review-apps/) for your project, -- cgit v1.2.3 From afcbebd946a2cd93a82b92dce999e325162ce353 Mon Sep 17 00:00:00 2001 From: Seth Engelhard Date: Mon, 20 May 2019 20:24:30 +0000 Subject: Add to docs sentence about alertbot opening issues --- doc/user/project/integrations/prometheus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md index 40113624430..751e8e44e60 100644 --- a/doc/user/project/integrations/prometheus.md +++ b/doc/user/project/integrations/prometheus.md @@ -168,7 +168,7 @@ Alerts can be used to trigger actions, like open an issue automatically. To conf 1. Optionally, select whether to send an email notification to the developers of the project. 1. Click **Save changes**. -Once enabled, an issue will be opened automatically when an alert is triggered. To further customize the issue, you can add labels, mentions, or any other supported [quick action](../quick_actions.md) in the selected issue template. +Once enabled, an issue will be opened automatically when an alert is triggered. The author of the issue will be the GitLab Alert Bot. To further customize the issue, you can add labels, mentions, or any other supported [quick action](../quick_actions.md) in the selected issue template. If the metric exceeds the threshold of the alert for over 5 minutes, an email will be sent to all [Maintainers and Owners](../../permissions.md#project-members-permissions) of the project. -- cgit v1.2.3 From ea90d255fdf30674afb70810deed3bc86a4be275 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Mon, 20 May 2019 22:56:30 +0000 Subject: Slight edit of text from earlier merge --- doc/user/project/clusters/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index e60317bc199..3bc3beb2055 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -425,9 +425,9 @@ To uninstall an application: 1. Select your cluster. 1. Click the **Uninstall** button for the application. -Support for uninstalling all applications will be progressively -introduced (see [related -epic](https://gitlab.com/groups/gitlab-org/-/epics/1201)). +Support for uninstalling all applications is planned for progressive rollout. +To follow progress, see [the relevant +epic](https://gitlab.com/groups/gitlab-org/-/epics/1201). ### Troubleshooting applications -- cgit v1.2.3 From 39ba007b6f5f41ba22617ddd5f70dc65c8503d79 Mon Sep 17 00:00:00 2001 From: Tristan Read Date: Mon, 20 May 2019 23:24:33 +0000 Subject: Update group security dashboard docs - CE backport --- .../security_dashboard/img/dashboard.png | Bin 66467 -> 58585 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'doc/user') diff --git a/doc/user/application_security/security_dashboard/img/dashboard.png b/doc/user/application_security/security_dashboard/img/dashboard.png index d52a6dacdbf..a75168b1ce4 100644 Binary files a/doc/user/application_security/security_dashboard/img/dashboard.png and b/doc/user/application_security/security_dashboard/img/dashboard.png differ -- cgit v1.2.3 From 37c8f37c56a6726ee0a34a1bfb3679c654b5287e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Lafoucri=C3=A8re?= Date: Tue, 21 May 2019 00:06:47 +0000 Subject: Make env vars consistent `DAST_TARGET_AVAILABILITY_TIMEOUT` already defaults to 60 in `analyze` --- doc/user/application_security/dast/index.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'doc/user') diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md index f3b7d7fd471..abc6e771b0f 100644 --- a/doc/user/application_security/dast/index.md +++ b/doc/user/application_security/dast/index.md @@ -47,10 +47,7 @@ applications while you are developing and testing your applications. ## Requirements To run a DAST job, you need GitLab Runner with the -[`docker`](https://docs.gitlab.com/runner/executors/docker.html#use-docker-in-docker-with-privileged-mode) or -[`kubernetes`](https://docs.gitlab.com/runner/install/kubernetes.html#running-privileged-containers-for-the-runners) -executor running in privileged mode. If you're using the shared Runners on GitLab.com, -this is enabled by default. +[`docker` executor](https://docs.gitlab.com/runner/executors/docker.html). ## Configuring DAST -- cgit v1.2.3 From 333c661031794894b35cb95fba3f81cb43871c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Mon, 20 May 2019 17:31:46 +0200 Subject: Document how to access the Insights page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- doc/user/group/insights/img/insights_sidebar_link.png | Bin 0 -> 18826 bytes doc/user/group/insights/index.md | 11 +++++++++-- doc/user/project/insights/img/insights_sidebar_link.png | Bin 0 -> 21463 bytes doc/user/project/insights/index.md | 16 +++++++++++----- 4 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 doc/user/group/insights/img/insights_sidebar_link.png create mode 100644 doc/user/project/insights/img/insights_sidebar_link.png (limited to 'doc/user') diff --git a/doc/user/group/insights/img/insights_sidebar_link.png b/doc/user/group/insights/img/insights_sidebar_link.png new file mode 100644 index 00000000000..64bbd1fc4d3 Binary files /dev/null and b/doc/user/group/insights/img/insights_sidebar_link.png differ diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md index 5283d8da77d..20f76c54ae7 100644 --- a/doc/user/group/insights/index.md +++ b/doc/user/group/insights/index.md @@ -4,8 +4,8 @@ CAUTION: **Beta:** Insights is considered beta, and is not ready for production use. -Follow [gitlab-org&725](https://gitlab.com/groups/gitlab-org/-/epics/725) for -updates. +Follow [gitlab-org/quality/team-tasks#137](https://gitlab.com/gitlab-org/quality/team-tasks/issues/137#general-availability) +for updates. Configure the Insights that matter for your groups to explore data such as triage hygiene, issues created/closed per a given period, average time for merge @@ -13,6 +13,13 @@ requests to be merged and much more. ![Insights example stacked bar chart](img/insights_example_stacked_bar_chart.png) +## View your group's Insights + +You can access your group's Insights by clicking the **Overview > Insights** +link in the left sidebar: + +![Insights sidebar link](img/insights_sidebar_link.png) + ## Configure your Insights Navigate to your group's **Settings > General**, expand **Insights**, and choose diff --git a/doc/user/project/insights/img/insights_sidebar_link.png b/doc/user/project/insights/img/insights_sidebar_link.png new file mode 100644 index 00000000000..aadb5745992 Binary files /dev/null and b/doc/user/project/insights/img/insights_sidebar_link.png differ diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md index 720f4c6604e..b6cc1862cc2 100644 --- a/doc/user/project/insights/index.md +++ b/doc/user/project/insights/index.md @@ -4,18 +4,25 @@ CAUTION: **Beta:** Insights is considered beta, and is not ready for production use. -Follow [gitlab-org&725](https://gitlab.com/groups/gitlab-org/-/epics/725) for -updates. +Follow [gitlab-org/quality/team-tasks#137](https://gitlab.com/gitlab-org/quality/team-tasks/issues/137#general-availability) +for updates. Configure the Insights that matter for your projects to explore data such as triage hygiene, issues created/closed per a given period, average time for merge requests to be merged and much more. -![Insights example stacked bar chart](img/project_insights.png) +![Insights example bar chart](img/project_insights.png) NOTE: **Note:** This feature is [also available at the group level](https://docs.gitlab.com/ee/user/group/insights/index.html). +## View your project's Insights + +You can access your project's Insights by clicking the **Project > Insights** +link in the left sidebar: + +![Insights sidebar link](img/insights_sidebar_link.png) + ## Configure your Insights Insights are configured using a YAML file called `.gitlab/insights.yml` within @@ -74,8 +81,7 @@ Each chart definition is made up of a hash composed of key-value pairs. For example, here's single chart definition: ```yaml -monthlyBugsCreated: - title: Monthly Bugs Created (bar) +- title: Monthly Bugs Created (bar) type: bar query: issuable_type: issue -- cgit v1.2.3 From 8274f15dc0f932b808cc06a6f2afa3e8538d766c Mon Sep 17 00:00:00 2001 From: Jason Goodman Date: Tue, 21 May 2019 16:28:26 +0000 Subject: Update documentation for chat notifications on deployment events Update configuration screenshots for Slack and Mattermost Update list of events for Mattermost --- .../integrations/img/mattermost_configuration.png | Bin 101151 -> 67672 bytes .../integrations/img/slack_configuration.png | Bin 92179 -> 64873 bytes doc/user/project/integrations/mattermost.md | 2 ++ 3 files changed, 2 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/integrations/img/mattermost_configuration.png b/doc/user/project/integrations/img/mattermost_configuration.png index e0b55b23520..75ef0310f2d 100644 Binary files a/doc/user/project/integrations/img/mattermost_configuration.png and b/doc/user/project/integrations/img/mattermost_configuration.png differ diff --git a/doc/user/project/integrations/img/slack_configuration.png b/doc/user/project/integrations/img/slack_configuration.png index 53b30e0e8cd..a14d2969488 100644 Binary files a/doc/user/project/integrations/img/slack_configuration.png and b/doc/user/project/integrations/img/slack_configuration.png differ diff --git a/doc/user/project/integrations/mattermost.md b/doc/user/project/integrations/mattermost.md index 8c5461de42f..d7fd75fd728 100644 --- a/doc/user/project/integrations/mattermost.md +++ b/doc/user/project/integrations/mattermost.md @@ -27,9 +27,11 @@ There, you will see a checkbox with the following events that can be triggered: - Confidential issue - Merge request - Note +- Confidential note - Tag push - Pipeline - Wiki page +- Deployment Below each of these event checkboxes, you have an input field to enter which Mattermost channel you want to send that event message. Enter your preferred channel handle (the hash sign `#` is optional). -- cgit v1.2.3 From 3f025c540553e7145f174345a81d7eb930146a66 Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Mon, 20 May 2019 22:09:14 +0000 Subject: Update doc/user/group/index.md file --- doc/user/group/index.md | 196 ++++++++++++++++++++++-------------------------- 1 file changed, 89 insertions(+), 107 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index a5e3bfda70e..d412a356ff6 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -5,33 +5,29 @@ and grant members access to several projects at once. Groups can also be nested in [subgroups](subgroups/index.md). -Find your groups by clicking **Groups** in the top navigation. +Find your groups by clicking **Groups** and then selecting **Your Groups** in the top navigation. ![GitLab Groups](img/groups.png) > The groups dropdown in the top navigation was [introduced][ce-36234] in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). -The Groups page displays all groups you are a member of, how many projects it holds, -how many members it has, the group visibility, and, if you have enough permissions, -a link to the group settings. By clicking the last button you can leave that group. +The Groups page displays all groups you are a member of, how many projects each group contains, +how many members a group has, the group visibility, and, if you have enough permissions, +a link to the group settings. By clicking the last button, you can leave that group. ## Use cases -You can create groups for numerous reasons. To name a few: - -- Organize related projects under the same [namespace](#namespaces), add members to that - group and grant access to all their projects at once -- Create a group, include members of your team, and make it easier to - `@mention` all the team at once in issues and merge requests - - Create a group for your company members, and create [subgroups](subgroups/index.md) - for each individual team. Let's say you create a group called `company-team`, and among others, - you created subgroups in this group for each individual team `backend-team`, - `frontend-team`, and `production-team`: - 1. When you start a new implementation from an issue, you add a comment: +You can create groups for numerous reasons. To name a couple: + +- Grant access to multiple projects and multiple team members in fewer steps by organizing related projects under the same [namespace](#namespaces) and adding members to the top-level group. +- Make it easier to `@mention` all of your team at once in issues and merge requests by creating a group and including the appropriate members. + +For example, you could create a group for your company members, and create a [subgroup](subgroups/index.md) for each individual team. Let's say you create a group called `company-team`, and you create subgroups in this group for the individual teams `backend-team`, `frontend-team`, and `production-team`. + - When you start a new implementation from an issue, you add a comment: _"`@company-team`, let's do it! `@company-team/backend-team` you're good to go!"_ - 1. When your backend team needs help from frontend, they add a comment: + - When your backend team needs help from frontend, they add a comment: _"`@company-team/frontend-team` could you help us here please?"_ - 1. When the frontend team completes their implementation, they comment: + - When the frontend team completes their implementation, they comment: _"`@company-team/backend-team`, it's done! Let's ship it `@company-team/production-team`!"_ ## Namespaces @@ -59,8 +55,8 @@ By doing so: ## Issues and merge requests within a group -Issues and merge requests are part of projects. For a given group, view all the -[issues](../project/issues/index.md#issues-list) and [merge requests](../project/merge_requests/index.md#merge-requests-per-group) across all the projects in that group, +Issues and merge requests are part of projects. For a given group, you can view all of the +[issues](../project/issues/index.md#issues-list) and [merge requests](../project/merge_requests/index.md#merge-requests-per-group) across all projects in that group, together in a single list view. ## Create a new group @@ -68,13 +64,13 @@ together in a single list view. > For a list of words that are not allowed to be used as group names see the > [reserved names](../reserved_names.md). -You can create a group in GitLab from: +To create a new Group: -1. The Groups page: from the top menu, click **Groups**, and click the green button **New group**: +- In the top menu, click **Groups** and then **Your Groups**, and click the green button **New group**. ![new group from groups page](img/new_group_from_groups.png) -1. Elsewhere: expand the `plus` sign button on the top navbar and choose **New group**: +- Or, in the top menu, expand the `plus` sign and choose **New group**. ![new group from elsewhere](img/new_group_from_other_pages.png) @@ -82,18 +78,18 @@ Add the following information: ![new group info](img/create_new_group_info.png) -1. The **Group name** will populate the URL automatically. Optionally, you can change it. - This is the name that is displayed in the group views. +1. The **Group name** will automatically populate the URL. Optionally, you can change it. + This is the name that displays in group views. The name can contain only: - - Alphanumeric characters. - - Underscores. - - Dashes and dots. - - Spaces. -1. The **Group URL**, which will be the namespace under which your projects will be hosted. + - Alphanumeric characters + - Underscores + - Dashes and dots + - Spaces +1. The **Group URL** is the namespace under which your projects will be hosted. The URL can contain only: - - Alphanumeric characters. - - Underscores. - - Dashes and dots. It cannot start with dashes or end in dot. + - Alphanumeric characters + - Underscores + - Dashes and dots (it cannot start with dashes or end in a dot) 1. Optionally, you can add a brief description to tell others what this group is about. 1. Optionally, choose an avatar for your group. @@ -101,45 +97,39 @@ Add the following information: ## Add users to a group -Add members to a group by navigating to the group's dashboard, and clicking **Members**: +A benefit of putting multiple projects in one group is that you can +give a user to access to all projects in the group with one action. -![add members to group](img/add_new_members.png) +Add members to a group by navigating to the group's dashboard and clicking **Members**. -Select the [permission level](../permissions.md#permissions) and add the new member. You can also set the expiring -date for that user, from which they will no longer have access to your group. +![add members to group](img/add_new_members.png) -One of the benefits of putting multiple projects in one group is that you can -give a user to access to all projects in the group with one action. +Select the [permission level](../permissions.md#permissions), and add the new member. You can also set the expiring date for that user; this is the date on which they will no longer have access to your group. -Consider we have a group with two projects: +Consider a group with two projects: -- On the **Group Members** page we can now add a new user to the group. -- Now because this user is a **Developer** member of the group, he automatically +- On the **Group Members** page, you can now add a new user to the group. +- Now, because this user is a **Developer** member of the group, he automatically gets **Developer** access to **all projects** within that group. -If necessary, you can increase the access level of an individual user for a specific project, -by adding them again as a new member to the project with the new permission levels. +To increase the access level of an existing user for a specific project, +add them again as a new member to the project with the desired permission level. ## Request access to a group -As a group owner you can enable or disable non members to request access to -your group. Go to the group settings and click on **Allow users to request access**. +As a group owner, you can enable or disable the ability for non members to request access to +your group. Go to the group settings, and click **Allow users to request access**. -As a user, you can request to be a member of a group. Go to the group you'd -like to be a member of, and click the **Request Access** button on the right +As a user, you can request to be a member of a group, if that setting is enabled. Go to the group for which you'd like to be a member, and click the **Request Access** button on the right side of your screen. ![Request access button](img/request_access_button.png) ---- - Group owners and maintainers will be notified of your request and will be able to approve or decline it on the members page. ![Manage access requests](img/access_requests_management.png) ---- - If you change your mind before your request is approved, just click the **Withdraw Access Request** button. @@ -149,29 +139,27 @@ If you change your mind before your request is approved, just click the There are two different ways to add a new project to a group: -- Select a group and then click on the **New project** button. +- Select a group, and then click **New project**. You can then continue [creating your project](../../gitlab-basics/create-project.md). ![New project](img/create_new_project_from_group.png) - You can then continue on [creating a project](../../gitlab-basics/create-project.md). - - While you are creating a project, select a group namespace you've already created from the dropdown menu. ![Select group](img/select_group_dropdown.png) -### Default project creation level +### Default project-creation level > [Introduced][ee-2534] in [GitLab Premium][ee] 10.5. > Brought to [GitLab Starter][ee] in 10.7. > [Moved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25975) to [GitLab Core](https://about.gitlab.com/pricing/) in 11.10. -Group owners or administrators can allow users with the +Group owners and administrators can allow users with the Developer role to create projects under groups. -By default, [Developers and Maintainers](../permissions.md#group-members-permissions) can create projects under a group, but this can be changed either within the group settings for a group, or -be set globally by a GitLab administrator in the Admin area -at **Settings > General > Visibility and access controls**. +By default, [Developers and Maintainers](../permissions.md#group-members-permissions) can create projects under a group. You can change this setting for a specific group within the group settings, or +you can set this option globally in the Admin area +at **Settings > General > Visibility and access controls** (you must be a GitLab administrator). Available settings are `No one`, `Maintainers`, or `Developers + Maintainers`. @@ -182,13 +170,13 @@ Learn how to [transfer a project into a group](../project/settings/index.md#tran ## Sharing a project with a group You can [share your projects with a group](../project/members/share_project_with_groups.md) -and give your group members access to the project all at once. +and give all group members access to the project at once. Alternatively, you can [lock the sharing with group feature](#share-with-group-lock). ## Manage group memberships via LDAP -In GitLab Enterprise Edition it is possible to manage GitLab group memberships using LDAP groups. +In GitLab Enterprise Edition, it is possible to manage GitLab group memberships using LDAP groups. See [the GitLab Enterprise Edition documentation](../../integration/ldap.md) for more information. ## Epics **[ULTIMATE]** @@ -211,38 +199,38 @@ Get an overview of the vulnerabilities of all the projects in a group and its su > Introduced in [GitLab Ultimate][ee] 11.9 behind the `insights` feature flag. -Configure the Insights that matter for your groups or projects to explore data -such as triage hygiene, issues created/closed per a given period, average time -for merge requests to be merged and much more. +Configure the Insights that matter for your groups or projects, allowing users to explore data +such as: triage hygiene, issues created/closed per a given period, average time +for merge requests to be merged, and much more. [Learn more about Insights](insights/index.md). ## Transferring groups -From GitLab 10.5, groups can be transferred in the following ways: +From GitLab 10.5, you can transfer groups in the following ways: -- Top-level groups can be transferred to a group, converting them into subgroups. -- Subgroups can be transferred to a new parent group. -- Subgroups can be transferred out from a parent group, converting them into top-level groups. +- Transfer a subgroup to a new parent group. +- Convert a top-level group into a subgroup by transfering it to the desired group. +- Convert a subgroup into a top-level group by transfering it out of its current group. When transferring groups, note: -- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](../project/index.md#redirects-when-changing-repository-paths). +- Changing a group's parent can have unintended side effects. See [redirects when changing repository paths](../project/index.md#redirects-when-changing-repository-paths). - You can only transfer groups to groups you manage. -- You will need to update your local repositories to point to the new location. -- If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility. -- Only explicit group membership is transferred, not inherited membership. If the group's owners have only inherited membership, this would leave the group without an owner. In this case, the user transferring the group becomes the group's owner. +- You must update your local repositories to point to the new location. +- If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will change to match the new parent group's visibility. +- Only explicit group membership is transferred, not inherited membership. If the group's owners have only inherited membership, this leaves the group without an owner. In this case, the user transferring the group becomes the group's owner. ## Group settings -Once you have created a group, you can manage its settings by navigating to +After creating a group, you can manage its settings by navigating to the group's dashboard, and clicking **Settings**. ![group settings](img/group_settings.png) ### General settings -Besides giving you the option to edit any settings you've previously +In addition to editing any settings you previously set when [creating the group](#create-a-new-group), you can also access further configurations for your group. @@ -253,14 +241,14 @@ Changing a group's path can have unintended side effects. Read before proceeding. If you are vacating the path so it can be claimed by another group or user, -you may need to rename the group name as well since both names and paths must +you may need to rename the group, too, since both names and paths must be unique. To change your group path: 1. Navigate to your group's **Settings > General**. -1. Enter a new name under "Group path". -1. Hit **Save group**. +1. Enter a new name under **Group path**. +1. Click **Save group**. CAUTION: **Caution:** It is currently not possible to rename a namespace if it contains a @@ -276,20 +264,17 @@ username, you can create a new group and transfer projects to it. Add a security layer to your group by [enforcing two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforcing-2fa-for-all-users-in-a-group) -to all group members. +for all group members. #### Share with group lock Prevent projects in a group from [sharing -a project with another group](../project/members/share_project_with_groups.md). -This allows for tighter control over project access. +a project with another group](../project/members/share_project_with_groups.md) to enable tighter control over project access. -For example, consider you have two distinct teams (Group A and Group B) -working together in a project. -To inherit the group membership, you share the project between the +For example, let's say you have two distinct teams (Group A and Group B) working together in a project, and to inherit the group membership, you share the project between the two groups A and B. **Share with group lock** prevents any project within -the group from being shared with another group. By doing so, you -guarantee only the right group members have access to those projects. +the group from being shared with another group, +guaranteeing that only the right group members have access to those projects. To enable this feature, navigate to the group settings page. Select **Share with group lock** and **Save the group**. @@ -298,25 +283,22 @@ To enable this feature, navigate to the group settings page. Select #### Member Lock **[STARTER]** -With Member lock, it is possible to lock membership in a project to the -level of members in the group. - -Member lock lets a group owner lock down any new project membership to all the -projects within the group, allowing tighter control over project membership. +Member lock lets a group owner prevent any new project membership to all of the +projects within a group, allowing tighter control over project membership. -For instance, if you want to lock the group for an [Audit Event](https://docs.gitlab.com/ee/administration/audit_events.html), -you enable Member lock to guarantee that membership of a project cannot be modified during that audit. +For example, if you want to lock the group for an [Audit Event](https://docs.gitlab.com/ee/administration/audit_events.html), +enable Member lock to guarantee that project membership cannot be modified during that audit. To enable this feature: 1. Navigate to the group's **Settings > General** page. -1. Expand the **Permissions, LFS, 2FA** section and select **Member lock**. -1. Click the **Save changes** button. +1. Expand the **Permissions, LFS, 2FA** section, and select **Member lock**. +1. Click **Save changes**. ![Checkbox for membership lock](img/member_lock.png) This will disable the option for all users who previously had permissions to -operate project memberships so no new users can be added. Furthermore, any +operate project memberships, so no new users can be added. Furthermore, any request to add a new user to a project through API will not be possible. #### Group file templates **[PREMIUM]** @@ -327,11 +309,11 @@ types with every project in a group. It is analogous to the feature, and the selected project should follow the same naming conventions as are documented on that page. -Only projects that are in the group may be chosen as the source of templates. -This includes projects shared with the group, but **excludes** projects in +You can only choose projects in the group as the template source. +This includes projects shared with the group, but it **excludes** projects in subgroups or parent groups of the group being configured. -This feature may be configured for subgroups as well as parent groups. A project +You can configure this feature for both subgroups and parent groups. A project in a subgroup will have access to the templates for that subgroup, as well as any parent groups. @@ -345,28 +327,28 @@ To enable this feature, navigate to the group settings page, expand the #### Group-level project templates **[PREMIUM]** -Define project templates at a group-level by setting a group as a template source. +Define project templates at a group level by setting a group as the template source. [Learn more about group-level project templates](custom_project_templates.md). ### Advanced settings -- **Projects**: view all projects within that group, add members to each project, - access each project's settings, and remove any project from the same screen. -- **Webhooks**: configure [webhooks](../project/integrations/webhooks.md) to your group. -- **Kubernetes cluster integration**: connect your GitLab group with [Kubernetes clusters](clusters/index.md). -- **Audit Events**: view [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html) +- **Projects**: View all projects within that group, add members to each project, + access each project's settings, and remove any project—all from the same screen. +- **Webhooks**: Configure [webhooks](../project/integrations/webhooks.md) for your group. +- **Kubernetes cluster integration**: Connect your GitLab group with [Kubernetes clusters](clusters/index.md). +- **Audit Events**: View [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html) for the group. **[STARTER ONLY]** -- **Pipelines quota**: keep track of the [pipeline quota](../admin_area/settings/continuous_integration.md) for the group. +- **Pipelines quota**: Keep track of the [pipeline quota](../admin_area/settings/continuous_integration.md) for the group. ## User contribution analysis **[STARTER]** -With [GitLab Contribution Analytics](contribution_analytics/index.md) +With [GitLab Contribution Analytics](contribution_analytics/index.md), you have an overview of the contributions (pushes, merge requests, and issues) performed by your group members. ## Issues analytics **[PREMIUM]** -With [GitLab Issues Analytics](issues_analytics/index.md), in groups, you can see a bar chart of the number of issues created each month. +With [GitLab Issues Analytics](issues_analytics/index.md), you can see a bar chart of the number of issues created each month in your groups. ## Dependency Proxy **[PREMIUM]** -- cgit v1.2.3 From 3d7a0bf7a6f0ed2b10e09a5a32302f12870e82e6 Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Mon, 20 May 2019 22:18:07 +0000 Subject: Removed "select", since the dropdown functions more like a modal --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index d412a356ff6..b9c59815e31 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -5,7 +5,7 @@ and grant members access to several projects at once. Groups can also be nested in [subgroups](subgroups/index.md). -Find your groups by clicking **Groups** and then selecting **Your Groups** in the top navigation. +Find your groups by clicking **Groups** and then **Your Groups** in the top navigation. ![GitLab Groups](img/groups.png) -- cgit v1.2.3 From cf3bb66c8140b0593ec44b30be9594671bcdd1e9 Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:31:30 +0000 Subject: Apply suggestion to doc/user/group/index.md --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index b9c59815e31..3828865aa19 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -5,7 +5,7 @@ and grant members access to several projects at once. Groups can also be nested in [subgroups](subgroups/index.md). -Find your groups by clicking **Groups** and then **Your Groups** in the top navigation. +Find your groups by clicking **Groups > Your Groups** in the top navigation. ![GitLab Groups](img/groups.png) -- cgit v1.2.3 From 7ff10c0aa9b716c2129f84a1097915d99b278531 Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:32:15 +0000 Subject: Apply suggestion to doc/user/group/index.md --- doc/user/group/index.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 3828865aa19..1fe745f3cd4 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -11,9 +11,15 @@ Find your groups by clicking **Groups > Your Groups** in the top navigation. > The groups dropdown in the top navigation was [introduced][ce-36234] in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). -The Groups page displays all groups you are a member of, how many projects each group contains, -how many members a group has, the group visibility, and, if you have enough permissions, -a link to the group settings. By clicking the last button, you can leave that group. +The Groups page displays: + +- All groups you are a member of. +- How many projects each group contains. +- How many members a group has. +- The group visibility. +- A link to the group settings if you have sufficient permissions. + +By clicking the last button, you can leave that group. ## Use cases -- cgit v1.2.3 From d40fd9963a381cc55b2dd2c43ab474f10e6b63fe Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:32:25 +0000 Subject: Apply suggestion to doc/user/group/index.md --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 1fe745f3cd4..19bff9318bc 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -70,7 +70,7 @@ together in a single list view. > For a list of words that are not allowed to be used as group names see the > [reserved names](../reserved_names.md). -To create a new Group: +To create a new Group, either: - In the top menu, click **Groups** and then **Your Groups**, and click the green button **New group**. -- cgit v1.2.3 From a2ca378411d2fccd005277a19c22e9f0fab4f04a Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:32:42 +0000 Subject: Apply suggestion to doc/user/group/index.md --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 19bff9318bc..38184664842 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -115,7 +115,7 @@ Select the [permission level](../permissions.md#permissions), and add the new me Consider a group with two projects: - On the **Group Members** page, you can now add a new user to the group. -- Now, because this user is a **Developer** member of the group, he automatically +- Now, because this user is a **Developer** member of the group, they automatically gets **Developer** access to **all projects** within that group. To increase the access level of an existing user for a specific project, -- cgit v1.2.3 From f0d0f24375a9e72e03aefebdac481a4781631317 Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:32:57 +0000 Subject: Apply suggestion to doc/user/group/index.md --- doc/user/group/index.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 38184664842..12d0f96a1c6 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -206,8 +206,12 @@ Get an overview of the vulnerabilities of all the projects in a group and its su > Introduced in [GitLab Ultimate][ee] 11.9 behind the `insights` feature flag. Configure the Insights that matter for your groups or projects, allowing users to explore data -such as: triage hygiene, issues created/closed per a given period, average time -for merge requests to be merged, and much more. +such as: + +- Triage hygiene +- Issues created/closed per a given period +- Average time for merge requests to be merged +- Much more [Learn more about Insights](insights/index.md). -- cgit v1.2.3 From e97ec02b23cc82b738e94bc0c26b372857ed7357 Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:33:16 +0000 Subject: Apply suggestion to doc/user/group/index.md --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 12d0f96a1c6..ea2ec683845 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -225,7 +225,7 @@ From GitLab 10.5, you can transfer groups in the following ways: When transferring groups, note: -- Changing a group's parent can have unintended side effects. See [redirects when changing repository paths](../project/index.md#redirects-when-changing-repository-paths). +- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](../project/index.md#redirects-when-changing-repository-paths). - You can only transfer groups to groups you manage. - You must update your local repositories to point to the new location. - If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will change to match the new parent group's visibility. -- cgit v1.2.3 From 457561cb2e3a4972ef4464f3b36ceac3f269d78a Mon Sep 17 00:00:00 2001 From: Christie Lenneville Date: Tue, 21 May 2019 17:36:25 +0000 Subject: Replaced mdash with comma --- doc/user/group/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index ea2ec683845..7493e65e237 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -343,7 +343,7 @@ Define project templates at a group level by setting a group as the template sou ### Advanced settings - **Projects**: View all projects within that group, add members to each project, - access each project's settings, and remove any project—all from the same screen. + access each project's settings, and remove any project, all from the same screen. - **Webhooks**: Configure [webhooks](../project/integrations/webhooks.md) for your group. - **Kubernetes cluster integration**: Connect your GitLab group with [Kubernetes clusters](clusters/index.md). - **Audit Events**: View [Audit Events](https://docs.gitlab.com/ee/administration/audit_events.html) -- cgit v1.2.3 From 49940ce33576fb91a62309d46ad4d5c280e40040 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Tue, 21 May 2019 18:48:33 +0000 Subject: Add timing of repo size reporting --- doc/user/admin_area/index.md | 28 ++++++++++++++++++++++------ doc/user/project/repository/index.md | 12 ++++++++---- 2 files changed, 30 insertions(+), 10 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index dd4e96c1f4a..d2995d48833 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -61,16 +61,32 @@ Click the **All**, **Private**, **Internal**, or **Public** tab to list only pro criteria. By default, all projects are listed, in reverse order of when they were last updated. For each -project, the name, namespace, description, and size is listed, also options to **Edit** or -**Delete** it. +project, the following information is listed: -Sort projects by **Name**, **Last created**, **Oldest created**, **Last updated**, **Oldest -updated**, **Owner**, and choose to hide or show archived projects. +- Name. +- Namespace. +- Description. +- Size, updated every 15 minutes at most. + +Projects can be edited or deleted. + +The list of projects can be sorted by: + +- Name. +- Last created. +- Oldest created. +- Last updated. +- Oldest updated. +- Owner. + +A user can choose to hide or show archived projects in the list. In the **Filter by name** field, type the project name you want to find, and GitLab will filter them as you type. Select from the **Namespace** dropdown to filter only projects in that namespace. -You can combine the filter options. For example, click the **Public** tab, and enter `score` in -the **Filter by name...** input box to list only public projects with `score` in their name. +You can combine the filter options. For example, to list only public projects with `score` in their name: + +1. Click the **Public** tab. +1. Enter `score` in the **Filter by name...** input box. diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index 97ecc4c0d65..cb514b76a4e 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -173,11 +173,15 @@ Via command line, you can commit multiple times before pushing. ## Repository size -On GitLab.com, your [repository size limit is 10GB](../../gitlab_com/index.md#repository-size-limit) -(including LFS). For other instances, the repository size is limited by your -system administrators. +A project's repository size is reported on the project's **Details** page. The reported size is +updated every 15 minutes at most, so may not reflect recent activity. -You can also [reduce a repository size using Git](reducing_the_repo_size_using_git.md). +The repository size for: + +- GitLab.com [is set by GitLab](../../gitlab_com/index.md#repository-size-limit). +- Self-managed instances is set by your GitLab administrators. + +You can [reduce a repository's size using Git](reducing_the_repo_size_using_git.md). ## Contributors -- cgit v1.2.3 From 20ebd603bc1b9bf5707c3bdfacaf34ed44e8df0e Mon Sep 17 00:00:00 2001 From: Luke Duncalfe Date: Wed, 22 May 2019 11:58:04 +1200 Subject: Update path to Usage Statistics in Admin Settings --- doc/user/admin_area/settings/usage_statistics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/usage_statistics.md b/doc/user/admin_area/settings/usage_statistics.md index 8b5d80efb0d..01d1eb1cd0e 100644 --- a/doc/user/admin_area/settings/usage_statistics.md +++ b/doc/user/admin_area/settings/usage_statistics.md @@ -4,7 +4,7 @@ GitLab Inc. will periodically collect information about your instance in order to perform various actions. All statistics are opt-out, you can enable/disable them from the admin panel -under **Admin area > Settings > Usage statistics**. +under **Admin area > Settings > Metrics and profiling > Usage statistics**. ## Version check **[CORE ONLY]** -- cgit v1.2.3 From da516b9f29037ddd734f85aa1c18abe484542b42 Mon Sep 17 00:00:00 2001 From: "Philipp C. H" Date: Wed, 22 May 2019 15:19:45 +0000 Subject: replace passive with active voice --- doc/user/project/web_ide/index.md | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md index 2a2507d98a3..a634a8b2f54 100644 --- a/doc/user/project/web_ide/index.md +++ b/doc/user/project/web_ide/index.md @@ -8,7 +8,7 @@ projects by providing an advanced editor with commit staging. ## Open the Web IDE -The Web IDE can be opened when viewing a file, from the repository file list, +You can open the Web IDE when viewing a file, from the repository file list, and from merge requests. ![Open Web IDE](img/open_web_ide.png) @@ -45,7 +45,7 @@ Single file editing is based on the [Ace Editor](https://ace.c9.io). ## Stage and commit changes -After making your changes, click the Commit button in the bottom left to +After making your changes, click the **Commit** button in the bottom left to review the list of changed files. Click on each file to review the changes and click the tick icon to stage the file. @@ -67,10 +67,11 @@ shows you a preview of the merge request diff if you commit your changes. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19279) in [GitLab Core][ce] 11.0. -The Web IDE can be used to quickly fix failing tests by opening the branch or -merge request in the Web IDE and opening the logs of the failed job. The status -of all jobs for the most recent pipeline and job traces for the current commit -can be accessed by clicking the **Pipelines** button in the top right. +You can use the Web IDE to quickly fix failing tests by opening +the branch or merge request in the Web IDE and opening the logs of the failed +job. You can access the status of all jobs for the most recent pipeline and job +traces for the current commit by clicking the **Pipelines** button in the top +right. The pipeline status is also shown at all times in the status bar in the bottom left. @@ -79,31 +80,31 @@ left. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19318) in [GitLab Core][ce] 11.0. -Switching between your authored and assigned merge requests can be done without -leaving the Web IDE. Click the dropdown in the top of the sidebar to open a list -of merge requests. You will need to commit or discard all your changes before -switching to a different merge request. +To switch between your authored and assigned merge requests, click the +dropdown in the top of the sidebar to open a list of merge requests. You will +need to commit or discard all your changes before switching to a different merge +request. ## Switching branches > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20850) in [GitLab Core][ce] 11.2. -Switching between branches of the current project repository can be done without -leaving the Web IDE. Click the dropdown in the top of the sidebar to open a list -of branches. You will need to commit or discard all your changes before -switching to a different branch. +To switch between branches of the current project repository, click the dropdown +in the top of the sidebar to open a list of branches. +You will need to commit or discard all your changes before switching to a +different branch. ## Client Side Evaluation > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/19764) in [GitLab Core][ce] 11.2. -The Web IDE can be used to preview JavaScript projects right in the browser. +You can use the Web IDE to preview JavaScript projects right in the browser. This feature uses CodeSandbox to compile and bundle the JavaScript used to preview the web application. ![Web IDE Client Side Evaluation](img/clientside_evaluation.png) -Additionally, for public projects an `Open in CodeSandbox` button is available +Additionally, for public projects an **Open in CodeSandbox** button is available to transfer the contents of the project into a public CodeSandbox project to quickly share your project with others. @@ -115,9 +116,9 @@ GitLab.com ![Admin Client Side Evaluation setting](img/admin_clientside_evaluation.png) -Once it has been enabled in application settings, projects with a -`package.json` file and a `main` entry point can be previewed inside of the Web -IDE. An example `package.json` is below. +Once you have done that, you can preview projects with a `package.json` file and +a `main` entry point inside the Web IDE. An example `package.json` is shown +below. ```json { -- cgit v1.2.3 From 2f3263961e7f42e0af2e94752a535a4bd59c7fc1 Mon Sep 17 00:00:00 2001 From: Sese Schneider Date: Thu, 23 May 2019 10:59:47 +0000 Subject: The pipeline hook uses 'builds' instead of 'jobs' in its request body --- doc/user/project/integrations/webhooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index 10eb3a4f3b7..a0f500a939f 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -1016,7 +1016,7 @@ X-Gitlab-Event: Pipeline Hook "email": "user@gitlab.com" } }, - "jobs":[ + "builds":[ { "id": 380, "stage": "deploy", -- cgit v1.2.3 From 30d915110f94c75b464e1cee5e51a16fbd72fabd Mon Sep 17 00:00:00 2001 From: James Lopez Date: Thu, 23 May 2019 13:10:38 +0000 Subject: Fix issue importing members with owner access --- doc/user/project/settings/import_export.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 89008fd15b9..db4f8fbd8d3 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -23,6 +23,7 @@ > in the import side is required to map the users, based on email or username. > Otherwise, a supplementary comment is left to mention the original author and > the MRs, notes or issues will be owned by the importer. +> - Project members with owner access will get imported as maintainers. > - Control project Import/Export with the [API](../../../api/project_import_export.md). > - If an imported project contains merge requests originated from forks, > then new branches associated with such merge requests will be created -- cgit v1.2.3 From 53485e7ec5af3da36dbe84939be673d386b354b2 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 23 May 2019 15:39:29 +0000 Subject: Edit external auth for SSOT --- doc/user/admin_area/settings/external_authorization.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/external_authorization.md b/doc/user/admin_area/settings/external_authorization.md index 06e00e02f3d..11c0867da17 100644 --- a/doc/user/admin_area/settings/external_authorization.md +++ b/doc/user/admin_area/settings/external_authorization.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # External authorization control **[CORE ONLY]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4216) in @@ -108,5 +112,17 @@ The label will be shown on all project pages in the upper right corner. ![classification label on project page](img/classification_label_on_project_page.png) + + [omnibus-ssl-docs]: https://docs.gitlab.com/omnibus/settings/ssl.html [omnibus-log-docs]: https://docs.gitlab.com/omnibus/settings/logs.html -- cgit v1.2.3 From dc9e42b996d83a8774f1581c0d7d6d0232bad7f2 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 23 May 2019 15:42:33 +0000 Subject: Edit email settings for SSOT --- doc/user/admin_area/settings/email.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/email.md b/doc/user/admin_area/settings/email.md index 01a98cf15dc..912c2cff481 100644 --- a/doc/user/admin_area/settings/email.md +++ b/doc/user/admin_area/settings/email.md @@ -1,12 +1,18 @@ +--- +type: reference +--- + # Email +You can customize some of the content in emails sent from your GitLab instance. + ## Custom logo The logo in the header of some emails can be customized, see the [logo customization section](../../../customization/branded_page_and_email_header.md). ## Custom additional text **[PREMIUM ONLY]** ->[Introduced][ee-5031] in [GitLab Premium][eep] 10.7. +> [Introduced][ee-5031] in [GitLab Premium][eep] 10.7. The additional text will appear at the bottom of any email and can be used for legal/auditing/compliance reasons. @@ -24,8 +30,8 @@ legal/auditing/compliance reasons. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22560) in GitLab 11.5. -This configuration option sets the email hostname for [private commit emails](../../profile/index.md#private-commit-email), -and it's, by default, set to `users.noreply.YOUR_CONFIGURED_HOSTNAME`. +This configuration option sets the email hostname for [private commit emails](../../profile/index.md#private-commit-email). + By default it is set to `users.noreply.YOUR_CONFIGURED_HOSTNAME`. In order to change this option: @@ -36,3 +42,15 @@ In order to change this option: NOTE: **Note**: Once the hostname gets configured, every private commit email using the previous hostname, will not get recognized by GitLab. This can directly conflict with certain [Push rules](https://docs.gitlab.com/ee/push_rules/push_rules.html) such as `Check whether author is a GitLab user` and `Check whether committer is the current authenticated user`. + + \ No newline at end of file -- cgit v1.2.3 From bd7b91dab7bf2d4a4e83c0e5b7f8d4cccb23e136 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 23 May 2019 15:46:20 +0000 Subject: Edit CI/CD settings for SSOT guidelines --- doc/user/admin_area/settings/continuous_integration.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index 9dd476656ed..6c4abce83c2 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Continuous Integration and Deployment Admin settings **[CORE ONLY]** In this area, you will find settings for Auto DevOps, Runners and job artifacts. @@ -145,3 +149,15 @@ To set the duration for which the jobs will be considered as old and expired: Once that time passes, the jobs will be archived and no longer able to be retried. Make it empty to never expire jobs. It has to be no less than 1 day, for example: 15 days, 1 month, 2 years. + + \ No newline at end of file -- cgit v1.2.3 From ee91420639332cacbcb90110fb0ba892202a039c Mon Sep 17 00:00:00 2001 From: Evan Read Date: Thu, 23 May 2019 21:22:33 +0000 Subject: Rewording to clarify Access Control docs --- doc/user/project/clusters/index.md | 87 +++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 43 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 3bc3beb2055..bc4d732a405 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -71,7 +71,7 @@ new Kubernetes cluster to your project: - **Number of nodes** - Enter the number of nodes you wish the cluster to have. - **Machine type** - The [machine type](https://cloud.google.com/compute/docs/machine-types) of the Virtual Machine instance that the cluster will be based on. - - **RBAC-enabled cluster** - Leave this checked if using default GKE creation options, see the [RBAC section](#role-based-access-control-rbac) for more information. + - **RBAC-enabled cluster** - Leave this checked if using default GKE creation options, see the [RBAC section](#rbac-cluster-resources) for more information. - **GitLab-managed cluster** - Leave this checked if you want GitLab to manage namespaces and service accounts for this cluster. See the [Managed clusters section](#gitlab-managed-clusters) for more information. 1. Finally, click the **Create Kubernetes cluster** button. @@ -263,65 +263,66 @@ you can either: ## Access controls -When creating a cluster in GitLab, you will be asked if you would like to create an -[Attribute-based access control (ABAC)](https://kubernetes.io/docs/admin/authorization/abac/) cluster, or -a [Role-based access control (RBAC)](https://kubernetes.io/docs/admin/authorization/rbac/) one. +When creating a cluster in GitLab, you will be asked if you would like to create either: -NOTE: **Note:** -[RBAC](#role-based-access-control-rbac) is recommended and the GitLab default. +- An [Attribute-based access control (ABAC)](https://kubernetes.io/docs/admin/authorization/abac/) cluster. +- A [Role-based access control (RBAC)](https://kubernetes.io/docs/admin/authorization/rbac/) cluster. -Whether [ABAC](#attribute-based-access-control-abac) or [RBAC](#role-based-access-control-rbac) is enabled, -GitLab will create the necessary service accounts and privileges in order to install and run -[GitLab managed applications](#installing-applications): +NOTE: **Note:** +[RBAC](#rbac-cluster-resources) is recommended and the GitLab default. -- If GitLab is creating the cluster, a `gitlab` service account with - `cluster-admin` privileges will be created in the `default` namespace, - which will be used by GitLab to manage the newly created cluster. +GitLab creates the necessary service accounts and privileges to install and run +[GitLab managed applications](#installing-applications). When GitLab creates the cluster: +- A `gitlab` service account with `cluster-admin` privileges is created in the `default` namespace + to manage the newly created cluster. - A project service account with [`edit` privileges](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) - will be created in the project namespace (also created by GitLab), which will - be used in [deployment jobs](#deployment-variables). + is created in the GitLab-created project namespace for [deployment jobs](#deployment-variables). NOTE: **Note:** Restricted service account for deployment was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/51716) in GitLab 11.5. -- When you install Helm into your cluster, the `tiller` service account - will be created with `cluster-admin` privileges in the `gitlab-managed-apps` - namespace. This service account will be added to the installed Helm Tiller and will - be used by Helm to install and run [GitLab managed applications](#installing-applications). - Helm will also create additional service accounts and other resources for each - installed application. Consult the documentation of the Helm charts for each application - for details. +When you install Helm into your cluster, the `tiller` service account +is created with `cluster-admin` privileges in the `gitlab-managed-apps` +namespace. This service account will be added to the installed Helm Tiller and will +be used by Helm to install and run [GitLab managed applications](#installing-applications). +Helm will also create additional service accounts and other resources for each +installed application. Consult the documentation of the Helm charts for each application +for details. If you are [adding an existing Kubernetes cluster](#adding-an-existing-kubernetes-cluster), ensure the token of the account has administrator privileges for the cluster. -The following sections summarize which resources will be created on ABAC/RBAC clusters. +The resources created by GitLab differ depending on the type of cluster. + +### ABAC cluster resources + +GitLab creates the following resources for ABAC clusters. -### Attribute-based access control (ABAC) +| Name | Type | Details | Created when | +|:------------------|:---------------------|:----------------------------------|:---------------------------| +| `gitlab` | `ServiceAccount` | `default` namespace | Creating a new GKE Cluster | +| `gitlab-token` | `Secret` | Token for `gitlab` ServiceAccount | Creating a new GKE Cluster | +| `tiller` | `ServiceAccount` | `gitlab-managed-apps` namespace | Installing Helm Tiller | +| `tiller-admin` | `ClusterRoleBinding` | `cluster-admin` roleRef | Installing Helm Tiller | +| Project namespace | `ServiceAccount` | Uses namespace of Project | Deploying to a cluster | +| Project namespace | `Secret` | Token for project ServiceAccount | Deploying to a cluster | -| Name | Kind | Details | Created when | -| --- | --- | --- | --- | -| `gitlab` | `ServiceAccount` | `default` namespace | Creating a new GKE Cluster | -| `gitlab-token` | `Secret` | Token for `gitlab` ServiceAccount | Creating a new GKE Cluster | -| `tiller` | `ServiceAccount` | `gitlab-managed-apps` namespace | Installing Helm Tiller | -| `tiller-admin` | `ClusterRoleBinding` | `cluster-admin` roleRef | Installing Helm Tiller | -| Project namespace | `ServiceAccount` | Uses namespace of Project | Deploying to a cluster | -| Project namespace | `Secret` | Token for project ServiceAccount | Deploying to a cluster | +### RBAC cluster resources -### Role-based access control (RBAC) +GitLab creates the following resources for RBAC clusters. -| Name | Kind | Details | Created when | -| --- | --- | --- | --- | -| `gitlab` | `ServiceAccount` | `default` namespace | Creating a new GKE Cluster | -| `gitlab-admin` | `ClusterRoleBinding` | [`cluster-admin`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) roleRef | Creating a new GKE Cluster | -| `gitlab-token` | `Secret` | Token for `gitlab` ServiceAccount | Creating a new GKE Cluster | -| `tiller` | `ServiceAccount` | `gitlab-managed-apps` namespace | Installing Helm Tiller | -| `tiller-admin` | `ClusterRoleBinding` | `cluster-admin` roleRef | Installing Helm Tiller | -| Project namespace | `ServiceAccount` | Uses namespace of Project | Deploying to a cluster | -| Project namespace | `Secret` | Token for project ServiceAccount | Deploying to a cluster | -| Project namespace | `RoleBinding` | [`edit`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) roleRef | Deploying to a cluster | +| Name | Type | Details | Created when | +|:------------------|:---------------------|:-----------------------------------------------------------------------------------------------------------|:---------------------------| +| `gitlab` | `ServiceAccount` | `default` namespace | Creating a new GKE Cluster | +| `gitlab-admin` | `ClusterRoleBinding` | [`cluster-admin`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) roleRef | Creating a new GKE Cluster | +| `gitlab-token` | `Secret` | Token for `gitlab` ServiceAccount | Creating a new GKE Cluster | +| `tiller` | `ServiceAccount` | `gitlab-managed-apps` namespace | Installing Helm Tiller | +| `tiller-admin` | `ClusterRoleBinding` | `cluster-admin` roleRef | Installing Helm Tiller | +| Project namespace | `ServiceAccount` | Uses namespace of Project | Deploying to a cluster | +| Project namespace | `Secret` | Token for project ServiceAccount | Deploying to a cluster | +| Project namespace | `RoleBinding` | [`edit`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) roleRef | Deploying to a cluster | NOTE: **Note:** Project-specific resources are only created if your cluster is [managed by GitLab](#gitlab-managed-clusters). @@ -375,7 +376,7 @@ by GitLab before installing any of the applications. | [Prometheus](https://prometheus.io/docs/introduction/overview/) | 10.4+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | | [GitLab Runner](https://docs.gitlab.com/runner/) | 10.6+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | | [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. Authentication will be enabled only for [project members](../members/index.md) with [Developer or higher](../../permissions.md) access to the project. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). Note that Ingress must be installed and have an IP address assigned before JupyterHub can be installed. | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | -| [Knative](https://cloud.google.com/knative) | 11.5+ | Knative provides a platform to create, deploy, and manage serverless workloads from a Kubernetes cluster. It is used in conjunction with, and includes [Istio](https://istio.io) to provide an external IP address for all programs hosted by Knative. You will be prompted to enter a wildcard domain where your applications will be exposed. Configure your DNS server to use the external IP address for that domain. For any application created and installed, they will be accessible as `..`. This will require your kubernetes cluster to have [RBAC enabled](#role-based-access-control-rbac). | [knative/knative](https://storage.googleapis.com/triggermesh-charts) +| [Knative](https://cloud.google.com/knative) | 11.5+ | Knative provides a platform to create, deploy, and manage serverless workloads from a Kubernetes cluster. It is used in conjunction with, and includes [Istio](https://istio.io) to provide an external IP address for all programs hosted by Knative. You will be prompted to enter a wildcard domain where your applications will be exposed. Configure your DNS server to use the external IP address for that domain. For any application created and installed, they will be accessible as `..`. This will require your kubernetes cluster to have [RBAC enabled](#rbac-cluster-resources). | [knative/knative](https://storage.googleapis.com/triggermesh-charts) With the exception of Knative, the applications will be installed in a dedicated namespace called `gitlab-managed-apps`. -- cgit v1.2.3 From 85a8efd1b1f115546157fdab0834436d9025ce6d Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 23 May 2019 22:01:48 +0000 Subject: Edit Geo nodes content to comply with SSOT guidelines --- doc/user/admin_area/geo_nodes.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/geo_nodes.md b/doc/user/admin_area/geo_nodes.md index 776ab139c64..fb0f9a3285d 100644 --- a/doc/user/admin_area/geo_nodes.md +++ b/doc/user/admin_area/geo_nodes.md @@ -1,9 +1,13 @@ +--- +type: howto +--- + # Geo nodes admin area **[PREMIUM ONLY]** -For more information about setting up GitLab Geo, read the -[Geo documentation](https://docs.gitlab.com/ee/administration/geo/replication/index.html). +You can configure various settings for GitLab Geo nodes. For more information, see +[Geo documentation](https://docs.gitlab.com/ee/administration/geo/replication/index.md). -When you're done, you can navigate to **Admin area > Geo** (`/admin/geo/nodes`). +On the primary node, go to **Admin area > Geo**. On secondary nodes, go to **Admin area > Geo > Nodes**. ## Common settings @@ -68,3 +72,15 @@ a unique `name` is set for each Geo node. The `gitlab.rb` setting The load balancer must use sticky sessions in order to avoid authentication failures and cross site request errors. + + \ No newline at end of file -- cgit v1.2.3 From 8520f950aa11b3557e43b90fd01206e2d2a9eeaf Mon Sep 17 00:00:00 2001 From: James Edwards-Jones Date: Fri, 24 May 2019 16:34:24 +0700 Subject: Group SAML docs explain metadata configuration --- doc/user/group/saml_sso/index.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md index ee3137d032e..fa0b23bc192 100644 --- a/doc/user/group/saml_sso/index.md +++ b/doc/user/group/saml_sso/index.md @@ -15,7 +15,7 @@ SAML SSO for groups is used only as a convenient way to add users and does not s ## Configuring your Identity Provider 1. Navigate to the group and click **Settings > SAML SSO**. -1. Configure your SAML server using the **Assertion consumer service URL** and **Issuer**. See [your identity provider's documentation](#providers) for more details. +1. Configure your SAML server using the **Assertion consumer service URL** and **Issuer**. Alternatively GitLab provides [metadata XML configuration](#metadata-configuration). See [your identity provider's documentation](#providers) for more details. 1. Configure the SAML response to include a NameID that uniquely identifies each user. 1. Configure required assertions using the [table below](#assertions). 1. Once the identity provider is set up, move on to [configuring GitLab](#configuring-gitlab). @@ -42,6 +42,14 @@ GitLab.com uses the SAML NameID to identify users. The NameID element: | First Name | `first_name`, `firstname`, `firstName` | | | Last Name | `last_name`, `lastname`, `lastName` | | +## Metadata configuration + +GitLab provides metadata XML that can be used to configure your Identity Provider. + +1. Navigate to the group and click **Settings > SAML SSO**. +1. Copy the provided **GitLab metadata URL** +1. Follow your Identity Provider's documentation and paste the metadata URL when it is requested. + ## Configuring GitLab Once you've set up your identity provider to work with GitLab, you'll need to configure GitLab to use it for authentication: -- cgit v1.2.3 From ddd6a51f9bb38910eddd7b52502cba3b43cdaba1 Mon Sep 17 00:00:00 2001 From: Winnie Hellmann Date: Fri, 24 May 2019 14:28:39 +0000 Subject: Clarify that /copy_metadata only works within same project --- doc/user/project/quick_actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md index 15eb862b431..1d640966013 100644 --- a/doc/user/project/quick_actions.md +++ b/doc/user/project/quick_actions.md @@ -35,7 +35,7 @@ discussions, and descriptions: | `/label ~label1 ~label2` | Add label(s). Label names can also start without ~ but mixed syntax is not supported. | ✓ | ✓ | | `/unlabel ~label1 ~label2` | Remove all or specific label(s)| ✓ | ✓ | | `/relabel ~label1 ~label2` | Replace label | ✓ | ✓ | -| /copy_metadata #issue | !merge_request | Copy labels and milestone from other issue or merge request | ✓ | ✓ | +| /copy_metadata #issue | !merge_request | Copy labels and milestone from other issue or merge request in the project | ✓ | ✓ | | /estimate <1w 3d 2h 14m> | Set time estimate | ✓ | ✓ | | `/remove_estimate` | Remove time estimate | ✓ | ✓ | | /spend <time(1h 30m | -1h 5m)> <date(YYYY-MM-DD)> | Add or subtract spent time; optionally, specify the date that time was spent on | ✓ | ✓ | -- cgit v1.2.3 From 3e81f04ddbd5e6f534d946a6d74b54a206e1d816 Mon Sep 17 00:00:00 2001 From: Erik van der Gaag Date: Fri, 24 May 2019 20:05:15 +0000 Subject: Updating import-export doc page with better screenshots and updated information --- .../settings/img/import_export_download_export.png | Bin 24397 -> 25905 bytes .../settings/img/import_export_export_button.png | Bin 24118 -> 25102 bytes .../settings/img/import_export_mail_link.png | Bin 13496 -> 7561 bytes .../settings/img/import_export_new_project.png | Bin 13082 -> 13202 bytes .../settings/img/import_export_select_file.png | Bin 13514 -> 20580 bytes .../project/settings/img/settings_edit_button.png | Bin 6897 -> 0 bytes doc/user/project/settings/import_export.md | 27 +++++++++------------ 7 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 doc/user/project/settings/img/settings_edit_button.png (limited to 'doc/user') diff --git a/doc/user/project/settings/img/import_export_download_export.png b/doc/user/project/settings/img/import_export_download_export.png index 668254073e8..ab81c87bf5f 100644 Binary files a/doc/user/project/settings/img/import_export_download_export.png and b/doc/user/project/settings/img/import_export_download_export.png differ diff --git a/doc/user/project/settings/img/import_export_export_button.png b/doc/user/project/settings/img/import_export_export_button.png index 7f21bb2335b..9e368739695 100644 Binary files a/doc/user/project/settings/img/import_export_export_button.png and b/doc/user/project/settings/img/import_export_export_button.png differ diff --git a/doc/user/project/settings/img/import_export_mail_link.png b/doc/user/project/settings/img/import_export_mail_link.png index 48ef42855bc..985c37650d3 100644 Binary files a/doc/user/project/settings/img/import_export_mail_link.png and b/doc/user/project/settings/img/import_export_mail_link.png differ diff --git a/doc/user/project/settings/img/import_export_new_project.png b/doc/user/project/settings/img/import_export_new_project.png index b335700c5be..fc1f73c5d6e 100644 Binary files a/doc/user/project/settings/img/import_export_new_project.png and b/doc/user/project/settings/img/import_export_new_project.png differ diff --git a/doc/user/project/settings/img/import_export_select_file.png b/doc/user/project/settings/img/import_export_select_file.png index e1e5e031d81..e3e1a5ef980 100644 Binary files a/doc/user/project/settings/img/import_export_select_file.png and b/doc/user/project/settings/img/import_export_select_file.png differ diff --git a/doc/user/project/settings/img/settings_edit_button.png b/doc/user/project/settings/img/settings_edit_button.png deleted file mode 100644 index 32bcda03c7e..00000000000 Binary files a/doc/user/project/settings/img/settings_edit_button.png and /dev/null differ diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index db4f8fbd8d3..819515d7a4c 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -2,10 +2,11 @@ >**Notes:** > -> - [Introduced][ce-3050] in GitLab 8.9. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/3050) in GitLab 8.9. > - Importing will not be possible if the import instance version differs from > that of the exporter. -> - For GitLab admins, please read through [Project import/export administration](../../../administration/raketasks/project_import_export.md). +> - For GitLab admins, please read through +> [Project import/export administration](../../../administration/raketasks/project_import_export.md). > - For existing installations, the project import option has to be enabled in > application settings (`/admin/application_settings`) under 'Import sources'. > Ask your administrator if you don't see the **GitLab export** button when @@ -14,10 +15,9 @@ > on the GitLab instance in application settings (`/admin/application_settings`) > under 'Visibility and Access Controls'. > - You can find some useful raketasks if you are an administrator in the -> [import_export](../../../administration/raketasks/project_import_export.md) -> raketask. -> - The exports are stored in a temporary [shared directory][tmp] and are deleted -> every 24 hours by a specific worker. +> [import_export](../../../administration/raketasks/project_import_export.md) raketask. +> - The exports are stored in a temporary [shared directory](../../../development/shared_files.md) +> and are deleted every 24 hours by a specific worker. > - Group members will get exported as project members, as long as the user has > maintainer or admin access to the group where the exported project lives. An admin > in the import side is required to map the users, based on email or username. @@ -77,9 +77,9 @@ The following items will NOT be exported: ## Exporting a project and its data -1. Go to the project settings page by clicking on **Edit Project**: +1. Go to your project's homepage. - ![Project settings button](img/settings_edit_button.png) +1. Click **Settings** in the sidebar. 1. Scroll down to find the **Export project** button: @@ -98,19 +98,14 @@ The following items will NOT be exported: ## Importing the project -1. The new GitLab project import feature is at the far right of the import - options when creating a New Project. Make sure you are in the right namespace - and you have entered a project name. Click on **GitLab export**: +1. The GitLab project import feature is the first import option when creating a + new project. Click on **GitLab export**: ![New project](img/import_export_new_project.png) -1. You can see where the project will be imported to. You can now select file - exported previously: +1. Enter your project name and URL. Then select the file you exported previously: ![Select file](img/import_export_select_file.png) 1. Click on **Import project** to begin importing. Your newly imported project page will appear soon. - -[ce-3050]: https://gitlab.com/gitlab-org/gitlab-ce/issues/3050 -[tmp]: ../../../development/shared_files.md -- cgit v1.2.3 From a37c2094e4b9a83446b727193ac265a5e0435fb4 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Sun, 26 May 2019 23:31:04 +0000 Subject: Edit License details to comply with SSOT guidelines --- doc/user/admin_area/license.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/license.md b/doc/user/admin_area/license.md index 49959a9daef..1e8ce04da92 100644 --- a/doc/user/admin_area/license.md +++ b/doc/user/admin_area/license.md @@ -1,3 +1,7 @@ +--- +type: howto +--- + # Activate all GitLab Enterprise Edition functionality with a license **[STARTER ONLY]** To activate all GitLab Enterprise Edition (EE) functionality, you need to upload @@ -108,3 +112,15 @@ but only the latest license will be used as the active license. [free trial]: https://about.gitlab.com/free-trial/ [pricing]: https://about.gitlab.com/pricing/ + + \ No newline at end of file -- cgit v1.2.3 From 8e49825da57e3241107b4482d8a330c29d64d37d Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Sun, 26 May 2019 23:37:54 +0000 Subject: Edit Admin Area's *Health Check* content for SSOT --- doc/user/admin_area/monitoring/health_check.md | 33 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index e183898dfb1..43e35505e36 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -1,12 +1,16 @@ -# Health Check +--- +type: concepts, howto +--- -> **Notes:** +# Health Check +> NOTE: **Note:** +> > - Liveness and readiness probes were [introduced][ce-10416] in GitLab 9.1. > - The `health_check` endpoint was [introduced][ce-3888] in GitLab 8.8 and was > be deprecated in GitLab 9.1. > - [Access token](#access-token-deprecated) has been deprecated in GitLab 9.4 -> in favor of [IP whitelist](#ip-whitelist) +> in favor of [IP whitelist](#ip-whitelist). GitLab provides liveness and readiness probes to indicate service health and reachability to required services. These probes report on the status of the @@ -17,8 +21,7 @@ traffic until the system is ready or restart the container as needed. ## IP whitelist To access monitoring resources, the requesting client IP needs to be included in a whitelist. - -[Read how to add IPs to a whitelist for the monitoring endpoints][admin]. +For details, see [how to add IPs to a whitelist for the monitoring endpoints](../../../administration/monitoring/ip_whitelist.md). ## Using the endpoints @@ -87,9 +90,8 @@ will return a valid successful HTTP status code, and a `success` message. ## Access token (Deprecated) ->**Note:** -Access token has been deprecated in GitLab 9.4 -in favor of [IP whitelist](#ip-whitelist) +> NOTE: **Note:** +> Access token has been deprecated in GitLab 9.4 in favor of [IP whitelist](#ip-whitelist). An access token needs to be provided while accessing the probe endpoints. The current accepted token can be found under the **Admin area ➔ Monitoring ➔ Health check** @@ -103,10 +105,21 @@ The access token can be passed as a URL parameter: https://gitlab.example.com/-/readiness?token=ACCESS_TOKEN ``` + + [ce-10416]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10416 [ce-3888]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3888 [pingdom]: https://www.pingdom.com [nagios-health]: https://nagios-plugins.org/doc/man/check_http.html [newrelic-health]: https://docs.newrelic.com/docs/alerts/alert-policies/downtime-alerts/availability-monitoring -[kubernetes]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ -[admin]: ../../../administration/monitoring/ip_whitelist.md +[kubernetes]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ \ No newline at end of file -- cgit v1.2.3 From aa0afca5e649f64a4f2e76f287c3829db9459254 Mon Sep 17 00:00:00 2001 From: Thong Kuah Date: Mon, 27 May 2019 03:59:59 +0000 Subject: Move GitLab Managed Apps to own page So we can add detailed information, and also point to SSOT --- doc/user/clusters/applications.md | 263 +++++++++++++++++++++++++++++++++++++ doc/user/group/clusters/index.md | 31 +---- doc/user/project/clusters/index.md | 109 +-------------- 3 files changed, 271 insertions(+), 132 deletions(-) create mode 100644 doc/user/clusters/applications.md (limited to 'doc/user') diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md new file mode 100644 index 00000000000..97abe99fe62 --- /dev/null +++ b/doc/user/clusters/applications.md @@ -0,0 +1,263 @@ +# GitLab Managed Apps + +GitLab provides **GitLab Managed Apps**, a one-click install for various applications which can +be added directly to your configured cluster. These applications are +needed for [Review Apps](../../ci/review_apps/index.md) and +[deployments](../../ci/environments.md) when using [Auto DevOps](../../topics/autodevops/index.md). +You can install them after you +[create a cluster](../project/clusters/index.md#adding-and-creating-a-new-gke-cluster-via-gitlab). + +## Installing applications + +Applications managed by GitLab will be installed onto the `gitlab-managed-apps` namespace. +This namespace: + +- Is different from the namespace used for project deployments. +- Is created once. +- Has a non-configurable name. + +To see a list of available applications to install: + +1. For a: + - Project-level cluster, navigate to your project's **Operations > Kubernetes**. + - Group-level cluster, navigate to your group's **Kubernetes** page. + +Install Helm first as it's used to install other applications. + +NOTE: **Note:** +As of GitLab 11.6, Helm will be upgraded to the latest version supported +by GitLab before installing any of the applications. + +The following applications can be installed: + +- [Helm](#helm) +- [Ingress](#ingress) +- [Cert-Manager](#cert-manager) +- [Prometheus](#prometheus) +- [GitLab Runner](#gitlab-runner) +- [JupyterHub](#jupyterhub) +- [Knative](#knative) + +With the exception of Knative, the applications will be installed in a dedicated +namespace called `gitlab-managed-apps`. + +NOTE: **Note:** +Some applications are installable only for a project-level cluster. +Support for installing these applications in a group-level cluster is +planned for future releases. +For updates, see [the issue tracking +progress](https://gitlab.com/gitlab-org/gitlab-ce/issues/51989). + +CAUTION: **Caution:** +If you have an existing Kubernetes cluster with Helm already installed, +you should be careful as GitLab cannot detect it. In this case, installing +Helm via the applications will result in the cluster having it twice, which +can lead to confusion during deployments. + +### Helm + +> - Available for project-level clusters since GitLab 10.2. +> - Available for group-level clusters since GitLab 11.6. + +[Helm](https://docs.helm.sh/) is a package manager for Kubernetes and is +required to install all the other applications. It is installed in its +own pod inside the cluster which can run the `helm` CLI in a safe +environment. + +### Cert-Manager + +> - Available for project-level clusters since GitLab 11.6. +> - Available for group-level clusters since GitLab 11.6. + +[Cert-Manager](https://docs.cert-manager.io/en/latest/) is a native +Kubernetes certificate management controller that helps with issuing +certificates. Installing Cert-Manager on your cluster will issue a +certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that +certificates are valid and up-to-date. + +NOTE: **Note:** +The +[stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) +chart is used to install this application with a +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/cert_manager/values.yaml) +file. + +### GitLab Runner + +> - Available for project-level clusters since GitLab 10.6. +> - Available for group-level clusters since GitLab 11.10. + +[GitLab Runner](https://docs.gitlab.com/runner/) is the open source +project that is used to run your jobs and send the results back to +GitLab. It is used in conjunction with [GitLab +CI/CD](../../ci/README.md), the open-source continuous integration +service included with GitLab that coordinates the jobs. When installing +the GitLab Runner via the applications, it will run in **privileged +mode** by default. Make sure you read the [security +implications](../project/clusters/index.md/#security-implications) before doing so. + +NOTE: **Note:** +The +[runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) +chart is used to install this application with a +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) +file. + +### Ingress + +> - Available for project-level clusters since GitLab 10.2. +> - Available for group-level clusters since GitLab 11.6. + +[Ingress](https://kubernetes.github.io/ingress-nginx/) can provide load +balancing, SSL termination, and name-based virtual hosting. It acts as a +web proxy for your applications and is useful if you want to use [Auto +DevOps] or deploy your own web apps. + +NOTE: **Note:** +The +[stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) +chart is used to install this application with a +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/ingress/values.yaml) +file. + +### JupyterHub + +> Available for project-level clusters since GitLab 11.0. + +[JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a +multi-user service for managing notebooks across a team. [Jupyter +Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a +web-based interactive programming environment used for data analysis, +visualization, and machine learning. + +Authentication will be enabled only for [project +members](../project/members/index.md) with [Developer or +higher](../permissions.md) access to the project. + +We use a [custom Jupyter +image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) +that installs additional useful packages on top of the base Jupyter. You +will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). + +More information on +creating executable runbooks can be found in [our Nurtch +documentation](../project/clusters/runbooks/index.md#nurtch-executable-runbooks). Note that +Ingress must be installed and have an IP address assigned before +JupyterHub can be installed. + +NOTE: **Note:** +The +[jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) +chart is used to install this application with a +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/jupyter/values.yaml) +file. + +### Knative + +> Available for project-level clusters since GitLab 11.5. + +[Knative](https://cloud.google.com/knative) provides a platform to +create, deploy, and manage serverless workloads from a Kubernetes +cluster. It is used in conjunction with, and includes +[Istio](https://istio.io) to provide an external IP address for all +programs hosted by Knative. + +You will be prompted to enter a wildcard +domain where your applications will be exposed. Configure your DNS +server to use the external IP address for that domain. For any +application created and installed, they will be accessible as +`..`. This will require +your kubernetes cluster to have [RBAC +enabled](../project/clusters/index.md#rbac-cluster-resources). + +NOTE: **Note:** +The +[knative/knative](https://storage.googleapis.com/triggermesh-charts) +chart is used to install this application. + +### Prometheus + +> - Available for project-level clusters since GitLab 10.4. +> - Available for group-level clusters since GitLab 11.11. + +[Prometheus](https://prometheus.io/docs/introduction/overview/) is an +open-source monitoring and alerting system useful to supervise your +deployed applications. + +NOTE: **Note:** +The +[stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) +chart is used to install this application with a +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/prometheus/values.yaml) +file. + +## Upgrading applications + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24789) +in GitLab 11.8. + +The applications below can be upgraded. + +| Application | GitLab version | +| ----------- | -------------- | +| Runner | 11.8+ | + +To upgrade an application: + +1. For a: + - Project-level cluster, navigate to your project's **Operations > Kubernetes**. + - Group-level cluster, navigate to your group's **Kubernetes** page. +1. Select your cluster. +1. If an upgrade is available, the **Upgrade** button is displayed. Click the button to upgrade. + +NOTE: **Note:** +Upgrades will reset values back to the values built into the `runner` +chart plus the values set by +[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) + +## Uninstalling applications + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/60665) in +> GitLab 11.11. + +The applications below can be uninstalled. + +| Application | GitLab version | Notes | +| ----------- | -------------- | ----- | +| Prometheus | 11.11+ | All data will be deleted and cannot be restored. | + +To uninstall an application: + +1. For a: + - Project-level cluster, navigate to your project's **Operations > Kubernetes**. + - Group-level cluster, navigate to your group's **Kubernetes** page. +1. Select your cluster. +1. Click the **Uninstall** button for the application. + +Support for uninstalling all applications is planned for progressive rollout. +To follow progress, see [the relevant +epic](https://gitlab.com/groups/gitlab-org/-/epics/1201). + +## Troubleshooting applications + +Applications can fail with the following error: + +```text +Error: remote error: tls: bad certificate +``` + +To avoid installation errors: + +- Before starting the installation of applications, make sure that time is synchronized + between your GitLab server and your Kubernetes cluster. +- Ensure certificates are not out of sync. When installing applications, GitLab expects a new cluster with no previous installation of Helm. + + You can confirm that the certificates match via `kubectl`: + + ```sh + kubectl get configmaps/values-content-configuration-ingress -n gitlab-managed-apps -o \ + "jsonpath={.data['cert\.pem']}" | base64 -d > a.pem + kubectl get secrets/tiller-secret -n gitlab-managed-apps -o "jsonpath={.data['ca\.crt']}" | base64 -d > b.pem + diff a.pem b.pem + ``` + diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index ff6aa4f5930..8458b4f5de3 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -12,33 +12,10 @@ your group, enabling you to use the same cluster across multiple projects. ## Installing applications -GitLab provides a one-click install for various applications that can be -added directly to your cluster. - -NOTE: **Note:** -Applications will be installed in a dedicated namespace called -`gitlab-managed-apps`. If you have added an existing Kubernetes cluster -with Tiller already installed, you should be careful as GitLab cannot -detect it. In this event, installing Tiller via the applications will -result in the cluster having it twice. This can lead to confusion during -deployments. - -| Application | GitLab version | Description | Helm Chart | -| ----------- | -------------- | ----------- | ---------- | -| [Helm Tiller](https://docs.helm.sh) | 11.6+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | -| [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress) | 11.6+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps](../../../topics/autodevops/index.md) or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | -| [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | -| [Prometheus](https://prometheus.io/docs/introduction/overview/) | 11.11+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | -| [GitLab Runner](https://docs.gitlab.com/runner/) | 11.10+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](../../project/clusters/index.md#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | - -NOTE: **Note:** -Some [cluster -applications](../../project/clusters/index.md#installing-applications) -are installable only for a project-level cluster. Support for installing these -applications in a group-level cluster is planned for future releases. For updates, see: - -- Support installing [JupyterHub in group-level - clusters](https://gitlab.com/gitlab-org/gitlab-ce/issues/51989) +GitLab can install and manage some applications in your group-level +cluster. For more information on installing, upgrading, uninstalling, +and troubleshooting applications for your group cluster, see +[Gitlab Managed Apps](../../clusters/applications.md). ## RBAC compatibility diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index bc4d732a405..e38e4059117 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -347,111 +347,10 @@ install it manually. ## Installing applications -GitLab provides **GitLab Managed Apps**, a one-click install for various applications which can -be added directly to your configured cluster. These applications are -needed for [Review Apps](../../../ci/review_apps/index.md) and -[deployments](../../../ci/environments.md) when using [Auto DevOps](../../../topics/autodevops/index.md). -You can install them after you -[create a cluster](#adding-and-creating-a-new-gke-cluster-via-gitlab). - -Applications managed by GitLab will be installed onto the `gitlab-managed-apps` namespace. This differrent -from the namespace used for project deployments. It is only created once and its name is not configurable. - -To see a list of available applications to install: - -1. Navigate to your project's **Operations > Kubernetes**. -1. Select your cluster. - -Install Helm first as it's used to install other applications. - -NOTE: **Note:** -As of GitLab 11.6, Helm will be upgraded to the latest version supported -by GitLab before installing any of the applications. - -| Application | GitLab version | Description | Helm Chart | -| ----------- | :------------: | ----------- | --------------- | -| [Helm](https://docs.helm.sh/) | 10.2+ | Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the `helm` CLI in a safe environment. | n/a | -| [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) | 10.2+ | Ingress can provide load balancing, SSL termination, and name-based virtual hosting. It acts as a web proxy for your applications and is useful if you want to use [Auto DevOps] or deploy your own web apps. | [stable/nginx-ingress](https://github.com/helm/charts/tree/master/stable/nginx-ingress) | -| [Cert-Manager](https://docs.cert-manager.io/en/latest/) | 11.6+ | Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by [Let's Encrypt](https://letsencrypt.org/) and ensure that certificates are valid and up-to-date. | [stable/cert-manager](https://github.com/helm/charts/tree/master/stable/cert-manager) | -| [Prometheus](https://prometheus.io/docs/introduction/overview/) | 10.4+ | Prometheus is an open-source monitoring and alerting system useful to supervise your deployed applications. | [stable/prometheus](https://github.com/helm/charts/tree/master/stable/prometheus) | -| [GitLab Runner](https://docs.gitlab.com/runner/) | 10.6+ | GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with [GitLab CI/CD](../../../ci/README.md), the open-source continuous integration service included with GitLab that coordinates the jobs. When installing the GitLab Runner via the applications, it will run in **privileged mode** by default. Make sure you read the [security implications](#security-implications) before doing so. | [runner/gitlab-runner](https://gitlab.com/charts/gitlab-runner) | -| [JupyterHub](http://jupyter.org/) | 11.0+ | [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) is a multi-user service for managing notebooks across a team. [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io/en/latest/) provide a web-based interactive programming environment used for data analysis, visualization, and machine learning. We use a [custom Jupyter image](https://gitlab.com/gitlab-org/jupyterhub-user-image/blob/master/Dockerfile) that installs additional useful packages on top of the base Jupyter. Authentication will be enabled only for [project members](../members/index.md) with [Developer or higher](../../permissions.md) access to the project. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on creating executable runbooks can be found in [our Nurtch documentation](runbooks/index.md#nurtch-executable-runbooks). Note that Ingress must be installed and have an IP address assigned before JupyterHub can be installed. | [jupyter/jupyterhub](https://jupyterhub.github.io/helm-chart/) | -| [Knative](https://cloud.google.com/knative) | 11.5+ | Knative provides a platform to create, deploy, and manage serverless workloads from a Kubernetes cluster. It is used in conjunction with, and includes [Istio](https://istio.io) to provide an external IP address for all programs hosted by Knative. You will be prompted to enter a wildcard domain where your applications will be exposed. Configure your DNS server to use the external IP address for that domain. For any application created and installed, they will be accessible as `..`. This will require your kubernetes cluster to have [RBAC enabled](#rbac-cluster-resources). | [knative/knative](https://storage.googleapis.com/triggermesh-charts) - -With the exception of Knative, the applications will be installed in a dedicated -namespace called `gitlab-managed-apps`. - -CAUTION: **Caution:** -If you have an existing Kubernetes cluster with Helm already installed, -you should be careful as GitLab cannot detect it. In this case, installing -Helm via the applications will result in the cluster having it twice, which -can lead to confusion during deployments. - -### Upgrading applications - -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24789) -in GitLab 11.8. - -Users can perform a one-click upgrade for the GitLab Runner application, -when there is an upgrade available. - -To upgrade the GitLab Runner application: - -1. Navigate to your project's **Operations > Kubernetes**. -1. Select your cluster. -1. Click the **Upgrade** button for the Runnner application. - -The **Upgrade** button will not be shown if there is no upgrade -available. - -NOTE: **Note:** -Upgrades will reset values back to the values built into the `runner` -chart plus the values set by -[`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/runner/values.yaml) - -### Uninstalling applications - -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/60665) in -> GitLab 11.11. - -The applications below can be uninstalled. - -| Application | GitLab version | Notes | -| ----------- | -------------- | ----- | -| Prometheus | 11.11+ | All data will be deleted and cannot be restored. | - -To uninstall an application: - -1. Navigate to your project's **Operations > Kubernetes**. -1. Select your cluster. -1. Click the **Uninstall** button for the application. - -Support for uninstalling all applications is planned for progressive rollout. -To follow progress, see [the relevant -epic](https://gitlab.com/groups/gitlab-org/-/epics/1201). - -### Troubleshooting applications - -Applications can fail with the following error: - -```text -Error: remote error: tls: bad certificate -``` - -To avoid installation errors: - -- Before starting the installation of applications, make sure that time is synchronized - between your GitLab server and your Kubernetes cluster. -- Ensure certificates are not out of sync. When installing applications, GitLab expects a new cluster with no previous installation of Helm. - - You can confirm that the certificates match via `kubectl`: - - ```sh - kubectl get configmaps/values-content-configuration-ingress -n gitlab-managed-apps -o \ - "jsonpath={.data['cert\.pem']}" | base64 -d > a.pem - kubectl get secrets/tiller-secret -n gitlab-managed-apps -o "jsonpath={.data['ca\.crt']}" | base64 -d > b.pem - diff a.pem b.pem - ``` +GitLab can install and manage some applications in your project-level +cluster. For more information on installing, upgrading, uninstalling, +and troubleshooting applications for your project cluster, see +[Gitlab Managed Apps](../../clusters/applications.md). ## Getting the external endpoint -- cgit v1.2.3 From 38d742bfbfe8005773ab048c62fe7329b368faa7 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Mon, 27 May 2019 04:19:28 +0000 Subject: Edit admin index to comply with SSOT guidelines --- doc/user/admin_area/index.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index d2995d48833..52c4d2b997c 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # GitLab Admin Area **[CORE ONLY]** The Admin Area provides a web UI for administering some features of GitLab self-managed instances. -- cgit v1.2.3 From 8775c43b3e03edca831470efcd2efb7dc5648f61 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Mon, 27 May 2019 04:20:12 +0000 Subject: Edit Admin Area *Labels* to comply with SSOT guidelines --- doc/user/admin_area/labels.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/labels.md b/doc/user/admin_area/labels.md index e383142c33e..eba27548f86 100644 --- a/doc/user/admin_area/labels.md +++ b/doc/user/admin_area/labels.md @@ -1,9 +1,25 @@ +--- +type: reference +--- + # Labels administration **[CORE ONLY]** -## Default Labels +In the Admin Area, you can manage labels for the GitLab instance. For more details, see [Labels](../project/labels.md). -### Define your own default Label Set +## Default Labels -Labels that are created within the Labels view on the Admin Dashboard will be automatically added to each new project. +Labels created in the Admin Area become available to each _new_ project. ![Default label set](img/admin_labels.png) + + -- cgit v1.2.3 From 3f6dbfbfc59351e312657f7b9f3689d26c36a6f1 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Mon, 27 May 2019 11:37:06 +0000 Subject: Add details of the Admin Area's *Users* page --- doc/user/admin_area/index.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index 52c4d2b997c..4ed1287abbc 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -20,7 +20,7 @@ The Admin Area is made up of the following sections: | Section | Description | |:---------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| -| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), users, groups, jobs, runners, and Gitaly servers. | +| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), [users](#administer-users), groups, jobs, runners, and Gitaly servers. | | Monitoring | View GitLab system information, and information on background jobs, logs, [health checks](monitoring/health_check.md), request profiles, and audit logs. | | Messages | Send and manage [broadcast messages](broadcast_messages.md) for your users. | | System Hooks | Configure [system hooks](../../system_hooks/system_hooks.md) for many events. | @@ -94,3 +94,23 @@ You can combine the filter options. For example, to list only public projects wi 1. Click the **Public** tab. 1. Enter `score` in the **Filter by name...** input box. + +## Administer Users + +You can administer all users in the GitLab instance from the Admin Area's Users page. + +To access the Users page, go to **Admin Area > Overview > Users**. + +Click the **Active**, **Admins**, **2FA Enabled**, or **2FA Disabled**, **External**, or +**Without projects** tab to list only users of that criteria. + +For each user, their username, email address, are listed, also the date their account was +created and the date of last activity. To edit a user, click the **Edit** button in that user's +row. To delete the user, or delete the user and their contributions, click the cog dropdown in +that user's row, and select the desired option. + +To change the sort order, click the sort dropdown and select the desired order. By default the sort dropdown shows **Name**. + +To search for users, enter your criteria in the search field. The user search is case +insensitive, and applies partial matching to name and username. To search for an email address, +you must provide the complete email address. -- cgit v1.2.3 From 61d54bc1b6d237df5eb1d61ed185aaa43ccd545e Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Mon, 27 May 2019 11:49:21 +0000 Subject: Edit account limit settings to comply with SSOT guidelines --- .../settings/account_and_limit_settings.md | 45 ++++++++++++++-------- 1 file changed, 28 insertions(+), 17 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/account_and_limit_settings.md b/doc/user/admin_area/settings/account_and_limit_settings.md index 4a5bfb6b677..1d355824760 100644 --- a/doc/user/admin_area/settings/account_and_limit_settings.md +++ b/doc/user/admin_area/settings/account_and_limit_settings.md @@ -1,25 +1,29 @@ +--- +type: reference +--- + # Account and limit settings ## Repository size limit **[STARTER]** -> [Introduced][ee-740] in [GitLab Enterprise Edition 8.12][ee-8.12]. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/740) in [GitLab Enterprise Edition 8.12](https://about.gitlab.com/2016/09/22/gitlab-8-12-released/#limit-project-size-ee). +> Available in [GitLab Starter](https://about.gitlab.com/pricing/). Repositories within your GitLab instance can grow quickly, especially if you are -using LFS. Their size can grow exponentially and eat up your storage device quite -fast. +using LFS. Their size can grow exponentially, rapidly consuming available storage. -In order to avoid this from happening, you can set a hard limit for your -repositories' size. This limit can be set globally, per group, or per project, -with per project limits taking the highest priority. +To avoid this from happening, you can set a hard limit for your repositories' size. +This limit can be set globally, per group, or per project, with per project limits +taking the highest priority. -There are numerous cases where you'll need to set up a limit for repository size. +There are numerous use cases where you might set up a limit for repository size. For instance, consider the following workflow: -1. Your team develops apps which demand large files to be stored in +1. Your team develops apps which require large files to be stored in the application repository. -1. Although you have enabled [Git LFS](../../../workflow/lfs/manage_large_binaries_with_git_lfs.html#git-lfs) +1. Although you have enabled [Git LFS](../../../workflow/lfs/manage_large_binaries_with_git_lfs.md#git-lfs) to your project, your storage has grown significantly. -1. Before you blow your storage limit up, you set up a limit of 10 GB +1. Before you exceed available storage, you set up a limit of 10 GB per repository. ### How it works @@ -42,12 +46,19 @@ subsequent push will be denied. LFS objects, however, can be checked on first push and **will** be rejected if the sum of their sizes exceeds the maximum allowed repository size. -For more manually purging the files, read the docs on -[reducing the repository size using Git][repo-size]. +For details on manually purging files, see [reducing the repository size using Git](../../project/repository/reducing_the_repo_size_using_git.md). + +NOTE: **Note:** +For GitLab.com, the repository size limit is 10 GB. + + -- cgit v1.2.3 From b6ceb5aa4d491a4613649e1b313dbfd4654d0ffa Mon Sep 17 00:00:00 2001 From: Evan Read Date: Mon, 27 May 2019 15:55:18 +0000 Subject: Fix formatting of health check info --- doc/user/admin_area/monitoring/health_check.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index 43e35505e36..ff056490653 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -4,13 +4,11 @@ type: concepts, howto # Health Check -> NOTE: **Note:** -> -> - Liveness and readiness probes were [introduced][ce-10416] in GitLab 9.1. -> - The `health_check` endpoint was [introduced][ce-3888] in GitLab 8.8 and was -> be deprecated in GitLab 9.1. -> - [Access token](#access-token-deprecated) has been deprecated in GitLab 9.4 -> in favor of [IP whitelist](#ip-whitelist). +> - Liveness and readiness probes were [introduced][ce-10416] in GitLab 9.1. +> - The `health_check` endpoint was [introduced][ce-3888] in GitLab 8.8 and was +> be deprecated in GitLab 9.1. +> - [Access token](#access-token-deprecated) has been deprecated in GitLab 9.4 +> in favor of [IP whitelist](#ip-whitelist). GitLab provides liveness and readiness probes to indicate service health and reachability to required services. These probes report on the status of the @@ -33,7 +31,7 @@ With default whitelist settings, the probes can be accessed from localhost using The first endpoint, `health`, only checks whether the application server is running. It does not verify the database or other services are running. A successful response will return a 200 status code with the following message: -``` +```text GitLab OK ``` @@ -101,7 +99,7 @@ accepted token can be found under the **Admin area ➔ Monitoring ➔ Health che The access token can be passed as a URL parameter: -``` +```text https://gitlab.example.com/-/readiness?token=ACCESS_TOKEN ``` @@ -122,4 +120,4 @@ but commented out to help encourage others to add to it in the future. --> [pingdom]: https://www.pingdom.com [nagios-health]: https://nagios-plugins.org/doc/man/check_http.html [newrelic-health]: https://docs.newrelic.com/docs/alerts/alert-policies/downtime-alerts/availability-monitoring -[kubernetes]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ \ No newline at end of file +[kubernetes]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ -- cgit v1.2.3 From 60428e6f254574c0867a45d962ba6a6a928a2d7a Mon Sep 17 00:00:00 2001 From: Kyle Kemp Date: Mon, 27 May 2019 18:41:03 +0000 Subject: fix relationship typo --- doc/user/project/pages/getting_started_part_two.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index faf51154e3b..b74520e6556 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -88,7 +88,7 @@ website from your project's **Settings > Pages**. You can also take some **optional** further steps: -- _Remove the fork relationship._ The fork relashionship is necessary to contribute back to the project you originally forked from. If you don't have any intentions to do so, you can remove it. To do so, navigate to your project's **Settings**, expand **Advanced settings**, and scroll down to **Remove fork relationship**: +- _Remove the fork relationship._ The fork relationship is necessary to contribute back to the project you originally forked from. If you don't have any intentions to do so, you can remove it. To do so, navigate to your project's **Settings**, expand **Advanced settings**, and scroll down to **Remove fork relationship**: ![remove fork relationship](img/remove_fork_relationship.png) -- cgit v1.2.3 From 2a7962417b04aba0d9463f56855285c042df2de7 Mon Sep 17 00:00:00 2001 From: James Edwards-Jones Date: Tue, 28 May 2019 03:37:04 +0000 Subject: Group SAML docs explain GitLab.com SSO sign in Updates documentation to reflect that SAML can now be used to sign into the GitLab instance, instead of just updating group membership. --- doc/user/group/saml_sso/index.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md index 778dbaf7a29..62a3ef52c34 100644 --- a/doc/user/group/saml_sso/index.md +++ b/doc/user/group/saml_sso/index.md @@ -5,12 +5,12 @@ NOTE: **Note:** This topic is for SAML on GitLab.com Silver tier and above. For SAML on self-managed GitLab instances, see [SAML OmniAuth Provider](../../../integration/saml.md). -Currently SAML on GitLab.com can be used to automatically add users to a group, and does not yet sign users into GitLab.com. Users should already have an account on the GitLab instance, or can create one when logging in for the first time. +SAML on GitLab.com allows users to be automatically added to a group, and then allows those users to sign into GitLab.com. Users should already have an account on the GitLab instance, or can create one when logging in for the first time. User synchronization for GitLab.com is partially supported using [SCIM](scim_setup.md). NOTE: **Note:** -SAML SSO for groups is used only as a convenient way to add users and does not sync users between providers without using SCIM. If a group is not using SCIM, group Owners will still need to manage user accounts, such as removing users when necessary. +SAML SSO for GitLab.com groups does not sync users between providers without using SCIM. If a group is not using SCIM, group Owners will still need to manage user accounts (for example, removing users when necessary). ## Configuring your Identity Provider @@ -83,6 +83,23 @@ Once you've set up your identity provider to work with GitLab, you'll need to co | OneLogin | [Use the OneLogin SAML Test Connector](https://onelogin.service-now.com/support?id=kb_article&sys_id=93f95543db109700d5505eea4b96198f) | | Ping Identity | [Add and configure a new SAML application](https://docs.pingidentity.com/bundle/p1_enterpriseConfigSsoSaml_cas/page/enableAppWithoutURL.html) | +## Linking SAML to your existing GitLab.com account + +To link SAML to your existing GitLab.com account: + +1. Sign in to your GitLab.com account. +1. Locate the SSO URL for the group you are signing in to. A group Admin can find this on the group's **Settings > SAML SSO** page. +1. Visit the SSO URL and click **Authorize**. +1. Enter your credentials on the Identity Provider if prompted. +1. You will be redirected back to GitLab.com and should now have access to the group. In the future, you can use SAML to sign in to GitLab.com. + +## Signing in to GitLab.com with SAML + +1. Locate the SSO URL for the group you are signing in to. A group Admin can find this on a group's **Settings > SAML SSO** page. If configured, it might also be possible to sign in to GitLab starting from your Identity Provider. +1. Visit the SSO URL and click the **Sign in with Single Sign-On** button. +1. Enter your credentials on the Identity Provider if prompted. +1. You will be signed in to GitLab.com and redirected to the group. + ## Unlinking accounts Users can unlink SAML for a group from their profile page. This can be helpful if: -- cgit v1.2.3 From 10eb09b94eb41681556165bc8fdd86574aa0e705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Tue, 28 May 2019 09:06:45 +0000 Subject: doc: personal_access_tokens: add missing link to !5951 --- doc/user/profile/personal_access_tokens.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md index 4085f3b678c..5166524d13b 100644 --- a/doc/user/profile/personal_access_tokens.md +++ b/doc/user/profile/personal_access_tokens.md @@ -49,6 +49,7 @@ the following table. [2fa]: ../account/two_factor_authentication.md [api]: ../../api/README.md [ce-3749]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3749 +[ce-5951]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951 [ce-14838]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14838 [container registry]: ../project/container_registry.md [users]: ../../api/users.md -- cgit v1.2.3 From e339e453e4637d1b354d351e40f60eb0353fdc07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 29 May 2019 09:15:06 +0000 Subject: doc: add git mr command promotion --- doc/user/project/merge_requests/index.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 09736c7fc7e..abd61970f7a 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -606,6 +606,9 @@ And to check out a particular merge request: git checkout origin/merge-requests/1 ``` +all the above can be done with [git-mr] script. + +[git-mr]: https://gitlab.com/glensc/git-mr [products]: https://about.gitlab.com/products/ "GitLab products page" [protected branches]: ../protected_branches.md [ci]: ../../../ci/README.md -- cgit v1.2.3 From 0a5a7472aca7b00752a5a3c44c36e1e999a01645 Mon Sep 17 00:00:00 2001 From: Sam Beckham Date: Wed, 29 May 2019 14:30:42 +0000 Subject: Adds the CE port for the confidence filter https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/12805/ --- doc/user/application_security/security_dashboard/index.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/application_security/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md index ca31e15c65f..19eeb06a259 100644 --- a/doc/user/application_security/security_dashboard/index.md +++ b/doc/user/application_security/security_dashboard/index.md @@ -54,6 +54,7 @@ First, navigate to the Security Dashboard found under your group's Once you're on the dashboard, at the top you should see a series of filters for: - Severity +- Confidence - Report type - Project -- cgit v1.2.3 From c22d5bfb1a72ecf17c90668d7603344fb00d4a97 Mon Sep 17 00:00:00 2001 From: Tristan Williams <2390023-tristan@users.noreply.gitlab.com> Date: Wed, 29 May 2019 15:46:23 +0000 Subject: Docs: clarify project transfer permissions --- doc/user/project/settings/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md index 99dd018a3ba..737dea1de6c 100644 --- a/doc/user/project/settings/index.md +++ b/doc/user/project/settings/index.md @@ -100,9 +100,9 @@ Only project Owners and Admin users have the [permissions] to transfer a project You can transfer an existing project into a [group](../../group/index.md) if: -1. you have at least **Maintainer** [permissions] to that group -1. you are an **Owner** of the project. - +1. You have at least **Maintainer** [permissions] to that group. +1. The project is in a subgroup you own. +1. You are at least a **Maintainer** of the project under your personal namespace. Similarly, if you are an owner of a group, you can transfer any of its projects under your own user. -- cgit v1.2.3 From 9718e9bc61e131587e15be38c8fd30670eb7bb0e Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Wed, 29 May 2019 19:40:10 +0000 Subject: Document Admin Area's *Jobs* page --- doc/user/admin_area/index.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index 4ed1287abbc..db5da26ca0a 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -114,3 +114,27 @@ To change the sort order, click the sort dropdown and select the desired order. To search for users, enter your criteria in the search field. The user search is case insensitive, and applies partial matching to name and username. To search for an email address, you must provide the complete email address. + +## Administer Jobs + +You can administer all jobs in the GitLab instance from the Admin Area's Jobs page. + +To access the Jobs page, go to **Admin Area > Overview > Jobs**. + +All jobs are listed, in reverse order of their job ID. + +Click the **All** tab to list all jobs. Click the **Pending**, **Running**, or **Finished** tab to list only jobs of that status. + +For each job, the following details are listed: + +| Field | Description | +|--------- | ----------- | +| Status | Job status, either **passed**, **skipped**, or **failed**. | +| Job | Includes links to the job, branch, and the commit that started the job. | +| Pipeline | Includes a link to the specific pipeline. | +| Project | Name of the project, and organization, to which the job belongs. | +| Runner | Name of the CI runner assigned to execute the job. | +| Stage | Stage that the job is declared in a `.gitlab-ci.yml` file. | +| Name | Name of the job specified in a `.gitlab-ci.yml` file. | +| Timing | Duration of the job, and how long ago the job completed. | +| Coverage | Percentage of tests coverage. | -- cgit v1.2.3 From 0daa8c12e72fc86d88adf6b937f8840b8aece9fe Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 30 May 2019 06:49:38 +0000 Subject: Update diff_limits.md --- doc/user/admin_area/diff_limits.md | 41 ++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 11 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/diff_limits.md b/doc/user/admin_area/diff_limits.md index 9205860ef1f..4063c40a751 100644 --- a/doc/user/admin_area/diff_limits.md +++ b/doc/user/admin_area/diff_limits.md @@ -1,21 +1,40 @@ +--- +type: reference +--- + # Diff limits administration +You can set a maximum size for display of diff files (patches). + +## Maximum diff patch size + +Diff files which exceed this value will be presented as 'too large' and won't +be expandable. Instead of an expandable view, a link to the blob view will be +shown. + +Patches greater than 10% of this size will be automatically collapsed, and a +link to expand the diff will be presented. + NOTE: **Note:** Merge requests and branch comparison views will be affected. CAUTION: **Caution:** -These settings are currently under experimental state. They'll -increase the resource consumption of your instance and should -be edited mindfully. +This setting is experimental. An increased maximum will increase resource +consumption of your instance. Keep this in mind when adjusting the maximum. -1. Access **Admin area > Settings > General** -1. Expand **Diff limits** +1. Go to **Admin area > Settings > General**. +1. Expand **Diff limits**. +1. Enter a value for **Maximum diff patch size**, measured in bytes. +1. Click on **Save changes**. -### Maximum diff patch size + -- cgit v1.2.3 From 589b2db06ca2ca2bc3e5d9e56968e3609f9e4626 Mon Sep 17 00:00:00 2001 From: Bob Van Landuyt Date: Tue, 23 Apr 2019 16:27:01 +0200 Subject: Setup Phabricator import This sets up all the basics for importing Phabricator tasks into GitLab issues. To import all tasks from a Phabricator instance into GitLab, we'll import all of them into a new project that will have its repository disabled. The import is hooked into a regular ProjectImport setup, but similar to the GitHub parallel importer takes care of all the imports itself. In this iteration, we're importing each page of tasks in a separate sidekiq job. The first thing we do when requesting a new page of tasks is schedule the next page to be imported. But to avoid deadlocks, we only allow a single job per worker type to run at the same time. For now we're only importing basic Issue information, this should be extended to richer information. --- doc/user/project/import/index.md | 1 + doc/user/project/import/phabricator.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 doc/user/project/import/phabricator.md (limited to 'doc/user') diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index ebbc5ca133b..119bbbfc70b 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -14,6 +14,7 @@ 1. [From repo by URL](repo_by_url.md) 1. [By uploading a manifest file (AOSP)](manifest.md) 1. [From Gemnasium](gemnasium.md) +1. [From Phabricator](phabricator.md) In addition to the specific migration documentation above, you can import any Git repository via HTTP from the New Project page. Be aware that if the diff --git a/doc/user/project/import/phabricator.md b/doc/user/project/import/phabricator.md new file mode 100644 index 00000000000..4d1d99fd35b --- /dev/null +++ b/doc/user/project/import/phabricator.md @@ -0,0 +1,32 @@ +# Import Phabricator tasks into a GitLab project + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/60562) in +GitLab 12.0. + +GitLab allows you to import all tasks from a Phabricator instance into +GitLab issues. The import creates a single project with the +repository disabled. + +Currently, only the following basic fields are imported: + +- Title +- Description +- State (open or closed) +- Created at +- Closed at + + +## Enabling this feature + +While this feature is incomplete, a feature flag is required to enable it so that +we can gain early feedback before releasing it for everyone. To enable it: + +1. Enable Phabricator as an [import source](../../admin_area/settings/visibility_and_access_controls.md#import-sources) in the Admin area. + + ``` {.ruby} + Feature.enable(:phabricator_import) + ``` + +The [import +source](../../admin_area/settings/visibility_and_access_controls.md#import-sources) +also needs to be activated by an admin in the admin interface. -- cgit v1.2.3 From 796fdc83e8c4346bf7bd92a48a68a2aa429eceaa Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 31 May 2019 11:06:58 +0000 Subject: Docs: Clean up tables in permissions doc --- doc/user/permissions.md | 261 ++++++++++++++++++++++++------------------------ 1 file changed, 129 insertions(+), 132 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 318053fdabb..a6e2f187090 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -36,91 +36,96 @@ In GitLab 11.0, the Master role was renamed to Maintainer. The following table depicts the various user permission levels in a project. -| Action | Guest | Reporter | Developer |Maintainer| Owner | -|---------------------------------------|---------|------------|-------------|----------|--------| -| Create new issue | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| Create confidential issue | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| View confidential issues | (✓) [^2] | ✓ | ✓ | ✓ | ✓ | -| Leave comments | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| See related issues | ✓ | ✓ | ✓ | ✓ | ✓ | -| See a list of jobs | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | -| See a job log | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | -| Download and browse job artifacts | ✓ [^3] | ✓ | ✓ | ✓ | ✓ | -| View wiki pages | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| Create and edit wiki pages | | | ✓ | ✓ | ✓ | -| Delete wiki pages | | | | ✓ | ✓ | -| View license management reports **[ULTIMATE]** | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| View Security reports **[ULTIMATE]** | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | -| View project code | [^1] | ✓ | ✓ | ✓ | ✓ | -| Pull project code | [^1] | ✓ | ✓ | ✓ | ✓ | -| Download project | [^1] | ✓ | ✓ | ✓ | ✓ | -| Assign issues | | ✓ | ✓ | ✓ | ✓ | -| Assign merge requests | | | ✓ | ✓ | ✓ | -| Label issues | | ✓ | ✓ | ✓ | ✓ | -| Label merge requests | | | ✓ | ✓ | ✓ | -| Create code snippets | | ✓ | ✓ | ✓ | ✓ | -| Manage issue tracker | | ✓ | ✓ | ✓ | ✓ | -| Manage labels | | ✓ | ✓ | ✓ | ✓ | -| See a commit status | | ✓ | ✓ | ✓ | ✓ | -| See a container registry | | ✓ | ✓ | ✓ | ✓ | -| See environments | | ✓ | ✓ | ✓ | ✓ | -| See a list of merge requests | | ✓ | ✓ | ✓ | ✓ | -| Manage related issues **[STARTER]** | | ✓ | ✓ | ✓ | ✓ | -| Lock issue discussions | | ✓ | ✓ | ✓ | ✓ | -| Create issue from vulnerability **[ULTIMATE]** | | ✓ | ✓ | ✓ | ✓ | -| View Error Tracking list | | ✓ | ✓ | ✓ | ✓ | -| Pull from [Maven repository](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html) or [NPM registry](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html) **[PREMIUM]** | | ✓ | ✓ | ✓ | ✓ | -| Publish to [Maven repository](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html) or [NPM registry](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html) **[PREMIUM]** | | | ✓ | ✓ | ✓ | -| Lock merge request discussions | | | ✓ | ✓ | ✓ | -| Create new environments | | | ✓ | ✓ | ✓ | -| Stop environments | | | ✓ | ✓ | ✓ | -| Manage/Accept merge requests | | | ✓ | ✓ | ✓ | -| Create new merge request | | | ✓ | ✓ | ✓ | -| Create new branches | | | ✓ | ✓ | ✓ | -| Push to non-protected branches | | | ✓ | ✓ | ✓ | -| Force push to non-protected branches | | | ✓ | ✓ | ✓ | -| Remove non-protected branches | | | ✓ | ✓ | ✓ | -| Add tags | | | ✓ | ✓ | ✓ | -| Cancel and retry jobs | | | ✓ | ✓ | ✓ | -| Create or update commit status | | | ✓ | ✓ | ✓ | -| Update a container registry | | | ✓ | ✓ | ✓ | -| Remove a container registry image | | | ✓ | ✓ | ✓ | -| Create/edit/delete project milestones | | | ✓ | ✓ | ✓ | +| Action | Guest | Reporter | Developer |Maintainer| Owner | +|---------------------------------------------------|---------|------------|-------------|----------|--------| +| Download project | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| Leave comments | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| View Insights charts **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | | View approved/blacklisted licenses **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | -| Use security dashboard **[ULTIMATE]** | | | ✓ | ✓ | ✓ | -| Dismiss vulnerability **[ULTIMATE]** | | | ✓ | ✓ | ✓ | -| Apply code change suggestions | | | ✓ | ✓ | ✓ | -| Use environment terminals | | | | ✓ | ✓ | -| Run Web IDE's Interactive Web Terminals **[ULTIMATE ONLY]** | | | | ✓ | ✓ | -| Add new team members | | | | ✓ | ✓ | -| Push to protected branches | | | | ✓ | ✓ | -| Enable/disable branch protection | | | | ✓ | ✓ | -| Turn on/off protected branch push for devs| | | | ✓ | ✓ | -| Enable/disable tag protections | | | | ✓ | ✓ | -| Rewrite/remove Git tags | | | | ✓ | ✓ | -| Edit project | | | | ✓ | ✓ | -| Add deploy keys to project | | | | ✓ | ✓ | -| Configure project hooks | | | | ✓ | ✓ | -| Manage Runners | | | | ✓ | ✓ | -| Manage job triggers | | | | ✓ | ✓ | -| Manage variables | | | | ✓ | ✓ | -| Manage GitLab Pages | | | | ✓ | ✓ | -| Manage GitLab Pages domains and certificates | | | | ✓ | ✓ | -| Remove GitLab Pages | | | | ✓ | ✓ | +| View license management reports **[ULTIMATE]** | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| View Security reports **[ULTIMATE]** | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| View project code | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| Pull project code | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | | View GitLab Pages protected by [access control](project/pages/introduction.md#gitlab-pages-access-control-core-only) | ✓ | ✓ | ✓ | ✓ | ✓ | -| Manage clusters | | | | ✓ | ✓ | -| Manage license policy **[ULTIMATE]** | | | | ✓ | ✓ | -| Edit comments (posted by any user) | | | | ✓ | ✓ | -| Manage Error Tracking | | | | ✓ | ✓ | -| Switch visibility level | | | | | ✓ | -| Transfer project to another namespace | | | | | ✓ | -| Remove project | | | | | ✓ | -| Delete issues | | | | | ✓ | -| Force push to protected branches [^4] | | | | | | -| Remove protected branches [^4] | | | | | | -| View project Audit Events | | | | ✓ | ✓ | -| View project statistics | | ✓ | ✓ | ✓ | ✓ | -| View Insights charts **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | +| View wiki pages | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| See a list of jobs | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ | +| See a job log | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ | +| Download and browse job artifacts | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ | +| Create new issue | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| See related issues | ✓ | ✓ | ✓ | ✓ | ✓ | +| Create confidential issue | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | +| View confidential issues | (*2*) | ✓ | ✓ | ✓ | ✓ | +| Assign issues | | ✓ | ✓ | ✓ | ✓ | +| Label issues | | ✓ | ✓ | ✓ | ✓ | +| Lock issue discussions | | ✓ | ✓ | ✓ | ✓ | +| Manage issue tracker | | ✓ | ✓ | ✓ | ✓ | +| Manage related issues **[STARTER]** | | ✓ | ✓ | ✓ | ✓ | +| Create issue from vulnerability **[ULTIMATE]** | | ✓ | ✓ | ✓ | ✓ | +| Manage labels | | ✓ | ✓ | ✓ | ✓ | +| Create code snippets | | ✓ | ✓ | ✓ | ✓ | +| See a commit status | | ✓ | ✓ | ✓ | ✓ | +| See a container registry | | ✓ | ✓ | ✓ | ✓ | +| See environments | | ✓ | ✓ | ✓ | ✓ | +| See a list of merge requests | | ✓ | ✓ | ✓ | ✓ | +| View project statistics | | ✓ | ✓ | ✓ | ✓ | +| View Error Tracking list | | ✓ | ✓ | ✓ | ✓ | +| Pull from [Maven repository](project/packages/maven_repository.md) or [NPM registry](project/packages/npm_registry.md) **[PREMIUM]** | | ✓ | ✓ | ✓ | ✓ | +| Publish to [Maven repository](project/packages/maven_repository.md) or [NPM registry](project/packages/npm_registry.md) **[PREMIUM]** | | | ✓ | ✓ | ✓ || +| Create new branches | | | ✓ | ✓ | ✓ | +| Push to non-protected branches | | | ✓ | ✓ | ✓ | +| Force push to non-protected branches | | | ✓ | ✓ | ✓ | +| Remove non-protected branches | | | ✓ | ✓ | ✓ | +| Create new merge request | | | ✓ | ✓ | ✓ | +| Assign merge requests | | | ✓ | ✓ | ✓ | +| Label merge requests | | | ✓ | ✓ | ✓ | +| Lock merge request discussions | | | ✓ | ✓ | ✓ | +| Manage/Accept merge requests | | | ✓ | ✓ | ✓ | +| Create new environments | | | ✓ | ✓ | ✓ | +| Stop environments | | | ✓ | ✓ | ✓ | +| Add tags | | | ✓ | ✓ | ✓ | +| Cancel and retry jobs | | | ✓ | ✓ | ✓ | +| Create or update commit status | | | ✓ | ✓ | ✓ | +| Update a container registry | | | ✓ | ✓ | ✓ | +| Remove a container registry image | | | ✓ | ✓ | ✓ | +| Create/edit/delete project milestones | | | ✓ | ✓ | ✓ | +| Use security dashboard **[ULTIMATE]** | | | ✓ | ✓ | ✓ | +| Dismiss vulnerability **[ULTIMATE]** | | | ✓ | ✓ | ✓ | +| Apply code change suggestions | | | ✓ | ✓ | ✓ | +| Create and edit wiki pages | | | ✓ | ✓ | ✓ | +| Use environment terminals | | | | ✓ | ✓ | +| Run Web IDE's Interactive Web Terminals **[ULTIMATE ONLY]** | | | | ✓ | ✓ | +| Add new team members | | | | ✓ | ✓ | +| Enable/disable branch protection | | | | ✓ | ✓ | +| Push to protected branches | | | | ✓ | ✓ | +| Turn on/off protected branch push for devs | | | | ✓ | ✓ | +| Enable/disable tag protections | | | | ✓ | ✓ | +| Rewrite/remove Git tags | | | | ✓ | ✓ | +| Edit project | | | | ✓ | ✓ | +| Add deploy keys to project | | | | ✓ | ✓ | +| Configure project hooks | | | | ✓ | ✓ | +| Manage Runners | | | | ✓ | ✓ | +| Manage job triggers | | | | ✓ | ✓ | +| Manage variables | | | | ✓ | ✓ | +| Manage GitLab Pages | | | | ✓ | ✓ | +| Manage GitLab Pages domains and certificates | | | | ✓ | ✓ | +| Remove GitLab Pages | | | | ✓ | ✓ | +| Manage clusters | | | | ✓ | ✓ | +| Manage license policy **[ULTIMATE]** | | | | ✓ | ✓ | +| Edit comments (posted by any user) | | | | ✓ | ✓ | +| Manage Error Tracking | | | | ✓ | ✓ | +| Delete wiki pages | | | | ✓ | ✓ | +| View project Audit Events | | | | ✓ | ✓ | +| Switch visibility level | | | | | ✓ | +| Transfer project to another namespace | | | | | ✓ | +| Remove project | | | | | ✓ | +| Delete issues | | | | | ✓ | +| Force push to protected branches [^4] | | | | | | +| Remove protected branches [^4] | | | | | | + +- (*1*): All users are able to perform this action on public and internal projects, but not private projects. +- (*2*): Guest users can only view the confidential issues they created themselves +- (*3*): If **Public pipelines** is enabled in **Project Settings > CI/CD** +- (*4*): Not allowed for Guest, Reporter, Developer, Maintainer, or Owner ## Project features permissions @@ -163,7 +168,7 @@ to learn more. The user that locks a file or directory is the only one that can edit and push their changes back to the repository where the locked objects are located. -Read through the documentation on [permissions for File Locking](https://docs.gitlab.com/ee/user/project/file_lock.html#permissions-on-file-locking) to learn more. +Read through the documentation on [permissions for File Locking](project/file_lock.md#permissions-on-file-locking) to learn more. ### Confidential Issues permissions @@ -191,21 +196,21 @@ Any user can remove themselves from a group, unless they are the last Owner of the group. The following table depicts the various user permission levels in a group. -| Action | Guest | Reporter | Developer | Maintainer | Owner | -|-------------------------|-------|----------|-----------|--------|-------| -| Browse group | ✓ | ✓ | ✓ | ✓ | ✓ | -| Edit group | | | | | ✓ | -| Create subgroup | | | | | ✓ | -| Create project in group | | | ✓ | ✓ | ✓ | -| Manage group members | | | | | ✓ | -| Remove group | | | | | ✓ | -| Manage group labels | | ✓ | ✓ | ✓ | ✓ | -| Create/edit/delete group milestones | | | ✓ | ✓ | ✓ | -| View group epic **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | -| Create/edit group epic **[ULTIMATE]** | | ✓ | ✓ | ✓ | ✓ | -| Delete group epic **[ULTIMATE]** | | | | | ✓ | -| View group Audit Events | | | | | ✓ | -| View Insights charts **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | +| Action | Guest | Reporter | Developer | Maintainer | Owner | +|---------------------------------------|-------|----------|-----------|------------|-------| +| Browse group | ✓ | ✓ | ✓ | ✓ | ✓ | +| View Insights charts **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | +| View group epic **[ULTIMATE]** | ✓ | ✓ | ✓ | ✓ | ✓ | +| Create/edit group epic **[ULTIMATE]** | | ✓ | ✓ | ✓ | ✓ | +| Manage group labels | | ✓ | ✓ | ✓ | ✓ | +| Create project in group | | | ✓ | ✓ | ✓ | +| Create/edit/delete group milestones | | | ✓ | ✓ | ✓ | +| Edit group | | | | | ✓ | +| Create subgroup | | | | | ✓ | +| Manage group members | | | | | ✓ | +| Remove group | | | | | ✓ | +| Delete group epic **[ULTIMATE]** | | | | | ✓ | +| View group Audit Events | | | | | ✓ | ### Subgroup permissions @@ -257,15 +262,15 @@ Please be aware that this regex could lead to a DOS attack, [see](https://en.wik ## Auditor users **[PREMIUM ONLY]** ->[Introduced][ee-998] in [GitLab Premium][eep] 8.17. +>[Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/998) in [GitLab Premium](https://about.gitlab.com/pricing/) 8.17. Auditor users are given read-only access to all projects, groups, and other resources on the GitLab instance. An Auditor user should be able to access all projects and groups of a GitLab instance -with the permissions described on the documentation on [auditor users permissions](https://docs.gitlab.com/ee/administration/auditor_users.html#permissions-and-restrictions-of-an-auditor-user). +with the permissions described on the documentation on [auditor users permissions](../administration/auditor_users.md#permissions-and-restrictions-of-an-auditor-user). -[Read more about Auditor users.](https://docs.gitlab.com/ee/administration/auditor_users.html) +[Read more about Auditor users.](../administration/auditor_users.md) ## Project features @@ -298,7 +303,7 @@ instance and project. In addition, all admins can use the admin interface under |---------------------------------------|-----------------|-------------|----------|--------| | See commits and jobs | ✓ | ✓ | ✓ | ✓ | | Retry or cancel job | | ✓ | ✓ | ✓ | -| Erase job artifacts and trace | | ✓ [^5] | ✓ | ✓ | +| Erase job artifacts and trace | | ✓ (*1*) | ✓ | ✓ | | Remove project | | | ✓ | ✓ | | Create project | | | ✓ | ✓ | | Change project configuration | | | ✓ | ✓ | @@ -307,6 +312,8 @@ instance and project. In addition, all admins can use the admin interface under | See events in the system | | | | ✓ | | Admin interface | | | | ✓ | +- *1*: Only if the job was triggered by the user + ### Job permissions NOTE: **Note:** @@ -314,25 +321,28 @@ In GitLab 11.0, the Master role was renamed to Maintainer. >**Note:** GitLab 8.12 has a completely redesigned job permissions system. -Read all about the [new model and its implications][new-mod]. +Read all about the [new model and its implications](project/new_ci_build_permissions_model.md). This table shows granted privileges for jobs triggered by specific types of users: -| Action | Guest, Reporter | Developer |Maintainer| Admin | -|---------------------------------------------|-----------------|-------------|----------|--------| -| Run CI job | | ✓ | ✓ | ✓ | -| Clone source and LFS from current project | | ✓ | ✓ | ✓ | -| Clone source and LFS from public projects | | ✓ | ✓ | ✓ | -| Clone source and LFS from internal projects | | ✓ [^6] | ✓ [^6] | ✓ | -| Clone source and LFS from private projects | | ✓ [^7] | ✓ [^7] | ✓ [^7] | -| Push source and LFS | | | | | -| Pull container images from current project | | ✓ | ✓ | ✓ | -| Pull container images from public projects | | ✓ | ✓ | ✓ | -| Pull container images from internal projects| | ✓ [^6] | ✓ [^6] | ✓ | -| Pull container images from private projects | | ✓ [^7] | ✓ [^7] | ✓ [^7] | -| Push container images to current project | | ✓ | ✓ | ✓ | -| Push container images to other projects | | | | | +| Action | Guest, Reporter | Developer |Maintainer| Admin | +|---------------------------------------------|-----------------|-------------|----------|---------| +| Run CI job | | ✓ | ✓ | ✓ | +| Clone source and LFS from current project | | ✓ | ✓ | ✓ | +| Clone source and LFS from public projects | | ✓ | ✓ | ✓ | +| Clone source and LFS from internal projects | | ✓ (*1*) | ✓ (*1*) | ✓ | +| Clone source and LFS from private projects | | ✓ (*2*) | ✓ (*2*) | ✓ (*2*) | +| Pull container images from current project | | ✓ | ✓ | ✓ | +| Pull container images from public projects | | ✓ | ✓ | ✓ | +| Pull container images from internal projects| | ✓ (*1*) | ✓ (*1*) | ✓ | +| Pull container images from private projects | | ✓ (*2*) | ✓ (*2*) | ✓ (*2*) | +| Push container images to current project | | ✓ | ✓ | ✓ | +| Push container images to other projects | | | | | +| Push source and LFS | | | | | + +- *1*: Only if the user is not an external one +- *2*: Only if the user is a member of the project ### New CI job permissions model @@ -350,17 +360,4 @@ for details about the pipelines security model. ## LDAP users permissions Since GitLab 8.15, LDAP user permissions can now be manually overridden by an admin user. -Read through the documentation on [LDAP users permissions](https://docs.gitlab.com/ee/administration/auth/how_to_configure_ldap_gitlab_ee/index.html) to learn more. - -[^1]: On public and internal projects, all users are able to perform this action -[^2]: Guest users can only view the confidential issues they created themselves -[^3]: If **Public pipelines** is enabled in **Project Settings > CI/CD** -[^4]: Not allowed for Guest, Reporter, Developer, Maintainer, or Owner -[^5]: Only if the job was triggered by the user -[^6]: Only if user is not external one -[^7]: Only if user is a member of the project - -[ce-18994]: https://gitlab.com/gitlab-org/gitlab-ce/issues/18994 -[new-mod]: project/new_ci_build_permissions_model.md -[ee-998]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/998 -[eep]: https://about.gitlab.com/pricing/ +Read through the documentation on [LDAP users permissions](../administration/auth/how_to_configure_ldap_gitlab_ee/index.html) to learn more. -- cgit v1.2.3 From 469070903d895f77c7e267dc691b4d87dd3c6873 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 31 May 2019 11:08:09 +0000 Subject: Docs: Change links to relative in /user/project (Part 1) --- doc/user/project/ci_cd_for_external_repo.md | 4 ++-- doc/user/project/deploy_tokens/index.md | 2 +- doc/user/project/import/gemnasium.md | 10 +++++----- doc/user/project/import/github.md | 4 ++-- doc/user/project/import/index.md | 2 +- doc/user/project/index.md | 12 ++++++------ doc/user/project/insights/index.md | 4 ++-- doc/user/project/integrations/project_services.md | 2 +- .../project/integrations/prometheus_library/kubernetes.md | 4 ++-- doc/user/project/issues/create_new_issue.md | 2 +- doc/user/project/issues/index.md | 6 +++--- doc/user/project/issues/issue_data_and_actions.md | 4 ++-- doc/user/project/issues/related_issues.md | 11 +++-------- doc/user/project/maven_packages.md | 4 ++-- doc/user/project/milestones/burndown_charts.md | 2 +- doc/user/project/packages/maven_repository.md | 2 +- doc/user/project/packages/npm_registry.md | 2 +- doc/user/project/repository/index.md | 6 +++--- .../project/repository/reducing_the_repo_size_using_git.md | 9 +++------ doc/user/project/security_dashboard.md | 4 ++-- doc/user/project/settings/index.md | 4 ++-- 21 files changed, 46 insertions(+), 54 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/ci_cd_for_external_repo.md b/doc/user/project/ci_cd_for_external_repo.md index 51b86a68c7b..a92d3a2c308 100644 --- a/doc/user/project/ci_cd_for_external_repo.md +++ b/doc/user/project/ci_cd_for_external_repo.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html' +redirect_to: '../../ci/ci_cd_for_external_repos/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html). +This document was moved to [another location](../../ci/ci_cd_for_external_repos/index.md). diff --git a/doc/user/project/deploy_tokens/index.md b/doc/user/project/deploy_tokens/index.md index 7688508c6ac..92a29b68a22 100644 --- a/doc/user/project/deploy_tokens/index.md +++ b/doc/user/project/deploy_tokens/index.md @@ -5,7 +5,7 @@ Deploy tokens allow to download (through `git clone`), or read the container registry images of a project without the need of having a user and a password. Please note, that the expiration of deploy tokens happens on the date you define, -at midnight UTC and that they can be only managed by [maintainers](https://docs.gitlab.com/ee/user/permissions.html). +at midnight UTC and that they can be only managed by [maintainers](../../permissions.md). ## Creating a Deploy Token diff --git a/doc/user/project/import/gemnasium.md b/doc/user/project/import/gemnasium.md index dc5b3fcd0bb..7f79ebf6353 100644 --- a/doc/user/project/import/gemnasium.md +++ b/doc/user/project/import/gemnasium.md @@ -9,9 +9,9 @@ Gemnasium has been [acquired by GitLab](https://about.gitlab.com/press/releases/ in January 2018. Since May 15, 2018, the services provided by Gemnasium are no longer available. The team behind Gemnasium has joined GitLab as the new Security Products team and is working on a wider range of tools than just Dependency Scanning: -[SAST](https://docs.gitlab.com/ee/user/application_security/sast/index.html), -[DAST](https://docs.gitlab.com/ee/user/application_security/dast/index.html), -[Container Scanning](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html) and more. +[SAST](../../application_security/sast/index.md), +[DAST](../../application_security/dast/index.md), +[Container Scanning](../../application_security/container_scanning/index.md) and more. If you want to continue monitoring your dependencies, see the [Migrating to GitLab](#migrating-to-gitlab) section below. @@ -45,7 +45,7 @@ Security features are free for public (open-source) projects hosted on GitLab.co You're almost set! If you're already using [Auto DevOps](../../../topics/autodevops/), you are already covered. Otherwise, you must configure your `.gitlab-ci.yml` according to the -[dependency scanning page](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html). +[dependency scanning page](../../application_security/dependency_scanning/index.md). ### If your project is hosted on GitHub (https://github.com / GitHub Enterprise) @@ -81,7 +81,7 @@ back to both GitLab and GitHub when completed. 1. To set up the dependency scanning job, corresponding to what Gemnasium was doing, you must create a `.gitlab-ci.yml` file, or update it according to - the [dependency scanning docs](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html). + the [dependency scanning docs](../../application_security/dependency_scanning/index.md). The mirroring is pull-only by default, so you may create or update the file on GitHub: diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md index 63b90dd76fd..8fba892594b 100644 --- a/doc/user/project/import/github.md +++ b/doc/user/project/import/github.md @@ -119,9 +119,9 @@ Depending your GitLab tier, [project mirroring](../../../workflow/repository_mir your imported project in sync with its GitHub copy. Additionally, you can configure GitLab to send pipeline status updates back GitHub with the -[GitHub Project Integration](https://docs.gitlab.com/ee/user/project/integrations/github.html). **[PREMIUM]** +[GitHub Project Integration](../integrations/github.md). **[PREMIUM]** -If you import your project using [CI/CD for external repo](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/), then both +If you import your project using [CI/CD for external repo](../../../ci/ci_cd_for_external_repos/index.md), then both of the above are automatically configured. **[PREMIUM]** ## Improving the speed of imports on self-hosted instances diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md index 119bbbfc70b..2b6927bd780 100644 --- a/doc/user/project/import/index.md +++ b/doc/user/project/import/index.md @@ -20,7 +20,7 @@ In addition to the specific migration documentation above, you can import any Git repository via HTTP from the New Project page. Be aware that if the repository is too large the import can timeout. -There is also the option of [connecting your external repository to get CI/CD benefits](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html). **[PREMIUM]** +There is also the option of [connecting your external repository to get CI/CD benefits](../../../ci/ci_cd_for_external_repos/index.md). **[PREMIUM]** ## Migrating from self-hosted GitLab to GitLab.com diff --git a/doc/user/project/index.md b/doc/user/project/index.md index 6b3b40bf9f8..a24f525253d 100644 --- a/doc/user/project/index.md +++ b/doc/user/project/index.md @@ -37,7 +37,7 @@ When you create a project in GitLab, you'll have access to a large number of - [Multiple Issue Boards](issue_board.md#multiple-issue-boards-starter): Allow your teams to create their own workflows (Issue Boards) for the same project **[STARTER]** - [Merge Requests](merge_requests/index.md): Apply your branching strategy and get reviewed by your team - - [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html): Ask for approval before + - [Merge Request Approvals](merge_requests/merge_request_approvals.md): Ask for approval before implementing a change **[STARTER]** - [Fix merge conflicts from the UI](merge_requests/resolve_conflicts.md): Your Git diff tool right from GitLab's UI @@ -74,7 +74,7 @@ When you create a project in GitLab, you'll have access to a large number of timeout (defines the maximum amount of time in minutes that a job is able run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline's visibility, and much more - [Kubernetes cluster integration](clusters/index.md): Connecting your GitLab project with a Kubernetes cluster - - [Feature Flags](https://docs.gitlab.com/ee/user/project/operations/feature_flags.html): Feature flags allow you to ship a project in + - [Feature Flags](operations/feature_flags.md): Feature flags allow you to ship a project in different flavors by dynamically toggling certain functionality **[PREMIUM]** - [GitLab Pages](pages/index.md): Build, test, and deploy your static website with GitLab Pages @@ -91,10 +91,10 @@ When you create a project in GitLab, you'll have access to a large number of - [Releases](releases/index.md): a way to track deliverables in your project as snapshot in time of the source, build output, and other metadata or artifacts associated with a released version of your code. -- [Maven packages](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html): your private Maven repository in GitLab. **[PREMIUM]** -- [NPM packages](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html): your private NPM package registry in GitLab. **[PREMIUM]** +- [Maven packages](packages/maven_repository.md): your private Maven repository in GitLab. **[PREMIUM]** +- [NPM packages](packages/npm_registry.md): your private NPM package registry in GitLab. **[PREMIUM]** - [Code owners](code_owners.md): specify code owners for certain files **[STARTER]** -- [License Management](https://docs.gitlab.com/ee/user/application_security/license_management/index.html): approve and blacklist licenses for projects. **[ULTIMATE]** +- [License Management](../application_security/license_management/index.md): approve and blacklist licenses for projects. **[ULTIMATE]** ### Project integrations @@ -135,7 +135,7 @@ Read through the documentation on [project settings](settings/index.md). Instead of importing a repository directly to GitLab, you can connect your repository as a CI/CD project. -Read through the documentation on [CI/CD for external repositories](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/index.html). +Read through the documentation on [CI/CD for external repositories](../../ci/ci_cd_for_external_repos/index.md). ## Project members diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md index b6cc1862cc2..5154ff38154 100644 --- a/doc/user/project/insights/index.md +++ b/doc/user/project/insights/index.md @@ -14,7 +14,7 @@ requests to be merged and much more. ![Insights example bar chart](img/project_insights.png) NOTE: **Note:** -This feature is [also available at the group level](https://docs.gitlab.com/ee/user/group/insights/index.html). +This feature is [also available at the group level](../../group/insights/index.md). ## View your project's Insights @@ -33,7 +33,7 @@ for details about the content of this file. NOTE: **Note:** Once the configuration file is created, you can also -[use it for your project's group](https://docs.gitlab.com/ee/user/group/insights/index.html#configure-your-insights). +[use it for your project's group](../../group/insights/index.md#configure-your-insights). NOTE: **Note:** If the project doesn't have any configuration file, it'll try to use diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index f560de427c5..0bfee3bac99 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -39,7 +39,7 @@ Click on the service links to see further configuration instructions and details | [HipChat](hipchat.md) | Private group chat and IM | | [Irker (IRC gateway)](irker.md) | Send IRC messages, on update, to a list of recipients through an Irker gateway | | [JIRA](jira.md) | JIRA issue tracker | -| [Jenkins](https://docs.gitlab.com/ee/integration/jenkins.html) **[STARTER]** | An extendable open source continuous integration server | +| [Jenkins](../../../integration/jenkins.md) **[STARTER]** | An extendable open source continuous integration server | | JetBrains TeamCity CI | A continuous integration and build server | | [Mattermost slash commands](mattermost_slash_commands.md) | Mattermost chat and ChatOps slash commands | | [Mattermost Notifications](mattermost.md) | Receive event notifications in Mattermost | diff --git a/doc/user/project/integrations/prometheus_library/kubernetes.md b/doc/user/project/integrations/prometheus_library/kubernetes.md index 436129f1dbc..8b1cf1a251a 100644 --- a/doc/user/project/integrations/prometheus_library/kubernetes.md +++ b/doc/user/project/integrations/prometheus_library/kubernetes.md @@ -27,7 +27,7 @@ integration services must be enabled. Prometheus needs to be deployed into the cluster and configured properly in order to gather Kubernetes metrics. GitLab supports two methods for doing so: -- GitLab [integrates with Kubernetes](../../clusters/index.md), and can [deploy Prometheus into a connected cluster](../prometheus.html#managed-prometheus-on-kubernetes). It is automatically configured to collect Kubernetes metrics. +- GitLab [integrates with Kubernetes](../../clusters/index.md), and can [deploy Prometheus into a connected cluster](../prometheus.md#managed-prometheus-on-kubernetes). It is automatically configured to collect Kubernetes metrics. - To configure your own Prometheus server, you can follow the [Prometheus documentation](https://prometheus.io/docs/introduction/overview/). ## Specifying the Environment @@ -40,7 +40,7 @@ Instead, the [Deployment](https://kubernetes.io/docs/concepts/workloads/controll > Introduced in [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15201). -GitLab also gathers Kubernetes metrics for [canary deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html), allowing easy comparison between the current deployed version and the canary. +GitLab also gathers Kubernetes metrics for [canary deployments](../../canary_deployments.md), allowing easy comparison between the current deployed version and the canary. These metrics expect the [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) or [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) name to begin with `$CI_ENVIRONMENT_SLUG-canary`, to isolate the canary metrics. diff --git a/doc/user/project/issues/create_new_issue.md b/doc/user/project/issues/create_new_issue.md index 5e05846b77f..c2916c79876 100644 --- a/doc/user/project/issues/create_new_issue.md +++ b/doc/user/project/issues/create_new_issue.md @@ -67,7 +67,7 @@ or contacts to continue working._ ## New issue via Service Desk **[PREMIUM]** -Enable [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) to your project and offer email support. +Enable [Service Desk](../service_desk.md) to your project and offer email support. By doing so, when your customer sends a new email, a new issue can be created in the appropriate project and followed up from there. diff --git a/doc/user/project/issues/index.md b/doc/user/project/issues/index.md index c82b7f100d2..94865ad46ee 100644 --- a/doc/user/project/issues/index.md +++ b/doc/user/project/issues/index.md @@ -102,13 +102,13 @@ For more information, see the [Issue Boards](../issue_board.md) page. Epics let you manage your portfolio of projects more efficiently and with less effort by tracking groups of issues that share a theme, across projects and milestones. -For more information, see the [Epics](https://docs.gitlab.com/ee/user/group/epics/) page. +For more information, see the [Epics](../../group/epics/index.md) page. ### Related issues **[STARTER]** You can mark two issues as related, so that when viewing each one, the other is always listed in its Related Issues section. This can help display important context, such as past work, dependencies, or duplicates. -For more information, see [Related Issues](https://docs.gitlab.com/ee/user/project/issues/related_issues.html). +For more information, see [Related Issues](related_issues.md). ### Crosslinking issues @@ -129,7 +129,7 @@ For more information, see [Crosslinking issues](crosslinking_issues.md). - [Bulk edit issues](../bulk_editing.md) - From the Issues List, select multiple issues in order to change their status, assignee, milestone, or labels in bulk. - [Import issues](csv_import.md) -- [Export issues](https://docs.gitlab.com/ee/user/project/issues/csv_export.html) **[STARTER]** +- [Export issues](csv_export.md) **[STARTER]** - [Issues API](../../../api/issues.md) - Configure an [external issue tracker](../../../integration/external-issue-tracker.md) such as Jira, Redmine, or Bugzilla. diff --git a/doc/user/project/issues/issue_data_and_actions.md b/doc/user/project/issues/issue_data_and_actions.md index ef9fcaec3e6..fc11c0251e0 100644 --- a/doc/user/project/issues/issue_data_and_actions.md +++ b/doc/user/project/issues/issue_data_and_actions.md @@ -90,7 +90,7 @@ If a label doesn't exist yet, you can click **Edit**, and it opens a dropdown me - Assign a weight. Larger values are used to indicate more effort is required to complete the issue. Only positive values or zero are allowed. -Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workflow/issue_weight.html). +Learn more in the [Issue Weight documentation](../../../workflow/issue_weight.md). #### 9. Participants @@ -103,7 +103,7 @@ Learn more in the [Issue Weight documentation](https://docs.gitlab.com/ee/workfl - Unsubscribe: if you are receiving notifications on that issue but no longer want to receive them, unsubscribe from it. -Read more in the [notifications documentation](https://docs.gitlab.com/ee/workflow/notifications.html#issue--epics--merge-request-events). +Read more in the [notifications documentation](../../../workflow/notifications.md#issue--epics--merge-request-events). #### 11. Reference diff --git a/doc/user/project/issues/related_issues.md b/doc/user/project/issues/related_issues.md index db0ab65b442..e679ebf86e6 100644 --- a/doc/user/project/issues/related_issues.md +++ b/doc/user/project/issues/related_issues.md @@ -1,6 +1,6 @@ # Related issues **[STARTER]** -> [Introduced][ee-1797] in [GitLab Starter][ee] 9.4. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1797) in [GitLab Starter](https://about.gitlab.com/pricing/) 9.4. Related issues are a bi-directional relationship between any two issues and appear in a block below the issue description. Issues can be across groups @@ -35,11 +35,6 @@ will no longer appear in either issue. ![Removing a related issue](img/related_issues_remove.png) -Please access our [permissions] page for more information. +Please access our [permissions](../../permissions.md) page for more information. -Additionally, you are also able to manage related issues through [our API]. - -[ee]: https://about.gitlab.com/pricing/ -[ee-1797]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/1797 -[permissions]: ../../permissions.md -[Our API]: https://docs.gitlab.com/ee/api/issue_links.html +Additionally, you are also able to manage related issues through [our API](../../../api/issue_links.md). diff --git a/doc/user/project/maven_packages.md b/doc/user/project/maven_packages.md index d32d6084b38..48835a2dac7 100644 --- a/doc/user/project/maven_packages.md +++ b/doc/user/project/maven_packages.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/project/packages/maven_repository.html' +redirect_to: 'packages/maven_repository.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html). +This document was moved to [another location](packages/maven_repository.md). diff --git a/doc/user/project/milestones/burndown_charts.md b/doc/user/project/milestones/burndown_charts.md index 0ad08da8ff5..7ffeb032d7f 100644 --- a/doc/user/project/milestones/burndown_charts.md +++ b/doc/user/project/milestones/burndown_charts.md @@ -52,7 +52,7 @@ and select a milestone from your current ones, while for group's, access the **G select a group, and go through **Issues > Milestones** on the sidebar. NOTE: **Note:** -You're able to [promote project](https://docs.gitlab.com/ee/user/project/milestones/#promoting-project-milestones-to-group-milestones) to group milestones and still see the **Burndown Chart** for them, respecting license limitations. +You're able to [promote project](index.md#promoting-project-milestones-to-group-milestones) to group milestones and still see the **Burndown Chart** for them, respecting license limitations. The chart indicates the project's progress throughout that milestone (for issues assigned to it). diff --git a/doc/user/project/packages/maven_repository.md b/doc/user/project/packages/maven_repository.md index 94785eb6aec..9b7af738696 100644 --- a/doc/user/project/packages/maven_repository.md +++ b/doc/user/project/packages/maven_repository.md @@ -12,7 +12,7 @@ project can have its own space to store its Maven artifacts. NOTE: **Note:** This option is available only if your GitLab administrator has -[enabled support for the Maven repository](https://docs.gitlab.com/ee/administration/packages.html).**[PREMIUM ONLY]** +[enabled support for the Maven repository](../../../administration/packages.md).**[PREMIUM ONLY]** After the Packages feature is enabled, the Maven Repository will be available for all new projects by default. To enable it for existing projects, or if you want diff --git a/doc/user/project/packages/npm_registry.md b/doc/user/project/packages/npm_registry.md index 9f4c01c9a0a..2e274573434 100644 --- a/doc/user/project/packages/npm_registry.md +++ b/doc/user/project/packages/npm_registry.md @@ -20,7 +20,7 @@ within a subgroup is not supported yet. NOTE: **Note:** This option is available only if your GitLab administrator has -[enabled support for the NPM registry](https://docs.gitlab.com/ee/administration/packages.html).**[PREMIUM ONLY]** +[enabled support for the NPM registry](../../../administration/packages.md).**[PREMIUM ONLY]** After the NPM registry is enabled, it will be available for all new projects by default. To enable it for existing projects, or if you want to disable it: diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md index cb514b76a4e..6fccfd40987 100644 --- a/doc/user/project/repository/index.md +++ b/doc/user/project/repository/index.md @@ -123,7 +123,7 @@ You can live preview changes submitted to a new branch with [Review Apps](../../../ci/review_apps/index.md). With [GitLab Starter](https://about.gitlab.com/pricing/), you can also request -[approval](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) from your managers. +[approval](../merge_requests/merge_request_approvals.md) from your managers. To create, delete, and view [branches](branches/index.md) via GitLab's UI: @@ -154,7 +154,7 @@ Via command line, you can commit multiple times before pushing. you will trigger a pipeline per push, not per commit. - **Skip pipelines:** You can add to you commit message the keyword - [`[ci skip]`](../../../ci/yaml/README.html#skipping-jobs) + [`[ci skip]`](../../../ci/yaml/README.md#skipping-jobs) and GitLab CI will skip that pipeline. - **Cross-link issues and merge requests:** [Cross-linking](../issues/crosslinking_issues.md#from-commit-messages) @@ -226,7 +226,7 @@ Find it under your project's **Repository > Compare**. ## Locked files **[PREMIUM]** -Use [File Locking](https://docs.gitlab.com/ee/user/project/file_lock.html) to +Use [File Locking](../file_lock.md) to lock your files to prevent any conflicting changes. ## Repository's API diff --git a/doc/user/project/repository/reducing_the_repo_size_using_git.md b/doc/user/project/repository/reducing_the_repo_size_using_git.md index 2339759ecc8..e3d771524ce 100644 --- a/doc/user/project/repository/reducing_the_repo_size_using_git.md +++ b/doc/user/project/repository/reducing_the_repo_size_using_git.md @@ -1,6 +1,6 @@ # Reducing the repository size using Git -A GitLab Enterprise Edition administrator can set a [repository size limit][admin-repo-size] +A GitLab Enterprise Edition administrator can set a [repository size limit](../../admin_area/settings/account_and_limit_settings.md) which will prevent you from exceeding it. When a project has reached its size limit, you will not be able to push to it, @@ -14,7 +14,8 @@ move some blobs to LFS, or remove some old dependency updates from history. Unfortunately, it's not so easy and that workflow won't work. Deleting files in a commit doesn't actually reduce the size of the repo since the earlier commits and blobs are still around. What you need to do is rewrite history with Git's -[`filter-branch` option][gitscm], or a tool like the [BFG Repo-Cleaner][bfg]. +[`filter-branch` option](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#The-Nuclear-Option:-filter-branch), +or a tool like the [BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/). Note that even with that method, until `git gc` runs on the GitLab side, the "removed" commits and blobs will still be around. You also need to be able to @@ -137,7 +138,3 @@ remove some of them, but it should not be depended on for security purposes! ``` Your repository should now be below the size limit. - -[admin-repo-size]: https://docs.gitlab.com/ee/user/admin_area/settings/account_and_limit_settings.html#repository-size-limit -[bfg]: https://rtyley.github.io/bfg-repo-cleaner/ -[gitscm]: https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#The-Nuclear-Option:-filter-branch diff --git a/doc/user/project/security_dashboard.md b/doc/user/project/security_dashboard.md index 43e910b29fe..a3da1ec97d3 100644 --- a/doc/user/project/security_dashboard.md +++ b/doc/user/project/security_dashboard.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/security_dashboard/index.html' +redirect_to: '../application_security/security_dashboard/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/security_dashboard/index.html). +This document was moved to [another location](../application_security/security_dashboard/index.md). diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md index 737dea1de6c..e3502a632d9 100644 --- a/doc/user/project/settings/index.md +++ b/doc/user/project/settings/index.md @@ -36,7 +36,7 @@ Set up your project's merge request settings: - Set up the merge request method (merge commit, [fast-forward merge](../merge_requests/fast_forward_merge.html)). - Merge request [description templates](../description_templates.md#description-templates). -- Enable [merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html#merge-request-approvals). **[STARTER]** +- Enable [merge request approvals](../merge_requests/merge_request_approvals.md). **[STARTER]** - Enable [merge only of pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md). - Enable [merge only when all discussions are resolved](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-discussions-are-resolved). @@ -44,7 +44,7 @@ Set up your project's merge request settings: ### Service Desk **[PREMIUM]** -Enable [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) for your project to offer customer support. +Enable [Service Desk](../service_desk.md) for your project to offer customer support. ### Export project -- cgit v1.2.3 From 797fc82abec3c78482a65cd472cf50584052d567 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 31 May 2019 11:09:27 +0000 Subject: Docs: Finish changing links to relative in user/project (part 2) --- doc/user/project/clusters/index.md | 6 +++--- doc/user/project/clusters/kubernetes_pod_logs.md | 6 +++--- doc/user/project/clusters/runbooks/index.md | 6 +++--- doc/user/project/merge_requests/code_quality_diff.md | 2 +- doc/user/project/merge_requests/container_scanning.md | 4 ++-- doc/user/project/merge_requests/dast.md | 4 ++-- doc/user/project/merge_requests/dependency_scanning.md | 4 ++-- doc/user/project/merge_requests/index.md | 18 +++++++++--------- doc/user/project/merge_requests/license_management.md | 4 ++-- .../project/merge_requests/merge_request_approvals.md | 4 ++-- doc/user/project/merge_requests/sast.md | 4 ++-- doc/user/project/merge_requests/sast_docker.md | 4 ++-- 12 files changed, 33 insertions(+), 33 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index e38e4059117..dc21db603d6 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -450,7 +450,7 @@ differentiate the new cluster with the rest. When adding more than one Kubernetes cluster to your project, you need to differentiate them with an environment scope. The environment scope associates clusters with [environments](../../../ci/environments.md) similar to how the -[environment-specific variables](https://docs.gitlab.com/ee/ci/variables/index.html#limiting-environment-scopes-of-environment-variables-premium) work. +[environment-specific variables](../../../ci/variables/README.md#limiting-environment-scopes-of-environment-variables-premium) work. The default environment scope is `*`, which means all jobs, regardless of their environment, will use that cluster. Each scope can only be used by a single @@ -588,7 +588,7 @@ displaying the status of the pods in the deployment. Developers and other teammates can view the progress and status of a rollout, pod by pod, in the workflow they already use without any need to access Kubernetes. -[Read more about Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html) +[Read more about Deploy Boards](../deploy_boards.md) ### Canary Deployments **[PREMIUM]** @@ -596,7 +596,7 @@ Leverage [Kubernetes' Canary deployments](https://kubernetes.io/docs/concepts/cl and visualize your canary deployments right inside the Deploy Board, without the need to leave GitLab. -[Read more about Canary Deployments](https://docs.gitlab.com/ee/user/project/canary_deployments.html) +[Read more about Canary Deployments](../canary_deployments.md) ### Pod logs **[ULTIMATE]** diff --git a/doc/user/project/clusters/kubernetes_pod_logs.md b/doc/user/project/clusters/kubernetes_pod_logs.md index d5b60250860..368031070c1 100644 --- a/doc/user/project/clusters/kubernetes_pod_logs.md +++ b/doc/user/project/clusters/kubernetes_pod_logs.md @@ -7,10 +7,10 @@ By displaying the logs directly in GitLab, developers can avoid having to manage ## Overview -[Kubernetes](https://kubernetes.io) pod logs can be viewed directly within GitLab. Logs can be displayed by clicking on a specific pod from [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html): +[Kubernetes](https://kubernetes.io) pod logs can be viewed directly within GitLab. Logs can be displayed by clicking on a specific pod from [Deploy Boards](../deploy_boards.md): 1. Go to **Operations > Environments** and find the environment which contains the desired pod, like `production`. -1. On the **Environments** page, you should see the status of the environment's pods with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html). +1. On the **Environments** page, you should see the status of the environment's pods with [Deploy Boards](../deploy_boards.md). 1. When mousing over the list of pods, a tooltip will appear with the exact pod name and status. ![Deploy Boards pod list](img/pod_logs_deploy_board.png) 1. Click on the desired pod to bring up the logs view, which will contain the last 500 lines for that pod. Support for pods with multiple containers is coming [in a future release](https://gitlab.com/gitlab-org/gitlab-ee/issues/6502). @@ -18,4 +18,4 @@ By displaying the logs directly in GitLab, developers can avoid having to manage ## Requirements -[Enabling Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html#enabling-deploy-boards) is required in order to be able to use Pod Logs. +[Enabling Deploy Boards](../deploy_boards.md#enabling-deploy-boards) is required in order to be able to use Pod Logs. diff --git a/doc/user/project/clusters/runbooks/index.md b/doc/user/project/clusters/runbooks/index.md index 54c475a1762..6360a01a0ad 100644 --- a/doc/user/project/clusters/runbooks/index.md +++ b/doc/user/project/clusters/runbooks/index.md @@ -34,7 +34,7 @@ for an overview of how this is accomplished in GitLab!** To create an executable runbook, you will need: 1. **Kubernetes** - A Kubernetes cluster is required to deploy the rest of the applications. - The simplest way to get started is to add a cluster using [GitLab's GKE integration](https://docs.gitlab.com/ee/user/project/clusters/#adding-and-creating-a-new-gke-cluster-via-gitlab). + The simplest way to get started is to add a cluster using [GitLab's GKE integration](../index.md#adding-and-creating-a-new-gke-cluster-via-gitlab). 1. **Helm Tiller** - Helm is a package manager for Kubernetes and is required to install all the other applications. It is installed in its own pod inside the cluster which can run the helm CLI in a safe environment. @@ -59,7 +59,7 @@ the components outlined above and the preloaded demo runbook. ### 1. Add a Kubernetes cluster -Follow the steps outlined in [Adding and creating a new GKE cluster via GitLab](https://docs.gitlab.com/ee/user/project/clusters/#adding-and-creating-a-new-gke-cluster-via-gitlab) +Follow the steps outlined in [Adding and creating a new GKE cluster via GitLab](../index.md#adding-and-creating-a-new-gke-cluster-via-gitlab) to add a Kubernetes cluster to your project. ### 2. Install Helm Tiller, Ingress, and JupyterHub @@ -90,7 +90,7 @@ The server will take a couple of seconds to start. ### 4. Configure access In order for the runbook to access your GitLab project, you will need to enter a -[GitLab Access Token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) +[GitLab Access Token](../../../profile/personal_access_tokens.md) as well as your Project ID in the **Setup** section of the demo runbook. Double-click the **DevOps-Runbook-Demo** folder located on the left panel. diff --git a/doc/user/project/merge_requests/code_quality_diff.md b/doc/user/project/merge_requests/code_quality_diff.md index 890058eec6f..ccc694672a6 100644 --- a/doc/user/project/merge_requests/code_quality_diff.md +++ b/doc/user/project/merge_requests/code_quality_diff.md @@ -1,5 +1,5 @@ --- -redirect_from: 'https://docs.gitlab.com/ee/user/project/merge_requests/code_quality_diff.html' +redirect_from: 'code_quality_diff.md' redirect_to: 'code_quality.md' --- diff --git a/doc/user/project/merge_requests/container_scanning.md b/doc/user/project/merge_requests/container_scanning.md index 4d41e424f4a..a062731ea35 100644 --- a/doc/user/project/merge_requests/container_scanning.md +++ b/doc/user/project/merge_requests/container_scanning.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html' +redirect_to: '../../application_security/container_scanning/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html). +This document was moved to [another location](../../application_security/container_scanning/index.md). diff --git a/doc/user/project/merge_requests/dast.md b/doc/user/project/merge_requests/dast.md index b676c661267..98a2906e560 100644 --- a/doc/user/project/merge_requests/dast.md +++ b/doc/user/project/merge_requests/dast.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/dast/index.html' +redirect_to: '../../application_security/dast/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/dast/index.html). +This document was moved to [another location](../../application_security/dast/index.md). diff --git a/doc/user/project/merge_requests/dependency_scanning.md b/doc/user/project/merge_requests/dependency_scanning.md index 3a8b53b425c..bdc1c355016 100644 --- a/doc/user/project/merge_requests/dependency_scanning.md +++ b/doc/user/project/merge_requests/dependency_scanning.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html' +redirect_to: '../../application_security/dependency_scanning/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html). +This document was moved to [another location](../../application_security/dependency_scanning/index.md). diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 09736c7fc7e..4cfe59b808a 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -33,15 +33,15 @@ With GitLab merge requests, you can: With **[GitLab Enterprise Edition][ee]**, you can also: -- Prepare a full review and submit it once it's ready with [Merge Request Reviews](https://docs.gitlab.com/ee/user/discussions/index.md#merge-request-reviews-premium) **[PREMIUM]** -- View the deployment process across projects with [Multi-Project Pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipelines.md) **[PREMIUM]** +- Prepare a full review and submit it once it's ready with [Merge Request Reviews](../../discussions/index.md#merge-request-reviews-premium) **[PREMIUM]** +- View the deployment process across projects with [Multi-Project Pipelines](../../../ci/multi_project_pipelines.md) **[PREMIUM]** - Request [approvals](merge_request_approvals.md) from your managers **[STARTER]** - Analyze the impact of your changes with [Code Quality reports](code_quality.md) **[STARTER]** -- Manage the licenses of your dependencies with [License Management](https://docs.gitlab.com/ee/user/application_security/license_management/index.md) **[ULTIMATE]** -- Analyze your source code for vulnerabilities with [Static Application Security Testing](https://docs.gitlab.com/ee/user/application_security/sast/index.md) **[ULTIMATE]** -- Analyze your running web applications for vulnerabilities with [Dynamic Application Security Testing](https://docs.gitlab.com/ee/user/application_security/dast/index.md) **[ULTIMATE]** -- Analyze your dependencies for vulnerabilities with [Dependency Scanning](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.md) **[ULTIMATE]** -- Analyze your Docker images for vulnerabilities with [Container Scanning](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.md) **[ULTIMATE]** +- Manage the licenses of your dependencies with [License Management](../../application_security/license_management/index.md) **[ULTIMATE]** +- Analyze your source code for vulnerabilities with [Static Application Security Testing](../../application_security/sast/index.md) **[ULTIMATE]** +- Analyze your running web applications for vulnerabilities with [Dynamic Application Security Testing](../../application_security/dast/index.md) **[ULTIMATE]** +- Analyze your dependencies for vulnerabilities with [Dependency Scanning](../../application_security/dependency_scanning/index.md) **[ULTIMATE]** +- Analyze your Docker images for vulnerabilities with [Container Scanning](../../application_security/container_scanning/index.md) **[ULTIMATE]** - Determine the performance impact of changes with [Browser Performance Testing](#browser-performance-testing-premium) **[PREMIUM]** ## Use cases @@ -174,7 +174,7 @@ Start a review in order to create multiple comments on a diff and publish them o Starting a review allows you to get all your thoughts in order and ensure you haven't missed anything before submitting all your comments. -[Learn more about Merge Request Reviews](https://docs.gitlab.com/ee/user/discussions/index.html#merge-request-reviews-premium) +[Learn more about Merge Request Reviews](../../discussions/index.md#merge-request-reviews-premium) ## Squash and merge @@ -395,7 +395,7 @@ GitLab runs the [Sitespeed.io container][sitespeed-container] and displays the d GitLab can scan and report any vulnerabilities found in your project. -[Read more about security reports.](https://docs.gitlab.com/ee/user/application_security/index.html) +[Read more about security reports.](../../application_security/index.md) ## JUnit test reports diff --git a/doc/user/project/merge_requests/license_management.md b/doc/user/project/merge_requests/license_management.md index 08704425a75..93116ebd7c6 100644 --- a/doc/user/project/merge_requests/license_management.md +++ b/doc/user/project/merge_requests/license_management.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/license_management/index.html' +redirect_to: '../../application_security/license_management/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/license_management/index.html). +This document was moved to [another location](../../application_security/license_management/index.md). diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md index d0291c4cef5..52b6b56af84 100644 --- a/doc/user/project/merge_requests/merge_request_approvals.md +++ b/doc/user/project/merge_requests/merge_request_approvals.md @@ -105,7 +105,7 @@ any [eligible approver](#eligible-approvers) may approve. The following can approve merge requests: - Users being added as approvers at project or merge request level. -- [Code owners](https://docs.gitlab.com/ee/user/project/code_owners.html) related to the merge request ([introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7933) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.5). +- [Code owners](../code_owners.md) related to the merge request ([introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7933) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.5). An individual user can be added as an approver for a project if they are a member of: @@ -168,7 +168,7 @@ or a [failed CI/CD pipeline](merge_when_pipeline_succeeds.md). > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/4418) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.9. It is possible to require at least one approval for each entry in the -[`CODEOWNERS` file](https://docs.gitlab.com/ee/user/project/code_owners.html) that matches a file changed in +[`CODEOWNERS` file](../code_owners.md) that matches a file changed in the merge request. To enable this feature: 1. Navigate to your project's **Settings > General** and expand diff --git a/doc/user/project/merge_requests/sast.md b/doc/user/project/merge_requests/sast.md index 688cc79d0f6..165290eb114 100644 --- a/doc/user/project/merge_requests/sast.md +++ b/doc/user/project/merge_requests/sast.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/sast/index.html' +redirect_to: '../../application_security/sast/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/sast/index.html). +This document was moved to [another location](../../application_security/sast/index.md). diff --git a/doc/user/project/merge_requests/sast_docker.md b/doc/user/project/merge_requests/sast_docker.md index 4d41e424f4a..a062731ea35 100644 --- a/doc/user/project/merge_requests/sast_docker.md +++ b/doc/user/project/merge_requests/sast_docker.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html' +redirect_to: '../../application_security/container_scanning/index.md' --- -This document was moved to [another location](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html). +This document was moved to [another location](../../application_security/container_scanning/index.md). -- cgit v1.2.3 From fca56fb73b6346d01cc8eeae3b5ca867b12553ba Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 31 May 2019 11:11:24 +0000 Subject: Docs: Add introduced column to table in Personal Access Tokens doc --- doc/user/profile/personal_access_tokens.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'doc/user') diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md index 5166524d13b..0b224fc7e01 100644 --- a/doc/user/profile/personal_access_tokens.md +++ b/doc/user/profile/personal_access_tokens.md @@ -37,20 +37,18 @@ Personal access tokens can be created with one or more scopes that allow various actions that a given token can perform. The available scopes are depicted in the following table. -| Scope | Description | -| ----- | ----------- | -|`read_user` | Allows access to the read-only endpoints under `/users`. Essentially, any of the `GET` requests in the [Users API][users] are allowed ([introduced][ce-5951] in GitLab 8.15). | -| `api` | Grants complete access to the API and Container Registry (read/write) ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) in GitLab 8.15). | -| `read_registry` | Allows to read (pull) [container registry] images if a project is private and authorization is required ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) in GitLab 9.3). | -| `sudo` | Allows performing API actions as any user in the system (if the authenticated user is an admin) ([introduced][ce-14838] in GitLab 10.2). | -| `read_repository` | Allows read-only access (pull) to the repository through git clone. | -| `write_repository` | Allows read-write access (pull, push) to the repository through git clone. Required for accessing Git repositories over HTTP when 2FA is enabled. | +| Scope | Introduced in | Description | +| ------------------ | ------------- | ----------- | +| `read_user` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) | Allows access to the read-only endpoints under `/users`. Essentially, any of the `GET` requests in the [Users API][users] are allowed. | +| `api` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951) | Grants complete access to the API and Container Registry (read/write). | +| `read_registry` | [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11845) | Allows to read (pull) [container registry] images if a project is private and authorization is required. | +| `sudo` | [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14838) | Allows performing API actions as any user in the system (if the authenticated user is an admin). | +| `read_repository` | [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17894) | Allows read-only access (pull) to the repository through git clone. | +| `write_repository` | [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26021) | Allows read-write access (pull, push) to the repository through git clone. Required for accessing Git repositories over HTTP when 2FA is enabled. | [2fa]: ../account/two_factor_authentication.md [api]: ../../api/README.md [ce-3749]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3749 -[ce-5951]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5951 -[ce-14838]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14838 [container registry]: ../project/container_registry.md [users]: ../../api/users.md [usage]: ../../api/README.md#personal-access-tokens -- cgit v1.2.3 From 4738c0ffb735c8c0c9e69a4734129ddf9bc77fd5 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Fri, 31 May 2019 11:26:18 +0000 Subject: Docs: Convert remaining links in /user to relative --- doc/user/admin_area/geo_nodes.md | 4 ++-- doc/user/admin_area/index.md | 2 +- doc/user/admin_area/settings/email.md | 2 +- .../container_scanning/index.md | 4 ++-- doc/user/group/clusters/index.md | 2 +- doc/user/group/index.md | 6 ++--- doc/user/group/insights/index.md | 2 +- doc/user/group/saml_sso/scim_setup.md | 2 +- doc/user/group/security_dashboard/index.md | 4 ++-- doc/user/index.md | 26 +++++++++++----------- doc/user/search/advanced_global_search.md | 2 +- doc/user/search/advanced_search_syntax.md | 2 +- 12 files changed, 29 insertions(+), 29 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/geo_nodes.md b/doc/user/admin_area/geo_nodes.md index fb0f9a3285d..d99b87cbc5c 100644 --- a/doc/user/admin_area/geo_nodes.md +++ b/doc/user/admin_area/geo_nodes.md @@ -5,7 +5,7 @@ type: howto # Geo nodes admin area **[PREMIUM ONLY]** You can configure various settings for GitLab Geo nodes. For more information, see -[Geo documentation](https://docs.gitlab.com/ee/administration/geo/replication/index.md). +[Geo documentation](../../administration/geo/replication/index.md). On the primary node, go to **Admin area > Geo**. On secondary nodes, go to **Admin area > Geo > Nodes**. @@ -29,7 +29,7 @@ changes on the **primary** node! | Setting | Description | |---------------------------|-------------| -| Selective synchronization | Enable Geo [selective sync](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html#selective-synchronization) for this **secondary** node. | +| Selective synchronization | Enable Geo [selective sync](../../administration/geo/replication/configuration.md#selective-synchronization) for this **secondary** node. | | Repository sync capacity | Number of concurrent requests this **secondary** node will make to the **primary** node when backfilling repositories. | | File sync capacity | Number of concurrent requests this **secondary** node will make to the **primary** node when backfilling files. | diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index db5da26ca0a..0fc6ed349ba 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -27,7 +27,7 @@ The Admin Area is made up of the following sections: | Applications | Create system [OAuth applications](../../integration/oauth_provider.md) for integrations with other services. | | Abuse Reports | Manage [abuse reports](abuse_reports.md) submitted by your users. | | License **[STARTER ONLY]** | Upload, display, and remove [licenses](license.md). | -| Push Rules **[STARTER]** | Configure pre-defined git [push rules](https://docs.gitlab.com/ee/push_rules/push_rules.html) for projects. | +| Push Rules **[STARTER]** | Configure pre-defined git [push rules](../../push_rules/push_rules.md) for projects. | | Geo **[PREMIUM ONLY]** | Configure and maintain [Geo nodes](geo_nodes.md). | | Deploy Keys | Create instance-wide [SSH deploy keys](../../ssh/README.md#deploy-keys). | | Service Templates | Create [service templates](../project/integrations/services_templates.md) for projects. | diff --git a/doc/user/admin_area/settings/email.md b/doc/user/admin_area/settings/email.md index 912c2cff481..9555a695b13 100644 --- a/doc/user/admin_area/settings/email.md +++ b/doc/user/admin_area/settings/email.md @@ -40,7 +40,7 @@ In order to change this option: 1. Hit **Save** for the changes to take effect. NOTE: **Note**: Once the hostname gets configured, every private commit email using the previous hostname, will not get -recognized by GitLab. This can directly conflict with certain [Push rules](https://docs.gitlab.com/ee/push_rules/push_rules.html) such as +recognized by GitLab. This can directly conflict with certain [Push rules](../../../push_rules/push_rules.md) such as `Check whether author is a GitLab user` and `Check whether committer is the current authenticated user`. -- cgit v1.2.3 From 2f1a1226bef436b24a13f5a25a0b73b4fa4f9d11 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Tue, 4 Jun 2019 00:05:26 +0000 Subject: Edited signup restrictions for SSOT guidelines --- doc/user/admin_area/settings/sign_up_restrictions.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/sign_up_restrictions.md b/doc/user/admin_area/settings/sign_up_restrictions.md index d3ecfd42903..cebf36c7ec1 100644 --- a/doc/user/admin_area/settings/sign_up_restrictions.md +++ b/doc/user/admin_area/settings/sign_up_restrictions.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Sign-up restrictions You can block email addresses of specific domains, or whitelist only some @@ -37,5 +41,17 @@ semicolon, comma, or a new line. ![Domain Blacklist](img/domain_blacklist.png) + + [ce-5259]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5259 [ce-598]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/598 -- cgit v1.2.3 From 2fdf61b135d0f41b5c9424920a1becc286a5566c Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Tue, 4 Jun 2019 00:56:44 +0000 Subject: Document the Admin Area's *Gitaly Servers* page --- doc/user/admin_area/index.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md index 03ed55b72de..527110d53df 100644 --- a/doc/user/admin_area/index.md +++ b/doc/user/admin_area/index.md @@ -20,7 +20,7 @@ The Admin Area is made up of the following sections: | Section | Description | |:---------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| -| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), [users](#administer-users), groups, jobs, [Runners](#administer-runners), and Gitaly servers. | +| Overview | View your GitLab [Dashboard](#admin-dashboard), and administer [projects](#administer-projects), [users](#administer-users), groups, [jobs](#administer-jobs), [Runners](#administer-runners), and [Gitaly servers](#administer-gitaly-servers). | | Monitoring | View GitLab system information, and information on background jobs, logs, [health checks](monitoring/health_check.md), request profiles, and audit logs. | | Messages | Send and manage [broadcast messages](broadcast_messages.md) for your users. | | System Hooks | Configure [system hooks](../../system_hooks/system_hooks.md) for many events. | @@ -189,3 +189,20 @@ For each Runner, the following attributes are listed: | Last contact | Timestamp indicating when the GitLab instance last contacted the Runner | You can also edit, pause, or remove each Runner. + +## Administer Gitaly servers + +You can list all Gitaly servers in the GitLab instance from the Admin Area's **Gitaly Servers** +page. For more details, see [Gitaly](../../administration/gitaly/index.md). + +To access the **Gitaly Servers** page, go to **Admin Area > Overview > Gitaly Servers**. + +For each Gitaly server, the following details are listed: + +| Field | Description | +| -------------- | ----------- | +| Storage | Repository storage | +| Address | Network address on which the Gitaly server is listening | +| Server version | Gitaly version | +| Git version | Version of Git installed on the Gitaly server | +| Up to date | Indicates if the Gitaly server version is the latest version available. A green dot indicates the server is up to date. | -- cgit v1.2.3 From 877e4e1e7b670db1c4275ef091980c76645fdfba Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Tue, 4 Jun 2019 05:37:31 +0000 Subject: Edited `Third Party Offers` for SSOT guidelines --- doc/user/admin_area/settings/third_party_offers.md | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/third_party_offers.md b/doc/user/admin_area/settings/third_party_offers.md index 23311801790..d3c9cf7d8ff 100644 --- a/doc/user/admin_area/settings/third_party_offers.md +++ b/doc/user/admin_area/settings/third_party_offers.md @@ -1,9 +1,26 @@ +--- +type: reference +--- + # Third party offers > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20379) > in [GitLab Core](https://about.gitlab.com/pricing/) 11.1 -Within GitLab, we inform users of available third-party offers they might find valuable in order to enhance the development of their projects. -An example is the Google Cloud Platform free credit for using [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/). +Within GitLab, we inform users of available third-party offers they might find valuable in order +to enhance the development of their projects. An example is the Google Cloud Platform free credit +for using [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/). + +The display of third-party offers can be toggled in the **Admin Area > Settings** page. + + -- cgit v1.2.3 From 4c184179fba92e1b1967944a22cc78cdc34e9a77 Mon Sep 17 00:00:00 2001 From: Mark Chao Date: Wed, 29 May 2019 16:03:00 +0800 Subject: Update doc on approval --- doc/user/project/merge_requests/merge_request_approvals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md index 52b6b56af84..2e9db949890 100644 --- a/doc/user/project/merge_requests/merge_request_approvals.md +++ b/doc/user/project/merge_requests/merge_request_approvals.md @@ -3,7 +3,7 @@ > Introduced in [GitLab Enterprise Edition 7.12](https://about.gitlab.com/2015/06/22/gitlab-7-12-released/#merge-request-approvers-ee-only). NOTE: **Note:** -If you are running a self-managed instance, the new interface shown on +Prior to 12.0, if you are running a self-managed instance, the new interface shown on this page will not be available unless the feature flag `approval_rules` is enabled, which can be done from the Rails console by instance administrators. -- cgit v1.2.3 From 839430492cfaca3d0f21a44fc4fc2fd2472b0c33 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Tue, 4 Jun 2019 09:04:49 +0000 Subject: Fixes some Phabricator import docs problems --- doc/user/project/import/phabricator.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/import/phabricator.md b/doc/user/project/import/phabricator.md index 4d1d99fd35b..5c624e3aff6 100644 --- a/doc/user/project/import/phabricator.md +++ b/doc/user/project/import/phabricator.md @@ -15,18 +15,15 @@ Currently, only the following basic fields are imported: - Created at - Closed at - ## Enabling this feature While this feature is incomplete, a feature flag is required to enable it so that we can gain early feedback before releasing it for everyone. To enable it: -1. Enable Phabricator as an [import source](../../admin_area/settings/visibility_and_access_controls.md#import-sources) in the Admin area. +1. Run the following command in a Rails console: - ``` {.ruby} - Feature.enable(:phabricator_import) - ``` + ```ruby + Feature.enable(:phabricator_import) + ``` -The [import -source](../../admin_area/settings/visibility_and_access_controls.md#import-sources) -also needs to be activated by an admin in the admin interface. +1. Enable Phabricator as an [import source](../../admin_area/settings/visibility_and_access_controls.md#import-sources) in the Admin area. -- cgit v1.2.3 From 9797b27e1a096f684b870e55aab0b5d1250e73f8 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 27 May 2019 12:42:58 +0300 Subject: Adjust burndown chart opened issues count * Adjust opened issues count in the milestone burndown chart to match current opened issues in the milestone. * Fix completion rate calculation to include milestones only. --- doc/user/project/milestones/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/milestones/index.md b/doc/user/project/milestones/index.md index 0d8ee0a6cd2..6cd866b5c0d 100644 --- a/doc/user/project/milestones/index.md +++ b/doc/user/project/milestones/index.md @@ -138,7 +138,7 @@ For group milestones in [GitLab Premium](https://about.gitlab.com/pricing), a [b The milestone sidebar on the milestone view shows the following: -- Percentage complete, which is calculated as number of closed issues plus number of closed/merged merge requests divided by total number issues and merge requests. +- Percentage complete, which is calculated as number of closed issues divided by total number of issues. - The start date and due date. - The total time spent on all issues that have the milestone assigned. -- cgit v1.2.3 From e5ed663e7c0e5282abaa58f0bce4470aab6c3057 Mon Sep 17 00:00:00 2001 From: PatOnTheBack Date: Tue, 4 Jun 2019 20:23:11 +0000 Subject: Update code_quality.md to fix grammatical errors. --- doc/user/project/merge_requests/code_quality.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/code_quality.md b/doc/user/project/merge_requests/code_quality.md index e6811b5df5e..705ff333579 100644 --- a/doc/user/project/merge_requests/code_quality.md +++ b/doc/user/project/merge_requests/code_quality.md @@ -19,7 +19,7 @@ in the merge request widget area: For instance, consider the following workflow: -1. Your backend team member starts a new implementation for making certain feature in your app faster +1. Your backend team member starts a new implementation for making a certain feature in your app faster 1. With Code Quality reports, they analyze how their implementation is impacting the code quality 1. The metrics show that their code degrade the quality in 10 points 1. You ask a co-worker to help them with this modification @@ -63,7 +63,7 @@ Example: NOTE: **Note:** Although the Code Climate spec supports more properties, those are ignored by GitLab. -For more information on how the Code Quality job should look like, check the +For more information on what the Code Quality job should look like, check the example on [analyzing a project's code quality](../../../ci/examples/code_quality.md). GitLab then checks this report, compares the metrics between the source and target -- cgit v1.2.3 From 258d852bc574df9329ef5441f69e2b419bc2493c Mon Sep 17 00:00:00 2001 From: Matthias Baur Date: Wed, 5 Jun 2019 06:58:07 +0000 Subject: Apply suggestion to doc/user/project/integrations/youtrack.md --- doc/user/project/integrations/youtrack.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/youtrack.md b/doc/user/project/integrations/youtrack.md index 07f362d48d3..81c148e41fd 100644 --- a/doc/user/project/integrations/youtrack.md +++ b/doc/user/project/integrations/youtrack.md @@ -31,8 +31,8 @@ To disable the internal issue tracker in a project: ## Referencing YouTrack issues in GitLab Issues in YouTrack can be referenced as `-`. `` -must start with a letter and can then be followed by capital or lower case -letters, numbers or underscores. `` is a number. An example reference is `YT-101`, `Api_32-143` or `gl-030`. +must start with a letter and is followed by letters, numbers, or underscores. +`` is a number. An example reference is `YT-101`, `Api_32-143` or `gl-030`. References to `-` in merge requests, commits, or comments are automatically linked to the YouTrack issue URL. For more information, see the [External Issue Tracker](../../../integration/external-issue-tracker.md) documentation. -- cgit v1.2.3 From b8c3339a46abe54fe6b8a886596d206d040a8e2a Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Wed, 5 Jun 2019 10:10:28 +0000 Subject: Docs: Clean up links to remove ./ usage --- doc/user/markdown.md | 4 ++-- doc/user/project/description_templates.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 5dad9621802..6b6e5ab7634 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -1027,7 +1027,7 @@ A link can be constructed relative to the current wiki page using `./`, it would link to `/documentation/related`: ```markdown - [Link to Related Page](./related) + [Link to Related Page](related) ``` - If this snippet was placed on a page at `/documentation/related/content`, @@ -1041,7 +1041,7 @@ A link can be constructed relative to the current wiki page using `./`, it would link to `/documentation/related.md`: ```markdown - [Link to Related Page](./related.md) + [Link to Related Page](related.md) ``` - If this snippet was placed on a page at `/documentation/related/content`, diff --git a/doc/user/project/description_templates.md b/doc/user/project/description_templates.md index e230444fa67..05ad15476ab 100644 --- a/doc/user/project/description_templates.md +++ b/doc/user/project/description_templates.md @@ -86,7 +86,7 @@ pre-filled with the text you entered in the template(s). We make use of Description Templates for Issues and Merge Requests within the GitLab Community Edition project. Please refer to the [`.gitlab` folder][gitlab-ce-templates] for some examples. > **Tip:** -It is possible to use [quick actions](./quick_actions.md) within description templates to quickly add labels, assignees, and milestones. The quick actions will only be executed if the user submitting the Issue or Merge Request has the permissions perform the relevant actions. +It is possible to use [quick actions](quick_actions.md) within description templates to quickly add labels, assignees, and milestones. The quick actions will only be executed if the user submitting the Issue or Merge Request has the permissions perform the relevant actions. Here is an example for a Bug report template: -- cgit v1.2.3 From 6e19889a46e5d33055f55f351d4d405c3c49b39b Mon Sep 17 00:00:00 2001 From: Bob Van Landuyt Date: Wed, 5 Jun 2019 12:51:12 +0200 Subject: Remove executable permission from docs `doc/user/admin_area/img/index_runners_search_or_filter.png` does not need x permissions. --- doc/user/admin_area/img/index_runners_search_or_filter.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 doc/user/admin_area/img/index_runners_search_or_filter.png (limited to 'doc/user') diff --git a/doc/user/admin_area/img/index_runners_search_or_filter.png b/doc/user/admin_area/img/index_runners_search_or_filter.png old mode 100755 new mode 100644 -- cgit v1.2.3 From ee4290ad78f7b3fdd359419fefbac851cd739f9c Mon Sep 17 00:00:00 2001 From: Jan Provaznik Date: Wed, 5 Jun 2019 11:45:07 +0000 Subject: Apply suggestion to doc/user/project/labels.md --- doc/user/project/labels.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/labels.md b/doc/user/project/labels.md index 8869d85bbe0..63ab02541bd 100644 --- a/doc/user/project/labels.md +++ b/doc/user/project/labels.md @@ -32,11 +32,13 @@ An issue, epic, or merge request cannot have two scoped labels with the same key For example, if an issue is already labeled `priority::3` and you apply the label `priority::2` to it, `priority::3` is automatically removed. -NOTE: **Note:** -In the case where labels have multiple sets of `::`, the longest path is used -for mutual exclusivity check. For example, for label `some::key::value` we -would check for exclusivity on `some::key::` level instead of `some::` - this -allows finer grained organization. +### Labels with multiple colon pairs + +If labels have multiple instances of `::`, the longest path from left to right, until the last `::`, is considered the "key" or the "scope". + +For example, `nested::key1::value1` and `nested::key1::value2` cannot both exist on the same issue. Adding the latter label will automatically remove the former due to the shared scope of `nested::key1`. + +`nested::key1::value1` and `nested::key2::value1` can both exist on the same issue, as these are considered to use two different label scopes, `nested::key1` and `nested::key2`. ### Workflows with scoped labels **[PREMIUM]** -- cgit v1.2.3 From 2367c574bcc398ac3eaa5d326574995185a91eec Mon Sep 17 00:00:00 2001 From: Daniel Tam Date: Wed, 5 Jun 2019 11:58:57 +0000 Subject: Docs: fix grammar in getting_started_part_three.md --- doc/user/project/pages/getting_started_part_three.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index 9f2bc281f85..769adbf780e 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -96,7 +96,7 @@ you need to log into your domain's admin control panel and add a DNS `CNAME` record pointing your subdomain to your website URL (`namespace.gitlab.io`) address. -Notice that, despite it's a user or project website, the `CNAME` +Note that, whether it's a user or a project website, the `CNAME` should point to your Pages domain (`namespace.gitlab.io`), without any `/project-name`. -- cgit v1.2.3 From 25b522a50c8955d6fd050e4cd94d77620304ece1 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Wed, 5 Jun 2019 12:34:42 +0000 Subject: Edited `Terms of Service` for SSOT guidelines --- doc/user/admin_area/settings/terms.md | 46 ++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 14 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/terms.md b/doc/user/admin_area/settings/terms.md index e2290bf0598..a5f8d05f662 100644 --- a/doc/user/admin_area/settings/terms.md +++ b/doc/user/admin_area/settings/terms.md @@ -1,29 +1,35 @@ +--- +type: reference +--- + # Enforce accepting Terms of Service > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18570) > in [GitLab Core](https://about.gitlab.com/pricing/) 10.8 +An admin can enforce acceptance of a terms of service and privacy policy. When this option is enabled, new and existing users must accept the terms. + ## Configuration -When it is required for all users of the GitLab instance to accept the -Terms of Service, this can be configured by an admin on the settings -page: +To enforce acceptance of a Terms of Service and Privacy Policy: -![Enable enforcing Terms of Service](img/enforce_terms.png). +1. Log in to the GitLab instance as an admin user. +1. Go to **Admin Area > Settings > General**. +1. Expand the **Terms of Service and Privacy Policy** section. +1. Check the **Require all users to accept Terms of Service and Privacy Policy when they access +GitLab.** checkbox. +1. Input the text of the **Terms of Service and Privacy Policy**. Markdown formatting can be used in this input box. +1. Click **Save changes**. +1. When you are presented with the **Terms of Service** statement, click **Accept terms**. -The terms itself can be entered using Markdown. For each update to the -terms, a new version is stored. When a user accepts or declines the -terms, GitLab will keep track of which version they accepted or -declined. +![Enable enforcing Terms of Service](img/enforce_terms.png). -When an admin enables this feature, they will automattically be -directed to the page to accept the terms themselves. After they -accept, they will be directed back to the settings page. +For each update to the terms, a new version is stored. When a user accepts or declines the terms, +GitLab will record which version they accepted or declined. -## New registrations +## New users -When this feature is enabled, a checkbox will be available in the -sign-up form. +When this feature is enabled, a checkbox is added to the sign-up form. ![Sign up form](img/sign_up_terms.png) @@ -49,3 +55,15 @@ If the user was already logged in when the feature was turned on, they will be asked to accept the terms on their next interaction. If a user declines the terms, they will be signed out. + + -- cgit v1.2.3 From cc956329b96f666b34455e98bff3235e9d9f229f Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Wed, 5 Jun 2019 12:38:00 +0000 Subject: Edit *Groups index* for SSOT guidelines --- doc/user/group/index.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index 853b00f1f67..dc737f0084a 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -1,3 +1,7 @@ +--- +type: reference, howto +--- + # Groups With GitLab Groups you can assemble related projects together @@ -9,7 +13,7 @@ Find your groups by clicking **Groups > Your Groups** in the top navigation. ![GitLab Groups](img/groups.png) -> The groups dropdown in the top navigation was [introduced][ce-36234] in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). +> [Introduced][ce-36234] in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation) The Groups page displays: @@ -364,5 +368,17 @@ With [GitLab Issues Analytics](issues_analytics/index.md), you can see a bar cha Use GitLab as a [dependency proxy](dependency_proxy/index.md) for upstream Docker images. + + [ee]: https://about.gitlab.com/pricing/ [ee-2534]: https://gitlab.com/gitlab-org/gitlab-ee/issues/2534 -- cgit v1.2.3 From 7bfbbf5a1160c9eb4aade616bae22904d91aba57 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Wed, 5 Jun 2019 12:42:06 +0000 Subject: Edited "Group cluster" for SSOT guidelines --- doc/user/group/clusters/index.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 9c7b83252b0..e0e89051be4 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Group-level Kubernetes clusters > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/34758) in GitLab 11.6. -- cgit v1.2.3 From 3a300ba92cb2adbff1473e1b1290c031fb198b68 Mon Sep 17 00:00:00 2001 From: Victor Zagorodny Date: Wed, 5 Jun 2019 17:16:36 +0000 Subject: [CE backport] Fix broken link to default insights config in docs --- doc/user/group/insights/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md index 427b474ca39..83c284dce7a 100644 --- a/doc/user/group/insights/index.md +++ b/doc/user/group/insights/index.md @@ -28,7 +28,7 @@ the project that holds your `.gitlab/insights.yml` configuration file: ![group insights configuration](img/insights_group_configuration.png) If no configuration was set, a [default configuration file]( -https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/fixtures/insights/ee/fixtures/insights/default.yml) +https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/fixtures/insights/default.yml) will be used. See the [Project's Insights documentation](../../project/insights/index.md) for -- cgit v1.2.3 From 20994580895e3525a727c74c03be6f3f5478b473 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 5 Jun 2019 18:37:10 +0000 Subject: Be more specific about Groups page --- doc/user/group/index.md | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/index.md b/doc/user/group/index.md index dc737f0084a..eb0c7bc998f 100644 --- a/doc/user/group/index.md +++ b/doc/user/group/index.md @@ -4,8 +4,10 @@ type: reference, howto # Groups -With GitLab Groups you can assemble related projects together -and grant members access to several projects at once. +With GitLab Groups, you can: + +- Assemble related projects together. +- Grant members access to several projects at once. Groups can also be nested in [subgroups](subgroups/index.md). @@ -13,17 +15,21 @@ Find your groups by clicking **Groups > Your Groups** in the top navigation. ![GitLab Groups](img/groups.png) -> [Introduced][ce-36234] in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation) +> The **Groups** dropdown in the top navigation was [introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/36234) in [GitLab 11.1](https://about.gitlab.com/2018/07/22/gitlab-11-1-released/#groups-dropdown-in-navigation). + +The **Groups** page displays: -The Groups page displays: +- All groups you are a member of, when **Your groups** is selected. +- A list of public groups, when **Explore public groups** is selected. -- All groups you are a member of. -- How many projects each group contains. -- How many members a group has. -- The group visibility. -- A link to the group settings if you have sufficient permissions. +Each group on the **Groups** page is listed with: -By clicking the last button, you can leave that group. +- How many subgroups it has. +- How many projects it contains. +- How many members the group has, not including members inherited from parent groups. +- The group's visibility. +- A link to the group's settings, if you have sufficient permissions. +- A link to leave the group, if you are a member. ## Use cases @@ -210,7 +216,7 @@ Get an overview of the vulnerabilities of all the projects in a group and its su > Introduced in [GitLab Ultimate][ee] 11.9 behind the `insights` feature flag. Configure the Insights that matter for your groups or projects, allowing users to explore data -such as: +such as: - Triage hygiene - Issues created/closed per a given period -- cgit v1.2.3 From e8edc2fffad5031ff71a56ec442af2d6e63b8ecf Mon Sep 17 00:00:00 2001 From: Fabien Catteau Date: Wed, 5 Jun 2019 18:40:31 +0000 Subject: Explain how to contribute new vulnerabilities Add a link to the gemnasium-db and explain how to search for a vulnerability or contribute a new one. See https://gitlab.com/gitlab-org/gitlab-ee/issues/11169 --- doc/user/application_security/dependency_scanning/index.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc/user') diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 5d2bb4e572b..658d493ba39 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -224,3 +224,9 @@ vulnerabilities in your groups and projects. Read more about the Once a vulnerability is found, you can interact with it. Read more on how to [interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). + +## Contributing to the vulnerability database + +You can search the [gemnasium-db](https://gitlab.com/gitlab-org/security-products/gemnasium-db) project +to find a vulnerability in the Gemnasium database. +You can also [submit new vulnerabilities](https://gitlab.com/gitlab-org/security-products/gemnasium-db/blob/master/CONTRIBUTING.md). \ No newline at end of file -- cgit v1.2.3 From 91772fe7bac04d4aa87ba03e43397228b9546c20 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Wed, 5 Jun 2019 18:44:19 +0000 Subject: Edit Admin Area's "Usage Statistics" for SSOT --- doc/user/admin_area/settings/usage_statistics.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/usage_statistics.md b/doc/user/admin_area/settings/usage_statistics.md index 01d1eb1cd0e..652d6ad2cdd 100644 --- a/doc/user/admin_area/settings/usage_statistics.md +++ b/doc/user/admin_area/settings/usage_statistics.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Usage statistics GitLab Inc. will periodically collect information about your instance in order @@ -83,6 +87,18 @@ of your instance to your users. This can be restricted to admins by selecting "Only admins" in the Instance Statistics visibility section under **Admin area > Settings > Usage statistics**. + + [ee-557]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/557 [ee-735]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/735 [ce-23361]: https://gitlab.com/gitlab-org/gitlab-ce/issues/23361 -- cgit v1.2.3 From b3ef3afc29df2b427642eda9baabdbf30e678160 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Wed, 5 Jun 2019 20:49:52 +0000 Subject: Docs: ssot epic - Pages --- .../project/pages/getting_started_part_four.md | 8 +- doc/user/project/pages/getting_started_part_one.md | 3 +- .../project/pages/getting_started_part_three.md | 8 +- doc/user/project/pages/getting_started_part_two.md | 20 +-- doc/user/project/pages/index.md | 5 +- doc/user/project/pages/introduction.md | 193 +++++++++++---------- .../project/pages/lets_encrypt_for_gitlab_pages.md | 2 + 7 files changed, 118 insertions(+), 121 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pages/getting_started_part_four.md b/doc/user/project/pages/getting_started_part_four.md index 87cd4941ae6..8baf41dba78 100644 --- a/doc/user/project/pages/getting_started_part_four.md +++ b/doc/user/project/pages/getting_started_part_four.md @@ -1,10 +1,6 @@ --- -last_updated: 2018-02-16 -author: Marcia Ramos -author_gitlab: marcia -level: intermediate -article_type: user guide -date: 2017-02-22 +last_updated: 2019-06-04 +type: reference, howto --- # Creating and Tweaking GitLab CI/CD for GitLab Pages diff --git a/doc/user/project/pages/getting_started_part_one.md b/doc/user/project/pages/getting_started_part_one.md index 7dbf58b5715..6d538ca2455 100644 --- a/doc/user/project/pages/getting_started_part_one.md +++ b/doc/user/project/pages/getting_started_part_one.md @@ -1,5 +1,6 @@ --- -last_updated: 2018-02-16 +last_updated: 2018-06-04 +type: concepts, reference --- # Static sites and GitLab Pages domains diff --git a/doc/user/project/pages/getting_started_part_three.md b/doc/user/project/pages/getting_started_part_three.md index 769adbf780e..d585c19fc5c 100644 --- a/doc/user/project/pages/getting_started_part_three.md +++ b/doc/user/project/pages/getting_started_part_three.md @@ -1,10 +1,6 @@ --- -last_updated: 2018-11-19 -author: Marcia Ramos -author_gitlab: marcia -level: beginner -article_type: user guide -date: 2017-02-22 +last_updated: 2019-06-04 +type: concepts, reference, howto --- # GitLab Pages custom domains and SSL/TLS Certificates diff --git a/doc/user/project/pages/getting_started_part_two.md b/doc/user/project/pages/getting_started_part_two.md index b74520e6556..3e50cd4887c 100644 --- a/doc/user/project/pages/getting_started_part_two.md +++ b/doc/user/project/pages/getting_started_part_two.md @@ -1,10 +1,6 @@ --- -last_updated: 2019-03-05 -author: Marcia Ramos -author_gitlab: marcia -level: beginner -article_type: user guide -date: 2017-02-22 +last_updated: 2019-06-04 +type: reference, howto --- # Projects for GitLab Pages and URL structure @@ -13,11 +9,11 @@ date: 2017-02-22 To get started with GitLab Pages, you need: -1. A project -1. A configuration file (`.gitlab-ci.yml`) to deploy your site +1. A project, thus a repository to hold your website's codebase. +1. A configuration file (`.gitlab-ci.yml`) to deploy your site. 1. A specific `job` called `pages` in the configuration file - that will make GitLab aware that you are deploying a GitLab Pages website -1. A `public` directory with the content of the website + that will make GitLab aware that you are deploying a GitLab Pages website. +1. A `public` directory with the static content of the website. Optional Features: @@ -140,7 +136,7 @@ where you'll find its default URL. repository to you local computer and moving your site files into it, you can run `git init` in your local website directory, add the remote URL: `git remote add origin git@gitlab.com:namespace/project-name.git`, - then add, commit, and push. + then add, commit, and push to GitLab. ## URLs and Baseurls @@ -173,4 +169,4 @@ baseurl: "" ## Custom Domains GitLab Pages supports custom domains and subdomains, served under HTTP or HTTPS. -Please check the [next part](getting_started_part_three.md) of this series for an overview. +See [GitLab Pages custom domains and SSL/TLS Certificates](getting_started_part_three.md) for more information. diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index 91098d51160..04bda212128 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -1,6 +1,7 @@ --- description: 'Learn how to use GitLab Pages to deploy a static website at no additional cost.' -last_updated: 2019-03-05 +last_updated: 2019-06-04 +type: index, reference --- # GitLab Pages @@ -140,7 +141,7 @@ To learn more about configuration options for GitLab Pages, read the following: | [Static websites and Pages domains](getting_started_part_one.md) | Understand what is a static website, and how GitLab Pages default domains work. | | [Projects and URL structure](getting_started_part_two.md) | Forking projects and creating new ones from scratch, understanding URLs structure and baseurls. | | [GitLab CI/CD for GitLab Pages](getting_started_part_four.md) | Understand how to create your own `.gitlab-ci.yml` for your site. | -| [Exploring GitLab Pages](introduction.md) | Technical aspects, specific configuration options, custom 404 pages, limitations. | +| [Exploring GitLab Pages](introduction.md) | Requirements, technical aspects, specific GitLab CI's configuration options, custom 404 pages, limitations, FAQ. | |---+---| | [Custom domains and SSL/TLS Certificates](getting_started_part_three.md) | How to add custom domains and subdomains to your website, configure DNS records and SSL/TLS certificates. | | [CloudFlare certificates](https://about.gitlab.com/2017/02/07/setting-up-gitlab-pages-with-cloudflare-certificates/) | Secure your Pages site with CloudFlare certificates. | diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md index a14a446aead..4fab7f79e0c 100644 --- a/doc/user/project/pages/introduction.md +++ b/doc/user/project/pages/introduction.md @@ -1,3 +1,8 @@ +--- +type: reference +last_updated: 2018-06-04 +--- + # Exploring GitLab Pages This document is a user guide to explore the options and settings @@ -10,7 +15,7 @@ To familiarize yourself with GitLab Pages first: - Learn how to enable GitLab Pages across your GitLab instance on the [administrator documentation](../../../administration/pages/index.md). -## Pages requirements +## GitLab Pages requirements In brief, this is what you need to upload your website in GitLab Pages: @@ -34,6 +39,99 @@ If you are using [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlabcom) to hos Visit the [GitLab Pages group](https://gitlab.com/groups/pages) for a complete list of example projects. Contributions are very welcome. +## Custom error codes Pages + +You can provide your own 403 and 404 error pages by creating the `403.html` and +`404.html` files respectively in the root directory of the `public/` directory +that will be included in the artifacts. Usually this is the root directory of +your project, but that may differ depending on your static generator +configuration. + +If the case of `404.html`, there are different scenarios. For example: + +- If you use project Pages (served under `/projectname/`) and try to access + `/projectname/non/existing_file`, GitLab Pages will try to serve first + `/projectname/404.html`, and then `/404.html`. +- If you use user/group Pages (served under `/`) and try to access + `/non/existing_file` GitLab Pages will try to serve `/404.html`. +- If you use a custom domain and try to access `/non/existing_file`, GitLab + Pages will try to serve only `/404.html`. + +## Redirects in GitLab Pages + +Since you cannot use any custom server configuration files, like `.htaccess` or +any `.conf` file, if you want to redirect a page to another +location, you can use the [HTTP meta refresh tag][metarefresh]. + +Some static site generators provide plugins for that functionality so that you +don't have to create and edit HTML files manually. For example, Jekyll has the +[redirect-from plugin](https://github.com/jekyll/jekyll-redirect-from). + +## GitLab Pages Access Control **[CORE ONLY]** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33422) in GitLab 11.5. + +NOTE: **Note:** +GitLab Pages access control is not activated on GitLab.com. You can check its +progress on the +[infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5576). + +You can enable Pages access control on your project, so that only +[members of your project](../../permissions.md#project-members-permissions) +(at least Guest) can access your website: + +1. Navigate to your project's **Settings > General > Permissions**. +1. Toggle the **Pages** button to enable the access control. + + NOTE: **Note:** + If you don't see the toggle button, that means that it's not enabled. + Ask your administrator to [enable it](../../../administration/pages/index.md#access-control). + +1. The Pages access control dropdown allows you to set who can view pages hosted + with GitLab Pages, depending on your project's visibility: + + - If your project is private: + - **Only project members**: Only project members will be able to browse the website. + - **Everyone**: Everyone, both logged into and logged out of GitLab, will be able to browse the website, no matter their project membership. + - If your project is internal: + - **Only project members**: Only project members will be able to browse the website. + - **Everyone with access**: Everyone logged into GitLab will be able to browse the website, no matter their project membership. + - **Everyone**: Everyone, both logged into and logged out of GitLab, will be able to browse the website, no matter their project membership. + - If your project is public: + - **Only project members**: Only project members will be able to browse the website. + - **Everyone with access**: Everyone, both logged into and logged out of GitLab, will be able to browse the website, no matter their project membership. + +1. Click **Save changes**. + +--- + +The next time someone tries to access your website and the access control is +enabled, they will be presented with a page to sign into GitLab and verify they +can access the website. + +## Unpublishing your Pages + +If you ever feel the need to purge your Pages content, you can do so by going +to your project's settings through the gear icon in the top right, and then +navigating to **Pages**. Hit the **Remove pages** button and your Pages website +will be deleted. + +![Remove pages](img/remove_pages.png) + +## Limitations + +When using Pages under the general domain of a GitLab instance (`*.example.io`), +you _cannot_ use HTTPS with sub-subdomains. That means that if your +username/groupname contains a dot, for example `foo.bar`, the domain +`https://foo.bar.example.io` will _not_ work. This is a limitation of the +[HTTP Over TLS protocol][rfc]. HTTP pages will continue to work provided you +don't redirect HTTP to HTTPS. + +[rfc]: https://tools.ietf.org/html/rfc2818#section-3.1 "HTTP Over TLS RFC" + +GitLab Pages [does **not** support group websites for subgroups](../../group/subgroups/index.md#limitations). +You can only create the highest-level group website. + ## Specific configuration options for Pages Learn how to set up GitLab CI/CD for specific use cases. @@ -208,99 +306,6 @@ NOTE: **Note:** When `public/data/index.html` exists, it takes priority over the `public/data.html` file for both the `/data` and `/data/` URL paths. -### Custom error codes pages - -You can provide your own 403 and 404 error pages by creating the `403.html` and -`404.html` files respectively in the root directory of the `public/` directory -that will be included in the artifacts. Usually this is the root directory of -your project, but that may differ depending on your static generator -configuration. - -If the case of `404.html`, there are different scenarios. For example: - -- If you use project Pages (served under `/projectname/`) and try to access - `/projectname/non/existing_file`, GitLab Pages will try to serve first - `/projectname/404.html`, and then `/404.html`. -- If you use user/group Pages (served under `/`) and try to access - `/non/existing_file` GitLab Pages will try to serve `/404.html`. -- If you use a custom domain and try to access `/non/existing_file`, GitLab - Pages will try to serve only `/404.html`. - -### Redirects in GitLab Pages - -Since you cannot use any custom server configuration files, like `.htaccess` or -any `.conf` file, if you want to redirect a page to another -location, you can use the [HTTP meta refresh tag][metarefresh]. - -Some static site generators provide plugins for that functionality so that you -don't have to create and edit HTML files manually. For example, Jekyll has the -[redirect-from plugin](https://github.com/jekyll/jekyll-redirect-from). - -### GitLab Pages Access Control **[CORE ONLY]** - -> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/33422) in GitLab 11.5. - -NOTE: **Note:** -GitLab Pages access control is not activated on GitLab.com. You can check its -progress on the -[infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5576). - -You can enable Pages access control on your project, so that only -[members of your project](../../permissions.md#project-members-permissions) -(at least Guest) can access your website: - -1. Navigate to your project's **Settings > General > Permissions**. -1. Toggle the **Pages** button to enable the access control. - - NOTE: **Note:** - If you don't see the toggle button, that means that it's not enabled. - Ask your administrator to [enable it](../../../administration/pages/index.md#access-control). - -1. The Pages access control dropdown allows you to set who can view pages hosted - with GitLab Pages, depending on your project's visibility: - - - If your project is private: - - **Only project members**: Only project members will be able to browse the website. - - **Everyone**: Everyone, both logged into and logged out of GitLab, will be able to browse the website, no matter their project membership. - - If your project is internal: - - **Only project members**: Only project members will be able to browse the website. - - **Everyone with access**: Everyone logged into GitLab will be able to browse the website, no matter their project membership. - - **Everyone**: Everyone, both logged into and logged out of GitLab, will be able to browse the website, no matter their project membership. - - If your project is public: - - **Only project members**: Only project members will be able to browse the website. - - **Everyone with access**: Everyone, both logged into and logged out of GitLab, will be able to browse the website, no matter their project membership. - -1. Click **Save changes**. - ---- - -The next time someone tries to access your website and the access control is -enabled, they will be presented with a page to sign into GitLab and verify they -can access the website. - -## Unpublishing your Pages - -If you ever feel the need to purge your Pages content, you can do so by going -to your project's settings through the gear icon in the top right, and then -navigating to **Pages**. Hit the **Remove pages** button and your Pages website -will be deleted. - -![Remove pages](img/remove_pages.png) - -## Limitations - -When using Pages under the general domain of a GitLab instance (`*.example.io`), -you _cannot_ use HTTPS with sub-subdomains. That means that if your -username/groupname contains a dot, for example `foo.bar`, the domain -`https://foo.bar.example.io` will _not_ work. This is a limitation of the -[HTTP Over TLS protocol][rfc]. HTTP pages will continue to work provided you -don't redirect HTTP to HTTPS. - -[rfc]: https://tools.ietf.org/html/rfc2818#section-3.1 "HTTP Over TLS RFC" - -GitLab Pages [does **not** support group websites for subgroups](../../group/subgroups/index.md#limitations). -You can only create the highest-level group website. - ## Frequently Asked Questions ### Can I download my generated pages? diff --git a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md index da1b7c59c8e..91a660c0f7a 100644 --- a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md +++ b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md @@ -1,5 +1,7 @@ --- description: "How to secure GitLab Pages websites with Let's Encrypt." +type: howto +last_updated: 2019-06-04 --- # Let's Encrypt for GitLab Pages -- cgit v1.2.3 From 8e2bb09add72c0503419f61add28db3fa097e21b Mon Sep 17 00:00:00 2001 From: Daniel Gruesso Date: Thu, 6 Jun 2019 02:55:28 +0000 Subject: Add Jupyter git extension section --- doc/user/clusters/applications.md | 31 ++++++++++++++++++++++-- doc/user/clusters/img/jupyter-git-extension.gif | Bin 0 -> 2120084 bytes doc/user/clusters/img/jupyter-gitclone.png | Bin 0 -> 64120 bytes doc/user/project/clusters/runbooks/index.md | 6 +++-- 4 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 doc/user/clusters/img/jupyter-git-extension.gif create mode 100644 doc/user/clusters/img/jupyter-gitclone.png (limited to 'doc/user') diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md index 97abe99fe62..b520c4fb579 100644 --- a/doc/user/clusters/applications.md +++ b/doc/user/clusters/applications.md @@ -140,8 +140,8 @@ that installs additional useful packages on top of the base Jupyter. You will also see ready-to-use DevOps Runbooks built with Nurtch's [Rubix library](https://github.com/amit1rrr/rubix). More information on -creating executable runbooks can be found in [our Nurtch -documentation](../project/clusters/runbooks/index.md#nurtch-executable-runbooks). Note that +creating executable runbooks can be found in [our Runbooks +documentation](../project/clusters/runbooks/index.md#executable-runbooks). Note that Ingress must be installed and have an IP address assigned before JupyterHub can be installed. @@ -152,6 +152,33 @@ chart is used to install this application with a [`values.yaml`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/vendor/jupyter/values.yaml) file. +#### Jupyter Git Integration + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28783) in GitLab 12 for project-level clusters. + +When installing JupyterHub onto your Kubernetes cluster, [JupyterLab's Git extension](https://github.com/jupyterlab/jupyterlab-git) +is automatically provisioned and configured using the authenticated user's: + +- Name +- Email +- Newly created access token + +JupyterLab's Git extension enables full version control of your notebooks as well as issuance of Git commands within Jupyter. +Git commands can be issued via the **Git** tab on the left panel or via Jupyter's command line prompt. + +NOTE: **Note:** +JupyterLab's Git extension stores the user token in the JupyterHub DB in encrypted format +and in the single user Jupyter instance as plain text. This is because [Git requires storing +credentials as plain text](https://git-scm.com/docs/git-credential-store). Potentially, if +a nefarious user finds a way to read from the file system in the single user Jupyter instance +they could retrieve the token. + +![Jupyter's Git Extension](img/jupyter-git-extension.gif) + +You can clone repositories from the files tab in Jupyter: + +![Jupyter clone repository](img/jupyter-gitclone.png) + ### Knative > Available for project-level clusters since GitLab 11.5. diff --git a/doc/user/clusters/img/jupyter-git-extension.gif b/doc/user/clusters/img/jupyter-git-extension.gif new file mode 100644 index 00000000000..13a88d97425 Binary files /dev/null and b/doc/user/clusters/img/jupyter-git-extension.gif differ diff --git a/doc/user/clusters/img/jupyter-gitclone.png b/doc/user/clusters/img/jupyter-gitclone.png new file mode 100644 index 00000000000..41d467f806a Binary files /dev/null and b/doc/user/clusters/img/jupyter-gitclone.png differ diff --git a/doc/user/project/clusters/runbooks/index.md b/doc/user/project/clusters/runbooks/index.md index 6360a01a0ad..c67b12fb91a 100644 --- a/doc/user/project/clusters/runbooks/index.md +++ b/doc/user/project/clusters/runbooks/index.md @@ -17,13 +17,15 @@ Modern implementations have introduced the concept of an "executable runbooks", where, along with a well-defined process, operators can execute pre-written code blocks or database queries against a given environment. -## Nurtch Executable Runbooks +## Executable Runbooks > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/45912) in GitLab 11.4. The JupyterHub app offered via GitLab’s Kubernetes integration now ships with Nurtch’s Rubix library, providing a simple way to create DevOps -runbooks. A sample runbook is provided, showcasing common operations. +runbooks. A sample runbook is provided, showcasing common operations. While Rubix makes it +simple to create common Kubernetes and AWS workflows, you can also create them manually without +Rubix. ** Watch this [video](https://www.youtube.com/watch?v=Q_OqHIIUPjE) -- cgit v1.2.3 From d02debca081e0477efb915e5163dd5f13c35e162 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 03:05:29 +0000 Subject: Edit contribution analytics for SSOT --- doc/user/group/contribution_analytics/index.md | 64 +++++++++++++++++--------- 1 file changed, 43 insertions(+), 21 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/contribution_analytics/index.md b/doc/user/group/contribution_analytics/index.md index bc88eff9ed2..7e6cb24a51e 100644 --- a/doc/user/group/contribution_analytics/index.md +++ b/doc/user/group/contribution_analytics/index.md @@ -1,46 +1,58 @@ -# Contribution Analytics **[STARTER]** +--- +type: reference +--- ->**Note:** -Introduced in [GitLab Starter][ee] 8.3. +# Contribution Analytics **[STARTER]** -Track your team members' activity across your organization. +> Introduced in [GitLab Starter](https://about.gitlab.com/pricing/) 8.3. ## Overview -With Contribution Analytics you can get an overview of the activity of -issues, merge requests, and push events of your organization and its members. +With Contribution Analytics you can get an overview of the following activity in your +group: -The analytics page is located at **Group > Contribution Analytics** -under the URL `/groups//analytics`. +- Issues +- Merge requests +- Push events + +To view the Contribution Analytics, go to your group's **Overview > Contribution Analytics** +page. ## Use cases -- Analyze your team's contributions over a period of time and offer a bonus for the top contributors -- Identify opportunities for improvement with group members who may benefit from additional support +- Analyze your team's contributions over a period of time, and offer a bonus for the top +contributors. +- Identify opportunities for improvement with group members who may benefit from additional +support. ## Using Contribution Analytics -There are three main bar graphs that are deducted from the number of -contributions per group member. These contributions include push events, merge -requests and closed issues. Hovering on each bar you can see the number of -events for a specific member. +There are three main bar graphs that illustrate the number of contributions per group +member for the following: + +- Push events +- Merge requests +- Closed issues + +Hover over each bar to display the number of events for a specific group member. ![Contribution analytics bar graphs](img/group_stats_graph.png) ## Changing the period time -There are three periods you can choose from, 'Last week', 'Last month' and -'Last three months'. The default is 'Last week'. +You can choose from the following three periods: + +- Last week (default) +- Last month +- Last three months -You can choose which period to display by using the dropdown calendar menu in -the upper right corner. +Select the desired period from the calendar dropdown. ![Contribution analytics choose period](img/group_stats_cal.png) ## Sorting by different factors -Apart from the bar graphs you can also see the contributions per group member -which are depicted in a table that can be sorted by: +Contributions per group member are also presented in tabular format. Click a column header to sort the table by that column: * Member name * Number of pushed events @@ -52,4 +64,14 @@ which are depicted in a table that can be sorted by: ![Contribution analytics contributions table](img/group_stats_table.png) -[ee]: https://about.gitlab.com/pricing/ + -- cgit v1.2.3 From 794e460d2293313ba9091ca5d751e1c24985db39 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 04:04:23 +0000 Subject: Edit "Group analytics" for SSOT --- doc/user/group/issues_analytics/index.md | 41 ++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/issues_analytics/index.md b/doc/user/group/issues_analytics/index.md index cf53d7423a6..46d5c1e2e09 100644 --- a/doc/user/group/issues_analytics/index.md +++ b/doc/user/group/issues_analytics/index.md @@ -1,16 +1,43 @@ +--- +type: reference +--- + # Issues Analytics **[PREMIUM]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7478) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.5. -GitLab by default displays a bar chart of the number of issues created each month, for the -current month, and 12 months prior, for a total of 13 months. +Issues Analytics is a bar graph which illustrates the number of issues created each month. +The default timespan is 13 months, which includes the current month, and the 12 months +prior. -You can change the total number of months displayed by setting a URL parameter. -For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15` -would show a total of 15 months for the chart in the GitLab.org group. +To access the chart, navigate to a group's sidebar and select **Issues > Analytics**. -The **Search or filter results...** field can be used for filtering the issues by any attribute. For example, labels, assignee, milestone, and author. +Hover over each bar to see the total number of issues. -To access the chart, navigate to a group's sidebar and select **Issues > Analytics**. +To narrow the scope of issues included in the graph, enter your criteria in the +**Search or filter results...** field. Criteria from the following list can be typed in or selected from a menu: + +- Author +- Assignee +- Milestone +- Label +- My reaction +- Weight + +You can change the total number of months displayed by setting a URL parameter. +For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15` +shows a total of 15 months for the chart in the GitLab.org group. ![Issues created per month](img/issues_created_per_month.png) + + -- cgit v1.2.3 From 04d9c3b27130918a07a2eea78ea50bc9233da598 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Thu, 6 Jun 2019 04:47:26 +0000 Subject: Docs: Tweak the wording regarding artifact completion --- doc/user/project/pipelines/job_artifacts.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md index 629b5e1fde4..002addfc043 100644 --- a/doc/user/project/pipelines/job_artifacts.md +++ b/doc/user/project/pipelines/job_artifacts.md @@ -16,7 +16,7 @@ > [administration/job_artifacts](../../../administration/job_artifacts.md). Artifacts is a list of files and directories which are attached to a job -after it completes successfully. This feature is enabled by default in all +after it finishes. This feature is enabled by default in all GitLab installations. ## Defining artifacts in `.gitlab-ci.yml` @@ -36,12 +36,14 @@ pdf: A job named `pdf` calls the `xelatex` command in order to build a pdf file from the latex source file `mycv.tex`. We then define the `artifacts` paths which in turn are defined with the `paths` keyword. All paths to files and directories -are relative to the repository that was cloned during the build. These uploaded -artifacts will be kept in GitLab for 1 week as defined by the `expire_in` -definition. You have the option to keep the artifacts from expiring via the -[web interface](#browsing-artifacts). If the expiry time is not defined, -it defaults to the [instance wide -setting](../../admin_area/settings/continuous_integration.md#default-artifacts-expiration-core-only). +are relative to the repository that was cloned during the build. + +The artifacts will be uploaded when the job succeeds by default, but can be set to upload +when the job fails, or always, if the [`artifacts:when`](../../../ci/yaml/README.md#artifactswhen) +parameter is used. These uploaded artifacts will be kept in GitLab for 1 week as defined +by the `expire_in` definition. You have the option to keep the artifacts from expiring +via the [web interface](#browsing-artifacts). If the expiry time is not defined, it defaults +to the [instance wide setting](../../admin_area/settings/continuous_integration.md#default-artifacts-expiration-core-only). For more examples on artifacts, follow the [artifacts reference in `.gitlab-ci.yml`](../../../ci/yaml/README.md#artifacts). -- cgit v1.2.3 From bad5438a8c0703aec6f925b808d54a5f47ed8da0 Mon Sep 17 00:00:00 2001 From: Paul Gascou-Vaillancourt Date: Thu, 6 Jun 2019 06:17:36 +0000 Subject: Update project security dashboard documentation --- .../img/project_security_dashboard.png | Bin 49062 -> 126356 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'doc/user') diff --git a/doc/user/application_security/security_dashboard/img/project_security_dashboard.png b/doc/user/application_security/security_dashboard/img/project_security_dashboard.png index 3294e59e943..f0dad6c54d0 100644 Binary files a/doc/user/application_security/security_dashboard/img/project_security_dashboard.png and b/doc/user/application_security/security_dashboard/img/project_security_dashboard.png differ -- cgit v1.2.3 From f71b2738670d14b251069c2d287890466a1da378 Mon Sep 17 00:00:00 2001 From: Victor Zagorodny Date: Thu, 6 Jun 2019 07:20:54 +0000 Subject: Add note on weekly updates of dast Docker image --- doc/user/application_security/dast/index.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc/user') diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md index abc6e771b0f..028ff72a160 100644 --- a/doc/user/application_security/dast/index.md +++ b/doc/user/application_security/dast/index.md @@ -39,6 +39,8 @@ However, DAST can be [configured](#full-scan) to also perform a so-called "active scan". That is, attack your application and produce a more extensive security report. It can be very useful combined with [Review Apps](../../../ci/review_apps/index.md). +The [`dast`](https://gitlab.com/gitlab-org/security-products/dast/container_registry) Docker image in GitLab container registry is updated on a weekly basis to have all [`owasp2docker-weekly`](https://hub.docker.com/r/owasp/zap2docker-weekly/) updates in it. + ## Use cases It helps you automatically find security vulnerabilities in your running web -- cgit v1.2.3 From 0a4a723df4cbe842df5f5e495339be3133b96840 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 6 Jun 2019 09:23:48 +0200 Subject: Port EE changes from doc/user/project/insights/index.md --- doc/user/project/insights/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/insights/index.md b/doc/user/project/insights/index.md index 5154ff38154..3344e560870 100644 --- a/doc/user/project/insights/index.md +++ b/doc/user/project/insights/index.md @@ -179,7 +179,7 @@ Supported values are: Filter by the state of the queried "issuable". -If you omit it, no state filter will be applied. +If you omit it, the `opened` state filter will be applied. Supported values are: @@ -187,6 +187,7 @@ Supported values are: - `closed`: Closed Open issues / merge requests. - `locked`: Issues / merge requests that have their discussion locked. - `merged`: Merged merge requests. +- `all`: Issues / merge requests in all states #### `query.filter_labels` -- cgit v1.2.3 From 9dc60af95d48f9ffa27e745fad033118fac3a299 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 07:34:10 +0000 Subject: Edited "Custom group-level project templates" for SSOT --- doc/user/group/custom_project_templates.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/group/custom_project_templates.md b/doc/user/group/custom_project_templates.md index f67325272a6..aa088d2fcdb 100644 --- a/doc/user/group/custom_project_templates.md +++ b/doc/user/group/custom_project_templates.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Custom group-level project templates **[PREMIUM]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/6861) in [GitLab Premium](https://about.gitlab.com/pricing) 11.6. @@ -24,3 +28,15 @@ Projects of nested subgroups of a selected template source cannot be used. Repository and database information that are copied over to each new project are identical to the data exported with [GitLab's Project Import/Export](../project/settings/import_export.md). + + -- cgit v1.2.3 From 7a2bebc9a28c82173aa3bf4ff2d131d10325df1c Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 07:35:47 +0000 Subject: Edited "Epics" to comply with SSOT --- doc/user/group/epics/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/group/epics/index.md b/doc/user/group/epics/index.md index 6035f0c7326..2e4106f55e5 100644 --- a/doc/user/group/epics/index.md +++ b/doc/user/group/epics/index.md @@ -1,3 +1,7 @@ +--- +type: reference, howto +--- + # Epics **[ULTIMATE]** > Introduced in [GitLab Ultimate][ee] 10.2. @@ -215,3 +219,15 @@ Once you wrote your comment, you can either: ## Notifications - [Receive notifications](../../../workflow/notifications.md) for epic events. + + -- cgit v1.2.3 From ab32066c5b01bffb9a3a4a2104c4509c3aef6980 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 07:36:14 +0000 Subject: Edit "Insights" content to meet SSOT guidelines --- doc/user/group/insights/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md index 83c284dce7a..a4ea71074ec 100644 --- a/doc/user/group/insights/index.md +++ b/doc/user/group/insights/index.md @@ -1,3 +1,7 @@ +--- +type: reference, howto +--- + # Insights **[ULTIMATE]** > Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.9 behind the `insights` feature flag. @@ -44,3 +48,15 @@ access to the project they belong to, or because they are confidential) are filtered out of the Insights charts. You may also consult the [group permissions table](../../permissions.md#group-members-permissions). + + -- cgit v1.2.3 From ac66b7b68f7dbbb71441555603b0c3dc64062698 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 07:40:42 +0000 Subject: Edit Group's "Roadmap" for SSOT --- doc/user/group/roadmap/index.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/roadmap/index.md b/doc/user/group/roadmap/index.md index 310c4bb88d0..683c715c8d5 100644 --- a/doc/user/group/roadmap/index.md +++ b/doc/user/group/roadmap/index.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Roadmap **[ULTIMATE]** > Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 10.5. @@ -19,13 +23,20 @@ Epics in the view can be sorted by: - **Start date** - **Due date** -Each option contains a button that can toggle the order between **ascending** and **descending**. The sort option and order will be persisted to be used wherever epics are browsed including the [epics list view](../epics/index.md). +Each option contains a button that toggles the sort order between **ascending** and **descending**. The sort option and order will be persisted when browsing Epics, +including the [epics list view](../epics/index.md). Roadmaps can also be [visualized inside an epic](../epics/index.md#roadmap-in-epics). ## Timeline duration -Starting with [GitLab Ultimate][ee] 11.0, Roadmap supports three different date ranges; Quarters, Months (Default) and Weeks. +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.0. + +Roadmap supports the following date ranges: + +- Quarters +- Months (Default) +- Weeks ### Quarters @@ -62,3 +73,15 @@ and due date. If an epic doesn't have a due date, the timeline bar fades away towards the future. Similarly, if an epic doesn't have a start date, the timeline bar becomes more visible as it approaches the epic's due date on the timeline. + + -- cgit v1.2.3 From eded1fc820415a626a302968a157f80b47325b26 Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 07:41:20 +0000 Subject: Edit "SAML SSO" for SSOT --- doc/user/group/saml_sso/index.md | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'doc/user') diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md index 62a3ef52c34..fcfd638f185 100644 --- a/doc/user/group/saml_sso/index.md +++ b/doc/user/group/saml_sso/index.md @@ -1,3 +1,7 @@ +--- +type: reference, howto +--- + # SAML SSO for GitLab.com Groups **[SILVER ONLY]** > Introduced in [GitLab.com Silver](https://about.gitlab.com/pricing/) 11.0. @@ -15,7 +19,7 @@ SAML SSO for GitLab.com groups does not sync users between providers without usi ## Configuring your Identity Provider 1. Navigate to the group and click **Settings > SAML SSO**. -1. Configure your SAML server using the **Assertion consumer service URL** and **Issuer**. Alternatively GitLab provides [metadata XML configuration](#metadata-configuration). See [your identity provider's documentation](#providers) for more details. +1. Configure your SAML server using the **Assertion consumer service URL** and **Identifier**. Alternatively GitLab provides [metadata XML configuration](#metadata-configuration). See [your identity provider's documentation](#providers) for more details. 1. Configure the SAML response to include a NameID that uniquely identifies each user. 1. Configure required assertions using the [table below](#assertions). 1. Once the identity provider is set up, move on to [configuring GitLab](#configuring-gitlab). @@ -43,12 +47,12 @@ GitLab.com uses the SAML NameID to identify users. The NameID element: ### Assertions -| Field | Supported keys | Notes | -|-|----------------|-------------| -| Email | `email`, `mail` | (required) | -| Full Name | `name` | | -| First Name | `first_name`, `firstname`, `firstName` | | -| Last Name | `last_name`, `lastname`, `lastName` | | +| Field | Supported keys | +|-------|----------------| +| Email (required)| `email`, `mail` | +| Full Name | `name` | +| First Name | `first_name`, `firstname`, `firstName` | +| Last Name | `last_name`, `lastname`, `lastName` | ## Metadata configuration @@ -122,3 +126,15 @@ For example, to unlink the `MyOrg` account, the following **Disconnect** button | Assertion consumer service URL | The callback on GitLab where users will be redirected after successfully authenticating with the identity provider. | | Issuer | How GitLab identifies itself to the identity provider. Also known as a "Relying party trust identifier". | | Certificate fingerprint | Used to confirm that communications over SAML are secure by checking that the server is signing communications with the correct certificate. Also known as a certificate thumbprint. | + + -- cgit v1.2.3 From ad9ae16d8a44dd2523bd6e6109db9fe2da45d3a5 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 30 May 2019 18:40:53 +1200 Subject: Add project level git depth setting Introduce default_git_depth in project's CI/CD settings and set it to 50. Use it if there is no GIT_DEPTH variable specified. Apply this default only to newly created projects and keep it nil for old ones in order to not break pipelines that rely on non-shallow clones. default_git_depth can be updated from CI/CD Settings in the UI, must be either nil or integer between 0 and 1000 (incl). Inherit default_git_depth from the origin project when forking projects. MR pipelines are run on a MR ref (refs/merge-requests/:iid/merge) and it contains unique commit (i.e. merge commit) which doesn't exist in the other branch/tags refs. We need to add it cause otherwise it may break pipelines for old projects that have already enabled Pipelines for merge results and have git depth 0. Document new default_git_depth project CI/CD setting --- doc/user/project/pipelines/settings.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc/user') diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md index 8b762307ac4..16f48c462eb 100644 --- a/doc/user/project/pipelines/settings.md +++ b/doc/user/project/pipelines/settings.md @@ -20,6 +20,22 @@ There are two options. Using: The default Git strategy can be overridden by the [GIT_STRATEGY variable](../../../ci/yaml/README.md#git-strategy) in `.gitlab-ci.yml`. +## Git shallow clone + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28919) in GitLab 12.0. + +NOTE: **Note**: As of GitLab 12.0, newly created projects will automaticallyl have a default +`git depth` value of `50`. + +It is possible to limit the number of changes that GitLab CI/CD will fetch when cloning +a repository. Setting a limit to `git depth` can speed up Pipelines execution. Maximum +allowed value is `1000`. + +To disable shallow clone and make GitLab CI/CD fetch all branches and tags each time, +keep the value empty or set to `0`. + +This value can also be [overridden by `GIT_DEPTH`](../../../ci/large_repositories/index.md#shallow-cloning) variable in `.gitlab-ci.yml` file. + ## Timeout Timeout defines the maximum amount of time in minutes that a job is able run. -- cgit v1.2.3 From 8a725bfbbdfd04e1beb7e86f206182285befde90 Mon Sep 17 00:00:00 2001 From: Sam Beckham Date: Thu, 6 Jun 2019 14:17:44 +0000 Subject: Adds documentation for vulnerability dismissal reasons --- .../application_security/img/dismissed_info.png | Bin 0 -> 20244 bytes .../img/interactive_reports.png | Bin 23190 -> 93910 bytes doc/user/application_security/index.md | 10 ++++++++++ 3 files changed, 10 insertions(+) create mode 100644 doc/user/application_security/img/dismissed_info.png (limited to 'doc/user') diff --git a/doc/user/application_security/img/dismissed_info.png b/doc/user/application_security/img/dismissed_info.png new file mode 100644 index 00000000000..64d5cf26ed2 Binary files /dev/null and b/doc/user/application_security/img/dismissed_info.png differ diff --git a/doc/user/application_security/img/interactive_reports.png b/doc/user/application_security/img/interactive_reports.png index 9f9812dc69d..373b39104db 100644 Binary files a/doc/user/application_security/img/interactive_reports.png and b/doc/user/application_security/img/interactive_reports.png differ diff --git a/doc/user/application_security/index.md b/doc/user/application_security/index.md index 64e72fab198..679847b76d7 100644 --- a/doc/user/application_security/index.md +++ b/doc/user/application_security/index.md @@ -47,6 +47,16 @@ You can dismiss vulnerabilities by clicking the **Dismiss vulnerability** button This will dismiss the vulnerability and re-render it to reflect its dismissed state. If you wish to undo this dismissal, you can click the **Undo dismiss** button. +#### Adding a dismissal reason + +> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 12.0. + +When dismissing a vulnerability, it's often helpful to provide a reason for doing so. +If you press the comment button next to **Dismiss vulnerability** in the modal, a text box will appear, allowing you to add a comment with your dismissal. +This comment can not currently be edited or removed, but [future versions](https://gitlab.com/gitlab-org/gitlab-ee/issues/11721) will add this functionality. + +![Dismissed vulnerability comment](img/dismissed_info.png) + ### Creating an issue for a vulnerability You can create an issue for a vulnerability by selecting the **Create issue** -- cgit v1.2.3 From 155483f7765b415f318086585124982b323b23aa Mon Sep 17 00:00:00 2001 From: Russell Dickenson Date: Thu, 6 Jun 2019 14:32:57 +0000 Subject: Added troubleshooting section to "Group-level Kubernetes clusters" --- doc/user/group/clusters/index.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index e0e89051be4..3c5e820c1ca 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -52,7 +52,7 @@ Add another cluster similar to the first one and make sure to [set an environment scope](#environment-scopes-premium) that will differentiate the new cluster from the rest. -## Gitlab-managed clusters +## GitLab-managed clusters > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22011) in GitLab 11.5. > Became [optional](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26565) in GitLab 11.11. @@ -149,3 +149,15 @@ The following features are not currently available for group-level clusters: 1. Terminals (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55487)). 1. Pod logs (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55488)). 1. Deployment boards (see [related issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/55489)). + + -- cgit v1.2.3 From 61c993f0954c8d945c8133df5a08a60e45316df5 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 6 Jun 2019 17:13:12 +0200 Subject: Port missing docs to CE --- doc/user/admin_area/settings/account_and_limit_settings.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/settings/account_and_limit_settings.md b/doc/user/admin_area/settings/account_and_limit_settings.md index 1d355824760..001e4b6bf48 100644 --- a/doc/user/admin_area/settings/account_and_limit_settings.md +++ b/doc/user/admin_area/settings/account_and_limit_settings.md @@ -40,11 +40,9 @@ These settings can be found within: - **Admin Area > Settings > General**. - The path `/admin/application_settings`. -The very first push of a new project cannot be checked for size as of now, so -the first push will allow you to upload more than the limit dictates, but every -subsequent push will be denied. LFS objects, however, can be checked on first -push and **will** be rejected if the sum of their sizes exceeds the maximum -allowed repository size. +The first push of a new project, including LFS objects, will be checked for size +and **will** be rejected if the sum of their sizes exceeds the maximum allowed +repository size. For details on manually purging files, see [reducing the repository size using Git](../../project/repository/reducing_the_repo_size_using_git.md). -- cgit v1.2.3 From e4babed7f2208b0f6f558e1baa5319be5c0adce3 Mon Sep 17 00:00:00 2001 From: William Desportes Date: Thu, 6 Jun 2019 18:45:21 +0200 Subject: Fix some typos Signed-off-by: William Desportes --- doc/user/project/merge_requests/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index c6f4798e0d2..86e06c2ea55 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -511,7 +511,7 @@ seconds and the status will update automatically. Merge Request pipeline statuses can't be retrieved when the following occurs: -1. A Merge Requst is created +1. A Merge Request is created 1. The Merge Request is closed 1. Changes are made in the project 1. The Merge Request is reopened -- cgit v1.2.3 From 2275c04ab58867430a0e36110383ad7349b5938f Mon Sep 17 00:00:00 2001 From: charlieablett Date: Mon, 6 May 2019 23:45:10 +1200 Subject: Fix some typoes --- doc/user/project/integrations/jira.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/jira.md b/doc/user/project/integrations/jira.md index a90167b9767..c652149052e 100644 --- a/doc/user/project/integrations/jira.md +++ b/doc/user/project/integrations/jira.md @@ -47,11 +47,11 @@ project in Jira and then enter the correct values in GitLab. When connecting to **JIRA Server**, which supports basic authentication, a **username and password** are required. Check the link below and proceed to the next step: -- [Setting up an user in JIRA server](jira_server_configuration.md) +- [Setting up a user in JIRA server](jira_server_configuration.md) When connecting to **JIRA Cloud**, which supports authentication via API token, an **email and API token**, are required. Check the link below and proceed to the next step: -- [Setting up an user in JIRA cloud](jira_cloud_configuration.md) +- [Setting up a user in JIRA cloud](jira_cloud_configuration.md) ### Configuring GitLab -- cgit v1.2.3 From 676c8ea39a51d1a72a98811f03f9ee74e82af3ef Mon Sep 17 00:00:00 2001 From: charlieablett Date: Tue, 7 May 2019 11:53:42 +1200 Subject: Upgrade jira user permissions workflow docs Update screecaps to reflect jira version ~8.1 and update instructions to include Permission Schemes. --- .../img/jira_add_permission_scheme.png | Bin 0 -> 38913 bytes .../integrations/img/jira_add_user_to_group.png | Bin 24838 -> 266180 bytes .../integrations/img/jira_added_user_to_group.png | Bin 0 -> 82473 bytes .../integrations/img/jira_create_new_group.png | Bin 19127 -> 262453 bytes .../integrations/img/jira_create_new_user.png | Bin 12625 -> 173516 bytes .../project/integrations/img/jira_group_access.png | Bin 19147 -> 112706 bytes .../integrations/img/jira_user_management_link.png | Bin 23906 -> 206155 bytes .../integrations/jira_server_configuration.md | 38 +++++++++++++-------- 8 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 doc/user/project/integrations/img/jira_add_permission_scheme.png create mode 100644 doc/user/project/integrations/img/jira_added_user_to_group.png (limited to 'doc/user') diff --git a/doc/user/project/integrations/img/jira_add_permission_scheme.png b/doc/user/project/integrations/img/jira_add_permission_scheme.png new file mode 100644 index 00000000000..d527864ac56 Binary files /dev/null and b/doc/user/project/integrations/img/jira_add_permission_scheme.png differ diff --git a/doc/user/project/integrations/img/jira_add_user_to_group.png b/doc/user/project/integrations/img/jira_add_user_to_group.png index 27dac49260c..d8cf541a81e 100644 Binary files a/doc/user/project/integrations/img/jira_add_user_to_group.png and b/doc/user/project/integrations/img/jira_add_user_to_group.png differ diff --git a/doc/user/project/integrations/img/jira_added_user_to_group.png b/doc/user/project/integrations/img/jira_added_user_to_group.png new file mode 100644 index 00000000000..b3e29a65d6e Binary files /dev/null and b/doc/user/project/integrations/img/jira_added_user_to_group.png differ diff --git a/doc/user/project/integrations/img/jira_create_new_group.png b/doc/user/project/integrations/img/jira_create_new_group.png index 06c4e84fc61..84be3a94a45 100644 Binary files a/doc/user/project/integrations/img/jira_create_new_group.png and b/doc/user/project/integrations/img/jira_create_new_group.png differ diff --git a/doc/user/project/integrations/img/jira_create_new_user.png b/doc/user/project/integrations/img/jira_create_new_user.png index e9c03ed770d..8460dc98ef9 100644 Binary files a/doc/user/project/integrations/img/jira_create_new_user.png and b/doc/user/project/integrations/img/jira_create_new_user.png differ diff --git a/doc/user/project/integrations/img/jira_group_access.png b/doc/user/project/integrations/img/jira_group_access.png index 448cc55504d..58cf114bd55 100644 Binary files a/doc/user/project/integrations/img/jira_group_access.png and b/doc/user/project/integrations/img/jira_group_access.png differ diff --git a/doc/user/project/integrations/img/jira_user_management_link.png b/doc/user/project/integrations/img/jira_user_management_link.png index 5eb9d031c3e..43ef18da6c8 100644 Binary files a/doc/user/project/integrations/img/jira_user_management_link.png and b/doc/user/project/integrations/img/jira_user_management_link.png differ diff --git a/doc/user/project/integrations/jira_server_configuration.md b/doc/user/project/integrations/jira_server_configuration.md index 20036183187..7462bd2c783 100644 --- a/doc/user/project/integrations/jira_server_configuration.md +++ b/doc/user/project/integrations/jira_server_configuration.md @@ -12,7 +12,7 @@ It is important that the user `gitlab` has 'write' access to projects in Jira. We have split this stage in steps so it is easier to follow. -1. Log in to your Jira instance as an administrator and under **Administration** +1. Log in to your Jira instance as an administrator and under **Jira Administration** go to **User Management** to create a new user. ![Jira user management link](img/jira_user_management_link.png) @@ -27,27 +27,37 @@ We have split this stage in steps so it is easier to follow. ![Jira create new user](img/jira_create_new_user.png) -1. Create a `gitlab-developers` group which will have write access +1. Create a `gitlab-developers` group which will (eventually) have write access to projects in Jira. Go to the **Groups** tab and select **Create group**. ![Jira create new user](img/jira_create_new_group.png) - Give it an optional description and click **Create group**. + Give it a name and click **Create group**. - ![Jira create new group](img/jira_create_new_group_name.png) +1. Add the `gitlab` user to the `gitlab-developers` group by clicking **Edit members** + The `gitlab-developers` group should be selected on the left hand box. Under **Add members to selected group(s)**, + type in `gitlab`. -1. To give the newly-created group 'write' access, go to - **Application access > View configuration** and add the `gitlab-developers` - group to Jira Core. + ![Jira add user to group](img/jira_add_user_to_group.png) + + Click **Add selected users** and `gitlab` should appear in the middle box. It + is saved automatically. + + ![Jira added user to group](img/jira_added_user_to_group.png) + +1. To give the newly-created group 'write' access, you need to create a **Permission Scheme**. + To do this, click the gear > **Issues**. On the left hand menu, click + **Permission Schemes**. Click **Add Permission Scheme** and fill in a name + and (optional) description. + + ![Jira add new permission scheme](img/jira_add_permission_scheme.png) + +1. Once your permission scheme is created, you'll be taken back to the permissions scheme list. + Locate your new permissions scheme and click **Permissions**. Next to **Administer Projects**, + click **Edit**. In the resulting dialog box, select **Group** and select `gitlab-developers` + from the dropdown. ![Jira group access](img/jira_group_access.png) -1. Add the `gitlab` user to the `gitlab-developers` group by going to - **Users > GitLab user > Add group** and selecting the `gitlab-developers` - group from the dropdown menu. Notice that the group says _Access_, which is - intended as part of this process. - - ![Jira add user to group](img/jira_add_user_to_group.png) - The Jira configuration is complete. Write down the new Jira username and its password as they will be needed when [configuring GitLab in the next section](jira.md#configuring-gitlab). -- cgit v1.2.3 From 87616635005d239c16a9fe25fad3bbfc01593571 Mon Sep 17 00:00:00 2001 From: charlieablett Date: Wed, 8 May 2019 18:37:49 -0500 Subject: Reword for clarity --- doc/user/project/integrations/jira_server_configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/jira_server_configuration.md b/doc/user/project/integrations/jira_server_configuration.md index 7462bd2c783..8a8ec00fc98 100644 --- a/doc/user/project/integrations/jira_server_configuration.md +++ b/doc/user/project/integrations/jira_server_configuration.md @@ -27,8 +27,8 @@ We have split this stage in steps so it is easier to follow. ![Jira create new user](img/jira_create_new_user.png) -1. Create a `gitlab-developers` group which will (eventually) have write access - to projects in Jira. Go to the **Groups** tab and select **Create group**. +1. Create a `gitlab-developers` group (We will give write access to this group + to projects in Jira in a later step). Go to the **Groups** tab and select **Create group**. ![Jira create new user](img/jira_create_new_group.png) -- cgit v1.2.3 From dd45ea710cc2eca702abb768299a93052fed6b5f Mon Sep 17 00:00:00 2001 From: charlieablett Date: Mon, 20 May 2019 09:56:26 +1200 Subject: Change text to match screencaps --- doc/user/project/integrations/jira_server_configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/integrations/jira_server_configuration.md b/doc/user/project/integrations/jira_server_configuration.md index 8a8ec00fc98..3da76dca447 100644 --- a/doc/user/project/integrations/jira_server_configuration.md +++ b/doc/user/project/integrations/jira_server_configuration.md @@ -28,11 +28,11 @@ We have split this stage in steps so it is easier to follow. ![Jira create new user](img/jira_create_new_user.png) 1. Create a `gitlab-developers` group (We will give write access to this group - to projects in Jira in a later step). Go to the **Groups** tab and select **Create group**. + to projects in Jira in a later step). Go to the **Groups** tab on the left, and select **Add group**. ![Jira create new user](img/jira_create_new_group.png) - Give it a name and click **Create group**. + Give it a name and click **Add group**. 1. Add the `gitlab` user to the `gitlab-developers` group by clicking **Edit members** The `gitlab-developers` group should be selected on the left hand box. Under **Add members to selected group(s)**, -- cgit v1.2.3 From 64cc393fb7200e29fd2eee6b4d2cfa951976a1bc Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 6 Jun 2019 21:17:43 +0000 Subject: Apply reviewer feedback - Remove image for adding new permission scheme - Delete jira_add_permission_scheme.png as no longer included in content - add group language - Reword the add user to group instructions - Reword the add selected users instruction - Reword add permission scheme instruction - Update jira_server_configuration intro --- .../img/jira_add_permission_scheme.png | Bin 38913 -> 0 bytes .../integrations/jira_server_configuration.md | 29 +++++++++------------ 2 files changed, 12 insertions(+), 17 deletions(-) delete mode 100644 doc/user/project/integrations/img/jira_add_permission_scheme.png (limited to 'doc/user') diff --git a/doc/user/project/integrations/img/jira_add_permission_scheme.png b/doc/user/project/integrations/img/jira_add_permission_scheme.png deleted file mode 100644 index d527864ac56..00000000000 Binary files a/doc/user/project/integrations/img/jira_add_permission_scheme.png and /dev/null differ diff --git a/doc/user/project/integrations/jira_server_configuration.md b/doc/user/project/integrations/jira_server_configuration.md index 3da76dca447..13d65c4d8e4 100644 --- a/doc/user/project/integrations/jira_server_configuration.md +++ b/doc/user/project/integrations/jira_server_configuration.md @@ -1,16 +1,14 @@ # Creating a username and password for JIRA server We need to create a user in Jira which will have access to all projects that -need to integrate with GitLab. Login to your Jira instance as admin and under -*Administration*, go to *User Management* and create a new user. +need to integrate with GitLab. As an example, we'll create a user named `gitlab` and add it to the `Jira-developers` group. NOTE: **Note** -It is important that the user `gitlab` has 'write' access to projects in Jira. - -We have split this stage in steps so it is easier to follow. +It is important that the Jira user created for the integration is given 'write' +access to your Jira projects. This is covered in the process below. 1. Log in to your Jira instance as an administrator and under **Jira Administration** go to **User Management** to create a new user. @@ -27,30 +25,27 @@ We have split this stage in steps so it is easier to follow. ![Jira create new user](img/jira_create_new_user.png) -1. Create a `gitlab-developers` group (We will give write access to this group - to projects in Jira in a later step). Go to the **Groups** tab on the left, and select **Add group**. +1. Create a `gitlab-developers` group. (We will give this group write access to Jira + projects in a later step). Go to the **Groups** tab on the left, and select **Add group**. ![Jira create new user](img/jira_create_new_group.png) Give it a name and click **Add group**. -1. Add the `gitlab` user to the `gitlab-developers` group by clicking **Edit members** - The `gitlab-developers` group should be selected on the left hand box. Under **Add members to selected group(s)**, - type in `gitlab`. +1. Add the `gitlab` user to the `gitlab-developers` group by clicking **Edit members**. + The `gitlab-developers` group should be listed in the leftmost box as a selected group. + Under **Add members to selected group(s)**, enter `gitlab`. ![Jira add user to group](img/jira_add_user_to_group.png) - Click **Add selected users** and `gitlab` should appear in the middle box. It - is saved automatically. + Click **Add selected users** and `gitlab` should appear in the **Group member(s)** box. + This membership is saved automatically. ![Jira added user to group](img/jira_added_user_to_group.png) 1. To give the newly-created group 'write' access, you need to create a **Permission Scheme**. - To do this, click the gear > **Issues**. On the left hand menu, click - **Permission Schemes**. Click **Add Permission Scheme** and fill in a name - and (optional) description. - - ![Jira add new permission scheme](img/jira_add_permission_scheme.png) + To do this, click the gear icon and select **Issues**. Then click **Permission Schemes**. + Click **Add Permission Scheme** and enter a **Name** and, optionally, a **Description**. 1. Once your permission scheme is created, you'll be taken back to the permissions scheme list. Locate your new permissions scheme and click **Permissions**. Next to **Administer Projects**, -- cgit v1.2.3 From 3db6d4165d21c28d297f102a0ff6d32f184c1fa9 Mon Sep 17 00:00:00 2001 From: Tetiana Chupryna Date: Fri, 7 Jun 2019 09:50:36 +0000 Subject: Add dependency list documentation --- doc/user/application_security/dependency_scanning/index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'doc/user') diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 658d493ba39..d78cf778110 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -225,6 +225,17 @@ vulnerabilities in your groups and projects. Read more about the Once a vulnerability is found, you can interact with it. Read more on how to [interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities). +## Dependency List + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/10075) +in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0. + +An additional benefit of Dependency Scanning is the ability to get a list of your project's dependencies with their versions. + +This list can be generated only for [supported languages and package managers](#supported-languages-and-package-managers). + +To see the generated dependency list, navigate to the Dependency List page under your project's left sidebar menu **Project > Dependency List**. + ## Contributing to the vulnerability database You can search the [gemnasium-db](https://gitlab.com/gitlab-org/security-products/gemnasium-db) project -- cgit v1.2.3