Commit 9742e6ef authored by Yorick Peterse's avatar Yorick Peterse

Merge branch '11-11-stable-prepare-rc5' into '11-11-stable'

Prepare 11.11.0-rc5 release

See merge request gitlab-org/gitlab-ce!28537
parents 406fe0e9 9f7af69b
...@@ -147,7 +147,7 @@ function deferredInitialisation() { ...@@ -147,7 +147,7 @@ function deferredInitialisation() {
const canaryBadge = document.querySelector('.js-canary-badge'); const canaryBadge = document.querySelector('.js-canary-badge');
const canaryLink = document.querySelector('.js-canary-link'); const canaryLink = document.querySelector('.js-canary-link');
if (canaryBadge) { if (canaryBadge) {
canaryBadge.classList.add('hidden'); canaryBadge.classList.remove('hidden');
} }
if (canaryLink) { if (canaryLink) {
canaryLink.classList.add('hidden'); canaryLink.classList.add('hidden');
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
.ci-variable-row-body.border-bottom .ci-variable-row-body.border-bottom
%input.js-ci-variable-input-id{ type: "hidden", name: id_input_name, value: id } %input.js-ci-variable-input-id{ type: "hidden", name: id_input_name, value: id }
%input.js-ci-variable-input-destroy{ type: "hidden", name: destroy_input_name } %input.js-ci-variable-input-destroy{ type: "hidden", name: destroy_input_name }
%select.js-ci-variable-input-variable-type.ci-variable-body-item.form-control.select-control.table-section.section-15{ name: variable_type_input_name } %select.js-ci-variable-input-variable-type.ci-variable-body-item.form-control.select-control.custom-select.table-section.section-15{ name: variable_type_input_name }
= options_for_select(ci_variable_type_options, variable_type) = options_for_select(ci_variable_type_options, variable_type)
%input.js-ci-variable-input-key.ci-variable-body-item.qa-ci-variable-input-key.form-control.table-section.section-15{ type: "text", %input.js-ci-variable-input-key.ci-variable-body-item.qa-ci-variable-input-key.form-control.table-section.section-15{ type: "text",
name: key_input_name, name: key_input_name,
......
...@@ -18,8 +18,9 @@ ...@@ -18,8 +18,9 @@
%span.logo-text.d-none.d-lg-block.prepend-left-8 %span.logo-text.d-none.d-lg-block.prepend-left-8
= logo_text = logo_text
- if Gitlab.com? - if Gitlab.com?
%span.js-canary-badge.badge.badge-pill.green-badge.align-self-center = link_to 'https://next.gitlab.com', class: 'label-link js-canary-badge canary-badge bg-transparent hidden', target: :_blank do
= _('Next') %span.color-label.has-tooltip.badge.badge-pill.green-badge
= _('Next')
- if current_user - if current_user
= render "layouts/nav/dashboard" = render "layouts/nav/dashboard"
......
---
title: Wait for pipeline creation to complete before accepting a MR via API
merge_request: 27978
author: kerrizor
type: fixed
---
title: Adds arrow icons to select option in CI/CD settings
merge_request:
author:
type: fixed
---
title: Next badge must visible when canary flag is true
merge_request:
author:
type: fixed
---
title: Fix Rugged get_tree_entries recursive flag not working
merge_request: 28494
author:
type: fixed
...@@ -70,15 +70,18 @@ when a merge request was created or updated. For example: ...@@ -70,15 +70,18 @@ when a merge request was created or updated. For example:
## Pipelines for Merged Results **[PREMIUM]** ## Pipelines for Merged Results **[PREMIUM]**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10.
> This feature is disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186), but [can be enabled manually](#enabling-pipelines-for-merged-results).
It's possible for your source and target branches to diverge, which can result It's possible for your source and target branches to diverge, which can result
in the scenario that source branch's pipeline was green, the target's pipeline was green, in the scenario that source branch's pipeline was green, the target's pipeline was green,
but the combined output fails. By having your merge request pipeline automatically but the combined output fails.
By having your merge request pipeline automatically
create a new ref that contains the merge result of the source and target branch create a new ref that contains the merge result of the source and target branch
(then running a pipeline on that ref), we can better test that the combined result (then running a pipeline on that ref), we can better test that the combined result
is also valid. is also valid.
From GitLab 11.10, pipelines for merge requests run by default GitLab can run pipelines for merge requests
on this merged result. That is, where the source and target branches are combined into a on this merged result. That is, where the source and target branches are combined into a
new ref and a pipeline for this ref validates the result prior to merging. new ref and a pipeline for this ref validates the result prior to merging.
...@@ -95,7 +98,7 @@ get out of WIP status or resolve merge conflicts as soon as possible. ...@@ -95,7 +98,7 @@ get out of WIP status or resolve merge conflicts as soon as possible.
### Enabling Pipelines for Merged Results ### Enabling Pipelines for Merged Results
This feature disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186). It can be enabled at the project level: To enable pipelines on merged results at the project level:
1. Visit your project's **Settings > General** and expand **Merge requests**. 1. Visit your project's **Settings > General** and expand **Merge requests**.
1. Check **Merge pipelines will try to validate the post-merge result prior to merging**. 1. Check **Merge pipelines will try to validate the post-merge result prior to merging**.
......
...@@ -330,6 +330,19 @@ GitLab provides API endpoints to: ...@@ -330,6 +330,19 @@ GitLab provides API endpoints to:
- [Triggering pipelines through the API](triggers/README.md). - [Triggering pipelines through the API](triggers/README.md).
- [Pipeline triggers API](../api/pipeline_triggers.md). - [Pipeline triggers API](../api/pipeline_triggers.md).
### Start multiple manual actions in a stage
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27188) in GitLab 11.11.
Multiple manual actions in a single stage can be started at the same time using the "Play all manual" button.
Once the user clicks this button, each individual manual action will be triggered and refreshed
to an updated status.
This functionality is only available:
- For users with at least Developer access.
- If the the stage contains [manual actions](#manual-actions-from-pipeline-graphs).
## Security on protected branches ## Security on protected branches
A strict security model is enforced when pipelines are executed on A strict security model is enforced when pipelines are executed on
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
## Overview ## Overview
Similar to [project Kubernetes Similar to [project-level](../../project/clusters/index.md) and
clusters](../../project/clusters/index.md), Group-level Kubernetes [instance-level](../../instance/clusters/index.md) Kubernetes clusters,
clusters allow you to connect a Kubernetes cluster to your group, group-level Kubernetes clusters allow you to connect a Kubernetes cluster to
enabling you to use the same cluster across multiple projects. your group, enabling you to use the same cluster across multiple projects.
## Installing applications ## Installing applications
......
# Instance-level Kubernetes clusters
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/39840) in GitLab 11.11.
> Instance-level cluster integration is currently in [Beta](https://about.gitlab.com/handbook/product/#alpha-beta-ga).
## Overview
Similar to [project-level](../../project/clusters/index.md)
and [group-level](../../group/clusters/index.md) Kubernetes clusters,
instance-level Kubernetes clusters allow you to connect a Kubernetes cluster to
the GitLab instance, which enables you to use the same cluster across multiple
projects.
## Cluster precedence
GitLab will try match to clusters in the following order:
- Project-level clusters
- Group-level clusters
- Instance level
To be selected, the cluster must be enabled and
match the [environment selector](../../../ci/environments.md#scoping-environments-with-specs-premium).
...@@ -19,8 +19,10 @@ or provide the credentials to an [existing Kubernetes cluster](#adding-an-existi ...@@ -19,8 +19,10 @@ or provide the credentials to an [existing Kubernetes cluster](#adding-an-existi
NOTE: **Note:** NOTE: **Note:**
From [GitLab 11.6](https://gitlab.com/gitlab-org/gitlab-ce/issues/34758) you From [GitLab 11.6](https://gitlab.com/gitlab-org/gitlab-ce/issues/34758) you
can also associate a Kubernetes cluster to your groups. Learn more about can also associate a Kubernetes cluster to your groups and from
[group Kubernetes clusters](../../group/clusters/index.md). [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-ce/issues/39840),
to the GitLab instance. Learn more about [group-level](../../group/clusters/index.md)
and [instance-level](../../instance/clusters/index.md) Kubernetes clusters.
## Adding and creating a new GKE cluster via GitLab ## Adding and creating a new GKE cluster via GitLab
...@@ -423,9 +425,9 @@ To uninstall an application: ...@@ -423,9 +425,9 @@ To uninstall an application:
1. Select your cluster. 1. Select your cluster.
1. Click the **Uninstall** button for the application. 1. Click the **Uninstall** button for the application.
Support for uninstalling all applications will be progressively Support for uninstalling all applications is planned for progressive rollout.
introduced (see [related To follow progress, see [the relevant
epic](https://gitlab.com/groups/gitlab-org/-/epics/1201)). epic](https://gitlab.com/groups/gitlab-org/-/epics/1201).
### Troubleshooting applications ### Troubleshooting applications
......
...@@ -168,7 +168,7 @@ Alerts can be used to trigger actions, like open an issue automatically. To conf ...@@ -168,7 +168,7 @@ Alerts can be used to trigger actions, like open an issue automatically. To conf
1. Optionally, select whether to send an email notification to the developers of the project. 1. Optionally, select whether to send an email notification to the developers of the project.
1. Click **Save changes**. 1. Click **Save changes**.
Once enabled, an issue will be opened automatically when an alert is triggered. To further customize the issue, you can add labels, mentions, or any other supported [quick action](../quick_actions.md) in the selected issue template. Once enabled, an issue will be opened automatically when an alert is triggered. The author of the issue will be the GitLab Alert Bot. To further customize the issue, you can add labels, mentions, or any other supported [quick action](../quick_actions.md) in the selected issue template.
If the metric exceeds the threshold of the alert for over 5 minutes, an email will be sent to all [Maintainers and Owners](../../permissions.md#project-members-permissions) of the project. If the metric exceeds the threshold of the alert for over 5 minutes, an email will be sent to all [Maintainers and Owners](../../permissions.md#project-members-permissions) of the project.
......
...@@ -367,10 +367,6 @@ module API ...@@ -367,10 +367,6 @@ module API
merge_request = find_project_merge_request(params[:merge_request_iid]) merge_request = find_project_merge_request(params[:merge_request_iid])
merge_when_pipeline_succeeds = to_boolean(params[:merge_when_pipeline_succeeds]) merge_when_pipeline_succeeds = to_boolean(params[:merge_when_pipeline_succeeds])
if merge_when_pipeline_succeeds || merge_request.merge_when_pipeline_succeeds
render_api_error!('Not allowed: pipeline does not exist', 405) unless merge_request.head_pipeline
end
# Merge request can not be merged # Merge request can not be merged
# because user dont have permissions to push into target branch # because user dont have permissions to push into target branch
unauthorized! unless merge_request.can_be_merged_by?(current_user) unauthorized! unless merge_request.can_be_merged_by?(current_user)
......
...@@ -43,6 +43,8 @@ module Gitlab ...@@ -43,6 +43,8 @@ module Gitlab
ordered_entries.concat(tree_entries_from_rugged(repository, sha, entry.path, true)) ordered_entries.concat(tree_entries_from_rugged(repository, sha, entry.path, true))
end end
end end
ordered_entries
end end
def rugged_populate_flat_path(repository, sha, path, entries) def rugged_populate_flat_path(repository, sha, path, entries)
......
...@@ -19,7 +19,9 @@ describe Gitlab::Git::Tree, :seed_helper do ...@@ -19,7 +19,9 @@ describe Gitlab::Git::Tree, :seed_helper do
it 'returns a list of tree objects' do it 'returns a list of tree objects' do
entries = described_class.where(repository, SeedRepo::Commit::ID, 'files', true) entries = described_class.where(repository, SeedRepo::Commit::ID, 'files', true)
expect(entries.count).to be >= 5 expect(entries.map(&:path)).to include('files/html',
'files/markdown/ruby-style-guide.md')
expect(entries.count).to be >= 10
expect(entries).to all(be_a(Gitlab::Git::Tree)) expect(entries).to all(be_a(Gitlab::Git::Tree))
end end
......
...@@ -1495,33 +1495,6 @@ describe API::MergeRequests do ...@@ -1495,33 +1495,6 @@ describe API::MergeRequests do
expect(json_response['merge_when_pipeline_succeeds']).to eq(true) expect(json_response['merge_when_pipeline_succeeds']).to eq(true)
end end
context 'when the MR requires pipeline success' do
it 'returns 405 if the pipeline is missing' do
allow_any_instance_of(MergeRequest)
.to receive(:merge_when_pipeline_succeeds).and_return(true)
allow_any_instance_of(MergeRequest).to receive(:head_pipeline).and_return(nil)
put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user)
expect(response).to have_gitlab_http_status(405)
expect(json_response['message']).to eq('Not allowed: pipeline does not exist')
end
end
context 'when the request requires pipeline success' do
it 'returns 405 if the pipeline is missing' do
allow_any_instance_of(MergeRequest)
.to receive(:merge_when_pipeline_succeeds).and_return(true)
allow_any_instance_of(MergeRequest).to receive(:head_pipeline).and_return(nil)
put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user),
params: { merge_when_pipeline_succeeds: true }
expect(response).to have_gitlab_http_status(405)
expect(json_response['message']).to eq('Not allowed: pipeline does not exist')
end
end
it "returns 404 for an invalid merge request IID" do it "returns 404 for an invalid merge request IID" do
put api("/projects/#{project.id}/merge_requests/12345/merge", user) put api("/projects/#{project.id}/merge_requests/12345/merge", user)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment