Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/releases/list/components/release_block_header.vue16
-rw-r--r--app/assets/stylesheets/utilities.scss2
-rw-r--r--app/models/namespace.rb5
-rw-r--r--doc/administration/geo/replication/version_specific_updates.md9
-rw-r--r--doc/development/api_graphql_styleguide.md27
-rw-r--r--doc/development/documentation/index.md2
-rw-r--r--doc/development/python_guide/index.md4
-rw-r--r--doc/development/testing_guide/end_to_end/index.md1
-rw-r--r--doc/development/testing_guide/flaky_tests.md2
-rw-r--r--doc/user/project/import/github.md2
-rw-r--r--doc/user/project/integrations/github.md2
-rw-r--r--doc/user/project/integrations/img/grafana_embedded.pngbin0 -> 64082 bytes
-rw-r--r--doc/user/project/integrations/microsoft_teams.md3
-rw-r--r--doc/user/project/integrations/prometheus.md10
-rw-r--r--doc/user/project/issue_board.md10
-rw-r--r--doc/user/project/issues/csv_export.md2
-rw-r--r--doc/user/project/issues/multiple_assignees_for_issues.md2
-rw-r--r--doc/user/project/merge_requests/merge_request_approvals.md2
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/dns_concepts.md2
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/index.md4
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/ssl_tls_concepts.md2
-rw-r--r--doc/user/project/pages/index.md4
-rw-r--r--doc/user/project/repository/index.md2
-rw-r--r--doc/user/project/repository/repository_mirroring.md4
-rw-r--r--doc/user/project/service_desk.md2
-rw-r--r--qa/qa/scenario/test/sanity/selectors.rb5
-rw-r--r--spec/frontend/releases/list/components/release_block_header_spec.js56
-rw-r--r--spec/frontend/releases/mock_data.js1
28 files changed, 142 insertions, 41 deletions
diff --git a/app/assets/javascripts/releases/list/components/release_block_header.vue b/app/assets/javascripts/releases/list/components/release_block_header.vue
index 9c5dcf2a709..b459418aef2 100644
--- a/app/assets/javascripts/releases/list/components/release_block_header.vue
+++ b/app/assets/javascripts/releases/list/components/release_block_header.vue
@@ -19,8 +19,11 @@ export default {
},
},
computed: {
- shouldShowEditButton() {
- return Boolean(this.release._links && this.release._links.edit_url);
+ editLink() {
+ return this.release._links?.edit_url;
+ },
+ selfLink() {
+ return this.release._links?.self;
},
},
};
@@ -29,17 +32,20 @@ export default {
<template>
<div class="card-header d-flex align-items-center bg-white pr-0">
<h2 class="card-title my-2 mr-auto gl-font-size-20">
- {{ release.name }}
+ <gl-link v-if="selfLink" :href="selfLink" class="font-size-inherit">
+ {{ release.name }}
+ </gl-link>
+ <template v-else>{{ release.name }}</template>
<gl-badge v-if="release.upcoming_release" variant="warning" class="align-middle">{{
__('Upcoming Release')
}}</gl-badge>
</h2>
<gl-link
- v-if="shouldShowEditButton"
+ v-if="editLink"
v-gl-tooltip
class="btn btn-default append-right-10 js-edit-button ml-2"
:title="__('Edit this release')"
- :href="release._links.edit_url"
+ :href="editLink"
>
<icon name="pencil" />
</gl-link>
diff --git a/app/assets/stylesheets/utilities.scss b/app/assets/stylesheets/utilities.scss
index 9e99c92d3f2..f3e6927767c 100644
--- a/app/assets/stylesheets/utilities.scss
+++ b/app/assets/stylesheets/utilities.scss
@@ -40,6 +40,8 @@
.mh-50vh { max-height: 50vh; }
+.font-size-inherit { font-size: inherit; }
+
.gl-w-64 { width: px-to-rem($grid-size * 8); }
.gl-h-32 { height: px-to-rem($grid-size * 4); }
.gl-h-64 { height: px-to-rem($grid-size * 8); }
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index 621a98e9ab6..efe14a3e614 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -131,6 +131,11 @@ class Namespace < ApplicationRecord
name = host.delete_suffix(gitlab_host)
Namespace.find_by_full_path(name)
end
+
+ # overridden in ee
+ def reset_ci_minutes!(namespace_id)
+ false
+ end
end
def visibility_level_field
diff --git a/doc/administration/geo/replication/version_specific_updates.md b/doc/administration/geo/replication/version_specific_updates.md
index ee7a041c6ed..89e1fc9eaa3 100644
--- a/doc/administration/geo/replication/version_specific_updates.md
+++ b/doc/administration/geo/replication/version_specific_updates.md
@@ -7,9 +7,12 @@ for updating Geo nodes.
## Updating to GitLab 12.7
DANGER: **Danger:**
-We found [an initialization order bug](https://gitlab.com/gitlab-org/gitlab/issues/199672) introduced in GitLab 12.7
-that causes Geo Secondaries to not set the correct database connection pool size. A [fix has been merged](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24021)
-and will be available in GitLab 12.8 and the next 12.7.x patch release. Please **do not upgrade to 12.7** until the fix is available.
+Only upgrade to GitLab 12.7.5 or later. Do not upgrade to versions 12.7.0
+through 12.7.4 because there is [an initialization order
+bug](https://gitlab.com/gitlab-org/gitlab/issues/199672) that causes Geo
+**secondaries** to set the incorrect database connection pool size. [The
+fix](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24021) was
+shipped in 12.7.5.
## Updating to GitLab 12.2
diff --git a/doc/development/api_graphql_styleguide.md b/doc/development/api_graphql_styleguide.md
index 9ff5603e8a4..e367fc67107 100644
--- a/doc/development/api_graphql_styleguide.md
+++ b/doc/development/api_graphql_styleguide.md
@@ -226,6 +226,33 @@ end
policies at once. The fields for these will all have be non-nullable
booleans with a default description.
+## Feature flags
+
+Features controlled by feature flags often provide GraphQL functionality. When a feature
+is enabled or disabled by a feature flag, the related GraphQL functionality should also
+be enabled or disabled.
+
+Fields can be put behind a feature flag so they can conditionally return the value for
+the field depending on if the feature has been enabled or not.
+
+GraphQL feature flags use the common
+[GitLab feature flag](../development/feature_flags.md) system, and can be added to a
+field using the `feature_key` property.
+
+For example:
+
+```ruby
+field :test_field, type: GraphQL::STRING_TYPE,
+ null: false,
+ description: 'Some test field',
+ feature_key: :some_feature_key
+```
+
+In the above example, the `test_field` field will only be returned if
+the `some_feature_key` feature flag is enabled.
+
+If the feature flag is not enabled, an error will be returned saying the field does not exist.
+
## Enums
GitLab GraphQL enums are defined in `app/graphql/types`. When defining new enums, the
diff --git a/doc/development/documentation/index.md b/doc/development/documentation/index.md
index ffb8178326b..2022beb69fa 100644
--- a/doc/development/documentation/index.md
+++ b/doc/development/documentation/index.md
@@ -520,7 +520,7 @@ also check [the issue](https://gitlab.com/gitlab-org/gitlab-foss/issues/64352) t
tracked the changes required to implement these rules, and details which rules were
on or off when markdownlint was enabled on the docs.
-#### `Vale`
+#### Vale
[Vale](https://errata-ai.github.io/vale/) is a grammar, style, and word usage linter
for the English language. Vale's configuration is stored in the
diff --git a/doc/development/python_guide/index.md b/doc/development/python_guide/index.md
index af1ec44bf3d..fae2e495417 100644
--- a/doc/development/python_guide/index.md
+++ b/doc/development/python_guide/index.md
@@ -1,6 +1,6 @@
# Python Development Guidelines
-GitLab requires Python as a dependency for [reStructuredText](http://docutils.sourceforge.net/rst.html)
+GitLab requires Python as a dependency for [reStructuredText](https://docutils.sourceforge.io/rst.html)
markup rendering.
As of GitLab 11.10, we require Python 3.
@@ -51,7 +51,7 @@ omf install pyenv
## Dependency management
While GitLab doesn't directly contain any Python scripts, because we depend on Python to render
-[reStructuredText](http://docutils.sourceforge.net/rst.html) markup, we need to keep track on dependencies
+[reStructuredText](https://docutils.sourceforge.io/rst.html) markup, we need to keep track on dependencies
on the main project level, so we can run that on our development machines.
Recently, an equivalent to the `Gemfile` and the [Bundler](https://bundler.io/) project has been introduced to Python:
diff --git a/doc/development/testing_guide/end_to_end/index.md b/doc/development/testing_guide/end_to_end/index.md
index 7e325bd5f42..b2ecffc593c 100644
--- a/doc/development/testing_guide/end_to_end/index.md
+++ b/doc/development/testing_guide/end_to_end/index.md
@@ -179,6 +179,5 @@ you can find an issue you would like to work on in
[gitlab-issues]: https://gitlab.com/gitlab-org/gitlab/issues?label_name[]=QA&label_name[]=test
[test environment orchestration scenarios]: https://gitlab.com/gitlab-org/gitlab-qa/tree/master/lib/gitlab/qa/scenario
[instance-level scenarios]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa/qa/specs/features
-[Page objects documentation]: https://gitlab.com/gitlab-org/gitlab/tree/master/qa/qa/page/README.md
[instance-qa-readme]: https://gitlab.com/gitlab-org/gitlab/tree/master/qa/README.md
[instance-qa-examples]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/qa/qa
diff --git a/doc/development/testing_guide/flaky_tests.md b/doc/development/testing_guide/flaky_tests.md
index 5628ca633f6..94c45f5d2f7 100644
--- a/doc/development/testing_guide/flaky_tests.md
+++ b/doc/development/testing_guide/flaky_tests.md
@@ -55,7 +55,7 @@ This was originally implemented in: <https://gitlab.com/gitlab-org/gitlab-foss/m
## Problems we had in the past at GitLab
-- [`rspec-retry` is bitting us when some API specs fail](https://gitlab.com/gitlab-org/gitlab-foss/issues/29242): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9825>
+- [`rspec-retry` is biting us when some API specs fail](https://gitlab.com/gitlab-org/gitlab-foss/issues/29242): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9825>
- [Sporadic RSpec failures due to `PG::UniqueViolation`](https://gitlab.com/gitlab-org/gitlab-foss/issues/28307#note_24958837): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/9846>
- Follow-up: <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/10688>
- [Capybara.reset_session! should be called before requests are blocked](https://gitlab.com/gitlab-org/gitlab-foss/issues/33779): <https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/12224>
diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md
index 9b98c52c4b8..b8e774c57a1 100644
--- a/doc/user/project/import/github.md
+++ b/doc/user/project/import/github.md
@@ -42,7 +42,7 @@ assignees in the database of the GitLab instance (note that pull requests are ca
For this association to succeed, prior to the import, each GitHub author and assignee in the repository must
have either previously logged in to a GitLab account using the GitHub icon **or** have a GitHub account with
-a [public email address](https://help.github.com/en/articles/setting-your-commit-email-address) that
+a [public email address](https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address) that
matches their GitLab account's email address.
If a user referenced in the project is not found in GitLab's database, the project creator (typically the user
diff --git a/doc/user/project/integrations/github.md b/doc/user/project/integrations/github.md
index b8b073af2a4..f84f1bb06cd 100644
--- a/doc/user/project/integrations/github.md
+++ b/doc/user/project/integrations/github.md
@@ -14,7 +14,7 @@ and is automatically configured on [GitHub import](../../../integration/github.m
### Complete these steps on GitHub
-This integration requires a [GitHub API token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line)
+This integration requires a [GitHub API token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)
with `repo:status` access granted:
1. Go to your "Personal access tokens" page at <https://github.com/settings/tokens>
diff --git a/doc/user/project/integrations/img/grafana_embedded.png b/doc/user/project/integrations/img/grafana_embedded.png
new file mode 100644
index 00000000000..bc9018c97af
--- /dev/null
+++ b/doc/user/project/integrations/img/grafana_embedded.png
Binary files differ
diff --git a/doc/user/project/integrations/microsoft_teams.md b/doc/user/project/integrations/microsoft_teams.md
index ca32689910c..f2a94de9906 100644
--- a/doc/user/project/integrations/microsoft_teams.md
+++ b/doc/user/project/integrations/microsoft_teams.md
@@ -2,7 +2,8 @@
## On Microsoft Teams
-To enable Microsoft Teams integration you must create an incoming webhook integration on Microsoft Teams by following the steps described in this [document](https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/connectors/connectors-using#setting-up-a-custom-incoming-webhook).
+To enable Microsoft Teams integration you must create an incoming webhook integration on Microsoft
+Teams by following the steps described in [Sending messages to Connectors and Webhooks](https://docs.microsoft.com/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using).
## On GitLab
diff --git a/doc/user/project/integrations/prometheus.md b/doc/user/project/integrations/prometheus.md
index 90026833ec6..0036425cfdf 100644
--- a/doc/user/project/integrations/prometheus.md
+++ b/doc/user/project/integrations/prometheus.md
@@ -566,24 +566,24 @@ Grafana metrics can be embedded in [GitLab Flavored Markdown](../../markdown.md)
#### Embedding charts via Grafana Rendered Images
-It is possible to embed live [Grafana](https://docs.gitlab.com/omnibus/settings/grafana.html) charts in issues, as a [direct linked rendered image](https://grafana.com/docs/reference/sharing/#direct-link-rendered-image).
+It is possible to embed live [Grafana](https://docs.gitlab.com/omnibus/settings/grafana.html) charts in issues, as a [direct linked rendered image](https://grafana.com/docs/grafana/latest/reference/share_panel/#direct-link-rendered-image).
The sharing dialog within Grafana provides the link, as highlighted below.
![Grafana Direct Linked Rendered Image](img/grafana_live_embed.png)
NOTE: **Note:**
-For this embed to display correctly the Grafana instance must be available to the target user, either as a public dashboard or on the same network.
+For this embed to display correctly, the Grafana instance must be available to the target user, either as a public dashboard or on the same network.
Copy the link and add an image tag as [inline HTML](../../markdown.md#inline-html) in your Markdown. You may tweak the query parameters as required. For instance, removing the `&from=` and `&to=` parameters will give you a live chart. Here is example markup for a live chart from GitLab's public dashboard:
```html
-<img src="https://dashboards.gitlab.com/render/d-solo/RZmbBr7mk/gitlab-triage?orgId=1&refresh=30s&var-env=gprd&var-environment=gprd&var-prometheus=prometheus-01-inf-gprd&var-prometheus_app=prometheus-app-01-inf-gprd&var-backend=All&var-type=All&var-stage=main&panelId=1247&width=1000&height=300"/>
+<img src="https://dashboards.gitlab.com/d/RZmbBr7mk/gitlab-triage?orgId=1&refresh=30s&var-env=gprd&var-environment=gprd&var-prometheus=prometheus-01-inf-gprd&var-prometheus_app=prometheus-app-01-inf-gprd&var-backend=All&var-type=All&var-stage=main&from=1580444107655&to=1580465707655"/>
```
This will render like so:
-<img src="https://dashboards.gitlab.com/render/d-solo/RZmbBr7mk/gitlab-triage?orgId=1&refresh=30s&var-env=gprd&var-environment=gprd&var-prometheus=prometheus-01-inf-gprd&var-prometheus_app=prometheus-app-01-inf-gprd&var-backend=All&var-type=All&var-stage=main&panelId=1247&width=1000&height=300"/>
+![Grafana dashboard embedded preview](img/grafana_embedded.png)
#### Embedding charts via integration with Grafana HTTP API
@@ -600,7 +600,7 @@ Prerequisites for embedding from a Grafana instance:
##### Setting up the Grafana integration
-1. [Generate an Admin-level API Token in Grafana.](https://grafana.com/docs/http_api/auth/#create-api-token)
+1. [Generate an Admin-level API Token in Grafana.](https://grafana.com/docs/grafana/latest/http_api/auth/#create-api-token)
1. In your GitLab project, navigate to **Settings > Operations > Grafana Authentication**.
1. To enable the integration, check the "Active" checkbox.
1. For "Grafana URL", enter the base URL of the Grafana instance.
diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md
index cacacec5671..b7eb20fe573 100644
--- a/doc/user/project/issue_board.md
+++ b/doc/user/project/issue_board.md
@@ -1,6 +1,6 @@
# Issue Boards
-> [Introduced][ce-5554] in [GitLab 8.11](https://about.gitlab.com/blog/2016/08/22/gitlab-8-11-released/#issue-board).
+> [Introduced][ce-5554] in [GitLab 8.11](https://about.gitlab.com/releases/2016/08/22/gitlab-8-11-released/#issue-board).
## Overview
@@ -194,7 +194,7 @@ of the issue card you have selected and drop it in the new list you want.
### Configurable Issue Boards **(STARTER)**
-> Introduced in [GitLab Starter Edition 10.2](https://about.gitlab.com/blog/2017/11/22/gitlab-10-2-released/#issue-boards-configuration).
+> Introduced in [GitLab Starter Edition 10.2](https://about.gitlab.com/releases/2017/11/22/gitlab-10-2-released/#issue-boards-configuration).
An Issue Board can be associated with a GitLab [Milestone](milestones/index.md#milestones),
[Labels](labels.md), Assignee and Weight
@@ -214,7 +214,7 @@ If you don't have editing permission in a board, you're still able to see the co
### Focus mode **(STARTER)**
-> Introduced in [GitLab Starter 9.1](https://about.gitlab.com/blog/2017/04/22/gitlab-9-1-released/#issue-boards-focus-mode-ees-eep).
+> Introduced in [GitLab Starter 9.1](https://about.gitlab.com/releases/2017/04/22/gitlab-9-1-released/#issue-boards-focus-mode-ees-eep).
Click the button at the top right to toggle focus mode on and off. In focus mode, the navigation UI is hidden, allowing you to focus on issues in the board.
@@ -230,7 +230,7 @@ especially in combination with [assignee lists](#assignee-lists-premium).
### Group Issue Boards **(PREMIUM)**
-> Introduced in [GitLab Premium 10.0](https://about.gitlab.com/blog/2017/09/22/gitlab-10-0-released/#group-issue-boards).
+> Introduced in [GitLab Premium 10.0](https://about.gitlab.com/releases/2017/09/22/gitlab-10-0-released/#group-issue-boards).
Accessible at the group navigation level, a group issue board offers the same features as a project-level board,
but it can display issues from all projects in that
@@ -239,7 +239,7 @@ boards. When updating milestones and labels for an issue through the sidebar upd
group-level objects are available.
NOTE: **Note:**
-Multiple group issue boards were originally introduced in [GitLab 10.0 Premium](https://about.gitlab.com/blog/2017/09/22/gitlab-10-0-released/#group-issue-boards) and
+Multiple group issue boards were originally introduced in [GitLab 10.0 Premium](https://about.gitlab.com/releases/2017/09/22/gitlab-10-0-released/#group-issue-boards) and
one group issue board per group was made available in GitLab 10.6 Core.
![Group issue board](img/group_issue_board.png)
diff --git a/doc/user/project/issues/csv_export.md b/doc/user/project/issues/csv_export.md
index 844b27ae297..16c7bd2f4ef 100644
--- a/doc/user/project/issues/csv_export.md
+++ b/doc/user/project/issues/csv_export.md
@@ -1,6 +1,6 @@
# Export Issues to CSV **(STARTER)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/blog/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep).
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/1126) in [GitLab Starter 9.0](https://about.gitlab.com/releases/2017/03/22/gitlab-9-0-released/#export-issues-ees-eep).
Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment.
diff --git a/doc/user/project/issues/multiple_assignees_for_issues.md b/doc/user/project/issues/multiple_assignees_for_issues.md
index b442f70a061..fefc690e073 100644
--- a/doc/user/project/issues/multiple_assignees_for_issues.md
+++ b/doc/user/project/issues/multiple_assignees_for_issues.md
@@ -2,7 +2,7 @@
> **Note:**
[Introduced](https://gitlab.com/gitlab-org/gitlab/issues/1904)
-in [GitLab Starter 9.2](https://about.gitlab.com/blog/2017/05/22/gitlab-9-2-released/#multiple-assignees-for-issues).
+in [GitLab Starter 9.2](https://about.gitlab.com/releases/2017/05/22/gitlab-9-2-released/#multiple-assignees-for-issues).
## Overview
diff --git a/doc/user/project/merge_requests/merge_request_approvals.md b/doc/user/project/merge_requests/merge_request_approvals.md
index 1a61b0b8633..fa30f4e2eb4 100644
--- a/doc/user/project/merge_requests/merge_request_approvals.md
+++ b/doc/user/project/merge_requests/merge_request_approvals.md
@@ -4,7 +4,7 @@ type: reference, concepts
# Merge request approvals **(STARTER)**
-> Introduced in [GitLab Enterprise Edition 7.12](https://about.gitlab.com/blog/2015/06/22/gitlab-7-12-released/#merge-request-approvers-ee-only).
+> Introduced in [GitLab Enterprise Edition 7.12](https://about.gitlab.com/releases/2015/06/22/gitlab-7-12-released/#merge-request-approvers-ee-only).
Merge request approvals enable enforced code review by requiring specified people
to approve a merge request before it can be merged.
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/dns_concepts.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/dns_concepts.md
index e561da423f4..6b02a941060 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/dns_concepts.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/dns_concepts.md
@@ -29,7 +29,7 @@ for the most popular hosting services:
- [Amazon](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html)
- [Bluehost](https://my.bluehost.com/cgi/help/559)
-- [CloudFlare](https://support.cloudflare.com/hc/en-us/articles/200169096-How-do-I-add-A-records-)
+- [CloudFlare](https://support.cloudflare.com/hc/en-us/articles/201720164-Creating-a-Cloudflare-account-and-adding-a-website)
- [cPanel](https://documentation.cpanel.net/display/84Docs/Edit+DNS+Zone)
- [DreamHost](https://help.dreamhost.com/hc/en-us/articles/215414867-How-do-I-add-custom-DNS-records-)
- [Go Daddy](https://www.godaddy.com/help/add-an-a-record-19238)
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
index e092a45f770..07bd2a61eb8 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
@@ -135,7 +135,7 @@ If you're using CloudFlare, check
> - **Do not** add any special chars after the default Pages
domain. E.g., don't point `subdomain.domain.com` to
or `namespace.gitlab.io/`. Some domain hosting providers may request a trailing dot (`namespace.gitlab.io.`), though.
-> - GitLab Pages IP on GitLab.com [was changed](https://about.gitlab.com/blog/2017/03/06/we-are-changing-the-ip-of-gitlab-pages-on-gitlab-com/) in 2017.
+> - GitLab Pages IP on GitLab.com [was changed](https://about.gitlab.com/releases/2017/03/06/we-are-changing-the-ip-of-gitlab-pages-on-gitlab-com/) in 2017.
> - GitLab Pages IP on GitLab.com [has changed](https://about.gitlab.com/blog/2018/07/19/gcp-move-update/#gitlab-pages-and-custom-domains)
from `52.167.214.135` to `35.185.44.232` in 2018.
@@ -162,7 +162,7 @@ from the GitLab project.
> - Domain verification is **required for GitLab.com users**;
for GitLab self-managed instances, your GitLab administrator has the option
to [disabled custom domain verification](../../../../administration/pages/index.md#custom-domain-verification).
-> - [DNS propagation may take some time (up to 24h)](https://www.inmotionhosting.com/support/domain-names/dns-nameserver-changes/domain-names-dns-changes),
+> - [DNS propagation may take some time (up to 24h)](https://www.inmotionhosting.com/support/domain-names/dns-nameserver-changes/domain-names-dns-changes/),
although it's usually a matter of minutes to complete. Until it does, verification
will fail and attempts to visit your domain will respond with a 404.
> - Once your domain has been verified, leave the verification record
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/ssl_tls_concepts.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/ssl_tls_concepts.md
index ac0a1f1ceba..cf2f0cbd12c 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/ssl_tls_concepts.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/ssl_tls_concepts.md
@@ -55,7 +55,7 @@ reiterating the importance of HTTPS.
GitLab Pages accepts certificates provided in the [PEM](https://support.quovadisglobal.com/kb/a37/what-is-pem-format.aspx) format, issued by
[Certificate Authorities](https://en.wikipedia.org/wiki/Certificate_authority) or as
-[self-signed certificates](https://en.wikipedia.org/wiki/Self-signed_certificate). Note that [self-signed certificates are typically not used](https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/self-signed-certificates-secure-so-why-ban/)
+[self-signed certificates](https://en.wikipedia.org/wiki/Self-signed_certificate). Note that [self-signed certificates are typically not used](https://www.mcafee.com/blogs/other-blogs/mcafee-labs/self-signed-certificates-secure-so-why-ban/)
for public websites for security reasons and to ensure that browsers trust your site's certificate.
There are various kinds of certificates, each one
diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md
index abd67c90dd6..bcd306e6382 100644
--- a/doc/user/project/pages/index.md
+++ b/doc/user/project/pages/index.md
@@ -126,5 +126,5 @@ the [admin guide](../../../administration/pages/index.md).
## More information about GitLab Pages
-- Announcement (2016-12-24): ["We're bringing GitLab Pages to CE"](https://about.gitlab.com/blog/2016/12/24/were-bringing-gitlab-pages-to-community-edition/)
-- Announcement (2017-03-06): ["We are changing the IP of GitLab Pages on GitLab.com"](https://about.gitlab.com/blog/2017/03/06/we-are-changing-the-ip-of-gitlab-pages-on-gitlab-com/)
+- Announcement (2016-12-24): ["We're bringing GitLab Pages to CE"](https://about.gitlab.com/releases/2016/12/24/were-bringing-gitlab-pages-to-community-edition/)
+- Announcement (2017-03-06): ["We are changing the IP of GitLab Pages on GitLab.com"](https://about.gitlab.com/releases/2017/03/06/we-are-changing-the-ip-of-gitlab-pages-on-gitlab-com/)
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index 8be7320dcb9..a081a8f5ae4 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -74,7 +74,7 @@ according to the markup language.
| --------------- | ---------- |
| Plain text | `txt` |
| [Markdown](../../markdown.md) | `mdown`, `mkd`, `mkdn`, `md`, `markdown` |
-| [reStructuredText](http://docutils.sourceforge.net/rst.html) | `rst` |
+| [reStructuredText](https://docutils.sourceforge.io/rst.html) | `rst` |
| [AsciiDoc](../../asciidoc.md) | `adoc`, `ad`, `asciidoc` |
| [Textile](https://textile-lang.com/) | `textile` |
| [rdoc](http://rdoc.sourceforge.net/doc/index.html) | `rdoc` |
diff --git a/doc/user/project/repository/repository_mirroring.md b/doc/user/project/repository/repository_mirroring.md
index aa54c727fbe..49768748114 100644
--- a/doc/user/project/repository/repository_mirroring.md
+++ b/doc/user/project/repository/repository_mirroring.md
@@ -83,7 +83,7 @@ mirror.
To set up a mirror from GitLab to GitHub, you need to follow these steps:
-1. Create a [GitHub personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) with the `public_repo` box checked.
+1. Create a [GitHub personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) with the `public_repo` box checked.
1. Fill in the **Git repository URL** field using this format: `https://<your_github_username>@github.com/<your_github_group>/<your_github_project>.git`.
1. Fill in **Password** field with your GitHub personal access token.
1. Click the **Mirror repository** button.
@@ -204,7 +204,7 @@ fingerprints in the open for you to check:
- [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/regions.html#regions-fingerprints)
- [Bitbucket](https://confluence.atlassian.com/bitbucket/ssh-keys-935365775.html)
-- [GitHub](https://help.github.com/en/articles/githubs-ssh-key-fingerprints)
+- [GitHub](https://help.github.com/en/github/authenticating-to-github/githubs-ssh-key-fingerprints)
- [GitLab.com](../../gitlab_com/index.md#ssh-host-keys-fingerprints)
- [Launchpad](https://help.launchpad.net/SSHFingerprints)
- [Savannah](http://savannah.gnu.org/maintenance/SshAccess/)
diff --git a/doc/user/project/service_desk.md b/doc/user/project/service_desk.md
index d0c32bafe19..131e2413e5f 100644
--- a/doc/user/project/service_desk.md
+++ b/doc/user/project/service_desk.md
@@ -1,6 +1,6 @@
# Service Desk **(PREMIUM)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/149) in [GitLab Premium 9.1](https://about.gitlab.com/blog/2017/04/22/gitlab-9-1-released/#service-desk-eep).
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/149) in [GitLab Premium 9.1](https://about.gitlab.com/releases/2017/04/22/gitlab-9-1-released/#service-desk-eep).
## Overview
diff --git a/qa/qa/scenario/test/sanity/selectors.rb b/qa/qa/scenario/test/sanity/selectors.rb
index 99497cbe0ad..b2c90ab2e2a 100644
--- a/qa/qa/scenario/test/sanity/selectors.rb
+++ b/qa/qa/scenario/test/sanity/selectors.rb
@@ -34,8 +34,9 @@ module QA
Please update the code in `qa/` directory to make it match
current changes in this merge request.
- For more help see documentation in `qa/page/README.md` file or
- ask for help on #quality channel on Slack (GitLab Team only).
+ For more help see documentation in
+ https://docs.gitlab.com/ee/development/testing_guide/end_to_end/page_objects.html
+ or ask for help on #quality channel on Slack (GitLab Team only).
If you are not a Team Member, and you still need help to
contribute, please open an issue in GitLab QA issue tracker.
diff --git a/spec/frontend/releases/list/components/release_block_header_spec.js b/spec/frontend/releases/list/components/release_block_header_spec.js
new file mode 100644
index 00000000000..1f2331635d6
--- /dev/null
+++ b/spec/frontend/releases/list/components/release_block_header_spec.js
@@ -0,0 +1,56 @@
+import { shallowMount } from '@vue/test-utils';
+import { cloneDeep, merge } from 'lodash';
+import { GlLink } from '@gitlab/ui';
+import ReleaseBlockHeader from '~/releases/list/components/release_block_header.vue';
+import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
+import { release as originalRelease } from '../../mock_data';
+
+describe('Release block header', () => {
+ let wrapper;
+ let release;
+
+ const factory = (releaseUpdates = {}) => {
+ wrapper = shallowMount(ReleaseBlockHeader, {
+ propsData: {
+ release: merge({}, release, releaseUpdates),
+ },
+ });
+ };
+
+ beforeEach(() => {
+ release = convertObjectPropsToCamelCase(cloneDeep(originalRelease), {
+ ignoreKeyNames: ['_links'],
+ });
+ });
+
+ afterEach(() => {
+ wrapper.destroy();
+ });
+
+ const findHeader = () => wrapper.find('h2');
+ const findHeaderLink = () => findHeader().find(GlLink);
+
+ describe('when _links.self is provided', () => {
+ beforeEach(() => {
+ factory();
+ });
+
+ it('renders the title as a link', () => {
+ const link = findHeaderLink();
+
+ expect(link.text()).toBe(release.name);
+ expect(link.attributes('href')).toBe(release._links.self);
+ });
+ });
+
+ describe('when _links.self is missing', () => {
+ beforeEach(() => {
+ factory({ _links: { self: null } });
+ });
+
+ it('renders the title as text', () => {
+ expect(findHeader().text()).toBe(release.name);
+ expect(findHeaderLink().exists()).toBe(false);
+ });
+ });
+});
diff --git a/spec/frontend/releases/mock_data.js b/spec/frontend/releases/mock_data.js
index 630f14d3a73..c2d3f00550a 100644
--- a/spec/frontend/releases/mock_data.js
+++ b/spec/frontend/releases/mock_data.js
@@ -108,6 +108,7 @@ export const release = {
],
},
_links: {
+ self: 'http://0.0.0.0:3001/root/release-test/-/releases/v0.3',
edit_url: 'http://0.0.0.0:3001/root/release-test/-/releases/v0.3/edit',
},
};