From 94b0fa861a2759ceb3b8958fa3940844be70e32a Mon Sep 17 00:00:00 2001 From: Dustin Miller Date: Tue, 9 Aug 2016 22:38:30 +0000 Subject: Added "View wiki pages" to list of actions granted to various user permission levels in a project. --- doc/user/permissions.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 66542861781..fb5058b2e30 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -23,6 +23,7 @@ The following table depicts the various user permission levels in a project. | See a list of builds | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | | See a build log | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | | Download and browse build artifacts | ✓ [^1] | ✓ | ✓ | ✓ | ✓ | +| View wiki pages | ✓ | ✓ | ✓ | ✓ | ✓ | | Pull project code | | ✓ | ✓ | ✓ | ✓ | | Download project | | ✓ | ✓ | ✓ | ✓ | | Create code snippets | | ✓ | ✓ | ✓ | ✓ | -- cgit v1.2.1 From 505d9cf9b2229ede14004e5ee7d754e67b1fbf75 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 18 Sep 2016 16:39:44 +0200 Subject: Document how to download the latest build artifacts [ci skip] --- doc/user/project/builds/artifacts.md | 32 +++++++++++++++++++++ .../builds/img/build_latest_artifacts_browser.png | Bin 0 -> 26617 bytes 2 files changed, 32 insertions(+) create mode 100644 doc/user/project/builds/img/build_latest_artifacts_browser.png (limited to 'doc/user') diff --git a/doc/user/project/builds/artifacts.md b/doc/user/project/builds/artifacts.md index c93ae1c369c..88f1863dddb 100644 --- a/doc/user/project/builds/artifacts.md +++ b/doc/user/project/builds/artifacts.md @@ -101,4 +101,36 @@ inside GitLab that make that possible. ![Build artifacts browser](img/build_artifacts_browser.png) +## Downloading the latest build artifacts + +It is possible to download the latest artifacts of a build via a well known URL +so you can use it for scripting purposes. + +The structure of the URL is the following: + +``` +https://example.com///builds/artifacts//download?job= +``` + +For example, to download the latest artifacts of the job named `rspec 6 20` of +the `master` branch of the `gitlab-ce` project that belongs to the `gitlab-org` +namespace, the URL would be: + +``` +https://gitlab.com/gitlab-org/gitlab-ce/builds/artifacts/master/download?job=rspec+6+20 +``` + +The latest builds are also exposed in the UI in various places. Specifically, +look for the download button in: + +- the main project's page +- the branches page +- the tags page + +If the latest build has failed to upload the artifacts, you can see that +information in the UI. + +![Latest artifacts button](img/build_latest_artifacts_browser.png) + + [gitlab workhorse]: https://gitlab.com/gitlab-org/gitlab-workhorse "GitLab Workhorse repository" diff --git a/doc/user/project/builds/img/build_latest_artifacts_browser.png b/doc/user/project/builds/img/build_latest_artifacts_browser.png new file mode 100644 index 00000000000..d8e9071958c Binary files /dev/null and b/doc/user/project/builds/img/build_latest_artifacts_browser.png differ -- cgit v1.2.1 From 3c7feaf3b12e3c8319f8ccc0f45a87ae0e2cfe8c Mon Sep 17 00:00:00 2001 From: James Lopez Date: Wed, 7 Sep 2016 17:08:19 +0200 Subject: Fixed label color issue and added Import/Export versioning table --- doc/user/project/settings/import_export.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 08ff89ce6ae..445c0ee8333 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -3,8 +3,8 @@ >**Notes:** > > - [Introduced][ce-3050] in GitLab 8.9. -> - Importing will not be possible if the import instance version is lower -> than that of the exporter. +> - Importing will not be possible if the import instance version differs from +> that of the exporter. > - For existing installations, the project import option has to be enabled in > application settings (`/admin/application_settings`) under 'Import sources'. > You will have to be an administrator to enable and use the import functionality. @@ -17,6 +17,20 @@ Existing projects running on any GitLab instance or GitLab.com can be exported with all their related data and be moved into a new GitLab instance. +## Version history + +| GitLab version | Import/Export version | +| -------- | -------- | +| 8.12.0 to current | 0.1.4 | +| 8.10.3 | 0.1.3 | +| 8.10.0 | 0.1.2 | +| 8.9.5 | 0.1.1 | +| 8.9.0 | 0.1.0 | + + > The table reflects what GitLab version we updated the Import/Export version at. + > For instance, 8.10.3 and 8.11 will have the same Import/Export version (0.1.3) + > and the exports between them will be compatible. + ## Exported contents The following items will be exported: -- cgit v1.2.1 From 259c1e4174e3b1ade72aaf8166e31317c66a7304 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 20 Sep 2016 21:06:41 +0200 Subject: Add docs on Cycle Analytics [ci skip] --- doc/user/project/cycle_analytics.md | 112 +++++++++++++++++++++ .../project/img/cycle_analytics_landing_page.png | Bin 0 -> 58203 bytes 2 files changed, 112 insertions(+) create mode 100644 doc/user/project/cycle_analytics.md create mode 100644 doc/user/project/img/cycle_analytics_landing_page.png (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md new file mode 100644 index 00000000000..e1fe1d256fd --- /dev/null +++ b/doc/user/project/cycle_analytics.md @@ -0,0 +1,112 @@ +# Cycle Analytics + +> [Introduced][ce-5986] in GitLab 8.12. +> +> **Note:** +This the first iteration of Cycle Analytics, you can follow the following issue +to track the changes that are coming to this feature: [#20975][ce-20975]. + +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 at that point, but the total time is broken down into the +multiple stages an idea has to pass through to be shipped. + +Cycle Analytics is that it 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 +Analytics** tab. + +![Cycle Analytics landing page](img/cycle_analytics_landing_page.png) + +You can see that there are seven stages in total: + +- **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) +- **Plan** (Board) + - Median time from giving an issue a milestone or label until pushing the + first commit +- **Code** (IDE) + - Median time from the first commit until the merge request is created +- **Test** (CI) + - Total test time for all commits/merges +- **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) +- **Staging** (Continuous Deployment) + - Median time from when the merge request got merged until the deploy to + production (production is last stage/environment) +- **Production** (Total) + - Sum of all the above stages excluding the Test (CI) time + +## How the data is measured + +Cycle Analytics records cycle time so only data on the issues that have been +deployed to production are measured. In case you just started a new project and +you have not pushed anything to production, then you will not be able to +properly see the Cycle Analytics of your project. + +Specifically, if your CI is not set up and you have not defined a `production` +[environment], then you will not have any data. + +Below you can see in more detail what the various stages of Cycle Analytics mean. + +| **Stage** | **Description** | +| --------- | --------------- | +| Issue | Measures the median time between creating an issue and taking action to solve it, by either labeling it or adding it to a milestone, whatever comes first. The label will be tracked only if it already has an [Issue Board list][board] created for it. | +| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the repository. To make this change tracked, the commit needs to be pushed that contains the issue closing pattern `Closes #xxx`, where `xxx` is the number of the issue related to this commit. If the commit does not contain the issue closing pattern, it is not considered to the measure time of the stage. | +| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is include the issue closing pattern to the description of the merge request. | +| Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | +| Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | +| Staging | Measures the median time between merging the merge request until the very first deployment of the to production. It's tracked by the [environment] set to `production` in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | +| Production| The sum of all time taken to run the entire process, from issue creation to deploying the code to production. | + +--- + +Here's a little explanation of how this works behind the scenes: + +1. Issues and merge requests are grouped together in pairs, such that for each + `` pair, the merge request has `Fixes #xxx` for the + corresponding issue. All other issues and merge requests are **not** considered. + +1. Then the pairs are filtered out. Any merge request + that has **not** been deployed to production in the last XX days (specified + by the UI - default is 90 days) prohibits these pairs from being considered. + +1. For the remaining `` pairs, we check the information that + we need for the stages, like issue creation date, merge request merge time, + etc. + +To sum up, anything that doesn't follow the [GitLab flow] won't be tracked at all. +So, if a merge request doesn't close an issue or an issue is not labeled with a +label present in the Issue Board or assigned a milestone or a project has no +`production` environment, the Cycle Analytics dashboard won't present any data +at all. + +## Permissions + +The current permissions on the Cycle Analytics dashboard are: + +- Public projects - anyone can access +- Private/internal projects - any member (guest level and above) can access + +You can [read more about permissions][permissions] in general. + +## More resources + +Learn more about Cycle Analytics in the following resources: + +- [Cycle Analytics feature page](https://about.gitlab.com/solutions/cycle-analytics/) +- [Cycle Analytics feature preview](https://about.gitlab.com/2016/09/16/feature-preview-introducing-cycle-analytics/) +- [Cycle Analytics feature highlight](https://about.gitlab.com/2016-09-19-cycle-analytics-feature-highlight.html) + + +[ce-5986]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5986 +[ce-20975]: https://gitlab.com/gitlab-org/gitlab-ce/issues/20975 +[GitLab flow]: ../../workflow/gitlab_flow.md +[permissions]: ../permissions.md +[environment]: ../../ci/yaml/README.md#environment +[board]: issue_board.md#creating-a-new-list diff --git a/doc/user/project/img/cycle_analytics_landing_page.png b/doc/user/project/img/cycle_analytics_landing_page.png new file mode 100644 index 00000000000..4fa42c87395 Binary files /dev/null and b/doc/user/project/img/cycle_analytics_landing_page.png differ -- cgit v1.2.1 From a1b7beeedadf56ce3167603ebf8a976b6aa17453 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 21 Sep 2016 19:44:13 +0300 Subject: Update merge request versions documentation with new screenshots Signed-off-by: Dmitriy Zaporozhets --- .../merge_requests/img/versions-compare.png | Bin 0 -> 68722 bytes .../merge_requests/img/versions-dropdown.png | Bin 0 -> 60587 bytes doc/user/project/merge_requests/img/versions.png | Bin 35001 -> 171413 bytes doc/user/project/merge_requests/versions.md | 6 +++++- 4 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 doc/user/project/merge_requests/img/versions-compare.png create mode 100644 doc/user/project/merge_requests/img/versions-dropdown.png (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/versions-compare.png b/doc/user/project/merge_requests/img/versions-compare.png new file mode 100644 index 00000000000..890cae7768c Binary files /dev/null and b/doc/user/project/merge_requests/img/versions-compare.png differ diff --git a/doc/user/project/merge_requests/img/versions-dropdown.png b/doc/user/project/merge_requests/img/versions-dropdown.png new file mode 100644 index 00000000000..9bab9304e14 Binary files /dev/null and b/doc/user/project/merge_requests/img/versions-dropdown.png differ diff --git a/doc/user/project/merge_requests/img/versions.png b/doc/user/project/merge_requests/img/versions.png index f279ccd7ce3..6c86f2c68ac 100644 Binary files a/doc/user/project/merge_requests/img/versions.png and b/doc/user/project/merge_requests/img/versions.png differ diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md index a6aa4b47835..2805fdf635c 100644 --- a/doc/user/project/merge_requests/versions.md +++ b/doc/user/project/merge_requests/versions.md @@ -7,14 +7,18 @@ of merge request diff is created. When you visit a merge request that contains more than one pushes, you can select and compare the versions of those merge request diffs. +![Merge Request Versions](img/versions.png) + By default, the latest version of changes is shown. However, you can select an older one from version dropdown. -![Merge Request Versions](img/versions.png) +![Merge Request Versions](img/versions-dropdown.png) You can also compare the merge request version with older one to see what is changed since then. +![Merge Request Versions](img/versions-compare.png) + Please note that comments are disabled while viewing outdated merge versions or comparing to versions other than base. -- cgit v1.2.1 From 13d3bd81a68cc73c597a9a920deb94ed1e79d048 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 21 Sep 2016 13:01:48 +0200 Subject: Change location and refactor issue closing pattern documentation Split into user and administrator docs: - administration/issue_closing_pattern.md - user/project/issues/automatic_issue_closing.md [ci skip] --- doc/user/project/issues/automatic_issue_closing.md | 55 ++++++++++++++++++++++ doc/user/project/repository/web_editor.md | 2 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 doc/user/project/issues/automatic_issue_closing.md (limited to 'doc/user') diff --git a/doc/user/project/issues/automatic_issue_closing.md b/doc/user/project/issues/automatic_issue_closing.md new file mode 100644 index 00000000000..d6f3a7d5555 --- /dev/null +++ b/doc/user/project/issues/automatic_issue_closing.md @@ -0,0 +1,55 @@ +# Automatic issue closing + +>**Note:** +This is the user docs. In order to change the default issue closing pattern, +follow the steps in the [administration docs]. + +When a commit or merge request resolves one or more issues, it is possible to +automatically have these issues closed when the commit or merge request lands +in the project's default branch. + +If a commit message or merge request description contains a sentence matching +a certain regular expression, all issues referenced from the matched text will +be closed. This happens when the commit is pushed to a project's **default** +branch, or when a commit or merge request is merged into it. + +## Default closing pattern value + +When not specified, the default issue closing pattern as shown below will be +used: + +```bash +((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing))(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+) +``` + +Note that `%{issue_ref}` is a complex regular expression defined inside GitLab's +source code that can match a reference to 1) a local issue (`#123`), +2) a cross-project issue (`group/project#123`) or 3) a link to an issue +(`https://gitlab.example.com/group/project/issues/123`). + +--- + +This translates to the following keywords: + +- Close, Closes, Closed, Closing, close, closes, closed, closing +- Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing +- Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving + +--- + +For example the following commit message: + +``` +Awesome commit message + +Fix #20, Fixes #21 and Closes group/otherproject#22. +This commit is also related to #17 and fixes #18, #19 +and https://gitlab.example.com/group/otherproject/issues/23. +``` + +will close `#18`, `#19`, `#20`, and `#21` in the project this commit is pushed +to, as well as `#22` and `#23` in group/otherproject. `#17` won't be closed as +it does not match the pattern. It works with multi-line commit messages as well +as one-liners when used with `git commit -m`. + +[administration docs]: ../../../administration/issue_closing_pattern.md diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md index 7c041d019bb..993c6bfb7e9 100644 --- a/doc/user/project/repository/web_editor.md +++ b/doc/user/project/repository/web_editor.md @@ -172,4 +172,4 @@ you commit the changes you will be taken to a new merge request form. ![New file button](basicsimages/file_button.png) [ce-2808]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2808 -[issue closing pattern]: ../customization/issue_closing.md +[issue closing pattern]: ../user/project/issues/automatic_issue_closing.md -- cgit v1.2.1 From f76cb5f6934b717045446aa5ad819d20774ce230 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 10:09:54 +0300 Subject: Fix typos in cycle analytics docs [ci skip] --- doc/user/project/cycle_analytics.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index e1fe1d256fd..abef80e7914 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -6,7 +6,7 @@ This the first iteration of Cycle Analytics, you can follow the following issue to track the changes that are coming to this feature: [#20975][ce-20975]. -Cycle Analytics measures the time it takes to go from an idea to production for +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 at that point, but the total time is broken down into the multiple stages an idea has to pass through to be shipped. @@ -32,7 +32,7 @@ You can see that there are seven stages in total: - **Code** (IDE) - Median time from the first commit until the merge request is created - **Test** (CI) - - Total test time for all commits/merges + - Median total test time for all commits/merges - **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) @@ -57,11 +57,11 @@ Below you can see in more detail what the various stages of Cycle Analytics mean | **Stage** | **Description** | | --------- | --------------- | | Issue | Measures the median time between creating an issue and taking action to solve it, by either labeling it or adding it to a milestone, whatever comes first. The label will be tracked only if it already has an [Issue Board list][board] created for it. | -| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the repository. To make this change tracked, the commit needs to be pushed that contains the issue closing pattern `Closes #xxx`, where `xxx` is the number of the issue related to this commit. If the commit does not contain the issue closing pattern, it is not considered to the measure time of the stage. | -| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is include the issue closing pattern to the description of the merge request. | +| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the repository. To make this change tracked, the pushed commit needs to contain the [issue closing pattern], for example `Closes #xxx`, where `xxx` is the number of the issue related to this commit. If the commit does not contain the issue closing pattern, it is not considered to the measurement time of the stage. | +| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is include the [issue closing pattern] to the description of the merge request. | | Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | | Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | -| Staging | Measures the median time between merging the merge request until the very first deployment of the to production. It's tracked by the [environment] set to `production` in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | +| Staging | Measures the median time between merging the merge request until the very first deployment to production. It's tracked by the [environment] set to `production` in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | | Production| The sum of all time taken to run the entire process, from issue creation to deploying the code to production. | --- @@ -101,7 +101,7 @@ Learn more about Cycle Analytics in the following resources: - [Cycle Analytics feature page](https://about.gitlab.com/solutions/cycle-analytics/) - [Cycle Analytics feature preview](https://about.gitlab.com/2016/09/16/feature-preview-introducing-cycle-analytics/) -- [Cycle Analytics feature highlight](https://about.gitlab.com/2016-09-19-cycle-analytics-feature-highlight.html) +- [Cycle Analytics feature highlight](https://about.gitlab.com/2016/09/21/cycle-analytics-feature-highlight/) [ce-5986]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5986 @@ -110,3 +110,5 @@ Learn more about Cycle Analytics in the following resources: [permissions]: ../permissions.md [environment]: ../../ci/yaml/README.md#environment [board]: issue_board.md#creating-a-new-list +[idea to production]: https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/#from-idea-to-production-with-gitlab +[issue closing pattern]: issues/automatic_issue_closing.md -- cgit v1.2.1 From 88d83e2e6f0089082f5db8841561f09a38d294a1 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 21 Sep 2016 16:28:48 +0200 Subject: Describe how the recent changes of CI permissions affect builds --- doc/user/permissions.md | 125 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index f1b75298180..7fc642f8c77 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -138,3 +138,128 @@ instance and project. In addition, all admins can use the admin interface under | Add shared runners | | | | ✓ | | See events in the system | | | | ✓ | | Admin interface | | | | ✓ | + +## Builds permissions + +> Changed in GitLab 8.12. + +GitLab 8.12 has completely redesigned build permission system. +You can find all discussion and all our concerns when choosing the current approach: +https://gitlab.com/gitlab-org/gitlab-ce/issues/18994 + +We decided that builds permission should be tightly integrated with a permission +of a user who is triggering a build. + +The reason to do it like that: + +- We already have permission system in place: group and project membership of users, +- We already fully know who is triggering a build (using git push, using web, executing triggers), +- We already know what user is allowed to do, +- We use the user permission for builds that are triggered by him, +- This opens us a lot of possibilities to further enforce user permissions, like: + allowing only specific users to access runners, secure variables and environments, +- It is simple and convenient, that your build can access to everything that you have access to, +- We choose to short living unique tokens, granting access for time of the build, + +Currently, any build that is triggered by the user, it's also signed with his permissions. +When user do `git push` or changes files through web (**the pusher**), +we will usually create a new Pipeline. +The Pipeline will be signed as created be the pusher. +Any build created in this pipeline will have the permissions of **the pusher**. + +This allows us to make it really easy to evaluate access for all dependent projects, +container images that the pusher would have access too. +The permission is granted only for time that build is running. +The access is revoked after the build is finished. + +It is important to note that we have a few types of Users: + +- Administrators: CI builds created by Administrators would not have access to all GitLab projects, + but only to projects and container images of projects that the user is a member of or that are either public, or internal, + +- External users: CI builds created by external users will have access only to projects to which user has at least reporter access, + this rules out accessing all internal projects by default, + +This allows us to make the CI and permission system more trustable. +Let's consider the following scenario: + +1. You are an employee of the company. Your company have number of internal tool repositories. + You have multiple CI builds that make use of this repositories. + +2. You invite a new user, a visitor, the external user. CI builds created by that user do not have access to internal repositories, + because 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. + +### Build privileges + +This table shows granted privileges for builds triggered by specific types of users: + +| Action | Guest, Reporter | Developer | Master | Admin | +|---------------------------------------------|-----------------|-------------|----------|--------| +| Run CI build | | ✓ | ✓ | ✓ | +| Clone source and LFS from current project | | ✓ | ✓ | ✓ | +| Clone source and LFS from other projects | | ✓ [^1] | ✓ [^1] | ✓ [^1] | +| Push source and LFS to current project | | | | | +| Push source and LFS to other projects | | | | | +| Pull container images from current project | | ✓ | ✓ | ✓ | +| Pull container images from other projects | | ✓ [^1] | ✓ [^1] | ✓ [^1] | +| Push container images to current project | | ✓ | ✓ | ✓ | +| Push container images to other projects | | | | | + +### Build token + +The above gives a question about trustability of build token. +Unique build token is generated for each project. +This build token allows to access all projects that would be normally accessible +to the user creating that build. + +We try to make sure that this token doesn't leak. +We do that by: +1. Securing all API endpoints to not expose the build token, +1. Masking the build token from build logs, +1. Allowing to use the build token only when build is running, + +However, this brings a question about runners security. +To make sure that this token doesn't leak you also make sure that you configure +your runners in most secure possible way, by avoiding using this configurations: +1. Any usage of `privileged` mode if the machines are re-used is risky, +1. Using `shell` executor, + +By using in-secure GitLab Runner configuration you allow the rogue developers +to steal the tokens of other builds. However, this problem existed before, +but + +### Before 8.12 + +In versions before 8.12 all CI builds would use runners token to checkout project sources. + +The project runners token was a token that you would find in +[CI/CD Pipelines](https://gitlab.com/my-group/my-project/pipelines/settings). + +The project runners token was used for registering new specific runners assigned to project +and to checkout project sources. + +The project runners token could also be used to use GitLab Container Registry for that project, +allowing to pull and push Docker images from within CI build. + +This token was limited to access only that project. + +GitLab would create an special checkout URL: +``` +https://gitlab-ci-token:/gitlab.com/gitlab-org/gitlab-ce.git +``` + +User could also use in his CI builds all docker related commands +to interact with GitLab Container Registry: +``` +docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com +``` + +Using single token had multiple security implications: + +- Token would be readable to anyone who has developer access to project who could run CI builds, + allowing to register any specific runner for a project, +- Token would allow to access only project sources, + forbidding to accessing any other projects, +- Token was not expiring, and multi-purpose: used for checking out sources, + for registering specific runners and for accessing project's container registry with read-write permissions -- cgit v1.2.1 From 77271388be56d94abfd44b31a15821107f6aab5b Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 21 Sep 2016 16:53:27 +0200 Subject: Update permissions table --- doc/user/permissions.md | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index 7fc642f8c77..eb5bb43bb55 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -198,14 +198,20 @@ This table shows granted privileges for builds triggered by specific types of us |---------------------------------------------|-----------------|-------------|----------|--------| | Run CI build | | ✓ | ✓ | ✓ | | Clone source and LFS from current project | | ✓ | ✓ | ✓ | -| Clone source and LFS from other projects | | ✓ [^1] | ✓ [^1] | ✓ [^1] | -| Push source and LFS to current project | | | | | -| Push source and LFS to other projects | | | | | +| Clone source and LFS from public projects | | ✓ | ✓ | ✓ | +| Clone source and LFS from internal projects | | ✓ [^3] | ✓ [^3] | ✓ | +| Clone source and LFS from private projects | | ✓ [^4] | ✓ [^4] | ✓ [^4] | +| Push source and LFS | | | | | | Pull container images from current project | | ✓ | ✓ | ✓ | -| Pull container images from other projects | | ✓ [^1] | ✓ [^1] | ✓ [^1] | +| Pull container images from public projects | | ✓ | ✓ | ✓ | +| Pull container images from internal projects| | ✓ [^3] | ✓ [^3] | ✓ | +| Pull container images from private projects | | ✓ [^4] | ✓ [^4] | ✓ [^4] | | Push container images to current project | | ✓ | ✓ | ✓ | | Push container images to other projects | | | | | +[^3]: Only if user is not external one. +[^4]: Only if user is a member of the project. + ### Build token The above gives a question about trustability of build token. @@ -226,8 +232,19 @@ your runners in most secure possible way, by avoiding using this configurations: 1. Using `shell` executor, By using in-secure GitLab Runner configuration you allow the rogue developers -to steal the tokens of other builds. However, this problem existed before, -but +to steal the tokens of other builds. + +### Debugging problems + +It can happen that some of the users will complain that CI builds do fail for them. + +It is most likely that your project access other projects sources, +and the user doesn't have the permissions. +In the build log look for information about 403 or forbidden access. + +You then as Administrator can verify that the user is a member of the group or project, +and you when impersonated as the user can retry a failing build +on behalf of the user to verify that everything is correct. ### Before 8.12 -- cgit v1.2.1 From 1e911e059dbb0ae178ff365a62420478099781f8 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 14:45:36 +0300 Subject: Refactor new CI build permissions model docs --- doc/user/permissions.md | 111 ------------------------------------------------ 1 file changed, 111 deletions(-) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index eb5bb43bb55..d1156127a00 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -147,49 +147,6 @@ GitLab 8.12 has completely redesigned build permission system. You can find all discussion and all our concerns when choosing the current approach: https://gitlab.com/gitlab-org/gitlab-ce/issues/18994 -We decided that builds permission should be tightly integrated with a permission -of a user who is triggering a build. - -The reason to do it like that: - -- We already have permission system in place: group and project membership of users, -- We already fully know who is triggering a build (using git push, using web, executing triggers), -- We already know what user is allowed to do, -- We use the user permission for builds that are triggered by him, -- This opens us a lot of possibilities to further enforce user permissions, like: - allowing only specific users to access runners, secure variables and environments, -- It is simple and convenient, that your build can access to everything that you have access to, -- We choose to short living unique tokens, granting access for time of the build, - -Currently, any build that is triggered by the user, it's also signed with his permissions. -When user do `git push` or changes files through web (**the pusher**), -we will usually create a new Pipeline. -The Pipeline will be signed as created be the pusher. -Any build created in this pipeline will have the permissions of **the pusher**. - -This allows us to make it really easy to evaluate access for all dependent projects, -container images that the pusher would have access too. -The permission is granted only for time that build is running. -The access is revoked after the build is finished. - -It is important to note that we have a few types of Users: - -- Administrators: CI builds created by Administrators would not have access to all GitLab projects, - but only to projects and container images of projects that the user is a member of or that are either public, or internal, - -- External users: CI builds created by external users will have access only to projects to which user has at least reporter access, - this rules out accessing all internal projects by default, - -This allows us to make the CI and permission system more trustable. -Let's consider the following scenario: - -1. You are an employee of the company. Your company have number of internal tool repositories. - You have multiple CI builds that make use of this repositories. - -2. You invite a new user, a visitor, the external user. CI builds created by that user do not have access to internal repositories, - because 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. - ### Build privileges This table shows granted privileges for builds triggered by specific types of users: @@ -212,71 +169,3 @@ This table shows granted privileges for builds triggered by specific types of us [^3]: Only if user is not external one. [^4]: Only if user is a member of the project. -### Build token - -The above gives a question about trustability of build token. -Unique build token is generated for each project. -This build token allows to access all projects that would be normally accessible -to the user creating that build. - -We try to make sure that this token doesn't leak. -We do that by: -1. Securing all API endpoints to not expose the build token, -1. Masking the build token from build logs, -1. Allowing to use the build token only when build is running, - -However, this brings a question about runners security. -To make sure that this token doesn't leak you also make sure that you configure -your runners in most secure possible way, by avoiding using this configurations: -1. Any usage of `privileged` mode if the machines are re-used is risky, -1. Using `shell` executor, - -By using in-secure GitLab Runner configuration you allow the rogue developers -to steal the tokens of other builds. - -### Debugging problems - -It can happen that some of the users will complain that CI builds do fail for them. - -It is most likely that your project access other projects sources, -and the user doesn't have the permissions. -In the build log look for information about 403 or forbidden access. - -You then as Administrator can verify that the user is a member of the group or project, -and you when impersonated as the user can retry a failing build -on behalf of the user to verify that everything is correct. - -### Before 8.12 - -In versions before 8.12 all CI builds would use runners token to checkout project sources. - -The project runners token was a token that you would find in -[CI/CD Pipelines](https://gitlab.com/my-group/my-project/pipelines/settings). - -The project runners token was used for registering new specific runners assigned to project -and to checkout project sources. - -The project runners token could also be used to use GitLab Container Registry for that project, -allowing to pull and push Docker images from within CI build. - -This token was limited to access only that project. - -GitLab would create an special checkout URL: -``` -https://gitlab-ci-token:/gitlab.com/gitlab-org/gitlab-ce.git -``` - -User could also use in his CI builds all docker related commands -to interact with GitLab Container Registry: -``` -docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com -``` - -Using single token had multiple security implications: - -- Token would be readable to anyone who has developer access to project who could run CI builds, - allowing to register any specific runner for a project, -- Token would allow to access only project sources, - forbidding to accessing any other projects, -- Token was not expiring, and multi-purpose: used for checking out sources, - for registering specific runners and for accessing project's container registry with read-write permissions -- cgit v1.2.1 From 039415c8c496e043f27ef271aca190d1c3666ec5 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 15:04:57 +0300 Subject: Move document on CI build permissions to new location --- doc/user/permissions.md | 13 +- doc/user/project/new_ci_build_permissions_model.md | 281 +++++++++++++++++++++ 2 files changed, 287 insertions(+), 7 deletions(-) create mode 100644 doc/user/project/new_ci_build_permissions_model.md (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index d1156127a00..76e7a100545 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -143,13 +143,11 @@ instance and project. In addition, all admins can use the admin interface under > Changed in GitLab 8.12. -GitLab 8.12 has completely redesigned build permission system. -You can find all discussion and all our concerns when choosing the current approach: -https://gitlab.com/gitlab-org/gitlab-ce/issues/18994 +GitLab 8.12 has a completely redesigned build permission system. +Read all about the [new model and its implications][new-mod]. -### Build privileges - -This table shows granted privileges for builds triggered by specific types of users: +This table shows granted privileges for builds triggered by specific types of +users: | Action | Guest, Reporter | Developer | Master | Admin | |---------------------------------------------|-----------------|-------------|----------|--------| @@ -168,4 +166,5 @@ This table shows granted privileges for builds triggered by specific types of us [^3]: Only if user is not external one. [^4]: 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 diff --git a/doc/user/project/new_ci_build_permissions_model.md b/doc/user/project/new_ci_build_permissions_model.md new file mode 100644 index 00000000000..29677fee421 --- /dev/null +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -0,0 +1,281 @@ +# New CI build permissions model + +> Introduced in GitLab 8.12. + +GitLab 8.12 has a completely redesigned [build permissions] system. You can find +all discussion and all our concerns when choosing the current approach in issue +[#18994](https://gitlab.com/gitlab-org/gitlab-ce/issues/18994). + +--- + +Builds permissions should be tightly integrated with the permissions of a user +who is triggering a build. + +The reasons to do it like that are: + +- We already have a permissions system in place: group and project membership + of users. +- We already fully know who is triggering a build (using `git push`, using the + web UI, executing triggers). +- We already know what user is allowed to do. +- We use the user permissions for builds that are triggered by the user. +- It opens a lot of possibilities to further enforce user permissions, like + allowing only specific users to access runners or use secure variables and + environments. +- It is simple and convenient that your build can access everything that you + as a user have access to. +- Short living unique tokens are now used, granting access for time of the build + and maximizing security. + +With the new behavior, any build that is triggered by the user, is also marked +with their permissions. When a user does a `git push` or changes files through +the web UI, a new pipeline will be usually created. This pipeline will be marked +as created be the pusher (local push or via the UI) and any build created in this +pipeline will have the permissions of the pusher. + +This allows us to make it really easy to evaluate the access for all projects +that have Git submodules or are using container images that the pusher would +have access too. **The permission is granted only for time that build is running. +The access is revoked after the build is finished.** + +## Types of users + +It is important to note that we have a few types of users: + +- **Administrators**: CI builds 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 + 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 build. + +- **External users**: CI builds created by external users will have access only + to projects to which user has at least reporter access. This 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: + +1. You are an employee of a company. Your company has a number of internal tools + hosted in private repositories and you have multiple CI builds that make use + of these repositories. + +2. You invite a new user, a visitor, the external user. CI builds 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. + +## Build token + +A unique build token is generated for each project and it allows the user to +access all projects that would be normally accessible to the user creating that +build. + +We try to make sure that this token doesn't leak by: + +1. Securing all API endpoints to not expose the build token. +1. Masking the build token from build logs. +1. Allowing to use the build token **only** when build is running. + +However, this brings a question about the Runners security. To make sure that +this token doesn't leak, you should also make sure that you configure +your Runners in the most possible secure way, by avoiding the following: + +1. Any usage of Docker's `privileged` mode is risky if the machines are re-used. +1. Using the `shell` executor since builds run on the same machine. + +By using an insecure GitLab Runner configuration, you allow the rogue developers +to steal the tokens of other builds. + +## Debugging problems + +With the new permission model in place, there may be times that your build will +fail. This is most likely because your project tries to access other project's +sources, and you don't have the appropriate permissions. In the build log look +for information about 403 or forbidden access messages + +As an Administrator, you can verify that the user is a member of the group or +project they're trying to have access to, and you can impersonate the user to +retry the failing build in order to verify that everything is correct. + +## Before GitLab 8.12 + +In versions before GitLab 8.12, all CI builds would use the CI Runner's token +to checkout project sources. + +The project's Runner's token was a token that you could find under the +project's **Settings > CI/CD Pipelines** and was limited to access only that +project. +It could be used for registering new specific Runners assigned to the project +and to checkout project sources. +It could also be used with the GitLab Container Registry for that project, +allowing pulling and pushing Docker images from within the CI build. + +--- + +GitLab would create a special checkout URL like: + +``` +https://gitlab-ci-token:/gitlab.com/gitlab-org/gitlab-ce.git +``` + +And then the users could also use it in their CI builds all Docker related +commands to interact with GitLab Container Registry. For example: + +``` +docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com +``` + +Using single token had multiple security implications: + +- The token would be readable to anyone who had developer access to a project + that could run CI builds, allowing the developer to register any specific + Runner for that project. +- The token would allow to access only the project's sources, forbidding from + accessing any other projects. +- The token was not expiring and was multi-purpose: used for checking out sources, + for registering specific runners and for accessing a project's container + registry with read-write permissions. + +All the above led to a new permission model for builds that was introduced +with GitLab 8.12. + +## Making use of the new CI build permissions model + +With the new build permission model, there is now an easy way to access all +dependent source code in a project. That way, we can: + +1. Access a project's Git submodules +1. Access private container images +1. Access project's and submodule LFS objects + +Let's see how that works with Git submodules and private Docker images hosted on +the container registry. + +## Git submodules + +> +It often happens that while working on one project, you need to use another +project from within it. Perhaps it’s a library that a third party developed or +you’re developing a project separately and are using it in multiple parent +projects. +A common issue arises in these scenarios: you want to be able to treat the two +projects as separate yet still be able to use one from within the other. +> +_Excerpt from the [Git website][git-scm] about submodules._ + +If dealing with submodules, your project will probably have a file named +`.gitmodules`. And this is how it usually looks like: + +``` +[submodule "tools"] + path = tools + url = git@gitlab.com/group/tools.git +``` + +> **Note:** +If you are not using GitLab 8.12 or higher, you would need to work your way +around this issue in order to access the sources of `gitlab.com/group/tools` +(e.g., use [SSH keys](../ssh_keys/README.md)). +> +With GitLab 8.12 onward, your permissions are used to evaluate what a CI build +can access. More information about how this system works can be found in the +[Build permissions model](../../user/permissions.md#builds-permissions). + +To make use of the new changes you have to update your `.gitmodules` file to +use a relative URL. + +Let's consider the following example: + +1. Your project is located at `https://gitlab.com/secret-group/my-project`. +1. To checkout your sources you usually use an SSH address like + `git@gitlab.com:secret-group/my-project.git`. +1. Your project depends on `https://gitlab.com/group/tools`. +1. You have the `.gitmodules` file with above content. + +Since Git allows the usage of relative URLs for your `.gitmodules` configuration, +this easily allows you to use HTTP for cloning all your CI builds and SSH +for all your local checkouts. + +For example, if you change the `url` of your `tools` dependency, from +`git@gitlab.com/group/tools.git` to `../../group/tools.git`, this will instruct +Git to automatically deduce the URL that should be used when cloning sources. +Whether you use HTTP or SSH, Git will use that same channel and it will allow +to make all your CI builds use HTTPS (because GitLab CI uses HTTPS for cloning +your sources), and all your local clones will continue using SSH. + +Given the above explanation, your `.gitmodules` file should eventually look +like this: + +``` +[submodule "tools"] + path = tools + url = ../../group/tools.git +``` + +However, you have to explicitly tell GitLab CI to clone your submodules as this +is not done automatically. You can achieve that by adding a `before_script` +section to your `.gitlab-ci.yml`: + +``` +before_script: + - git submodule update --init --recursive + +test: + script: + - run-my-tests +``` + +This will make GitLab CI initialize (fetch) and update (checkout) all your +submodules recursively. + +In case your environment or your Docker image doesn't have Git installed, +you have to either ask your Administrator or install the missing dependency +yourself: + +``` +# Debian / Ubuntu +before_script: + - apt-get update -y + - apt-get install -y git-core + - git submodule update --init --recursive + +# CentOS / RedHat +before_script: + - yum install git + - git submodule update --init --recursive + +# Alpine +before_script: + - apk add -U git + - git submodule update --init --recursive +``` + +### Container Registry + +With the update permission model we also extended the support for accessing +Container Registries for private projects. + +> **Note:** +As GitLab Runner 1.6 doesn't yet incorporate the introduced changes for +permissions, this makes the `image:` directive to not work with private projects +automatically. The manual configuration by an Administrator is required to use +private images. We plan to remove that limitation in one of the upcoming releases. + +Your builds can access all container images that you would normally have access +to. The only implication is that you can push to the Container Registry of the +project for which the build is triggered. + +This is how an example usage can look like: + +``` +test: + script: + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY + - docker pull $CI_REGISTRY/group/other-project:latest + - docker run $CI_REGISTRY/group/other-project:latest +``` + +[git-scm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules +[build permissions]: ../permissions.md#builds-permissions -- cgit v1.2.1 From 5e40cb2a9142b885f04928b3e11395094852cc62 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 15:15:43 +0300 Subject: Make 'build permissions' consistent [ci skip] --- 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 76e7a100545..12d5b8f8744 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -139,11 +139,11 @@ instance and project. In addition, all admins can use the admin interface under | See events in the system | | | | ✓ | | Admin interface | | | | ✓ | -## Builds permissions +### Build permissions > Changed in GitLab 8.12. -GitLab 8.12 has a completely redesigned build permission system. +GitLab 8.12 has a completely redesigned build permissions system. Read all about the [new model and its implications][new-mod]. This table shows granted privileges for builds triggered by specific types of -- cgit v1.2.1 From c146c3e5d21dab5c010cc3062c8b10fb12e31f05 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 22 Sep 2016 14:45:35 +0200 Subject: Added a note about build triggers [ci skip] --- doc/user/project/new_ci_build_permissions_model.md | 8 ++++++++ 1 file changed, 8 insertions(+) (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 29677fee421..05aaa38d31e 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -277,5 +277,13 @@ test: - docker run $CI_REGISTRY/group/other-project:latest ``` +### Build triggers + +> **Note:** +Currently Build triggers do not support the new permission model. +They continue to use the old authentication mechanism where the CI build +can access only own sources. We plan to remove that limitation in one of the upcoming releases. + + [git-scm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules [build permissions]: ../permissions.md#builds-permissions -- cgit v1.2.1 From 76c8233b30d4d912bd7eb2599d71dc3249e8e2b9 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 16:38:26 +0300 Subject: s/project/build [ci skip] --- doc/user/project/new_ci_build_permissions_model.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (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 05aaa38d31e..099f98d8581 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -68,7 +68,7 @@ Let's consider the following scenario: ## Build token -A unique build token is generated for each project and it allows the user to +A unique build token is generated for each build and it allows the user to access all projects that would be normally accessible to the user creating that build. -- cgit v1.2.1 From 04d7814897059b17bab8e6faf21b5ce4bd154cff Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 16:48:56 +0300 Subject: Small fixes in CI build permissions docs - Add link to external user - Move build triggers up --- doc/user/project/new_ci_build_permissions_model.md | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 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 099f98d8581..fa49e99faae 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -49,9 +49,9 @@ 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 build. -- **External users**: CI builds created by external users will have access only - to projects to which user has at least reporter access. This rules out - accessing all internal projects by default, +- **External users**: CI builds created by [external users][ext] will have + access only to projects to which user has at least reporter access. This + 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: @@ -60,11 +60,10 @@ Let's consider the following scenario: hosted in private repositories and you have multiple CI builds that make use of these repositories. -2. You invite a new user, a visitor, the external user. CI builds 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. +2. You invite a new [external user][ext]. CI builds 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. ## Build token @@ -99,6 +98,13 @@ As an Administrator, you can verify that the user is a member of the group or project they're trying to have access to, and you can impersonate the user to retry the failing build in order to verify that everything is correct. +## Build triggers + +[Build triggers][triggers] do not support the new permission model. +They continue to use the old authentication mechanism where the CI build +can access only its own sources. We plan to remove that limitation in one of +the upcoming releases. + ## Before GitLab 8.12 In versions before GitLab 8.12, all CI builds would use the CI Runner's token @@ -277,13 +283,7 @@ test: - docker run $CI_REGISTRY/group/other-project:latest ``` -### Build triggers - -> **Note:** -Currently Build triggers do not support the new permission model. -They continue to use the old authentication mechanism where the CI build -can access only own sources. We plan to remove that limitation in one of the upcoming releases. - - [git-scm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules [build permissions]: ../permissions.md#builds-permissions +[ext]: ../permissions.md#external-users +[triggers]: ../../ci/triggers/README.md -- cgit v1.2.1 From cf31bcf733385877f7ad4f3ee93e19a5657d6da9 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 22 Sep 2016 16:56:16 +0300 Subject: Copyedit the CI build permissions doc [ci skip] --- doc/user/project/new_ci_build_permissions_model.md | 6 +++--- 1 file changed, 3 insertions(+), 3 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 fa49e99faae..e73f60023b5 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -163,7 +163,7 @@ the container registry. > It often happens that while working on one project, you need to use another -project from within it. Perhaps it’s a library that a third party developed or +project from within it; perhaps it’s a library that a third party developed or you’re developing a project separately and are using it in multiple parent projects. A common issue arises in these scenarios: you want to be able to treat the two @@ -181,7 +181,7 @@ If dealing with submodules, your project will probably have a file named ``` > **Note:** -If you are not using GitLab 8.12 or higher, you would need to work your way +If you are **not** using GitLab 8.12 or higher, you would need to work your way around this issue in order to access the sources of `gitlab.com/group/tools` (e.g., use [SSH keys](../ssh_keys/README.md)). > @@ -189,7 +189,7 @@ With GitLab 8.12 onward, your permissions are used to evaluate what a CI build can access. More information about how this system works can be found in the [Build permissions model](../../user/permissions.md#builds-permissions). -To make use of the new changes you have to update your `.gitmodules` file to +To make use of the new changes, you have to update your `.gitmodules` file to use a relative URL. Let's consider the following example: -- cgit v1.2.1 From ce77bc0bf0958578fd8f3aa7ea606154ae5346ab Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sun, 25 Sep 2016 11:18:52 +0200 Subject: Move container_registry user docs to new location [ci skip] --- doc/user/project/container_registry.md | 253 +++++++++++++++++++++ doc/user/project/img/container_registry_enable.png | Bin 0 -> 5526 bytes doc/user/project/img/container_registry_panel.png | Bin 0 -> 96315 bytes doc/user/project/img/container_registry_tab.png | Bin 0 -> 7284 bytes doc/user/project/img/mitmproxy-docker.png | Bin 0 -> 407004 bytes 5 files changed, 253 insertions(+) create mode 100644 doc/user/project/container_registry.md create mode 100644 doc/user/project/img/container_registry_enable.png create mode 100644 doc/user/project/img/container_registry_panel.png create mode 100644 doc/user/project/img/container_registry_tab.png create mode 100644 doc/user/project/img/mitmproxy-docker.png (limited to 'doc/user') diff --git a/doc/user/project/container_registry.md b/doc/user/project/container_registry.md new file mode 100644 index 00000000000..b205fea2c40 --- /dev/null +++ b/doc/user/project/container_registry.md @@ -0,0 +1,253 @@ +# GitLab Container Registry + +> [Introduced][ce-4040] in GitLab 8.8. + +--- + +> **Note** +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 +Registry across your GitLab instance, visit the +[administrator documentation](../../administration/container_registry.md). + +With the Docker Container Registry integrated into GitLab, every project can +have its own space to store its Docker images. + +You can read more about Docker Registry at https://docs.docker.com/registry/introduction/. + +--- + +## Enable the Container Registry for your project + +1. First, ask your system administrator to enable GitLab Container Registry + following the [administration documentation](../../administration/container_registry.md). + If you are using GitLab.com, this is enabled by default so you can start using + the Registry immediately. + +1. Go to your project's settings and enable the **Container Registry** feature + on your project. For new projects this might be enabled by default. For + existing projects (prior GitLab 8.8), you will have to explicitly enable it. + + ![Enable Container Registry](img/container_registry_enable.png) + +1. Hit **Save changes** for the changes to take effect. You should now be able + to see the **Registry** link in the project menu. + + ![Container Registry tab](img/container_registry_tab.png) + +## Build and push images + +If you visit the **Registry** link under your project's menu, you can see the +explicit instructions to login to the Container Registry using your GitLab +credentials. + +For example if the Registry's URL is `registry.example.com`, the you should be +able to login with: + +``` +docker login registry.example.com +``` + +Building and publishing images should be a straightforward process. Just make +sure that you are using the Registry URL with the namespace and project name +that is hosted on GitLab: + +``` +docker build -t registry.example.com/group/project . +docker push registry.example.com/group/project +``` + +Your image will be named after the following scheme: + +``` +// +``` + +As such, the name of the image is unique, but you can differentiate the images +using tags. + +## Use images from GitLab Container Registry + +To download and run a container from images hosted in GitLab Container Registry, +use `docker run`: + +``` +docker run [options] registry.example.com/group/project [arguments] +``` + +For more information on running Docker containers, visit the +[Docker documentation][docker-docs]. + +## Control Container Registry from within GitLab + +GitLab offers a simple Container Registry management panel. Go to your project +and click **Registry** in the project menu. + +This view will show you all tags in your project and will easily allow you to +delete them. + +![Container Registry panel](img/container_registry_panel.png) + +## Build and push images using GitLab CI + +> **Note:** +This feature requires GitLab 8.8 and GitLab Runner 1.2. + +Make sure that your GitLab Runner is configured to allow building Docker images by +following the [Using Docker Build](../ci/docker/using_docker_build.md) +and [Using the GitLab Container Registry documentation](../ci/docker/using_docker_build.md#using-the-gitlab-container-registry). + +## Limitations + +In order to use a container image from your private project as an `image:` in +your `.gitlab-ci.yml`, you have to follow the +[Using a private Docker Registry][private-docker] +documentation. This workflow will be simplified in the future. + +## Troubleshooting the GitLab Container Registry + +### Basic Troubleshooting + +1. Check to make sure that the system clock on your Docker client and GitLab server have + been synchronized (e.g. via NTP). + +2. If you are using an S3-backed Registry, double check that the IAM + permissions and the S3 credentials (including region) are correct. See [the + sample IAM policy](https://docs.docker.com/registry/storage-drivers/s3/) + for more details. + +3. Check the Registry logs (e.g. `/var/log/gitlab/registry/current`) and the GitLab production logs + for errors (e.g. `/var/log/gitlab/gitlab-rails/production.log`). You may be able to find clues + there. + +### Advanced Troubleshooting + +>**NOTE:** The following section is only recommended for experts. + +Sometimes it's not obvious what is wrong, and you may need to dive deeper into +the communication between the Docker client and the Registry to find out +what's wrong. We will use a concrete example in the past to illustrate how to +diagnose a problem with the S3 setup. + +#### Unexpected 403 error during push + +A user attempted to enable an S3-backed Registry. The `docker login` step went +fine. However, when pushing an image, the output showed: + +``` +The push refers to a repository [s3-testing.myregistry.com:4567/root/docker-test] +dc5e59c14160: Pushing [==================================================>] 14.85 kB +03c20c1a019a: Pushing [==================================================>] 2.048 kB +a08f14ef632e: Pushing [==================================================>] 2.048 kB +228950524c88: Pushing 2.048 kB +6a8ecde4cc03: Pushing [==> ] 9.901 MB/205.7 MB +5f70bf18a086: Pushing 1.024 kB +737f40e80b7f: Waiting +82b57dbc5385: Waiting +19429b698a22: Waiting +9436069b92a3: Waiting +error parsing HTTP 403 response body: unexpected end of JSON input: "" +``` + +This error is ambiguous, as it's not clear whether the 403 is coming from the +GitLab Rails application, the Docker Registry, or something else. In this +case, since we know that since the login succeeded, we probably need to look +at the communication between the client and the Registry. + +The REST API between the Docker client and Registry is [described +here](https://docs.docker.com/registry/spec/api/). Normally, one would just +use Wireshark or tcpdump to capture the traffic and see where things went +wrong. However, since all communication between Docker clients and servers +are done over HTTPS, it's a bit difficult to decrypt the traffic quickly even +if you know the private key. What can we do instead? + +One way would be to disable HTTPS by setting up an [insecure +Registry](https://docs.docker.com/registry/insecure/). This could introduce a +security hole and is only recommended for local testing. If you have a +production system and can't or don't want to do this, there is another way: +use mitmproxy, which stands for Man-in-the-Middle Proxy. + +#### mitmproxy + +[mitmproxy](https://mitmproxy.org/) allows you to place a proxy between your +client and server to inspect all traffic. One wrinkle is that your system +needs to trust the mitmproxy SSL certificates for this to work. + +The following installation instructions assume you are running Ubuntu: + +1. Install mitmproxy (see http://docs.mitmproxy.org/en/stable/install.html) +1. Run `mitmproxy --port 9000` to generate its certificates. + Enter CTRL-C to quit. +1. Install the certificate from `~/.mitmproxy` to your system: + + ```sh + sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy-ca-cert.crt + sudo update-ca-certificates + ``` + +If successful, the output should indicate that a certificate was added: + +```sh +Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done. +Running hooks in /etc/ca-certificates/update.d....done. +``` + +To verify that the certificates are properly installed, run: + +```sh +mitmproxy --port 9000 +``` + +This will run mitmproxy on port `9000`. In another window, run: + +```sh +curl --proxy http://localhost:9000 https://httpbin.org/status/200 +``` + +If everything is setup correctly, you will see information on the mitmproxy window and +no errors from the curl commands. + +#### Running the Docker daemon with a proxy + +For Docker to connect through a proxy, you must start the Docker daemon with the +proper environment variables. The easiest way is to shutdown Docker (e.g. `sudo initctl stop docker`) +and then run Docker by hand. As root, run: + +```sh +export HTTP_PROXY="http://localhost:9000" +export HTTPS_PROXY="https://localhost:9000" +docker daemon --debug +``` + +This will launch the Docker daemon and proxy all connections through mitmproxy. + +#### Running the Docker client + +Now that we have mitmproxy and Docker running, we can attempt to login and push +a container image. You may need to run as root to do this. For example: + +```sh +docker login s3-testing.myregistry.com:4567 +docker push s3-testing.myregistry.com:4567/root/docker-test +``` + +In the example above, we see the following trace on the mitmproxy window: + +![mitmproxy output from Docker](img/mitmproxy-docker.png) + +The above image shows: + +* The initial PUT requests went through fine with a 201 status code. +* The 201 redirected the client to the S3 bucket. +* The HEAD request to the AWS bucket reported a 403 Unauthorized. + +What does this mean? This strongly suggests that the S3 user does not have the right +[permissions to perform a HEAD request](http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html). +The solution: check the [IAM permissions again](https://docs.docker.com/registry/storage-drivers/s3/). +Once the right permissions were set, the error will go away. + +[ce-4040]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4040 +[docker-docs]: https://docs.docker.com/engine/userguide/intro/ +[private-docker]: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md#using-a-private-docker-registry diff --git a/doc/user/project/img/container_registry_enable.png b/doc/user/project/img/container_registry_enable.png new file mode 100644 index 00000000000..6fffa2a91d8 Binary files /dev/null and b/doc/user/project/img/container_registry_enable.png differ diff --git a/doc/user/project/img/container_registry_panel.png b/doc/user/project/img/container_registry_panel.png new file mode 100644 index 00000000000..60fd76192b7 Binary files /dev/null and b/doc/user/project/img/container_registry_panel.png differ diff --git a/doc/user/project/img/container_registry_tab.png b/doc/user/project/img/container_registry_tab.png new file mode 100644 index 00000000000..36b883aaa97 Binary files /dev/null and b/doc/user/project/img/container_registry_tab.png differ diff --git a/doc/user/project/img/mitmproxy-docker.png b/doc/user/project/img/mitmproxy-docker.png new file mode 100644 index 00000000000..4e3e37b413d Binary files /dev/null and b/doc/user/project/img/mitmproxy-docker.png differ -- cgit v1.2.1 From 44d1560db4bdf678e9c98dfcddbef3180b2aaf8e Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 28 Sep 2016 11:07:41 +0200 Subject: Clarify the Plan to Code stages in Cycle Analytics docs [ci skip] --- doc/user/project/cycle_analytics.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index abef80e7914..84231f879bf 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -28,9 +28,10 @@ You can see that there are seven stages in total: (first assignment, any milestone, milestone date or assignee is not required) - **Plan** (Board) - Median time from giving an issue a milestone or label until pushing the - first commit + first commit to the branch - **Code** (IDE) - - Median time from the first commit until the merge request is created + - Median time from the first commit to the branch until the merge request is + created - **Test** (CI) - Median total test time for all commits/merges - **Review** (Merge Request/MR) @@ -57,7 +58,7 @@ Below you can see in more detail what the various stages of Cycle Analytics mean | **Stage** | **Description** | | --------- | --------------- | | Issue | Measures the median time between creating an issue and taking action to solve it, by either labeling it or adding it to a milestone, whatever comes first. The label will be tracked only if it already has an [Issue Board list][board] created for it. | -| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the repository. To make this change tracked, the pushed commit needs to contain the [issue closing pattern], for example `Closes #xxx`, where `xxx` is the number of the issue related to this commit. If the commit does not contain the issue closing pattern, it is not considered to the measurement time of the stage. | +| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the branch. The very first commit is the one that triggers the separation between **Plan** and **Code** and at least one commit needs to contain the [issue closing pattern] in order to know what branch and commit is related to the issue (for example, `Closes #xxx`, where `xxx` is the number of the issue related to this commit). The closing pattern doesn't necessarily need to be in the first commit message. If there is no commit containing the issue closing pattern, it is not considered to the measurement time of the stage. | | Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is include the [issue closing pattern] to the description of the merge request. | | Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | | Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | -- cgit v1.2.1 From 88ebb7b5e77307771da11e6e22a8c34f87d4a9de Mon Sep 17 00:00:00 2001 From: Ben Bodenmiller Date: Fri, 15 Apr 2016 09:14:22 +0000 Subject: Add footnote to Markdown docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- doc/user/markdown.md | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index c7fda8a497f..56e5b802a52 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -27,6 +27,7 @@ * [Horizontal Rule](#horizontal-rule) * [Line Breaks](#line-breaks) * [Tables](#tables) +* [Footnotes](#footnotes) **[Wiki-Specific Markdown](#wiki-specific-markdown)** @@ -699,6 +700,15 @@ By including colons in the header row, you can align the text within that column | Cell 1 | Cell 2 | Cell 3 | Cell 4 | Cell 5 | Cell 6 | | Cell 7 | Cell 8 | Cell 9 | Cell 10 | Cell 11 | Cell 12 | +## Footnotes + +You can add footnotes to your text as follows.[^1] +[^1]: This is my awesome footnote. + +``` +You can add footnotes to your text as follows.[^1] +[^1]: This is my awesome footnote. +``` ## Wiki-specific Markdown -- cgit v1.2.1 From ddbe676dc318b87c3d656a08bbf5d75485ad544b Mon Sep 17 00:00:00 2001 From: Thomas Balthazar Date: Thu, 8 Sep 2016 11:18:41 +0200 Subject: Add a /wip slash command It toggles the 'WIP' prefix in the MR title. --- doc/user/project/slash_commands.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/slash_commands.md b/doc/user/project/slash_commands.md index 1792a0c501d..5f6a6c6503e 100644 --- a/doc/user/project/slash_commands.md +++ b/doc/user/project/slash_commands.md @@ -27,4 +27,5 @@ do. | `/subscribe` | Subscribe | | `/unsubscribe` | Unsubscribe | | /due <in 2 days | this Friday | December 31st> | Set due date | -| `/remove_due_date` | Remove due date | +| `/remove_due_date` | Remove due date | +| `/wip` | Toggle the Work In Progress status | -- cgit v1.2.1 From a09e1d3dda57323d8932b498a711928c98404005 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Mon, 29 Aug 2016 09:46:05 +0200 Subject: Enable import/export back for non-admins --- doc/user/project/settings/import_export.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 445c0ee8333..65ed9fae4ec 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -7,7 +7,8 @@ > that of the exporter. > - For existing installations, the project import option has to be enabled in > application settings (`/admin/application_settings`) under 'Import sources'. -> You will have to be an administrator to enable and use the import functionality. +> Ask your administrator if you don't see the **GitLab export** button when +> creating a new project. > - You can find some useful raketasks if you are an administrator in the > [import_export](../../../administration/raketasks/project_import_export.md) > raketask. -- cgit v1.2.1 From d221a2c068ef07c3452566add692115142bb313a Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 3 Oct 2016 18:59:41 +0200 Subject: Fix markdown URL link --- doc/user/project/cycle_analytics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 84231f879bf..00751099690 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -6,7 +6,7 @@ This the first iteration of Cycle Analytics, you can follow the following issue to track the changes that are coming to this feature: [#20975][ce-20975]. -Cycle Analytics measures the time it takes to go from [an idea to production] for +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 at that point, but the total time is broken down into the multiple stages an idea has to pass through to be shipped. -- cgit v1.2.1 From 0c8b9edcd02f174facd4f38fa91797d0e670820f Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 3 Oct 2016 19:00:09 +0200 Subject: Clarify what it means Test stage is not calculated in Total --- doc/user/project/cycle_analytics.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 00751099690..632e40c1c9c 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -41,7 +41,10 @@ You can see that there are seven stages in total: - Median time from when the merge request got merged until the deploy to production (production is last stage/environment) - **Production** (Total) - - Sum of all the above stages excluding the Test (CI) time + - Sum of all the above stages 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. ## How the data is measured -- cgit v1.2.1 From f9b267d1b4ddcabfd96fbe761b513067b88ce142 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 3 Oct 2016 19:01:47 +0200 Subject: Clarify Plan and Code stages more --- doc/user/project/cycle_analytics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 632e40c1c9c..40dafb0fae3 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -61,8 +61,8 @@ Below you can see in more detail what the various stages of Cycle Analytics mean | **Stage** | **Description** | | --------- | --------------- | | Issue | Measures the median time between creating an issue and taking action to solve it, by either labeling it or adding it to a milestone, whatever comes first. The label will be tracked only if it already has an [Issue Board list][board] created for it. | -| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the branch. The very first commit is the one that triggers the separation between **Plan** and **Code** and at least one commit needs to contain the [issue closing pattern] in order to know what branch and commit is related to the issue (for example, `Closes #xxx`, where `xxx` is the number of the issue related to this commit). The closing pattern doesn't necessarily need to be in the first commit message. If there is no commit containing the issue closing pattern, it is not considered to the measurement time of the stage. | -| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is include the [issue closing pattern] to the description of the merge request. | +| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the branch. The very first commit of the branch is the one that triggers the separation between **Plan** and **Code**, and at least one of the commits in the branch needs to contain the related issue number (e.g., `#42`). If there is no commit containing the related issue number, it is not considered to the measurement time of the stage. | +| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is to include the [issue closing pattern] to the description of the merge request (for example, `Closes #xxx`, where `xxx` is the number of the issue related to this merge request). If the issue closing pattern is not present in the merge request description, the MR is not considered to the measurement time of the stage. | | Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | | Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | | Staging | Measures the median time between merging the merge request until the very first deployment to production. It's tracked by the [environment] set to `production` in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | -- cgit v1.2.1 From 548b919c3d7432b37e69281c090df63d29b4177a Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 3 Oct 2016 19:05:33 +0200 Subject: Clarify that the `production` environment is case-sensitive Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/22533 --- doc/user/project/cycle_analytics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 40dafb0fae3..eb9a0b8e2e3 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -65,7 +65,7 @@ Below you can see in more detail what the various stages of Cycle Analytics mean | Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is to include the [issue closing pattern] to the description of the merge request (for example, `Closes #xxx`, where `xxx` is the number of the issue related to this merge request). If the issue closing pattern is not present in the merge request description, the MR is not considered to the measurement time of the stage. | | Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | | Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | -| Staging | Measures the median time between merging the merge request until the very first deployment to production. It's tracked by the [environment] set to `production` in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | +| Staging | Measures the median time between merging the merge request until the very first deployment to production. It's tracked by the [environment] set to `production` (case-sensitive, `Production` won't work) in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | | Production| The sum of all time taken to run the entire process, from issue creation to deploying the code to production. | --- -- cgit v1.2.1 From b39649d9758ec4039fdf4ce6c15be5a6956431db Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 3 Oct 2016 19:05:51 +0200 Subject: Take a new screenshot for Cycle Analytics --- .../project/img/cycle_analytics_landing_page.png | Bin 58203 -> 66080 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/img/cycle_analytics_landing_page.png b/doc/user/project/img/cycle_analytics_landing_page.png index 4fa42c87395..b212134d5ed 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.1 From 7bf53ee8ea782b6816eea7125495c455481fca6d Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 4 Oct 2016 11:15:29 +0200 Subject: Add example Cycle Analytics workflow [ci skip] --- doc/user/project/cycle_analytics.md | 58 +++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index eb9a0b8e2e3..7a40f3dad03 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -61,8 +61,8 @@ Below you can see in more detail what the various stages of Cycle Analytics mean | **Stage** | **Description** | | --------- | --------------- | | Issue | Measures the median time between creating an issue and taking action to solve it, by either labeling it or adding it to a milestone, whatever comes first. The label will be tracked only if it already has an [Issue Board list][board] created for it. | -| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the branch. The very first commit of the branch is the one that triggers the separation between **Plan** and **Code**, and at least one of the commits in the branch needs to contain the related issue number (e.g., `#42`). If there is no commit containing the related issue number, it is not considered to the measurement time of the stage. | -| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request related to that commit. The key to keep the process tracked is to include the [issue closing pattern] to the description of the merge request (for example, `Closes #xxx`, where `xxx` is the number of the issue related to this merge request). If the issue closing pattern is not present in the merge request description, the MR is not considered to the measurement time of the stage. | +| Plan | Measures the median time between the action you took for the previous stage, and pushing the first commit to the branch. The very first commit of the branch is the one that triggers the separation between **Plan** and **Code**, and at least one of the commits in the branch needs to contain the related issue number (e.g., `#42`). If none of the commits in the branch mention the related issue number, it is not considered to the measurement time of the stage. | +| Code | Measures the median time between pushing a first commit (previous stage) and creating a merge request (MR) related to that commit. The key to keep the process tracked is to include the [issue closing pattern] to the description of the merge request (for example, `Closes #xxx`, where `xxx` is the number of the issue related to this merge request). If the issue closing pattern is not present in the merge request description, the MR is not considered to the measurement time of the stage. | | Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | | Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | | Staging | Measures the median time between merging the merge request until the very first deployment to production. It's tracked by the [environment] set to `production` (case-sensitive, `Production` won't work) in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | @@ -90,6 +90,54 @@ label present in the Issue Board or assigned a milestone or a project has no `production` environment, the Cycle Analytics dashboard won't present any data at all. +## Example workflow + +Below is a simple fictional workflow of a single cycle that happens in a +single day passing through all seven stages. Note that if a stage does not have +a start/stop mark, it is not measured and hence not calculated in the median +time. It is assumed that milestones are created and CI for testing and setting +environments is configured. + +1. Issue is created at 09:00 (start of **Issue** stage). +1. Issue is added to a milestone at 11:00 (stop of **Issue** stage / start of + **Plan** stage). +1. Start working on the issue, create a branch locally and make one commit at + 12:00. +1. Make a second commit to the branch which mentions the issue number at 12.30 + (stop of **Plan** stage / start of **Code** stage). +1. Push branch and create a merge request that contains the [issue closing pattern] + in its description at 14:00 (stop of **Code** stage / start of **Test** and + **Review** stages). +1. The test suite starts running and takes 5min (stop of **Test** stage). +1. Review merge request, ensure that everything is OK and merge the merge + request at 19:00. (stop of **Review** stage / start of **Staging** stage). +1. Now that the merge request is merged, a deployment to the `production` + environment starts and finishes at 19:30 (stop of **Staging** stage). +1. The cycle completes and the sum of it is shown in the **Production** stage. + +From the above example you can conclude the time it took each stage to complete +as long as their total time: + +- **Issue**: 2h (11:00 - 09:00) +- **Plan**: 1h (12:00 - 11:00) +- **Code**: 2h (14:00 - 12:00) +- **Test**: 5min +- **Review**: 5h (19:00 - 14:00) +- **Staging**: 30min (19:30 - 19:00) +- **Production**: 10h 30min (19:30 - 09:00) + +A few notes: + +- You can see that the **Test** stage is not calculated to the overall time of + the cycle since it is included in the **Review** process (every MR should be + tested). + +--- + +The example above was just one cycle of the seven stages. Add multiple cycles, +calculate their median time and the result is what the dashboard of Cycle +Analytics is showing. + ## Permissions The current permissions on the Cycle Analytics dashboard are: @@ -108,11 +156,11 @@ Learn more about Cycle Analytics in the following resources: - [Cycle Analytics feature highlight](https://about.gitlab.com/2016/09/21/cycle-analytics-feature-highlight/) +[board]: issue_board.md#creating-a-new-list [ce-5986]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5986 [ce-20975]: https://gitlab.com/gitlab-org/gitlab-ce/issues/20975 -[GitLab flow]: ../../workflow/gitlab_flow.md -[permissions]: ../permissions.md [environment]: ../../ci/yaml/README.md#environment -[board]: issue_board.md#creating-a-new-list +[GitLab flow]: ../../workflow/gitlab_flow.md [idea to production]: https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/#from-idea-to-production-with-gitlab [issue closing pattern]: issues/automatic_issue_closing.md +[permissions]: ../permissions.md -- cgit v1.2.1 From 25c26f603fbeafcbe21bd1b81d9b1fe8c3b66296 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 6 Oct 2016 10:48:19 +0200 Subject: Clarify some more the Cycle Analytics workflow example [ci skip] --- doc/user/project/cycle_analytics.md | 38 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 7a40f3dad03..c16058165d7 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -41,8 +41,8 @@ You can see that there are seven stages in total: - Median time from when the merge request got merged until the deploy to production (production is last stage/environment) - **Production** (Total) - - Sum of all the above stages excluding the Test (CI) time. To clarify, it's - not so much that CI time is "excluded", but rather CI time is already + - 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. @@ -66,20 +66,19 @@ Below you can see in more detail what the various stages of Cycle Analytics mean | Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. `master` is not excluded. It does not attempt to track time for any particular stages. | | Review | Measures the median time taken to review the merge request, between its creation and until it's merged. | | Staging | Measures the median time between merging the merge request until the very first deployment to production. It's tracked by the [environment] set to `production` (case-sensitive, `Production` won't work) in your GitLab CI configuration. If there isn't a `production` environment, this is not tracked. | -| Production| The sum of all time taken to run the entire process, from issue creation to deploying the code to production. | +| Production| The sum of all time (medians) taken to run the entire process, from issue creation to deploying the code to production. | --- Here's a little explanation of how this works behind the scenes: 1. Issues and merge requests are grouped together in pairs, such that for each - `` pair, the merge request has `Fixes #xxx` for the - corresponding issue. All other issues and merge requests are **not** considered. - + `` pair, the merge request has the [issue closing pattern] + for the corresponding issue. All other issues and merge requests are **not** + considered. 1. Then the pairs are filtered out. Any merge request that has **not** been deployed to production in the last XX days (specified by the UI - default is 90 days) prohibits these pairs from being considered. - 1. For the remaining `` pairs, we check the information that we need for the stages, like issue creation date, merge request merge time, etc. @@ -108,12 +107,15 @@ environments is configured. 1. Push branch and create a merge request that contains the [issue closing pattern] in its description at 14:00 (stop of **Code** stage / start of **Test** and **Review** stages). -1. The test suite starts running and takes 5min (stop of **Test** stage). +1. The CI starts running your scripts defined in [`.gitlab-ci.yml`][yml] and + takes 5min (stop of **Test** stage). 1. Review merge request, ensure that everything is OK and merge the merge request at 19:00. (stop of **Review** stage / start of **Staging** stage). 1. Now that the merge request is merged, a deployment to the `production` environment starts and finishes at 19:30 (stop of **Staging** stage). -1. The cycle completes and the sum of it is shown in the **Production** stage. +1. The cycle completes and the sum of the median times of the previous stages + is recorded to the **Production** stage. That is the time between creating an + issue and deploying its relevant merge request to production. From the above example you can conclude the time it took each stage to complete as long as their total time: @@ -124,19 +126,22 @@ as long as their total time: - **Test**: 5min - **Review**: 5h (19:00 - 14:00) - **Staging**: 30min (19:30 - 19:00) -- **Production**: 10h 30min (19:30 - 09:00) +- **Production**: Since this stage measures the sum of median time off all + previous stages, we cannot calculate it if we don't know the status of the + stages before. In case this is the very first cycle that is run in the project, + then the **Production** time is 10h 30min (19:30 - 09:00) A few notes: +- In the above example we demonstrated that it doesn't matter if your first + commit doesn't mention the issue number, you can do this later in any commit + of the branch you are working on. - You can see that the **Test** stage is not calculated to the overall time of the cycle since it is included in the **Review** process (every MR should be tested). - ---- - -The example above was just one cycle of the seven stages. Add multiple cycles, -calculate their median time and the result is what the dashboard of Cycle -Analytics is showing. +- The example above was just **one cycle** of the seven stages. Add multiple + cycles, calculate their median time and the result is what the dashboard of + Cycle Analytics is showing. ## Permissions @@ -164,3 +169,4 @@ Learn more about Cycle Analytics in the following resources: [idea to production]: https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/#from-idea-to-production-with-gitlab [issue closing pattern]: issues/automatic_issue_closing.md [permissions]: ../permissions.md +[yml]: ../../ci/yaml/README.md -- cgit v1.2.1 From f8da5eb8ef7cb757b88fd1c8d3c2dea7671e7daa Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre Date: Wed, 5 Oct 2016 11:10:03 -0300 Subject: Revert "Label list shows all issues (opened or closed) with that label" --- doc/user/project/issue_board.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index cac926b3e28..4a6c0d88241 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -31,9 +31,10 @@ Below is a table of the definitions used for GitLab's Issue Board. There are three types of lists, the ones you create based on your labels, and two default: -- **Backlog** (default): shows all opened issues that do not fall in one of the other lists. Always appears on the very left. -- **Done** (default): shows all closed issues that do not fall in one of the other lists. Always appears on the very right. -- Label list: a list based on a label. It shows all opened or closed issues with that label. +- **Backlog** (default): shows all issues that do not fall in one of the other lists. Always appears on the very left. +- **Done** (default): shows all closed issues. Always appears on the very right. +Label list: a list based on a label. It shows all issues with that label. +- Label list: a list based on a label. It shows all opened issues with that label. ![GitLab Issue Board](img/issue_board.png) -- cgit v1.2.1 From 8522fc15c1c3a1a383492e0601136586bf1e621a Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 6 Oct 2016 17:59:18 +0200 Subject: Add notice about HTTPS cloning for CI --- doc/user/project/new_ci_build_permissions_model.md | 3 +++ 1 file changed, 3 insertions(+) (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 e73f60023b5..5253825d507 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -98,6 +98,9 @@ As an Administrator, you can verify that the user is a member of the group or project they're trying to have access to, and you can impersonate the user to retry the failing build in order to verify that everything is correct. +You need to make sure that your installation has HTTPS cloning enabled. +HTTPS support is required by GitLab CI to clone all sources. + ## Build triggers [Build triggers][triggers] do not support the new permission model. -- cgit v1.2.1 From bc57fc7cb29b40ae8111e391dfcbd6c55eb6c963 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Fri, 7 Oct 2016 10:23:18 +0200 Subject: Update documentation according to changes in MWBS --- .../merge_requests/merge_when_build_succeeds.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'doc/user') 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 011f9cbc381..c138061fd40 100644 --- a/doc/user/project/merge_requests/merge_when_build_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_build_succeeds.md @@ -1,16 +1,16 @@ # Merge When Build Succeeds When reviewing a merge request that looks ready to merge but still has one or -more CI builds running, you can set it to be merged automatically when all -builds succeed. This way, you don't have to wait for the builds to finish and -remember to merge the request manually. +more CI builds running, you can set it to be merged automatically when the +builds pipeline succeed. This way, you don't have to wait for the builds to +finish and remember to merge the request manually. ![Enable](img/merge_when_build_succeeds_enable.png) When you hit the "Merge When Build Succeeds" button, the status of the merge request will be updated to represent the impending merge. If you cannot wait -for the build to succeed and want to merge immediately, this option is available -in the dropdown menu on the right of the main button. +for the pipeline to succeed and want to merge immediately, this option is +available in the dropdown menu on the right of the main button. Both team developers and the author of the merge request have the option to cancel the automatic merge if they find a reason why it shouldn't be merged @@ -18,9 +18,9 @@ after all. ![Status](img/merge_when_build_succeeds_status.png) -When the build succeeds, the merge request will automatically be merged. When -the build fails, the author gets a chance to retry any failed builds, or to -push new commits to fix the failure. +When the pipeline succeeds, the merge request will automatically be merged. +When the pipeline fails, the author gets a chance to retry any failed builds, +or to push new commits to fix the failure. When the builds are retried and succeed on the second try, the merge request will automatically be merged after all. When the merge request is updated with @@ -40,7 +40,7 @@ hit **Save** for the changes to take effect. ![Only allow merge if build succeeds settings](img/merge_when_build_succeeds_only_if_succeeds_settings.png) -From now on, every time the build fails you will not be able to merge the merge -request from the UI, until you make the build pass. +From now on, every time the pipelinefails you will not be able to merge the +merge request from the UI, until you make all relevant builds pass. ![Only allow merge if build succeeds msg](img/merge_when_build_succeeds_only_if_succeeds_msg.png) -- cgit v1.2.1 From 54642e5245df774eefc1a1bd82b9c033defb5bc1 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 11 Oct 2016 07:21:47 +0200 Subject: Reference the web editor docs in GitLab basics "Create a branch" --- .../repository/img/web_editor_new_branch_from_issue.png | Bin 0 -> 4728 bytes doc/user/project/repository/web_editor.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 doc/user/project/repository/img/web_editor_new_branch_from_issue.png (limited to 'doc/user') diff --git a/doc/user/project/repository/img/web_editor_new_branch_from_issue.png b/doc/user/project/repository/img/web_editor_new_branch_from_issue.png new file mode 100644 index 00000000000..b0a63ddf0ab Binary files /dev/null and b/doc/user/project/repository/img/web_editor_new_branch_from_issue.png differ diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md index 993c6bfb7e9..675e89e4247 100644 --- a/doc/user/project/repository/web_editor.md +++ b/doc/user/project/repository/web_editor.md @@ -97,11 +97,11 @@ There are multiple ways to create a branch from GitLab's web interface. In case your development workflow dictates to have an issue for every merge request, you can quickly create a branch right on the issue page which will be -tied with the issue itself. You can see a **New Branch** button after the issue +tied with the issue itself. You can see a **New branch** button after the issue description, unless there is already a branch with the same name or a referenced merge request. -![New Branch Button](img/new_branch_from_issue.png) +![New Branch Button](img/web_editor_new_branch_from_issue.png) Once you click it, a new branch will be created that diverges from the default branch of your project, by default `master`. The branch name will be based on -- cgit v1.2.1 From b4004488f76d7360acd2f38277d617447c76b888 Mon Sep 17 00:00:00 2001 From: Valery Sizov Date: Tue, 4 Oct 2016 15:52:08 +0300 Subject: Make guests unable to view MRs --- doc/user/permissions.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc/user') diff --git a/doc/user/permissions.md b/doc/user/permissions.md index c0dc80325b6..d6216a8dd50 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -32,6 +32,7 @@ The following table depicts the various user permission levels in a project. | See a commit status | | ✓ | ✓ | ✓ | ✓ | | See a container registry | | ✓ | ✓ | ✓ | ✓ | | See environments | | ✓ | ✓ | ✓ | ✓ | +| See a list of merge requests | | ✓ | ✓ | ✓ | ✓ | | Manage/Accept merge requests | | | ✓ | ✓ | ✓ | | Create new merge request | | | ✓ | ✓ | ✓ | | Create new branches | | | ✓ | ✓ | ✓ | -- cgit v1.2.1 From 1bbe1cea919d174b9bc1bdd39e6235ffadcccb50 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 11 Oct 2016 15:55:32 +0200 Subject: Move health check docs under user/admin_area/monitoring [ci skip] --- doc/user/admin_area/monitoring/health_check.md | 66 +++++++++++++++++++++ .../monitoring/img/health_check_token.png | Bin 0 -> 6630 bytes 2 files changed, 66 insertions(+) create mode 100644 doc/user/admin_area/monitoring/health_check.md create mode 100644 doc/user/admin_area/monitoring/img/health_check_token.png (limited to 'doc/user') diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md new file mode 100644 index 00000000000..eac57bc3de4 --- /dev/null +++ b/doc/user/admin_area/monitoring/health_check.md @@ -0,0 +1,66 @@ +# Health Check + +> [Introduced][ce-3888] in GitLab 8.8. + +GitLab provides a health check endpoint for uptime monitoring on the `health_check` web +endpoint. The health check reports on the overall system status based on the status of +the database connection, the state of the database migrations, and the ability to write +and access the cache. This endpoint can be provided to uptime monitoring services like +[Pingdom][pingdom], [Nagios][nagios-health], and [NewRelic][newrelic-health]. + +## Access Token + +An access token needs to be provided while accessing the health check endpoint. The current +accepted token can be found on the `admin/health_check` page of your GitLab instance. + +![access token](img/health_check_token.png) + +The access token can be passed as a URL parameter: + +``` +https://gitlab.example.com/health_check.json?token=ACCESS_TOKEN +``` + +or as an HTTP header: + +```bash +curl --header "TOKEN: ACCESS_TOKEN" https://gitlab.example.com/health_check.json +``` + +## Using the Endpoint + +Once you have the access token, health information can be retrieved as plain text, JSON, +or XML using the `health_check` endpoint: + +- `https://gitlab.example.com/health_check?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check.json?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check.xml?token=ACCESS_TOKEN` + +You can also ask for the status of specific services: + +- `https://gitlab.example.com/health_check/cache.json?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check/database.json?token=ACCESS_TOKEN` +- `https://gitlab.example.com/health_check/migrations.json?token=ACCESS_TOKEN` + +For example, the JSON output of the following health check: + +```bash +curl --header "TOKEN: ACCESS_TOKEN" https://gitlab.example.com/health_check.json +``` + +would be like: + +``` +{"healthy":true,"message":"success"} +``` + +## Status + +On failure, the endpoint will return a `500` HTTP status code. On success, the endpoint +will return a valid successful HTTP status code, and a `success` message. Ideally your +uptime monitoring should look for the success message. + +[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 diff --git a/doc/user/admin_area/monitoring/img/health_check_token.png b/doc/user/admin_area/monitoring/img/health_check_token.png new file mode 100644 index 00000000000..2d7c82a65a8 Binary files /dev/null and b/doc/user/admin_area/monitoring/img/health_check_token.png differ -- cgit v1.2.1 From 2b37f040b612303b714ec8cee0b482427e7c2b3c Mon Sep 17 00:00:00 2001 From: James Lopez Date: Tue, 11 Oct 2016 12:58:56 +0200 Subject: Ignore deployment for statistics in Cycle Analytics, except in staging and production stages Also, updated specs and docs. --- doc/user/project/cycle_analytics.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index c16058165d7..1892ccabb70 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -3,8 +3,8 @@ > [Introduced][ce-5986] in GitLab 8.12. > > **Note:** -This the first iteration of Cycle Analytics, you can follow the following issue -to track the changes that are coming to this feature: [#20975][ce-20975]. +There are more changes coming to Cycle Analytics, you can follow the following +issue to track the changes to this feature: [#20975][ce-20975]. 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 @@ -48,13 +48,12 @@ You can see that there are seven stages in total: ## How the data is measured -Cycle Analytics records cycle time so only data on the issues that have been -deployed to production are measured. In case you just started a new project and -you have not pushed anything to production, then you will not be able to -properly see the Cycle Analytics of your project. +Cycle Analytics records cycle time and data based on the project issues with the +exception of the staging and production stages, where only data deployed to +production are measured. Specifically, if your CI is not set up and you have not defined a `production` -[environment], then you will not have any data. +[environment], then you will not have any data for those stages. Below you can see in more detail what the various stages of Cycle Analytics mean. @@ -76,9 +75,8 @@ Here's a little explanation of how this works behind the scenes: `` pair, the merge request has the [issue closing pattern] for the corresponding issue. All other issues and merge requests are **not** considered. -1. Then the pairs are filtered out. Any merge request - that has **not** been deployed to production in the last XX days (specified - by the UI - default is 90 days) prohibits these pairs from being considered. +1. Then the pairs are filtered out by last XX days (specified + by the UI - default is 90 days). So it prohibits these pairs from being considered. 1. For the remaining `` pairs, we check the information that we need for the stages, like issue creation date, merge request merge time, etc. @@ -86,8 +84,8 @@ Here's a little explanation of how this works behind the scenes: To sum up, anything that doesn't follow the [GitLab flow] won't be tracked at all. So, if a merge request doesn't close an issue or an issue is not labeled with a label present in the Issue Board or assigned a milestone or a project has no -`production` environment, the Cycle Analytics dashboard won't present any data -at all. +`production` environment (for staging and production stages), the Cycle Analytics +dashboard won't present any data at all. ## Example workflow -- cgit v1.2.1 From 45418734311561bb72aa5ab7a89d81bbd5705f7a Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Wed, 12 Oct 2016 14:51:56 +0200 Subject: Added documentation chapter for Git attributes As discussed in https://gitlab.com/gitlab-org/gitlab_git/issues/28 we'll need to clearly document the need for .gitattributes files being encoded using UTF-8. [ci skip] --- doc/user/project/git_attributes.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 doc/user/project/git_attributes.md (limited to 'doc/user') diff --git a/doc/user/project/git_attributes.md b/doc/user/project/git_attributes.md new file mode 100644 index 00000000000..21ef94e61f7 --- /dev/null +++ b/doc/user/project/git_attributes.md @@ -0,0 +1,22 @@ +# Git Attributes + +GitLab supports defining custom [Git attributes][gitattributes] such as what +files to treat as binary, and what language to use for syntax highlighting +diffs. + +To define these attributes, create a file called `.gitattributes` in the root +directory of your repository and push it to the default branch of your project. + +## Encoding Requirements + +The `.gitattributes` file _must_ be encoded in UTF-8 and _must not_ contain a +Byte Order Mark. If a different encoding is used, the file's contents will be +ignored. + +## Syntax Highlighting + +The `.gitattributes` file can be used to define which language to use when +syntax highlighting files and diffs. See ["Syntax +Highlighting"](highlighting.md) for more information. + +[gitattributes]: https://git-scm.com/docs/gitattributes -- cgit v1.2.1 From 6c88a9dfbbee692e872d6f237cb4ca325ebc4a26 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 13 Oct 2016 09:30:18 +0200 Subject: Add more info on the new CI permissions model [ci skip] --- doc/user/project/new_ci_build_permissions_model.md | 54 ++++++++++++++-------- 1 file changed, 36 insertions(+), 18 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 5253825d507..19385a99d64 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -87,20 +87,6 @@ your Runners in the most possible secure way, by avoiding the following: By using an insecure GitLab Runner configuration, you allow the rogue developers to steal the tokens of other builds. -## Debugging problems - -With the new permission model in place, there may be times that your build will -fail. This is most likely because your project tries to access other project's -sources, and you don't have the appropriate permissions. In the build log look -for information about 403 or forbidden access messages - -As an Administrator, you can verify that the user is a member of the group or -project they're trying to have access to, and you can impersonate the user to -retry the failing build in order to verify that everything is correct. - -You need to make sure that your installation has HTTPS cloning enabled. -HTTPS support is required by GitLab CI to clone all sources. - ## Build triggers [Build triggers][triggers] do not support the new permission model. @@ -152,17 +138,46 @@ with GitLab 8.12. ## Making use of the new CI build permissions model -With the new build permission model, there is now an easy way to access all +With the new build permissions model, there is now an easy way to access all dependent source code in a project. That way, we can: 1. Access a project's Git submodules 1. Access private container images 1. Access project's and submodule LFS objects -Let's see how that works with Git submodules and private Docker images hosted on +Below you can see the prerequisites needed to make use of the new permissions +model and how that works with Git submodules and private Docker images hosted on the container registry. -## Git submodules +### Prerequisites to use the new permissions model + +With the new permissions model in place, there may be times that your build will +fail. This is most likely because your project tries to access other project's +sources, and you don't have the appropriate permissions. In the build log look +for information about 403 or forbidden access messages. + +In short here's what you need to do should you encounter any issues. + +As an administrator: + +- **500 errors**: You will need to update [GitLab Workhorse][workhorse] to at + least 0.8.2. This is done automatically for Omnibus installations, you need to + check manually for installations from source. +- **500 errors**: Check if you have another web proxy sitting in front of NGINX (HAProxy, + Apache, etc.). It might be a good idea to let GitLab use the internal NGINX + web server and not disable it completely. See [this comment][comment] for an + example. +- **403 errors**: You need to make sure that your installation has [HTTP(S) + cloning enabled][https]. HTTP(S) support is now a **requirement** by GitLab CI + to clone all sources. + +As a user: + +- Make sure you are a member of the group or project you're trying to have + access to. As an Administrator, you can verify that by impersonating the user + and retry the failing build in order to verify that everything is correct. + +### Git submodules > It often happens that while working on one project, you need to use another @@ -286,7 +301,10 @@ test: - docker run $CI_REGISTRY/group/other-project:latest ``` -[git-scm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules [build permissions]: ../permissions.md#builds-permissions +[comment]: https://gitlab.com/gitlab-org/gitlab-ce/issues/22484#note_16648302 [ext]: ../permissions.md#external-users +[git-scm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules +[https]: ../admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols [triggers]: ../../ci/triggers/README.md +[workhorse]: https://gitlab.com/gitlab-org/gitlab-workhorse -- cgit v1.2.1 From c850651b9174a40376dc5b712ce696406adedeab Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 14 Oct 2016 10:07:36 +0200 Subject: Add link to update docs for source installations --- doc/user/project/new_ci_build_permissions_model.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (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 19385a99d64..8827b501901 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -162,7 +162,7 @@ As an administrator: - **500 errors**: You will need to update [GitLab Workhorse][workhorse] to at least 0.8.2. This is done automatically for Omnibus installations, you need to - check manually for installations from source. + [check manually][update-docs] for installations from source. - **500 errors**: Check if you have another web proxy sitting in front of NGINX (HAProxy, Apache, etc.). It might be a good idea to let GitLab use the internal NGINX web server and not disable it completely. See [this comment][comment] for an @@ -307,4 +307,5 @@ test: [git-scm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules [https]: ../admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols [triggers]: ../../ci/triggers/README.md +[update-docs]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update [workhorse]: https://gitlab.com/gitlab-org/gitlab-workhorse -- cgit v1.2.1 From e8c9ccc2d8f85e22bb4969cb544f9de25f4c08f5 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 14 Oct 2016 10:25:11 +0200 Subject: Refactor merge requests revisions - A system note now appears on every push - Replace dashes with underscores in images [ci skip] --- .../merge_requests/img/versions-compare.png | Bin 68722 -> 0 bytes .../merge_requests/img/versions-dropdown.png | Bin 60587 -> 0 bytes .../merge_requests/img/versions_compare.png | Bin 0 -> 68722 bytes .../merge_requests/img/versions_dropdown.png | Bin 0 -> 60587 bytes .../merge_requests/img/versions_system_note.png | Bin 0 -> 18731 bytes doc/user/project/merge_requests/versions.md | 30 ++++++++++++++------- 6 files changed, 20 insertions(+), 10 deletions(-) delete mode 100644 doc/user/project/merge_requests/img/versions-compare.png delete mode 100644 doc/user/project/merge_requests/img/versions-dropdown.png create mode 100644 doc/user/project/merge_requests/img/versions_compare.png create mode 100644 doc/user/project/merge_requests/img/versions_dropdown.png create mode 100644 doc/user/project/merge_requests/img/versions_system_note.png (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/versions-compare.png b/doc/user/project/merge_requests/img/versions-compare.png deleted file mode 100644 index 890cae7768c..00000000000 Binary files a/doc/user/project/merge_requests/img/versions-compare.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/versions-dropdown.png b/doc/user/project/merge_requests/img/versions-dropdown.png deleted file mode 100644 index 9bab9304e14..00000000000 Binary files a/doc/user/project/merge_requests/img/versions-dropdown.png and /dev/null differ diff --git a/doc/user/project/merge_requests/img/versions_compare.png b/doc/user/project/merge_requests/img/versions_compare.png new file mode 100644 index 00000000000..890cae7768c Binary files /dev/null and b/doc/user/project/merge_requests/img/versions_compare.png differ diff --git a/doc/user/project/merge_requests/img/versions_dropdown.png b/doc/user/project/merge_requests/img/versions_dropdown.png new file mode 100644 index 00000000000..9bab9304e14 Binary files /dev/null and b/doc/user/project/merge_requests/img/versions_dropdown.png differ diff --git a/doc/user/project/merge_requests/img/versions_system_note.png b/doc/user/project/merge_requests/img/versions_system_note.png new file mode 100644 index 00000000000..7c9d7715745 Binary files /dev/null and b/doc/user/project/merge_requests/img/versions_system_note.png differ diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md index 2805fdf635c..77eab7ba5e3 100644 --- a/doc/user/project/merge_requests/versions.md +++ b/doc/user/project/merge_requests/versions.md @@ -7,26 +7,36 @@ of merge request diff is created. When you visit a merge request that contains more than one pushes, you can select and compare the versions of those merge request diffs. -![Merge Request Versions](img/versions.png) +![Merge request versions](img/versions.png) + +--- By default, the latest version of changes is shown. However, you can select an older one from version dropdown. -![Merge Request Versions](img/versions-dropdown.png) +![Merge request versions dropdown](img/versions_dropdown.png) + +--- -You can also compare the merge request version with older one to see what is +You can also compare the merge request version with an older one to see what has changed since then. -![Merge Request Versions](img/versions-compare.png) +![Merge request versions compare](img/versions_compare.png) + +--- + +Every time you push new changes to the branch, a link to compare the last +changes appears as a system note. -Please note that comments are disabled while viewing outdated merge versions -or comparing to versions other than base. +![Merge request versions system note](img/versions_system_note.png) --- ->**Note:** -Merge request versions are based on push not on commit. So, if you pushed 5 -commits in a single push, it will be a single option in the dropdown. If you -pushed 5 times, that will count for 5 options. +>**Notes:** +- Comments are disabled while viewing outdated merge versions or comparing to + versions other than base. +- Merge request versions are based on push not on commit. So, if you pushed 5 + commits in a single push, it will be a single option in the dropdown. If you + pushed 5 times, that will count for 5 options. [ce-5467]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5467 -- cgit v1.2.1 From 77b7bfd463bf57d38cb6aa30f277cd19ffbb6504 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Thu, 29 Sep 2016 13:15:18 +0200 Subject: Fix import/export labels to cope with project and group labels. Added relevant specs. --- doc/user/project/settings/import_export.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 65ed9fae4ec..dfc762fe1d3 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -22,7 +22,8 @@ with all their related data and be moved into a new GitLab instance. | GitLab version | Import/Export version | | -------- | -------- | -| 8.12.0 to current | 0.1.4 | +| 8.13.0 to current | 0.1.5 | +| 8.12.0 | 0.1.4 | | 8.10.3 | 0.1.3 | | 8.10.0 | 0.1.2 | | 8.9.5 | 0.1.1 | -- cgit v1.2.1 From 68af55c3f93be79841957ff12b736e104fdc40de Mon Sep 17 00:00:00 2001 From: Daniel Klischies Date: Fri, 21 Oct 2016 18:38:11 +0000 Subject: Add a note regarding syncing the git submodule conf to CI doc. --- doc/user/project/new_ci_build_permissions_model.md | 6 ++++++ 1 file changed, 6 insertions(+) (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 8827b501901..608475116a1 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -254,6 +254,12 @@ test: This will make GitLab CI initialize (fetch) and update (checkout) all your submodules recursively. +If git does not use the newly added relative URLs but still uses your old URLs, +you might need to add `git submodule sync --recursive` to your `.gitlab-ci.yml`, +prior to running `git submodule update --init --recursive`. This transfers the +changes from your `.gitmodules` file into the `.git` folder, which is kept by +runners between runs. + In case your environment or your Docker image doesn't have Git installed, you have to either ask your Administrator or install the missing dependency yourself: -- cgit v1.2.1 From 94ceadb4a32a4a5128d43983206518d3159354e0 Mon Sep 17 00:00:00 2001 From: Winnie Date: Fri, 21 Oct 2016 20:18:03 +0000 Subject: Document link syntax introduced by !5586 --- doc/user/markdown.md | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 56e5b802a52..7a7a0b864bd 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -501,6 +501,10 @@ There are two ways to create links, inline-style and reference-style. [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) [You can use numbers for reference-style link definitions][1] @@ -518,6 +522,10 @@ There are two ways to create links, inline-style and reference-style. [I'm a relative reference to a repository file](LICENSE)[^1] +[I am an absolute reference within the repository](/doc/user/markdown.md) + +[I link to the Milestones page](/../milestones) + [You can use numbers for reference-style link definitions][1] Or leave it empty and use the [link text itself][] -- cgit v1.2.1 From 692eb3f84e912bd586f923bd87737bd15ae3b750 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 25 Oct 2016 10:50:29 +0200 Subject: Capitalize Git [ci skip] --- doc/user/project/new_ci_build_permissions_model.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (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 608475116a1..60b7bec2ba7 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -254,7 +254,7 @@ test: This will make GitLab CI initialize (fetch) and update (checkout) all your submodules recursively. -If git does not use the newly added relative URLs but still uses your old URLs, +If Git does not use the newly added relative URLs but still uses your old URLs, you might need to add `git submodule sync --recursive` to your `.gitlab-ci.yml`, prior to running `git submodule update --init --recursive`. This transfers the changes from your `.gitmodules` file into the `.git` folder, which is kept by -- cgit v1.2.1 From 4392098e12328e07c4d007585288e61e8926640b Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 17 Oct 2016 17:00:30 +0200 Subject: Fully document the pipelines settings page --- doc/user/project/img/project_settings_list.png | Bin 10788 -> 11404 bytes .../pipelines/img/pipelines_settings_badges.png | Bin 0 -> 56166 bytes doc/user/project/pipelines/settings.md | 101 +++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 doc/user/project/pipelines/img/pipelines_settings_badges.png create mode 100644 doc/user/project/pipelines/settings.md (limited to 'doc/user') diff --git a/doc/user/project/img/project_settings_list.png b/doc/user/project/img/project_settings_list.png index 57ca2ac5f9e..cd9f5c00eea 100644 Binary files a/doc/user/project/img/project_settings_list.png and b/doc/user/project/img/project_settings_list.png differ diff --git a/doc/user/project/pipelines/img/pipelines_settings_badges.png b/doc/user/project/pipelines/img/pipelines_settings_badges.png new file mode 100644 index 00000000000..d0c4640791d Binary files /dev/null and b/doc/user/project/pipelines/img/pipelines_settings_badges.png differ diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md new file mode 100644 index 00000000000..9641792d0bb --- /dev/null +++ b/doc/user/project/pipelines/settings.md @@ -0,0 +1,101 @@ +# CI/CD pipelines settings + +To reach the pipelines settings: + +1. Navigate to your project and click the cog icon in the upper right corner. + + ![Project settings menu](../img/project_settings_list.png) + +1. Select **CI/CD Pipelines** from the menu. + +The following settings can be configured per project. + +## Git strategy + +With Git strategy, you can choose the default way your repository is fetched +from GitLab in a job. + +There are two options: + +- Using `git clone` which is slower since it clones the repository from scratch + for every job, ensuring that the project workspace is always pristine. +- Using `git fetch` which is faster as it re-uses the project workspace (falling + back to clone if it doesn't exist). + +The default Git strategy can be overridden by the [GIT_STRATEGY variable][var] +in `.gitlab-ci.yml`. + +## Timeout + +Timeout defines the maximum amount of time in minutes that a job is able run. +The default value is 60 minutes. Decrease the time limit if you want to impose +a hard limit on your jobs' running time or increase it otherwise. In any case, +if the job surpasses the threshold, it is marked as failed. + +## Test coverage parsing + +If you use test coverage in your code, GitLab can capture its output in the +build trace using a regular expression. Leave blank if you want to disable it +or enter a ruby regular expression. You can use http://rubular.com to test your +regex. + +A few examples can be found in the settings page. + +## Visibility of pipelines + +For public and internal projects, the **Pipelines** page can be accessed by +anyone and those logged in respectively. If you wish to hide it so that only +the members of the project or group have access to it, uncheck the **Public +pipelines** checkbox and save the changes. + +## Badges + +In the pipelines settings page you can find build status and test coverage +badges for your project. The latest successful pipeline will be used to read +the build status and test coverage values. + +Visit the **Pipelines** settings page in your project to see the exact link to +your badges, as well as ways to embed the badge image in your HTML or Markdown +pages. + +![Pipelines badges](img/pipelines_settings_badges.png) + +### Build status badge + +Depending on the status of your build, a badge can have the following values: + +- running +- success +- failed +- skipped +- unknown + +You can access a build status badge image using the following link: + +``` +https://example.gitlab.com///badges//build.svg +``` + +### Test coverage report badge + +GitLab makes it possible to define the regular expression for [coverage report], +that each build log will be matched against. This means that each build in the +pipeline can have the test coverage percentage value defined. + +The test coverage badge can be accessed using following link: + +``` +https://example.gitlab.com///badges//coverage.svg +``` + +If you would like to get the coverage report from a specific job, you can add +the `job=coverage_job_name` parameter to the URL. For example, the following +Markdown code will embed the test coverage report badge of the `coverage` job +into your `README.md`: + +```markdown +![coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage) +``` + +[var]: ../../../ci/yaml/README.md#git-strategy +[coverage report]: #test-coverage-parsing -- cgit v1.2.1 From 6309fbf120c9f1c152645fb5cc6053b3a04edc6c Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 17 Oct 2016 20:41:24 +0200 Subject: Add more images for the test coverage docs --- .../img/pipelines_settings_test_coverage.png | Bin 0 -> 4212 bytes .../img/pipelines_test_coverage_build.png | Bin 0 -> 9953 bytes .../img/pipelines_test_coverage_mr_widget.png | Bin 0 -> 14502 bytes doc/user/project/pipelines/settings.md | 24 +++++++++++++++------ 4 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 doc/user/project/pipelines/img/pipelines_settings_test_coverage.png create mode 100644 doc/user/project/pipelines/img/pipelines_test_coverage_build.png create mode 100644 doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png (limited to 'doc/user') diff --git a/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png b/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png new file mode 100644 index 00000000000..d2a5568521f Binary files /dev/null and b/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png differ diff --git a/doc/user/project/pipelines/img/pipelines_test_coverage_build.png b/doc/user/project/pipelines/img/pipelines_test_coverage_build.png new file mode 100644 index 00000000000..3823100daf2 Binary files /dev/null and b/doc/user/project/pipelines/img/pipelines_test_coverage_build.png differ diff --git a/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png b/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png new file mode 100644 index 00000000000..c4f78803e69 Binary files /dev/null and b/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png differ diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md index 9641792d0bb..6cbcf3c400f 100644 --- a/doc/user/project/pipelines/settings.md +++ b/doc/user/project/pipelines/settings.md @@ -35,15 +35,27 @@ if the job surpasses the threshold, it is marked as failed. ## Test coverage parsing If you use test coverage in your code, GitLab can capture its output in the -build trace using a regular expression. Leave blank if you want to disable it -or enter a ruby regular expression. You can use http://rubular.com to test your -regex. +build log using a regular expression. In the pipelines settings, search for the +"Test coverage parsing" section. -A few examples can be found in the settings page. +![Pipelines settings test coverage](img/pipelines_settings_test_coverage.png) + +Leave blank if you want to disable it or enter a ruby regular expression. You +can use http://rubular.com to test your regex. + +If the pipeline succeeds, the coverage is shown in the merge request widget and +in the builds table. + +![MR widget coverage](img/pipelines_test_coverage_mr_widget.png) + +![Build status coverage](img/pipelines_test_coverage_build.png) + +A few examples of known coverage tools for a variety of languages can be found +in the pipelines settings page. ## Visibility of pipelines -For public and internal projects, the **Pipelines** page can be accessed by +For public and internal projects, the pipelines page can be accessed by anyone and those logged in respectively. If you wish to hide it so that only the members of the project or group have access to it, uncheck the **Public pipelines** checkbox and save the changes. @@ -54,7 +66,7 @@ In the pipelines settings page you can find build status and test coverage badges for your project. The latest successful pipeline will be used to read the build status and test coverage values. -Visit the **Pipelines** settings page in your project to see the exact link to +Visit the pipelines settings page in your project to see the exact link to your badges, as well as ways to embed the badge image in your HTML or Markdown pages. -- cgit v1.2.1 From 065ba130585cbce5a2835def94a650d26493abb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Mon, 31 Oct 2016 16:00:42 +0100 Subject: Add documentation for the "Only allow merge requests to be merged if all discussions are resolved" feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- ...ly_allow_merge_if_all_discussions_are_resolved.png | Bin 0 -> 24693 bytes ...llow_merge_if_all_discussions_are_resolved_msg.png | Bin 0 -> 6940 bytes .../merge_request_discussion_resolution.md | 18 ++++++++++++++++++ .../merge_requests/merge_when_build_succeeds.md | 4 ++-- 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png create mode 100644 doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png (limited to 'doc/user') diff --git a/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png new file mode 100644 index 00000000000..52c8acf15e0 Binary files /dev/null and b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png differ diff --git a/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png new file mode 100644 index 00000000000..79ba5c362c7 Binary files /dev/null and b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png differ 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 2559f5f5250..285b1798ac5 100644 --- a/doc/user/project/merge_requests/merge_request_discussion_resolution.md +++ b/doc/user/project/merge_requests/merge_request_discussion_resolution.md @@ -33,7 +33,25 @@ resolved discussions tracker. !["3/4 discussions resolved"][discussions-resolved] +## Only allow merge requests to be merged if all discussions are resolved + +> [Introduced][ce-7125] in GitLab 8.14. + +You can prevent merge requests from being merged until all discussions are resolved. + +Navigate to your project's settings page, select the +**Only allow merge requests to be merged if all discussions are resolved** check +box and hit **Save** for the changes to take effect. + +![Only allow merge if all the discussions are resolved settings](img/only_allow_merge_if_all_discussions_are_resolved.png) + +From now on, you will not be able to merge from the UI until all discussions +are resolved. + +![Only allow merge if all the discussions are resolved message](img/only_allow_merge_if_all_discussions_are_resolved_msg.png) + [ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 +[ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 [resolve-discussion-button]: img/resolve_discussion_button.png [resolve-comment-button]: img/resolve_comment_button.png [discussion-view]: img/discussion_view.png 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 c138061fd40..d4e5b5de685 100644 --- a/doc/user/project/merge_requests/merge_when_build_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_build_succeeds.md @@ -40,7 +40,7 @@ hit **Save** for the changes to take effect. ![Only allow merge if build succeeds settings](img/merge_when_build_succeeds_only_if_succeeds_settings.png) -From now on, every time the pipelinefails you will not be able to merge the +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 builds pass. -![Only allow merge if build succeeds msg](img/merge_when_build_succeeds_only_if_succeeds_msg.png) +![Only allow merge if build succeeds message](img/merge_when_build_succeeds_only_if_succeeds_msg.png) -- cgit v1.2.1 From 0279ad5c3b7dad73b55f94580079f68dce313f32 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 14 Nov 2016 12:21:17 +0200 Subject: Link to correct version of SanitizationFilter API docs for whitelist [ci skip] --- doc/user/markdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 7a7a0b864bd..dbc7e0f14e3 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -590,7 +590,7 @@ Quote break. You can also use raw HTML in your Markdown, and it'll mostly work pretty well. -See the documentation for HTML::Pipeline's [SanitizationFilter](http://www.rubydoc.info/gems/html-pipeline/HTML/Pipeline/SanitizationFilter#WHITELIST-constant) class for the list of allowed HTML tags and attributes. In addition to the default `SanitizationFilter` whitelist, GitLab allows `span` elements. +See the documentation for HTML::Pipeline's [SanitizationFilter](http://www.rubydoc.info/gems/html-pipeline/1.11.0/HTML/Pipeline/SanitizationFilter#WHITELIST-constant) class for the list of allowed HTML tags and attributes. In addition to the default `SanitizationFilter` whitelist, GitLab allows `span` elements. ```no-highlight
-- cgit v1.2.1 From 6715091bbc035142237f5121623bb0b84c3def51 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 19 Oct 2016 11:54:38 +0200 Subject: WIP refactor environments --- 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 d6216a8dd50..a33183fa01c 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -32,6 +32,8 @@ The following table depicts the various user permission levels in a project. | See a commit status | | ✓ | ✓ | ✓ | ✓ | | See a container registry | | ✓ | ✓ | ✓ | ✓ | | See environments | | ✓ | ✓ | ✓ | ✓ | +| Create new environments | | | ✓ | ✓ | ✓ | +| Delete environments | | | | ✓ | ✓ | | See a list of merge requests | | ✓ | ✓ | ✓ | ✓ | | Manage/Accept merge requests | | | ✓ | ✓ | ✓ | | Create new merge request | | | ✓ | ✓ | ✓ | @@ -45,7 +47,6 @@ The following table depicts the various user permission levels in a project. | Create or update commit status | | | ✓ | ✓ | ✓ | | Update a container registry | | | ✓ | ✓ | ✓ | | Remove a container registry image | | | ✓ | ✓ | ✓ | -| Create new environments | | | ✓ | ✓ | ✓ | | Create new milestones | | | | ✓ | ✓ | | Add new team members | | | | ✓ | ✓ | | Push to protected branches | | | | ✓ | ✓ | @@ -58,7 +59,6 @@ The following table depicts the various user permission levels in a project. | Manage runners | | | | ✓ | ✓ | | Manage build triggers | | | | ✓ | ✓ | | Manage variables | | | | ✓ | ✓ | -| Delete environments | | | | ✓ | ✓ | | Switch visibility level | | | | | ✓ | | Transfer project to another namespace | | | | | ✓ | | Remove project | | | | | ✓ | -- cgit v1.2.1 From aee501cf43811f819e95541d5a0c0c6d702bf8da Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 17 Nov 2016 10:53:42 +0100 Subject: Remove ToC and fix headings in Markdown docs [ci skip] --- doc/user/markdown.md | 156 +++++++++++++++++---------------------------------- 1 file changed, 53 insertions(+), 103 deletions(-) (limited to 'doc/user') diff --git a/doc/user/markdown.md b/doc/user/markdown.md index dbc7e0f14e3..162d1bd7ed4 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -1,43 +1,5 @@ # Markdown -## Table of Contents - -**[GitLab Flavored Markdown](#gitlab-flavored-markdown-gfm)** - -* [Newlines](#newlines) -* [Multiple underscores in words](#multiple-underscores-in-words) -* [URL auto-linking](#url-auto-linking) -* [Multiline Blockquote](#multiline-blockquote) -* [Code and Syntax Highlighting](#code-and-syntax-highlighting) -* [Inline Diff](#inline-diff) -* [Emoji](#emoji) -* [Special GitLab references](#special-gitlab-references) -* [Task Lists](#task-lists) -* [Videos](#videos) - -**[Standard Markdown](#standard-markdown)** - -* [Headers](#headers) -* [Emphasis](#emphasis) -* [Lists](#lists) -* [Links](#links) -* [Images](#images) -* [Blockquotes](#blockquotes) -* [Inline HTML](#inline-html) -* [Horizontal Rule](#horizontal-rule) -* [Line Breaks](#line-breaks) -* [Tables](#tables) -* [Footnotes](#footnotes) - -**[Wiki-Specific Markdown](#wiki-specific-markdown)** - -* [Wiki - Direct page link](#wiki-direct-page-link) -* [Wiki - Direct file link](#wiki-direct-file-link) -* [Wiki - Hierarchical link](#wiki-hierarchical-link) -* [Wiki - Root link](#wiki-root-link) - -**[References](#references)** - ## GitLab Flavored Markdown (GFM) > **Note:** @@ -64,7 +26,7 @@ You can use GFM in the following areas: 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. -## Newlines +### Newlines > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#newlines @@ -84,7 +46,7 @@ Violets are blue Sugar is sweet -## Multiple underscores in words +### Multiple underscores in words > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#multiple-underscores-in-words @@ -99,7 +61,7 @@ perform_complicated_task do_this_and_do_that_and_another_thing -## URL auto-linking +### URL auto-linking > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#url-auto-linking @@ -120,7 +82,7 @@ GFM will autolink almost any URL you copy and paste into your text: * irc://irc.freenode.net/gitlab * http://localhost:3000 -## Multiline Blockquote +### Multiline Blockquote > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#multiline-blockquote @@ -154,7 +116,7 @@ multiple lines, you can quote that without having to manually prepend `>` to every line! >>> -## Code and Syntax Highlighting +### Code and Syntax Highlighting > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#code-and-syntax-highlighting @@ -224,7 +186,7 @@ s = "There is no highlighting for this." But let's throw in a tag. ``` -## Inline Diff +### Inline Diff > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#inline-diff @@ -240,7 +202,7 @@ However the wrapping tags cannot be mixed as such: - {- deletions -] - [- deletions -} -## Emoji +### Emoji > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#emoji @@ -265,7 +227,7 @@ If you are new to this, don't be :fearful:. You can easily join the emoji :famil Consult the [Emoji Cheat Sheet](http://emoji.codes) for a list of all supported emoji codes. :thumbsup: -## Special GitLab References +### Special GitLab References GFM recognizes special references. @@ -305,7 +267,7 @@ GFM also recognizes certain cross-project references: | `namespace/project@9ba12248...b19a04f5` | commit range comparison | | `namespace/project~"Some label"` | issues with given label | -## Task Lists +### Task Lists > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#task-lists @@ -328,7 +290,7 @@ You can add task lists to issues, merge requests and comments. To create a task Task lists can only be created in descriptions, not in titles. Task item state can be managed by editing the description's Markdown or by toggling the rendered check boxes. -## Videos +### Videos > If this is not rendered correctly, see https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md#videos @@ -345,9 +307,9 @@ Here's a sample video: ![Sample Video](img/markdown_video.mp4) -# Standard Markdown +## Standard Markdown -## Headers +### Headers ```no-highlight # H1 @@ -366,21 +328,6 @@ Alt-H2 ------ ``` -# H1 -## H2 -### H3 -#### H4 -##### H5 -###### H6 - -Alternatively, for H1 and H2, an underline-ish style: - -Alt-H1 -====== - -Alt-H2 ------- - ### Header IDs and links All Markdown-rendered headers automatically get IDs, except in comments. @@ -416,7 +363,7 @@ Would generate the following link IDs: 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. -## Emphasis +### Emphasis ```no-highlight Emphasis, aka italics, with *asterisks* or _underscores_. @@ -436,7 +383,7 @@ Combined emphasis with **asterisks and _underscores_**. Strikethrough uses two tildes. ~~Scratch this.~~ -## Lists +### Lists ```no-highlight 1. First ordered list item @@ -492,7 +439,7 @@ the second list item will be incorrectly labeled as `1`. Second paragraph of first item. 2. Another item -## Links +### Links There are two ways to create links, inline-style and reference-style. @@ -501,9 +448,9 @@ There are two ways to create links, inline-style and reference-style. [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) [You can use numbers for reference-style link definitions][1] @@ -523,9 +470,9 @@ There are two ways to create links, inline-style and reference-style. [I'm a relative reference to a repository file](LICENSE)[^1] [I am an absolute reference within the repository](/doc/user/markdown.md) - + [I link to the Milestones page](/../milestones) - + [You can use numbers for reference-style link definitions][1] Or leave it empty and use the [link text itself][] @@ -544,7 +491,8 @@ Relative links do not allow referencing project files in a wiki page or wiki pag will point the link to `wikis/style` when the link is inside of a wiki markdown file. -## Images + +### Images Here's our logo (hover to see the title text): @@ -568,7 +516,7 @@ Reference-style: [logo]: img/markdown_logo.png -## Blockquotes +### Blockquotes ```no-highlight > Blockquotes are very handy in email to emulate reply text. @@ -586,7 +534,7 @@ Quote break. > This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote. -## Inline HTML +### Inline HTML You can also use raw HTML in your Markdown, and it'll mostly work pretty well. @@ -610,7 +558,7 @@ See the documentation for HTML::Pipeline's [SanitizationFilter](http://www.rubyd
Does *not* work **very** well. Use HTML tags.
-## Horizontal Rule +### Horizontal Rule ``` Three or more... @@ -642,7 +590,7 @@ ___ Underscores -## Line Breaks +### Line Breaks My basic recommendation for learning how line breaks work is to experiment and discover -- hit <Enter> once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), see what happens. You'll soon learn to get what you want. "Markdown Toggle" is your friend. @@ -672,7 +620,7 @@ This line is also a separate paragraph, and... This line is on its own line, because the previous line ends with two spaces. -## Tables +### Tables Tables aren't part of the core Markdown spec, but they are part of GFM and Markdown Here supports them. @@ -708,16 +656,15 @@ By including colons in the header row, you can align the text within that column | Cell 1 | Cell 2 | Cell 3 | Cell 4 | Cell 5 | Cell 6 | | Cell 7 | Cell 8 | Cell 9 | Cell 10 | Cell 11 | Cell 12 | -## Footnotes - -You can add footnotes to your text as follows.[^1] -[^1]: This is my awesome footnote. +### Footnotes ``` -You can add footnotes to your text as follows.[^1] -[^1]: This is my awesome footnote. +You can add footnotes to your text as follows.[^2] +[^2]: This is my awesome footnote. ``` +You can add footnotes to your text as follows.[^2] + ## Wiki-specific Markdown The following examples show how links inside wikis behave. @@ -752,30 +699,30 @@ A link can be constructed relative to the current wiki page using `./`, - If this snippet was placed on a page at `/documentation/main`, it would link to `/documentation/related`: - ```markdown - [Link to Related Page](./related) - ``` + ```markdown + [Link to Related Page](./related) + ``` - If this snippet was placed on a page at `/documentation/related/content`, it would link to `/documentation/main`: - ```markdown - [Link to Related Page](../main) - ``` + ```markdown + [Link to Related Page](../main) + ``` - If this snippet was placed on a page at `/documentation/main`, it would link to `/documentation/related.md`: - ```markdown - [Link to Related Page](./related.md) - ``` + ```markdown + [Link to Related Page](./related.md) + ``` - If this snippet was placed on a page at `/documentation/related/content`, it would link to `/documentation/main.md`: - ```markdown - [Link to Related Page](../main.md) - ``` + ```markdown + [Link to Related Page](../main.md) + ``` ### Wiki - Root link @@ -783,22 +730,25 @@ A link starting with a `/` is relative to the wiki root. - This snippet links to `/documentation`: - ```markdown - [Link to Related Page](/documentation) - ``` + ```markdown + [Link to Related Page](/documentation) + ``` - This snippet links to `/miscellaneous.md`: - ```markdown - [Link to Related Page](/miscellaneous.md) - ``` + ```markdown + [Link to Related Page](/miscellaneous.md) + ``` + ## References - This document leveraged heavily from the [Markdown-Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet). - The [Markdown Syntax Guide](https://daringfireball.net/projects/markdown/syntax) at Daring Fireball is an excellent resource for a detailed explanation of standard markdown. - [Dillinger.io](http://dillinger.io) is a handy tool for testing standard markdown. +[^1]: This link will be broken if you see this document from the Help page or docs.gitlab.com +[^2]: This is my awesome footnote. + [markdown.md]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/user/markdown.md [rouge]: http://rouge.jneen.net/ "Rouge website" [redcarpet]: https://github.com/vmg/redcarpet "Redcarpet website" -[^1]: This link will be broken if you see this document from the Help page or docs.gitlab.com -- cgit v1.2.1 From e5aebccb640636cf0ea74b3569772b8a9156bb48 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 17 Nov 2016 12:16:13 +0100 Subject: Add stop environment permissions and remove delete [ci skip] --- 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 a33183fa01c..cea78864df2 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -33,7 +33,7 @@ The following table depicts the various user permission levels in a project. | See a container registry | | ✓ | ✓ | ✓ | ✓ | | See environments | | ✓ | ✓ | ✓ | ✓ | | Create new environments | | | ✓ | ✓ | ✓ | -| Delete environments | | | | ✓ | ✓ | +| Stop environments | | | ✓ | ✓ | ✓ | | See a list of merge requests | | ✓ | ✓ | ✓ | ✓ | | Manage/Accept merge requests | | | ✓ | ✓ | ✓ | | Create new merge request | | | ✓ | ✓ | ✓ | -- cgit v1.2.1 From c9084654a134906f2442a505bfdc1c2832cdf05f Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 22 Nov 2016 16:33:02 +0100 Subject: Add new image for Cycle Analytics [ci skip] --- doc/user/project/cycle_analytics.md | 9 +++------ .../project/img/cycle_analytics_landing_page.png | Bin 66080 -> 42122 bytes 2 files changed, 3 insertions(+), 6 deletions(-) (limited to 'doc/user') diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index 1892ccabb70..86fe52ef4ff 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -1,10 +1,7 @@ # Cycle Analytics -> [Introduced][ce-5986] in GitLab 8.12. -> -> **Note:** -There are more changes coming to Cycle Analytics, you can follow the following -issue to track the changes to this feature: [#20975][ce-20975]. +> [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 @@ -16,7 +13,7 @@ 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 **Pipelines ➔ Cycle Analytics** tab. ![Cycle Analytics landing page](img/cycle_analytics_landing_page.png) diff --git a/doc/user/project/img/cycle_analytics_landing_page.png b/doc/user/project/img/cycle_analytics_landing_page.png index b212134d5ed..aab060ad0ed 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.1 From af1dabe805fa7ad6fcdccfdb792b07e00c3c42d2 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 22 Nov 2016 19:53:43 +0100 Subject: Reduce size of images from 25MB to 13MB using pngquant Took it from https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/3232 [ci skip] --- doc/user/admin_area/img/admin_labels.png | Bin 91459 -> 23063 bytes .../monitoring/img/health_check_token.png | Bin 6630 -> 4923 bytes .../settings/img/access_restrictions.png | Bin 7435 -> 3794 bytes .../img/admin_area_maximum_artifacts_size.png | Bin 6227 -> 3447 bytes .../settings/img/admin_area_settings_button.png | Bin 9184 -> 4403 bytes .../admin_area/settings/img/domain_blacklist.png | Bin 34684 -> 13606 bytes .../admin_area/settings/img/restricted_url.png | Bin 47539 -> 18202 bytes doc/user/img/markdown_logo.png | Bin 9509 -> 4421 bytes .../project/builds/img/build_artifacts_browser.png | Bin 8365 -> 3782 bytes .../builds/img/build_artifacts_browser_button.png | Bin 11041 -> 4891 bytes .../builds/img/build_artifacts_builds_page.png | Bin 55625 -> 22022 bytes .../builds/img/build_artifacts_pipelines_page.png | Bin 73038 -> 28339 bytes .../builds/img/build_latest_artifacts_browser.png | Bin 26617 -> 10551 bytes doc/user/project/img/container_registry_enable.png | Bin 5526 -> 3057 bytes doc/user/project/img/container_registry_panel.png | Bin 96315 -> 32310 bytes doc/user/project/img/container_registry_tab.png | Bin 7284 -> 3800 bytes .../project/img/cycle_analytics_landing_page.png | Bin 42122 -> 42117 bytes doc/user/project/img/description_templates.png | Bin 20444 -> 7903 bytes doc/user/project/img/issue_board.png | Bin 275093 -> 81649 bytes doc/user/project/img/issue_board_add_list.png | Bin 22391 -> 9516 bytes .../project/img/issue_board_search_backlog.png | Bin 25948 -> 9769 bytes doc/user/project/img/issue_board_system_notes.png | Bin 20637 -> 4899 bytes .../project/img/issue_board_welcome_message.png | Bin 78694 -> 29956 bytes doc/user/project/img/koding_build-in-progress.png | Bin 70949 -> 21953 bytes doc/user/project/img/koding_build-logs.png | Bin 263623 -> 91364 bytes doc/user/project/img/koding_build-success.png | Bin 304666 -> 73008 bytes doc/user/project/img/koding_commit-koding.yml.png | Bin 302703 -> 86043 bytes .../img/koding_different-stack-on-mr-try.png | Bin 333649 -> 93404 bytes doc/user/project/img/koding_edit-on-ide.png | Bin 330880 -> 90701 bytes doc/user/project/img/koding_enable-koding.png | Bin 73499 -> 20303 bytes doc/user/project/img/koding_landing.png | Bin 268455 -> 81010 bytes .../project/img/koding_open-gitlab-from-koding.png | Bin 32559 -> 10851 bytes doc/user/project/img/koding_run-in-ide.png | Bin 65465 -> 22179 bytes doc/user/project/img/koding_run-mr-in-ide.png | Bin 339759 -> 93780 bytes doc/user/project/img/koding_set-up-ide.png | Bin 207481 -> 54062 bytes doc/user/project/img/koding_stack-import.png | Bin 500352 -> 137608 bytes doc/user/project/img/koding_start-build.png | Bin 105253 -> 27926 bytes .../img/labels_assign_label_in_new_issue.png | Bin 31126 -> 11636 bytes .../project/img/labels_assign_label_sidebar.png | Bin 31537 -> 11767 bytes .../img/labels_assign_label_sidebar_saved.png | Bin 28396 -> 9741 bytes doc/user/project/img/labels_default.png | Bin 80403 -> 32030 bytes .../project/img/labels_description_tooltip.png | Bin 22585 -> 8538 bytes doc/user/project/img/labels_filter.png | Bin 81536 -> 31931 bytes doc/user/project/img/labels_filter_by_priority.png | Bin 60849 -> 23969 bytes doc/user/project/img/labels_generate.png | Bin 31608 -> 13628 bytes doc/user/project/img/labels_new_label.png | Bin 43265 -> 16787 bytes .../project/img/labels_new_label_on_the_fly.png | Bin 10416 -> 4625 bytes .../img/labels_new_label_on_the_fly_create.png | Bin 16151 -> 6389 bytes doc/user/project/img/labels_prioritize.png | Bin 108751 -> 38185 bytes doc/user/project/img/labels_subscribe.png | Bin 11536 -> 5336 bytes doc/user/project/img/mitmproxy-docker.png | Bin 407004 -> 142591 bytes doc/user/project/img/project_settings_list.png | Bin 11404 -> 5919 bytes .../img/protected_branches_choose_branch.png | Bin 20659 -> 7009 bytes .../img/protected_branches_devs_can_push.png | Bin 19312 -> 8302 bytes .../project/img/protected_branches_error_ui.png | Bin 37750 -> 13125 bytes doc/user/project/img/protected_branches_list.png | Bin 16223 -> 6937 bytes .../project/img/protected_branches_matches.png | Bin 32145 -> 12028 bytes doc/user/project/img/protected_branches_page.png | Bin 17839 -> 7205 bytes .../img/cherry_pick_changes_commit.png | Bin 304098 -> 141744 bytes .../img/cherry_pick_changes_commit_modal.png | Bin 264883 -> 111488 bytes .../merge_requests/img/cherry_pick_changes_mr.png | Bin 212267 -> 93870 bytes .../img/cherry_pick_changes_mr_modal.png | Bin 186597 -> 86650 bytes .../project/merge_requests/img/commit_compare.png | Bin 65010 -> 33385 bytes .../merge_requests/img/conflict_section.png | Bin 247537 -> 72815 bytes .../project/merge_requests/img/discussion_view.png | Bin 292754 -> 73821 bytes .../merge_requests/img/discussions_resolved.png | Bin 12840 -> 4152 bytes .../merge_requests/img/merge_request_diff.png | Bin 69394 -> 26650 bytes .../merge_requests/img/merge_request_widget.png | Bin 32292 -> 11039 bytes .../img/merge_when_build_succeeds_enable.png | Bin 68769 -> 39796 bytes ...ge_when_build_succeeds_only_if_succeeds_msg.png | Bin 11136 -> 5251 bytes ...en_build_succeeds_only_if_succeeds_settings.png | Bin 17552 -> 12063 bytes .../img/merge_when_build_succeeds_status.png | Bin 82655 -> 48458 bytes ...allow_merge_if_all_discussions_are_resolved.png | Bin 24693 -> 17888 bytes ...w_merge_if_all_discussions_are_resolved_msg.png | Bin 6940 -> 4962 bytes .../merge_requests/img/resolve_comment_button.png | Bin 14075 -> 4722 bytes .../img/resolve_discussion_button.png | Bin 18405 -> 4683 bytes .../merge_requests/img/revert_changes_commit.png | Bin 233750 -> 95655 bytes .../img/revert_changes_commit_modal.png | Bin 205046 -> 88824 bytes .../merge_requests/img/revert_changes_mr.png | Bin 241051 -> 104972 bytes .../merge_requests/img/revert_changes_mr_modal.png | Bin 211022 -> 93536 bytes doc/user/project/merge_requests/img/versions.png | Bin 171413 -> 55703 bytes .../merge_requests/img/versions_compare.png | Bin 68722 -> 24886 bytes .../merge_requests/img/versions_dropdown.png | Bin 60587 -> 21547 bytes .../merge_requests/img/versions_system_note.png | Bin 18731 -> 7136 bytes .../img/wip_blocked_accept_button.png | Bin 32720 -> 18606 bytes .../project/merge_requests/img/wip_mark_as_wip.png | Bin 21640 -> 11396 bytes .../merge_requests/img/wip_unmark_as_wip.png | Bin 16606 -> 8565 bytes .../pipelines/img/pipelines_settings_badges.png | Bin 56166 -> 21137 bytes .../img/pipelines_settings_test_coverage.png | Bin 4212 -> 2603 bytes .../img/pipelines_test_coverage_build.png | Bin 9953 -> 4481 bytes .../img/pipelines_test_coverage_mr_widget.png | Bin 14502 -> 6391 bytes .../img/web_editor_new_branch_dropdown.png | Bin 20436 -> 10386 bytes .../img/web_editor_new_branch_from_issue.png | Bin 4728 -> 2720 bytes .../repository/img/web_editor_new_branch_page.png | Bin 11245 -> 6034 bytes .../img/web_editor_new_directory_dialog.png | Bin 13339 -> 7323 bytes .../img/web_editor_new_directory_dropdown.png | Bin 20007 -> 9918 bytes .../img/web_editor_new_file_dropdown.png | Bin 20680 -> 10233 bytes .../repository/img/web_editor_new_file_editor.png | Bin 66261 -> 38068 bytes .../repository/img/web_editor_new_push_widget.png | Bin 7076 -> 3395 bytes .../repository/img/web_editor_new_tag_dropdown.png | Bin 20080 -> 9796 bytes .../repository/img/web_editor_new_tag_page.png | Bin 36610 -> 21835 bytes .../img/web_editor_start_new_merge_request.png | Bin 8596 -> 4060 bytes .../img/web_editor_template_dropdown_buttons.png | Bin 14131 -> 5634 bytes .../web_editor_template_dropdown_first_file.png | Bin 25748 -> 8846 bytes .../web_editor_template_dropdown_mit_license.png | Bin 85413 -> 30924 bytes .../img/web_editor_upload_file_dialog.png | Bin 21502 -> 12558 bytes .../img/web_editor_upload_file_dropdown.png | Bin 20651 -> 10291 bytes .../settings/img/import_export_download_export.png | Bin 85600 -> 24482 bytes .../settings/img/import_export_export_button.png | Bin 84637 -> 24122 bytes .../settings/img/import_export_mail_link.png | Bin 44012 -> 13496 bytes .../settings/img/import_export_new_project.png | Bin 43574 -> 13083 bytes .../settings/img/import_export_select_file.png | Bin 46292 -> 13713 bytes .../project/settings/img/settings_edit_button.png | Bin 19392 -> 6901 bytes 113 files changed, 0 insertions(+), 0 deletions(-) (limited to 'doc/user') diff --git a/doc/user/admin_area/img/admin_labels.png b/doc/user/admin_area/img/admin_labels.png index 1ee33a534ab..a9ea059ccf9 100644 Binary files a/doc/user/admin_area/img/admin_labels.png and b/doc/user/admin_area/img/admin_labels.png differ diff --git a/doc/user/admin_area/monitoring/img/health_check_token.png b/doc/user/admin_area/monitoring/img/health_check_token.png index 2d7c82a65a8..182549fc484 100644 Binary files a/doc/user/admin_area/monitoring/img/health_check_token.png and b/doc/user/admin_area/monitoring/img/health_check_token.png differ diff --git a/doc/user/admin_area/settings/img/access_restrictions.png b/doc/user/admin_area/settings/img/access_restrictions.png index 8eea84320d7..8c5336c7835 100644 Binary files a/doc/user/admin_area/settings/img/access_restrictions.png and b/doc/user/admin_area/settings/img/access_restrictions.png 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 index 53f7e76033e..b7d6671902a 100644 Binary files a/doc/user/admin_area/settings/img/admin_area_maximum_artifacts_size.png and b/doc/user/admin_area/settings/img/admin_area_maximum_artifacts_size.png differ diff --git a/doc/user/admin_area/settings/img/admin_area_settings_button.png b/doc/user/admin_area/settings/img/admin_area_settings_button.png index 509708b627f..1d2c0ac04bc 100644 Binary files a/doc/user/admin_area/settings/img/admin_area_settings_button.png and b/doc/user/admin_area/settings/img/admin_area_settings_button.png differ diff --git a/doc/user/admin_area/settings/img/domain_blacklist.png b/doc/user/admin_area/settings/img/domain_blacklist.png index bd87b73cf9e..dedd3be1e8f 100644 Binary files a/doc/user/admin_area/settings/img/domain_blacklist.png and b/doc/user/admin_area/settings/img/domain_blacklist.png differ diff --git a/doc/user/admin_area/settings/img/restricted_url.png b/doc/user/admin_area/settings/img/restricted_url.png index 8b00a18320b..67abd13f741 100644 Binary files a/doc/user/admin_area/settings/img/restricted_url.png and b/doc/user/admin_area/settings/img/restricted_url.png differ diff --git a/doc/user/img/markdown_logo.png b/doc/user/img/markdown_logo.png index 05c8b0d0ccf..bb3faaaec76 100644 Binary files a/doc/user/img/markdown_logo.png and b/doc/user/img/markdown_logo.png differ diff --git a/doc/user/project/builds/img/build_artifacts_browser.png b/doc/user/project/builds/img/build_artifacts_browser.png index d95e2800c0f..686273948d6 100644 Binary files a/doc/user/project/builds/img/build_artifacts_browser.png and b/doc/user/project/builds/img/build_artifacts_browser.png differ diff --git a/doc/user/project/builds/img/build_artifacts_browser_button.png b/doc/user/project/builds/img/build_artifacts_browser_button.png index 463540634e3..33ef7de0415 100644 Binary files a/doc/user/project/builds/img/build_artifacts_browser_button.png and b/doc/user/project/builds/img/build_artifacts_browser_button.png differ diff --git a/doc/user/project/builds/img/build_artifacts_builds_page.png b/doc/user/project/builds/img/build_artifacts_builds_page.png index db78386ba7b..8f75602d592 100644 Binary files a/doc/user/project/builds/img/build_artifacts_builds_page.png and b/doc/user/project/builds/img/build_artifacts_builds_page.png differ diff --git a/doc/user/project/builds/img/build_artifacts_pipelines_page.png b/doc/user/project/builds/img/build_artifacts_pipelines_page.png index 6c2d1a4bdc7..4bbd00ddaa0 100644 Binary files a/doc/user/project/builds/img/build_artifacts_pipelines_page.png and b/doc/user/project/builds/img/build_artifacts_pipelines_page.png differ diff --git a/doc/user/project/builds/img/build_latest_artifacts_browser.png b/doc/user/project/builds/img/build_latest_artifacts_browser.png index d8e9071958c..c6d8856078b 100644 Binary files a/doc/user/project/builds/img/build_latest_artifacts_browser.png and b/doc/user/project/builds/img/build_latest_artifacts_browser.png differ diff --git a/doc/user/project/img/container_registry_enable.png b/doc/user/project/img/container_registry_enable.png index 6fffa2a91d8..d067a8be1ca 100644 Binary files a/doc/user/project/img/container_registry_enable.png and b/doc/user/project/img/container_registry_enable.png differ diff --git a/doc/user/project/img/container_registry_panel.png b/doc/user/project/img/container_registry_panel.png index 60fd76192b7..e4c9ecbb25b 100644 Binary files a/doc/user/project/img/container_registry_panel.png and b/doc/user/project/img/container_registry_panel.png differ diff --git a/doc/user/project/img/container_registry_tab.png b/doc/user/project/img/container_registry_tab.png index 36b883aaa97..a85237271d9 100644 Binary files a/doc/user/project/img/container_registry_tab.png and b/doc/user/project/img/container_registry_tab.png differ diff --git a/doc/user/project/img/cycle_analytics_landing_page.png b/doc/user/project/img/cycle_analytics_landing_page.png index aab060ad0ed..316612c0da0 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 diff --git a/doc/user/project/img/description_templates.png b/doc/user/project/img/description_templates.png index c41cc77a94c..e9d45029532 100644 Binary files a/doc/user/project/img/description_templates.png and b/doc/user/project/img/description_templates.png differ diff --git a/doc/user/project/img/issue_board.png b/doc/user/project/img/issue_board.png index 63c269f6dbc..2a35a615d70 100644 Binary files a/doc/user/project/img/issue_board.png and b/doc/user/project/img/issue_board.png differ diff --git a/doc/user/project/img/issue_board_add_list.png b/doc/user/project/img/issue_board_add_list.png index 2b8c10eaa0a..aa1a4ca4cfa 100644 Binary files a/doc/user/project/img/issue_board_add_list.png and b/doc/user/project/img/issue_board_add_list.png differ diff --git a/doc/user/project/img/issue_board_search_backlog.png b/doc/user/project/img/issue_board_search_backlog.png index 112ea171539..fbb67b9c18f 100644 Binary files a/doc/user/project/img/issue_board_search_backlog.png and b/doc/user/project/img/issue_board_search_backlog.png differ diff --git a/doc/user/project/img/issue_board_system_notes.png b/doc/user/project/img/issue_board_system_notes.png index b69ef034954..bd0f5f54095 100644 Binary files a/doc/user/project/img/issue_board_system_notes.png and b/doc/user/project/img/issue_board_system_notes.png differ diff --git a/doc/user/project/img/issue_board_welcome_message.png b/doc/user/project/img/issue_board_welcome_message.png index b757faeb230..aa25cfb5b37 100644 Binary files a/doc/user/project/img/issue_board_welcome_message.png and b/doc/user/project/img/issue_board_welcome_message.png differ diff --git a/doc/user/project/img/koding_build-in-progress.png b/doc/user/project/img/koding_build-in-progress.png index f8cc81834c4..79b7b2f10a2 100644 Binary files a/doc/user/project/img/koding_build-in-progress.png and b/doc/user/project/img/koding_build-in-progress.png differ diff --git a/doc/user/project/img/koding_build-logs.png b/doc/user/project/img/koding_build-logs.png index a04cd5aff99..b30c8375b20 100644 Binary files a/doc/user/project/img/koding_build-logs.png and b/doc/user/project/img/koding_build-logs.png differ diff --git a/doc/user/project/img/koding_build-success.png b/doc/user/project/img/koding_build-success.png index 2a0dd296480..a2342cfd324 100644 Binary files a/doc/user/project/img/koding_build-success.png and b/doc/user/project/img/koding_build-success.png differ diff --git a/doc/user/project/img/koding_commit-koding.yml.png b/doc/user/project/img/koding_commit-koding.yml.png index 3e133c50327..16842410ae2 100644 Binary files a/doc/user/project/img/koding_commit-koding.yml.png and b/doc/user/project/img/koding_commit-koding.yml.png differ diff --git a/doc/user/project/img/koding_different-stack-on-mr-try.png b/doc/user/project/img/koding_different-stack-on-mr-try.png index fd25e32f648..10c7c51d2e6 100644 Binary files a/doc/user/project/img/koding_different-stack-on-mr-try.png and b/doc/user/project/img/koding_different-stack-on-mr-try.png differ diff --git a/doc/user/project/img/koding_edit-on-ide.png b/doc/user/project/img/koding_edit-on-ide.png index fd5aaff75f5..ab861281d3e 100644 Binary files a/doc/user/project/img/koding_edit-on-ide.png and b/doc/user/project/img/koding_edit-on-ide.png differ diff --git a/doc/user/project/img/koding_enable-koding.png b/doc/user/project/img/koding_enable-koding.png index c0ae0ee9918..0b6fcfadcc5 100644 Binary files a/doc/user/project/img/koding_enable-koding.png and b/doc/user/project/img/koding_enable-koding.png differ diff --git a/doc/user/project/img/koding_landing.png b/doc/user/project/img/koding_landing.png index 7c629d9b05e..1eeddcd3813 100644 Binary files a/doc/user/project/img/koding_landing.png and b/doc/user/project/img/koding_landing.png differ diff --git a/doc/user/project/img/koding_open-gitlab-from-koding.png b/doc/user/project/img/koding_open-gitlab-from-koding.png index c958cf8f224..4235a72b36f 100644 Binary files a/doc/user/project/img/koding_open-gitlab-from-koding.png and b/doc/user/project/img/koding_open-gitlab-from-koding.png differ diff --git a/doc/user/project/img/koding_run-in-ide.png b/doc/user/project/img/koding_run-in-ide.png index f91ee0f74cc..d22e5023c59 100644 Binary files a/doc/user/project/img/koding_run-in-ide.png and b/doc/user/project/img/koding_run-in-ide.png differ diff --git a/doc/user/project/img/koding_run-mr-in-ide.png b/doc/user/project/img/koding_run-mr-in-ide.png index 502817a2a46..cb1112c4034 100644 Binary files a/doc/user/project/img/koding_run-mr-in-ide.png and b/doc/user/project/img/koding_run-mr-in-ide.png differ diff --git a/doc/user/project/img/koding_set-up-ide.png b/doc/user/project/img/koding_set-up-ide.png index 7f408c980b5..033d41729a2 100644 Binary files a/doc/user/project/img/koding_set-up-ide.png and b/doc/user/project/img/koding_set-up-ide.png differ diff --git a/doc/user/project/img/koding_stack-import.png b/doc/user/project/img/koding_stack-import.png index 2a4e3c87fc8..245ccb07ba3 100644 Binary files a/doc/user/project/img/koding_stack-import.png and b/doc/user/project/img/koding_stack-import.png differ diff --git a/doc/user/project/img/koding_start-build.png b/doc/user/project/img/koding_start-build.png index 52159440f62..3f5c16d5d2f 100644 Binary files a/doc/user/project/img/koding_start-build.png and b/doc/user/project/img/koding_start-build.png differ diff --git a/doc/user/project/img/labels_assign_label_in_new_issue.png b/doc/user/project/img/labels_assign_label_in_new_issue.png index e32a35f7cda..badfbed0bbe 100644 Binary files a/doc/user/project/img/labels_assign_label_in_new_issue.png and b/doc/user/project/img/labels_assign_label_in_new_issue.png differ diff --git a/doc/user/project/img/labels_assign_label_sidebar.png b/doc/user/project/img/labels_assign_label_sidebar.png index 799443af889..d74796fdb4d 100644 Binary files a/doc/user/project/img/labels_assign_label_sidebar.png and b/doc/user/project/img/labels_assign_label_sidebar.png differ diff --git a/doc/user/project/img/labels_assign_label_sidebar_saved.png b/doc/user/project/img/labels_assign_label_sidebar_saved.png index e7d8d69e60e..dabffe956dc 100644 Binary files a/doc/user/project/img/labels_assign_label_sidebar_saved.png and b/doc/user/project/img/labels_assign_label_sidebar_saved.png differ diff --git a/doc/user/project/img/labels_default.png b/doc/user/project/img/labels_default.png index ee0c9f889ad..474953d565b 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_description_tooltip.png b/doc/user/project/img/labels_description_tooltip.png index 0d1e3e091fb..eea4f8cf0f4 100644 Binary files a/doc/user/project/img/labels_description_tooltip.png and b/doc/user/project/img/labels_description_tooltip.png differ diff --git a/doc/user/project/img/labels_filter.png b/doc/user/project/img/labels_filter.png index ed622be2d93..3aca77f0070 100644 Binary files a/doc/user/project/img/labels_filter.png and b/doc/user/project/img/labels_filter.png differ diff --git a/doc/user/project/img/labels_filter_by_priority.png b/doc/user/project/img/labels_filter_by_priority.png index c5a9e20919b..5609a1f6d7f 100644 Binary files a/doc/user/project/img/labels_filter_by_priority.png and b/doc/user/project/img/labels_filter_by_priority.png differ diff --git a/doc/user/project/img/labels_generate.png b/doc/user/project/img/labels_generate.png index 9579be4e231..987f4b5be71 100644 Binary files a/doc/user/project/img/labels_generate.png and b/doc/user/project/img/labels_generate.png differ diff --git a/doc/user/project/img/labels_new_label.png b/doc/user/project/img/labels_new_label.png index a916d3dceb5..b44b4bd296d 100644 Binary files a/doc/user/project/img/labels_new_label.png and b/doc/user/project/img/labels_new_label.png differ diff --git a/doc/user/project/img/labels_new_label_on_the_fly.png b/doc/user/project/img/labels_new_label_on_the_fly.png index 80cc434239e..2ac9805b1ab 100644 Binary files a/doc/user/project/img/labels_new_label_on_the_fly.png and b/doc/user/project/img/labels_new_label_on_the_fly.png differ diff --git a/doc/user/project/img/labels_new_label_on_the_fly_create.png b/doc/user/project/img/labels_new_label_on_the_fly_create.png index c41090945eb..02ccf68553b 100644 Binary files a/doc/user/project/img/labels_new_label_on_the_fly_create.png and b/doc/user/project/img/labels_new_label_on_the_fly_create.png differ diff --git a/doc/user/project/img/labels_prioritize.png b/doc/user/project/img/labels_prioritize.png index 8dfe72cf826..3e888f36364 100644 Binary files a/doc/user/project/img/labels_prioritize.png and b/doc/user/project/img/labels_prioritize.png differ diff --git a/doc/user/project/img/labels_subscribe.png b/doc/user/project/img/labels_subscribe.png index ea3db2bc0cf..56f24ae7bc8 100644 Binary files a/doc/user/project/img/labels_subscribe.png and b/doc/user/project/img/labels_subscribe.png differ diff --git a/doc/user/project/img/mitmproxy-docker.png b/doc/user/project/img/mitmproxy-docker.png index 4e3e37b413d..aa3b6a0b830 100644 Binary files a/doc/user/project/img/mitmproxy-docker.png and b/doc/user/project/img/mitmproxy-docker.png differ diff --git a/doc/user/project/img/project_settings_list.png b/doc/user/project/img/project_settings_list.png index cd9f5c00eea..0bb761b45c9 100644 Binary files a/doc/user/project/img/project_settings_list.png and b/doc/user/project/img/project_settings_list.png differ diff --git a/doc/user/project/img/protected_branches_choose_branch.png b/doc/user/project/img/protected_branches_choose_branch.png index 26328143717..c2848db9c96 100644 Binary files a/doc/user/project/img/protected_branches_choose_branch.png and b/doc/user/project/img/protected_branches_choose_branch.png differ diff --git a/doc/user/project/img/protected_branches_devs_can_push.png b/doc/user/project/img/protected_branches_devs_can_push.png index 812cc8767b7..1c05cb8fd36 100644 Binary files a/doc/user/project/img/protected_branches_devs_can_push.png and b/doc/user/project/img/protected_branches_devs_can_push.png differ diff --git a/doc/user/project/img/protected_branches_error_ui.png b/doc/user/project/img/protected_branches_error_ui.png index cc61df7ca97..3f8e462d3ad 100644 Binary files a/doc/user/project/img/protected_branches_error_ui.png and b/doc/user/project/img/protected_branches_error_ui.png differ diff --git a/doc/user/project/img/protected_branches_list.png b/doc/user/project/img/protected_branches_list.png index f33f1b2bdb6..1b2936cb711 100644 Binary files a/doc/user/project/img/protected_branches_list.png and b/doc/user/project/img/protected_branches_list.png differ diff --git a/doc/user/project/img/protected_branches_matches.png b/doc/user/project/img/protected_branches_matches.png index 30ce53f704e..d7f2c8582fc 100644 Binary files a/doc/user/project/img/protected_branches_matches.png and b/doc/user/project/img/protected_branches_matches.png differ diff --git a/doc/user/project/img/protected_branches_page.png b/doc/user/project/img/protected_branches_page.png index 1585dde5b29..4e5afff3bae 100644 Binary files a/doc/user/project/img/protected_branches_page.png and b/doc/user/project/img/protected_branches_page.png differ diff --git a/doc/user/project/merge_requests/img/cherry_pick_changes_commit.png b/doc/user/project/merge_requests/img/cherry_pick_changes_commit.png index 7fb68cc9e9b..5ab094ab367 100644 Binary files a/doc/user/project/merge_requests/img/cherry_pick_changes_commit.png and b/doc/user/project/merge_requests/img/cherry_pick_changes_commit.png differ diff --git a/doc/user/project/merge_requests/img/cherry_pick_changes_commit_modal.png b/doc/user/project/merge_requests/img/cherry_pick_changes_commit_modal.png index 5267e04562f..42dcb9203ec 100644 Binary files a/doc/user/project/merge_requests/img/cherry_pick_changes_commit_modal.png and b/doc/user/project/merge_requests/img/cherry_pick_changes_commit_modal.png differ diff --git a/doc/user/project/merge_requests/img/cherry_pick_changes_mr.png b/doc/user/project/merge_requests/img/cherry_pick_changes_mr.png index 975fb13e463..71227747182 100644 Binary files a/doc/user/project/merge_requests/img/cherry_pick_changes_mr.png and b/doc/user/project/merge_requests/img/cherry_pick_changes_mr.png differ diff --git a/doc/user/project/merge_requests/img/cherry_pick_changes_mr_modal.png b/doc/user/project/merge_requests/img/cherry_pick_changes_mr_modal.png index 6c003bacbe3..604eb22f51c 100644 Binary files a/doc/user/project/merge_requests/img/cherry_pick_changes_mr_modal.png and b/doc/user/project/merge_requests/img/cherry_pick_changes_mr_modal.png differ diff --git a/doc/user/project/merge_requests/img/commit_compare.png b/doc/user/project/merge_requests/img/commit_compare.png index 0e4a2b23c04..e612a39716e 100644 Binary files a/doc/user/project/merge_requests/img/commit_compare.png and b/doc/user/project/merge_requests/img/commit_compare.png differ diff --git a/doc/user/project/merge_requests/img/conflict_section.png b/doc/user/project/merge_requests/img/conflict_section.png index 842e50b14b2..cfc17013218 100644 Binary files a/doc/user/project/merge_requests/img/conflict_section.png and b/doc/user/project/merge_requests/img/conflict_section.png differ diff --git a/doc/user/project/merge_requests/img/discussion_view.png b/doc/user/project/merge_requests/img/discussion_view.png index 83bb60acce2..2ee1db2eab3 100644 Binary files a/doc/user/project/merge_requests/img/discussion_view.png and b/doc/user/project/merge_requests/img/discussion_view.png differ diff --git a/doc/user/project/merge_requests/img/discussions_resolved.png b/doc/user/project/merge_requests/img/discussions_resolved.png index 85428129ac8..3fd496f6da5 100644 Binary files a/doc/user/project/merge_requests/img/discussions_resolved.png and b/doc/user/project/merge_requests/img/discussions_resolved.png differ diff --git a/doc/user/project/merge_requests/img/merge_request_diff.png b/doc/user/project/merge_requests/img/merge_request_diff.png index 06ee4908edc..9c5488cb207 100644 Binary files a/doc/user/project/merge_requests/img/merge_request_diff.png and b/doc/user/project/merge_requests/img/merge_request_diff.png differ diff --git a/doc/user/project/merge_requests/img/merge_request_widget.png b/doc/user/project/merge_requests/img/merge_request_widget.png index ffb96b17b07..43a945c74d9 100644 Binary files a/doc/user/project/merge_requests/img/merge_request_widget.png and b/doc/user/project/merge_requests/img/merge_request_widget.png differ diff --git a/doc/user/project/merge_requests/img/merge_when_build_succeeds_enable.png b/doc/user/project/merge_requests/img/merge_when_build_succeeds_enable.png index b86e6d7b3fd..f50a1be24f2 100644 Binary files a/doc/user/project/merge_requests/img/merge_when_build_succeeds_enable.png and b/doc/user/project/merge_requests/img/merge_when_build_succeeds_enable.png differ diff --git a/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_msg.png b/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_msg.png index 6b9756b7418..c43f76b058c 100644 Binary files a/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_msg.png and b/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_msg.png differ diff --git a/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_settings.png b/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_settings.png index 18bebf5fe92..ddc58ff2630 100644 Binary files a/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_settings.png and b/doc/user/project/merge_requests/img/merge_when_build_succeeds_only_if_succeeds_settings.png differ diff --git a/doc/user/project/merge_requests/img/merge_when_build_succeeds_status.png b/doc/user/project/merge_requests/img/merge_when_build_succeeds_status.png index f3ea61d8147..a98636ee359 100644 Binary files a/doc/user/project/merge_requests/img/merge_when_build_succeeds_status.png and b/doc/user/project/merge_requests/img/merge_when_build_succeeds_status.png differ diff --git a/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png index 52c8acf15e0..928c7d33898 100644 Binary files a/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png and b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved.png differ diff --git a/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png index 79ba5c362c7..bcdc0250d7c 100644 Binary files a/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png and b/doc/user/project/merge_requests/img/only_allow_merge_if_all_discussions_are_resolved_msg.png differ diff --git a/doc/user/project/merge_requests/img/resolve_comment_button.png b/doc/user/project/merge_requests/img/resolve_comment_button.png index 2c4ab2f5d53..70340108874 100644 Binary files a/doc/user/project/merge_requests/img/resolve_comment_button.png and b/doc/user/project/merge_requests/img/resolve_comment_button.png differ diff --git a/doc/user/project/merge_requests/img/resolve_discussion_button.png b/doc/user/project/merge_requests/img/resolve_discussion_button.png index 73f265bb101..ab454f661e0 100644 Binary files a/doc/user/project/merge_requests/img/resolve_discussion_button.png and b/doc/user/project/merge_requests/img/resolve_discussion_button.png 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 index e7194fc3504..a0663e130e9 100644 Binary files a/doc/user/project/merge_requests/img/revert_changes_commit.png and b/doc/user/project/merge_requests/img/revert_changes_commit.png differ diff --git a/doc/user/project/merge_requests/img/revert_changes_commit_modal.png b/doc/user/project/merge_requests/img/revert_changes_commit_modal.png index c660ec7eaec..ef7b6dae553 100644 Binary files a/doc/user/project/merge_requests/img/revert_changes_commit_modal.png and b/doc/user/project/merge_requests/img/revert_changes_commit_modal.png 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 index 3002f0ac1c5..8792018ee53 100644 Binary files a/doc/user/project/merge_requests/img/revert_changes_mr.png and b/doc/user/project/merge_requests/img/revert_changes_mr.png differ diff --git a/doc/user/project/merge_requests/img/revert_changes_mr_modal.png b/doc/user/project/merge_requests/img/revert_changes_mr_modal.png index c6aaeecc8a6..f6540c9dd33 100644 Binary files a/doc/user/project/merge_requests/img/revert_changes_mr_modal.png and b/doc/user/project/merge_requests/img/revert_changes_mr_modal.png differ diff --git a/doc/user/project/merge_requests/img/versions.png b/doc/user/project/merge_requests/img/versions.png index 6c86f2c68ac..33c58d2abff 100644 Binary files a/doc/user/project/merge_requests/img/versions.png and b/doc/user/project/merge_requests/img/versions.png differ diff --git a/doc/user/project/merge_requests/img/versions_compare.png b/doc/user/project/merge_requests/img/versions_compare.png index 890cae7768c..db978ea7b1d 100644 Binary files a/doc/user/project/merge_requests/img/versions_compare.png and b/doc/user/project/merge_requests/img/versions_compare.png differ diff --git a/doc/user/project/merge_requests/img/versions_dropdown.png b/doc/user/project/merge_requests/img/versions_dropdown.png index 9bab9304e14..889a2d93e6c 100644 Binary files a/doc/user/project/merge_requests/img/versions_dropdown.png and b/doc/user/project/merge_requests/img/versions_dropdown.png differ diff --git a/doc/user/project/merge_requests/img/versions_system_note.png b/doc/user/project/merge_requests/img/versions_system_note.png index 7c9d7715745..90be6298d15 100644 Binary files a/doc/user/project/merge_requests/img/versions_system_note.png and b/doc/user/project/merge_requests/img/versions_system_note.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 89c458aa8d9..047b0b4620f 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 index 9c37354a653..8bd206bc24a 100644 Binary files a/doc/user/project/merge_requests/img/wip_mark_as_wip.png and b/doc/user/project/merge_requests/img/wip_mark_as_wip.png 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 index 31f7326beb0..c0bfa6a35a2 100644 Binary files a/doc/user/project/merge_requests/img/wip_unmark_as_wip.png and b/doc/user/project/merge_requests/img/wip_unmark_as_wip.png differ diff --git a/doc/user/project/pipelines/img/pipelines_settings_badges.png b/doc/user/project/pipelines/img/pipelines_settings_badges.png index d0c4640791d..3bdc6374c15 100644 Binary files a/doc/user/project/pipelines/img/pipelines_settings_badges.png and b/doc/user/project/pipelines/img/pipelines_settings_badges.png differ diff --git a/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png b/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png index d2a5568521f..2a99201e014 100644 Binary files a/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png and b/doc/user/project/pipelines/img/pipelines_settings_test_coverage.png differ diff --git a/doc/user/project/pipelines/img/pipelines_test_coverage_build.png b/doc/user/project/pipelines/img/pipelines_test_coverage_build.png index 3823100daf2..7eaba1a256f 100644 Binary files a/doc/user/project/pipelines/img/pipelines_test_coverage_build.png and b/doc/user/project/pipelines/img/pipelines_test_coverage_build.png differ diff --git a/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png b/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png index c4f78803e69..c166bb8bec8 100644 Binary files a/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png and b/doc/user/project/pipelines/img/pipelines_test_coverage_mr_widget.png differ diff --git a/doc/user/project/repository/img/web_editor_new_branch_dropdown.png b/doc/user/project/repository/img/web_editor_new_branch_dropdown.png index a8e635d2faf..31edb6bde3a 100644 Binary files a/doc/user/project/repository/img/web_editor_new_branch_dropdown.png and b/doc/user/project/repository/img/web_editor_new_branch_dropdown.png differ diff --git a/doc/user/project/repository/img/web_editor_new_branch_from_issue.png b/doc/user/project/repository/img/web_editor_new_branch_from_issue.png index b0a63ddf0ab..4729f5383c0 100644 Binary files a/doc/user/project/repository/img/web_editor_new_branch_from_issue.png and b/doc/user/project/repository/img/web_editor_new_branch_from_issue.png differ diff --git a/doc/user/project/repository/img/web_editor_new_branch_page.png b/doc/user/project/repository/img/web_editor_new_branch_page.png index 7f36b7faf63..8d82f981527 100644 Binary files a/doc/user/project/repository/img/web_editor_new_branch_page.png and b/doc/user/project/repository/img/web_editor_new_branch_page.png differ diff --git a/doc/user/project/repository/img/web_editor_new_directory_dialog.png b/doc/user/project/repository/img/web_editor_new_directory_dialog.png index d16e3c67116..1c9beff8849 100644 Binary files a/doc/user/project/repository/img/web_editor_new_directory_dialog.png and b/doc/user/project/repository/img/web_editor_new_directory_dialog.png differ diff --git a/doc/user/project/repository/img/web_editor_new_directory_dropdown.png b/doc/user/project/repository/img/web_editor_new_directory_dropdown.png index c8d77b16ee8..ede691f6f74 100644 Binary files a/doc/user/project/repository/img/web_editor_new_directory_dropdown.png and b/doc/user/project/repository/img/web_editor_new_directory_dropdown.png differ diff --git a/doc/user/project/repository/img/web_editor_new_file_dropdown.png b/doc/user/project/repository/img/web_editor_new_file_dropdown.png index 3fcb91c9b93..13a4d721039 100644 Binary files a/doc/user/project/repository/img/web_editor_new_file_dropdown.png and b/doc/user/project/repository/img/web_editor_new_file_dropdown.png differ diff --git a/doc/user/project/repository/img/web_editor_new_file_editor.png b/doc/user/project/repository/img/web_editor_new_file_editor.png index 21c340b9288..d0bcc69bf63 100644 Binary files a/doc/user/project/repository/img/web_editor_new_file_editor.png and b/doc/user/project/repository/img/web_editor_new_file_editor.png differ diff --git a/doc/user/project/repository/img/web_editor_new_push_widget.png b/doc/user/project/repository/img/web_editor_new_push_widget.png index c7738a4c930..77756876d4f 100644 Binary files a/doc/user/project/repository/img/web_editor_new_push_widget.png and b/doc/user/project/repository/img/web_editor_new_push_widget.png differ diff --git a/doc/user/project/repository/img/web_editor_new_tag_dropdown.png b/doc/user/project/repository/img/web_editor_new_tag_dropdown.png index ac7415009b3..b52d5cabdf2 100644 Binary files a/doc/user/project/repository/img/web_editor_new_tag_dropdown.png and b/doc/user/project/repository/img/web_editor_new_tag_dropdown.png differ diff --git a/doc/user/project/repository/img/web_editor_new_tag_page.png b/doc/user/project/repository/img/web_editor_new_tag_page.png index 231e1a13fc0..d6d9945397c 100644 Binary files a/doc/user/project/repository/img/web_editor_new_tag_page.png and b/doc/user/project/repository/img/web_editor_new_tag_page.png differ diff --git a/doc/user/project/repository/img/web_editor_start_new_merge_request.png b/doc/user/project/repository/img/web_editor_start_new_merge_request.png index 2755501dfd1..384e8320f15 100644 Binary files a/doc/user/project/repository/img/web_editor_start_new_merge_request.png and b/doc/user/project/repository/img/web_editor_start_new_merge_request.png differ diff --git a/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png b/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png index 4efc51cc423..f21183125f6 100644 Binary files a/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png and b/doc/user/project/repository/img/web_editor_template_dropdown_buttons.png differ diff --git a/doc/user/project/repository/img/web_editor_template_dropdown_first_file.png b/doc/user/project/repository/img/web_editor_template_dropdown_first_file.png index 67190c58823..7f31c2a8887 100644 Binary files a/doc/user/project/repository/img/web_editor_template_dropdown_first_file.png and b/doc/user/project/repository/img/web_editor_template_dropdown_first_file.png differ diff --git a/doc/user/project/repository/img/web_editor_template_dropdown_mit_license.png b/doc/user/project/repository/img/web_editor_template_dropdown_mit_license.png index 47719113805..afd44d78959 100644 Binary files a/doc/user/project/repository/img/web_editor_template_dropdown_mit_license.png and b/doc/user/project/repository/img/web_editor_template_dropdown_mit_license.png differ diff --git a/doc/user/project/repository/img/web_editor_upload_file_dialog.png b/doc/user/project/repository/img/web_editor_upload_file_dialog.png index 9d6d8250bbe..04e951406ad 100644 Binary files a/doc/user/project/repository/img/web_editor_upload_file_dialog.png and b/doc/user/project/repository/img/web_editor_upload_file_dialog.png differ diff --git a/doc/user/project/repository/img/web_editor_upload_file_dropdown.png b/doc/user/project/repository/img/web_editor_upload_file_dropdown.png index 6b5205b05ec..b8c766d4b99 100644 Binary files a/doc/user/project/repository/img/web_editor_upload_file_dropdown.png and b/doc/user/project/repository/img/web_editor_upload_file_dropdown.png differ 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 a2f7f0085c1..4945590e3e8 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 1f7bdd21b0d..eef79821f8b 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 c123f83eb8e..48ef42855bc 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 b3a7f201018..9dd509dc4a0 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 f31832af3e1..fb831dca32b 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 index 3c0cee536de..9f3a8330e3a 100644 Binary files a/doc/user/project/settings/img/settings_edit_button.png and b/doc/user/project/settings/img/settings_edit_button.png differ -- cgit v1.2.1 From 8434a642f19798f8ed8ce283af6a1006920bef30 Mon Sep 17 00:00:00 2001 From: vrod Date: Sat, 19 Nov 2016 15:58:31 -0200 Subject: Simplify copy on "Create a new list" dropdown in Issue Boards --- doc/user/project/img/issue_board.png | Bin 81649 -> 90664 bytes doc/user/project/img/issue_board_add_list.png | Bin 9516 -> 23632 bytes .../project/img/issue_board_welcome_message.png | Bin 29956 -> 97419 bytes doc/user/project/issue_board.md | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/user') diff --git a/doc/user/project/img/issue_board.png b/doc/user/project/img/issue_board.png index 2a35a615d70..95e8532e908 100644 Binary files a/doc/user/project/img/issue_board.png and b/doc/user/project/img/issue_board.png differ diff --git a/doc/user/project/img/issue_board_add_list.png b/doc/user/project/img/issue_board_add_list.png index aa1a4ca4cfa..cdfc466d23f 100644 Binary files a/doc/user/project/img/issue_board_add_list.png and b/doc/user/project/img/issue_board_add_list.png differ diff --git a/doc/user/project/img/issue_board_welcome_message.png b/doc/user/project/img/issue_board_welcome_message.png index aa25cfb5b37..5bfdac88dde 100644 Binary files a/doc/user/project/img/issue_board_welcome_message.png and b/doc/user/project/img/issue_board_welcome_message.png differ diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md index 4a6c0d88241..d1ae57c00d7 100644 --- a/doc/user/project/issue_board.md +++ b/doc/user/project/issue_board.md @@ -72,7 +72,7 @@ the list will be created and filled with the issues that have that label. ## Creating a new list -Create a new list by clicking on the **Create new list** button at the upper +Create a new list by clicking on the **Add list** button at the upper right corner of the Issue Board. ![Issue Board welcome message](img/issue_board_add_list.png) -- cgit v1.2.1