Commit f0707f41 authored by GitLab Bot's avatar GitLab Bot

Add latest changes from gitlab-org/gitlab@master

parent 31a49d92
......@@ -54,8 +54,8 @@ export default {
<template>
<li class="frequent-items-list-item-container">
<a :href="webUrl" class="clearfix">
<div class="frequent-items-item-avatar-container">
<img v-if="hasAvatar" :src="avatarUrl" class="avatar rect-avatar s32" />
<div class="frequent-items-item-avatar-container avatar-container rect-avatar s32">
<img v-if="hasAvatar" :src="avatarUrl" class="avatar s32" />
<identicon
v-else
:entity-id="itemId"
......
......@@ -99,8 +99,26 @@ export default () => {
window.gon && window.gon.features && window.gon.features.junitPipelineView;
if (testReportsEnabled) {
const fetchReportsAction = 'fetchReports';
testReportsStore.dispatch('setEndpoint', dataset.testReportEndpoint);
testReportsStore.dispatch('fetchReports');
const tabsElmement = document.querySelector('.pipelines-tabs');
const isTestTabActive = Boolean(
document.querySelector('.pipelines-tabs > li > a.test-tab.active'),
);
if (isTestTabActive) {
testReportsStore.dispatch(fetchReportsAction);
} else {
const tabClickHandler = e => {
if (e.target.className === 'test-tab') {
testReportsStore.dispatch(fetchReportsAction);
tabsElmement.removeEventListener('click', tabClickHandler);
}
};
tabsElmement.addEventListener('click', tabClickHandler);
}
// eslint-disable-next-line no-new
new Vue({
......
......@@ -3,33 +3,8 @@
background-color: $gray-light;
}
.gitlab-logo {
width: 80px;
height: 80px;
}
.signup-box-container {
max-width: 900px;
&.navless-container {
padding: 35px $gl-padding;
// overriding .devise-layout-html.navless-container to support the sticky footer
// without having a header on size xs
@include media-breakpoint-down(xs) {
padding: 65px $gl-padding; // height of footer
padding-top: $gl-padding;
}
}
}
.signup-heading h2 {
font-weight: $gl-font-weight-bold;
padding: 0 $gl-padding;
font-size: $gl-font-size-28;
@include media-breakpoint-down(md) {
font-size: $gl-font-size-large;
}
max-width: 960px;
}
.signup-box {
......
- page_title "Sign up"
- if experiment_enabled?(:signup_flow)
= render 'devise/shared/experimental_separate_sign_up_flow_box'
.row
.col-lg-7
%h1.mb-3.font-weight-bold.text-6.mt-0
= _("Speed up your DevOps<br>with GitLab").html_safe
%p.text-3
= _("GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security.")
.col-lg-5.order-12
.text-center.mb-3
%h2.font-weight-bold.gl-font-size-20= _('Register for GitLab')
= render 'devise/shared/experimental_separate_sign_up_flow_box'
= render 'devise/shared/sign_in_link'
- else
= render 'devise/shared/signup_box'
= render 'devise/shared/sign_in_link'
= render 'devise/shared/sign_in_link'
- content_for(:page_title, _('Register for GitLab'))
- max_first_name_length = max_last_name_length = 127
- max_username_length = 255
.signup-box.p-3.mb-2
......
!!! 5
%html.devise-layout-html.navless{ class: system_message_class }
= render "layouts/head"
%body.ui-indigo.signup-page.application.navless{ class: "#{client_class_list}", data: { page: body_data_page, qa_selector: 'signup_page' } }
= header_message
%body.ui-indigo.signup-page{ class: "#{client_class_list}", data: { page: body_data_page, qa_selector: 'signup_page' } }
= render "layouts/header/logo_with_title"
= render "layouts/init_client_detection_flags"
.page-wrap
.container.signup-box-container.navless-container.mt-0
.container.signup-box-container.navless-container
= render "layouts/broadcast"
.content
= render "layouts/flash"
.row.mb-6
.col-sm-8.offset-sm-2.col-md-6.offset-md-3.new-session-forms-container
= render_if_exists 'layouts/devise_help_text'
.text-center.signup-heading.mb-3
= image_tag(image_url('logo.svg'), class: 'gitlab-logo', alt: 'GitLab Logo')
- if content_for?(:page_title)
%h2= yield :page_title
= yield
= yield
%hr.footer-fixed
.footer-container
.container
......
%header.navbar.fixed-top.navbar-gitlab.justify-content-center
= render 'shared/logo.svg'
%span.logo-text.d-none.d-lg-block.prepend-left-8.pt-1
= render 'shared/logo_type.svg'
---
title: Test reports in the pipeline details page will now load when clicking the tests
tab.
merge_request: 24577
author:
type: changed
---
title: Fix k8s logs alert display state
merge_request: 24802
author:
type: fixed
---
title: dragoon20
merge_request: 24958
author: Jordan Fernando
type: fixed
---
title: Add Board Lists to Group Export
merge_request: 24863
author:
type: changed
......@@ -105,8 +105,8 @@ recorded:
- Ask for password reset
- Grant OAuth access
- Started/stopped user impersonation
- Changed username
- User was deleted
- Changed username ([introduced](https://gitlab.com/gitlab-org/gitlab/issues/7797) in GitLab 12.8)
- User was deleted ([introduced](https://gitlab.com/gitlab-org/gitlab/issues/251) in GitLab 12.8)
It is possible to filter particular actions by choosing an audit data type from
the filter dropdown box. You can further filter by specific group, project or user
......
......@@ -3,7 +3,7 @@
>**Note:**
> This endpoint was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9188) in GitLab 11.8.
Manages parent-child [epic relationships](../user/group/epics/index.md#multi-level-child-epics).
Manages parent-child [epic relationships](../user/group/epics/index.md#multi-level-child-epics-ultimate).
Every API call to `epic_links` must be authenticated.
......
......@@ -2663,6 +2663,8 @@ upstream_bridge:
#### `trigger` syntax for child pipeline
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/16094) in GitLab 12.7.
To create a [child pipeline](../parent_child_pipelines.md), specify the path to the
YAML file containing the CI config of the child pipeline:
......
......@@ -2,9 +2,10 @@
type: reference, howto
---
# Epics **(ULTIMATE)**
# Epics **(PREMIUM)**
> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.2.
> In [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/issues/37081), single-level Epics were moved to **(PREMIUM)**.
Epics let you manage your portfolio of projects more efficiently and with less
effort by tracking groups of issues that share a theme, across projects and
......@@ -15,7 +16,7 @@ milestones.
The possible relationships between epics and issues are:
- An epic is the parent of one or more issues.
- An epic is the parent of one or more child epics. For details see [Multi-level child epics](#multi-level-child-epics).
- An epic is the parent of one or more child epics. For details see [Multi-level child epics](#multi-level-child-epics-ultimate). **(ULTIMATE)**
```mermaid
graph TD
......@@ -100,7 +101,7 @@ To remove an issue from an epic:
1. Click on the <kbd>x</kbd> button in the epic's issue list.
1. Click **Remove** in the **Remove issue** warning message.
## Multi-level child epics
## Multi-level child epics **(ULTIMATE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/8333) in GitLab Ultimate 11.7.
......@@ -175,7 +176,7 @@ then the parent epic's start date will reflect the change and this will propagat
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/7327) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.10.
If your epic contains one or more [child epics](#multi-level-child-epics) which
If your epic contains one or more [child epics](#multi-level-child-epics-ultimate) which
have a [start or due date](#start-date-and-due-date), a
[roadmap](../roadmap/index.md) view of the child epics is listed under the parent epic.
......
......@@ -8,10 +8,14 @@ tree:
- :milestones
- :badges
- labels:
- :priorities
- :boards
- :priorities
- boards:
- lists:
- label:
- :priorities
- :board
- members:
- :user
- :user
included_attributes:
user:
......@@ -30,12 +34,16 @@ excluded_attributes:
methods:
labels:
- :type
label:
- :type
badges:
- :type
notes:
- :type
events:
- :action
lists:
- :list_type
preloads:
......@@ -45,16 +53,20 @@ ee:
tree:
group:
- epics:
- :parent
- :parent
- :award_emoji
- events:
- :push_event_payload
- notes:
- :author
- :award_emoji
- events:
- :push_event_payload
- notes:
- :author
- :award_emoji
- events:
- :push_event_payload
- :push_event_payload
- boards:
- :board_assignee
- labels:
- :priorities
- :board_assignee
- labels:
- :priorities
- lists:
- milestone:
- events:
- :push_event_payload
......@@ -9156,6 +9156,9 @@ msgstr ""
msgid "GitLab for Slack"
msgstr ""
msgid "GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security."
msgstr ""
msgid "GitLab is obtaining a Let's Encrypt SSL certificate for this domain. This process can take some time. Please try again later."
msgstr ""
......@@ -13360,9 +13363,6 @@ msgstr ""
msgid "PackageRegistry|NuGet Command"
msgstr ""
msgid "PackageRegistry|Package installation"
msgstr ""
msgid "PackageRegistry|Registry Setup"
msgstr ""
......@@ -18059,6 +18059,9 @@ msgstr ""
msgid "Specify the following URL during the Runner setup:"
msgstr ""
msgid "Speed up your DevOps<br>with GitLab"
msgstr ""
msgid "Squash commit message"
msgstr ""
......
......@@ -359,13 +359,27 @@ describe 'Pipeline', :js do
context 'test tabs' do
let(:pipeline) { create(:ci_pipeline, :with_test_reports, project: project) }
it 'shows badge counter in Tests tab' do
before do
visit_pipeline
wait_for_requests
end
it 'shows badge counter in Tests tab' do
expect(pipeline.test_reports.total_count).to eq(4)
expect(page.find('.js-test-report-badge-counter').text).to eq(pipeline.test_reports.total_count.to_s)
end
it 'does not call test_report.json endpoint by default', :js do
expect(page).to have_selector('.js-no-tests-to-show', visible: :all)
end
it 'does call test_report.json endpoint when tab is selected', :js do
find('.js-tests-tab-link').click
wait_for_requests
expect(page).to have_content('Test suites')
expect(page).to have_selector('.js-tests-detail', visible: :all)
end
end
context 'retrying jobs' do
......
......@@ -260,25 +260,101 @@
],
"boards": [
{
"id": 56,
"id": 173,
"project_id": null,
"created_at": "2019-11-20T17:27:16.808Z",
"updated_at": "2019-11-20T17:27:16.808Z",
"name": "Development",
"created_at": "2020-02-11T14:35:51.561Z",
"updated_at": "2020-02-11T14:35:51.561Z",
"name": "first board",
"milestone_id": null,
"group_id": 4351,
"weight": null,
"labels": []
},
{
"id": 57,
"project_id": null,
"created_at": "2019-11-20T17:27:41.118Z",
"updated_at": "2019-11-20T17:27:41.118Z",
"name": "Board!",
"milestone_id": 7638,
"group_id": 4351,
"weight": null,
"lists": [
{
"id": 189,
"board_id": 173,
"label_id": 271,
"list_type": "label",
"position": 0,
"created_at": "2020-02-11T14:35:57.131Z",
"updated_at": "2020-02-11T14:35:57.131Z",
"user_id": null,
"milestone_id": null,
"max_issue_count": 0,
"max_issue_weight": 0,
"label": {
"id": 271,
"title": "TSL",
"color": "#58796f",
"project_id": null,
"created_at": "2019-11-20T17:02:20.541Z",
"updated_at": "2020-02-06T15:44:52.048Z",
"template": false,
"description": null,
"group_id": 4351,
"type": "GroupLabel",
"priorities": []
},
"board": {
"id": 173,
"project_id": null,
"created_at": "2020-02-11T14:35:51.561Z",
"updated_at": "2020-02-11T14:35:51.561Z",
"name": "hi",
"milestone_id": null,
"group_id": 4351,
"weight": null
}
},
{
"id": 190,
"board_id": 173,
"label_id": 272,
"list_type": "label",
"position": 1,
"created_at": "2020-02-11T14:35:57.868Z",
"updated_at": "2020-02-11T14:35:57.868Z",
"user_id": null,
"milestone_id": null,
"max_issue_count": 0,
"max_issue_weight": 0,
"label": {
"id": 272,
"title": "Sosync",
"color": "#110320",
"project_id": null,
"created_at": "2019-11-20T17:02:20.532Z",
"updated_at": "2020-02-06T15:44:52.057Z",
"template": false,
"description": null,
"group_id": 4351,
"type": "GroupLabel",
"priorities": []
},
"board": {
"id": 173,
"project_id": null,
"created_at": "2020-02-11T14:35:51.561Z",
"updated_at": "2020-02-11T14:35:51.561Z",
"name": "hi",
"milestone_id": null,
"group_id": 4351,
"weight": null
}
},
{
"id": 188,
"board_id": 173,
"label_id": null,
"list_type": "closed",
"position": null,
"created_at": "2020-02-11T14:35:51.593Z",
"updated_at": "2020-02-11T14:35:51.593Z",
"user_id": null,
"milestone_id": null,
"max_issue_count": 0,
"max_issue_weight": 0
}
],
"labels": []
}
],
......
......@@ -39,8 +39,18 @@ describe Gitlab::ImportExport::GroupTreeRestorer do
expect(@group.labels.count).to eq(10)
end
it 'has issue boards' do
expect(@group.boards.count).to eq(2)
context 'issue boards' do
it 'has issue boards' do
expect(@group.boards.count).to eq(1)
end
it 'has board label lists' do
lists = @group.boards.find_by(name: 'first board').lists
expect(lists.count).to eq(3)
expect(lists.first.label.title).to eq('TSL')
expect(lists.second.label.title).to eq('Sosync')
end
end
it 'has badges' do
......
......@@ -95,6 +95,10 @@ describe Gitlab::ImportExport::GroupTreeSaver do
expect(saved_group_json['boards']).not_to be_empty
end
it 'has board label list' do
expect(saved_group_json['boards'].first['lists']).not_to be_empty
end
it 'has group members' do
expect(saved_group_json['members']).not_to be_empty
end
......@@ -168,7 +172,8 @@ describe Gitlab::ImportExport::GroupTreeSaver do
create(:group_badge, group: group)
group_label = create(:group_label, group: group)
create(:label_priority, label: group_label, priority: 1)
create(:board, group: group)
board = create(:board, group: group)
create(:list, board: board, label: group_label)
create(:group_badge, group: group)
group
......
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