Skip to content

Commit 208ef94

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent e30d680 commit 208ef94

File tree

29 files changed

+306
-74
lines changed

29 files changed

+306
-74
lines changed

app/assets/javascripts/api.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,7 @@ const Api = {
796796
return axios.delete(url, { data });
797797
},
798798

799-
getRawFile(id, path, params = { ref: 'master' }) {
799+
getRawFile(id, path, params = {}) {
800800
const url = Api.buildUrl(this.rawFilePath)
801801
.replace(':id', encodeURIComponent(id))
802802
.replace(':path', encodeURIComponent(path));

app/assets/javascripts/projects/pipelines/charts/components/app.vue

+15-4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ export default {
1818
type: Boolean,
1919
default: false,
2020
},
21+
shouldRenderLeadTimeCharts: {
22+
type: Boolean,
23+
default: false,
24+
},
2125
},
2226
data() {
2327
return {
@@ -26,11 +30,17 @@ export default {
2630
},
2731
computed: {
2832
charts() {
33+
const chartsToShow = ['pipelines'];
34+
2935
if (this.shouldRenderDeploymentFrequencyCharts) {
30-
return ['pipelines', 'deployments', 'lead-time'];
36+
chartsToShow.push('deployments');
37+
}
38+
39+
if (this.shouldRenderLeadTimeCharts) {
40+
chartsToShow.push('lead-time');
3141
}
3242
33-
return ['pipelines', 'lead-time'];
43+
return chartsToShow;
3444
},
3545
},
3646
created() {
@@ -55,16 +65,17 @@ export default {
5565
</script>
5666
<template>
5767
<div>
58-
<gl-tabs :value="selectedTab" @input="onTabChange">
68+
<gl-tabs v-if="charts.length > 1" :value="selectedTab" @input="onTabChange">
5969
<gl-tab :title="__('Pipelines')">
6070
<pipeline-charts />
6171
</gl-tab>
6272
<gl-tab v-if="shouldRenderDeploymentFrequencyCharts" :title="__('Deployments')">
6373
<deployment-frequency-charts />
6474
</gl-tab>
65-
<gl-tab :title="__('Lead Time')">
75+
<gl-tab v-if="shouldRenderLeadTimeCharts" :title="__('Lead Time')">
6676
<lead-time-charts />
6777
</gl-tab>
6878
</gl-tabs>
79+
<pipeline-charts v-else />
6980
</div>
7081
</template>

app/assets/javascripts/projects/pipelines/charts/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const mountPipelineChartsApp = (el) => {
1616
const shouldRenderDeploymentFrequencyCharts = parseBoolean(
1717
el.dataset.shouldRenderDeploymentFrequencyCharts,
1818
);
19+
const shouldRenderLeadTimeCharts = parseBoolean(el.dataset.shouldRenderLeadTimeCharts);
1920

2021
return new Vue({
2122
el,
@@ -27,6 +28,7 @@ const mountPipelineChartsApp = (el) => {
2728
provide: {
2829
projectPath,
2930
shouldRenderDeploymentFrequencyCharts,
31+
shouldRenderLeadTimeCharts,
3032
},
3133
render: (createElement) => createElement(ProjectPipelinesCharts, {}),
3234
});

app/helpers/graph_helper.rb

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ def success_ratio(counts)
2626
def should_render_deployment_frequency_charts
2727
false
2828
end
29+
30+
def should_render_lead_time_charts
31+
false
32+
end
2933
end
3034

3135
GraphHelper.prepend_if_ee('EE::GraphHelper')

app/views/projects/pages/_ssl_limitations_warning.html.haml

+1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
%strong= _("Warning:")
44
- pages_host = Gitlab.config.pages.host
55
- docs_link_start = "<a href='#{help_page_path('user/project/pages/introduction', anchor: 'limitations')}' target='_blank' rel='noopener noreferrer'>".html_safe
6+
- link_end = '</a>'.html_safe
67
= s_("GitLabPages|When using Pages under the general domain of a GitLab instance (%{pages_host}), you cannot use HTTPS with sub-subdomains. This means that if your username/groupname contains a dot it will not work. This is a limitation of the HTTP Over TLS protocol. HTTP pages will continue to work provided you don't redirect HTTP to HTTPS. %{docs_link_start}Learn more.%{link_end}").html_safe % { pages_host: pages_host, docs_link_start: docs_link_start, link_end: link_end }
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
- page_title _('CI/CD Analytics')
22

33
#js-project-pipelines-charts-app{ data: { project_path: @project.full_path,
4-
should_render_deployment_frequency_charts: should_render_deployment_frequency_charts.to_s } }
4+
should_render_deployment_frequency_charts: should_render_deployment_frequency_charts.to_s,
5+
should_render_lead_time_charts: should_render_lead_time_charts.to_s } }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: Log all API uploads that exceed max attachment size
3+
merge_request: 59292
4+
author:
5+
type: changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
key_path: redis_hll_counters.testing.i_testing_summary_widget_total_monthly
3+
description: Unique users that expand the test summary merge request widget by month
4+
product_section: ops
5+
product_stage: verify
6+
product_group: group::testing
7+
product_category: testing
8+
value_type: number
9+
status: implemented
10+
milestone: "13.11"
11+
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59316
12+
time_frame: 28d
13+
data_source: redis_hll
14+
distribution:
15+
- ee
16+
- ce
17+
tier:
18+
- free
19+
- premium
20+
- ultimate
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
key_path: redis_hll_counters.testing.i_testing_summary_widget_total_weekly
3+
description: Unique users that expand the test summary merge request widget by week
4+
product_section: ops
5+
product_stage: verify
6+
product_group: group::testing
7+
product_category: testing
8+
value_type: number
9+
status: implemented
10+
milestone: "13.11"
11+
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59316
12+
time_frame: 7d
13+
data_source: redis_hll
14+
distribution:
15+
- ee
16+
- ce
17+
tier:
18+
- free
19+
- premium
20+
- ultimate

doc/administration/incoming_email.md

+56
Original file line numberDiff line numberDiff line change
@@ -615,3 +615,59 @@ incoming_email:
615615
# Whether the IMAP server uses SSL
616616
ssl: true
617617
```
618+
619+
#### Microsoft Graph
620+
621+
> Introduced in [GitLab 13.11](https://gitlab.com/gitlab-org/gitlab/-/issues/214900).
622+
623+
GitLab can read incoming email using the Microsoft Graph API instead of
624+
IMAP. Because [Microsoft is deprecating IMAP usage with Basic Authentication](https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-oauth-2-0-support-for-imap-and-smtp-auth-protocols-in/ba-p/1330432), the Microsoft Graph API will soon be required for new Microsoft Exchange Online
625+
mailboxes.
626+
627+
To configure GitLab for Microsoft Graph, you will need to register an
628+
OAuth2 application in your Azure Active Directory that has the
629+
`Mail.ReadWrite` permission for all mailboxes. See the [MailRoom step-by-step guide](https://github.com/tpitale/mail_room/#microsoft-graph-configuration)
630+
and [Microsoft instructions](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app)
631+
for more details.
632+
633+
Record the following when you configure your OAuth2 application:
634+
635+
- Tenant ID for your Azure Active Directory
636+
- Client ID for your OAuth2 application
637+
- Client secret your OAuth2 application
638+
639+
##### Restrict mailbox access
640+
641+
For MailRoom to work as a service account, the application you create
642+
in Azure Active Directory requires that you set the `Mail.ReadWrite` property
643+
to read/write mail in *all* mailboxes.
644+
645+
To mitigate security concerns, we recommend configuring an application access
646+
policy which limits the mailbox access for all accounts, as described in
647+
[Microsoft documentation](https://docs.microsoft.com/en-us/graph/auth-limit-mailbox-access).
648+
649+
This example for Omnibus GitLab assumes you're using the following mailbox: `[email protected]`:
650+
651+
##### Configure Microsoft Graph
652+
653+
```ruby
654+
gitlab_rails['incoming_email_enabled'] = true
655+
656+
# The email address including the `%{key}` placeholder that will be replaced
657+
# to reference the item being replied to. The placeholder can be omitted, but if
658+
# present, it must appear in the "user" part of the address (before the `@`).
659+
gitlab_rails['incoming_email_address'] = "incoming+%{key}@example.onmicrosoft.com"
660+
661+
# Email account username
662+
gitlab_rails['incoming_email_email'] = "[email protected]"
663+
664+
gitlab_rails['incoming_email_inbox_method'] = 'microsoft_graph'
665+
gitlab_rails['incoming_email_inbox_options'] = {
666+
'tenant_id': '<YOUR-TENANT-ID>',
667+
'client_id': '<YOUR-CLIENT-ID>',
668+
'client_secret': '<YOUR-CLIENT-SECRET>',
669+
'poll_interval': 60 # Optional
670+
}
671+
```
672+
673+
The Microsoft Graph API is not yet supported in source installations. See [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/326169) for more details.

doc/api/merge_request_approvals.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ type: reference, api
77

88
# Merge request approvals API **(PREMIUM)**
99

10-
Configuration for approvals on all Merge Requests (MR) in the project. Must be authenticated for all endpoints.
10+
Configuration for
11+
[approvals on all merge requests](../user/project/merge_requests/merge_request_approvals.md)
12+
in the project. Must be authenticated for all endpoints.
1113

1214
## Project-level MR approvals
1315

doc/development/usage_ping/dictionary.md

+24
Original file line numberDiff line numberDiff line change
@@ -13784,6 +13784,30 @@ Status: `data_available`
1378413784

1378513785
Tiers: `premium`, `ultimate`
1378613786

13787+
### `redis_hll_counters.testing.i_testing_summary_widget_total_monthly`
13788+
13789+
Unique users that expand the test summary merge request widget by month
13790+
13791+
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210413205507_i_testing_summary_widget_total_monthly.yml)
13792+
13793+
Group: `group::testing`
13794+
13795+
Status: `implemented`
13796+
13797+
Tiers: `free`, `premium`, `ultimate`
13798+
13799+
### `redis_hll_counters.testing.i_testing_summary_widget_total_weekly`
13800+
13801+
Unique users that expand the test summary merge request widget by week
13802+
13803+
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210413205507_i_testing_summary_widget_total_weekly.yml)
13804+
13805+
Group: `group::testing`
13806+
13807+
Status: `implemented`
13808+
13809+
Tiers: `free`, `premium`, `ultimate`
13810+
1378713811
### `redis_hll_counters.testing.i_testing_test_case_parsed_monthly`
1378813812

1378913813
Internal Tracking to count number of unit tests parsed for planning of future code testing features. Data available [here](https://app.periscopedata.com/app/gitlab/788674/Verify:Testing-Group-Metrics?widget=10454394&udv=0)

doc/user/project/merge_requests/merge_request_approvals.md

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ type: reference, concepts
1313
Code review is an essential practice of every successful project. Approving a
1414
merge request is an important part of the review
1515
process, as it clearly communicates the ability to merge the change.
16+
A [merge request approvals API](../../../api/merge_request_approvals.md) is also available.
1617

1718
## Optional Approvals
1819

doc/user/project/service_desk.md

+33-1
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ always use separate mailboxes. This is important, because emails picked from
183183
`service_desk_email` mailbox are processed by a different worker and it would
184184
not recognize `incoming_email` emails.
185185

186-
To configure a custom email address for Service Desk, add the following snippets to your configuration file:
186+
To configure a custom email address for Service Desk with IMAP, add the following snippets to your configuration file:
187187

188188
- Example for installations from source:
189189

@@ -236,6 +236,38 @@ As a result, a new Service Desk issue is created from this email in the `mygroup
236236
The configuration options are the same as for configuring
237237
[incoming email](../../administration/incoming_email.md#set-it-up).
238238

239+
#### Microsoft Graph
240+
241+
> Introduced in [GitLab 13.11](https://gitlab.com/gitlab-org/gitlab/-/issues/214900)
242+
243+
Service Desk can be configured to read Microsoft Exchange Online mailboxes with the Microsoft
244+
Graph API instead of IMAP. Follow the [documentation in the incoming e-mail section for setting up an OAuth2 application for Microsoft Graph](../../administration/incoming_email.md#microsoft-graph).
245+
246+
- Example for Omnibus GitLab installations:
247+
248+
```ruby
249+
gitlab_rails['service_desk_email_enabled'] = true
250+
251+
gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@example.onmicrosoft.com"
252+
253+
gitlab_rails['service_desk_email_email'] = "[email protected]"
254+
255+
gitlab_rails['service_desk_email_mailbox_name'] = "inbox"
256+
257+
gitlab_rails['service_desk_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
258+
259+
gitlab_rails['service_desk_inbox_method'] = 'microsoft_graph'
260+
261+
gitlab_rails['service_desk_inbox_options'] = {
262+
'tenant_id': '<YOUR-TENANT-ID>',
263+
'client_id': '<YOUR-CLIENT-ID>',
264+
'client_secret': '<YOUR-CLIENT-SECRET>',
265+
'poll_interval': 60 # Optional
266+
}
267+
```
268+
269+
The Microsoft Graph API is not yet supported in source installations. See [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/326169) for more details.
270+
239271
## Using Service Desk
240272

241273
You can use Service Desk to [create an issue](#as-an-end-user-issue-creator) or [respond to one](#as-a-responder-to-the-issue).

lib/api/projects.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ def project_attachment_size(user_project)
7171
# This is to help determine which projects to use in https://gitlab.com/gitlab-org/gitlab/-/issues/325788
7272
def log_if_upload_exceed_max_size(user_project, file)
7373
return if file.size <= user_project.max_attachment_size
74-
return if exempt_from_global_attachment_size?(user_project)
7574

7675
if file.size > user_project.max_attachment_size
77-
Gitlab::AppLogger.info({ message: "File exceeds maximum size", file_bytes: file.size, project_id: user_project.id, project_path: user_project.full_path })
76+
allowed = exempt_from_global_attachment_size?(user_project)
77+
Gitlab::AppLogger.info({ message: "File exceeds maximum size", file_bytes: file.size, project_id: user_project.id, project_path: user_project.full_path, upload_allowed: allowed })
7878
end
7979
end
8080
end

locale/gitlab.pot

+9-3
Original file line numberDiff line numberDiff line change
@@ -14284,6 +14284,9 @@ msgstr ""
1428414284
msgid "Geo|Data replication lag"
1428514285
msgstr ""
1428614286

14287+
msgid "Geo|Data type"
14288+
msgstr ""
14289+
1428714290
msgid "Geo|Discover GitLab Geo"
1428814291
msgstr ""
1428914292

@@ -14413,9 +14416,6 @@ msgstr ""
1441314416
msgid "Geo|Replication Details"
1441414417
msgstr ""
1441514418

14416-
msgid "Geo|Replication counts"
14417-
msgstr ""
14418-
1441914419
msgid "Geo|Replication details"
1442014420
msgstr ""
1442114421

@@ -14470,6 +14470,9 @@ msgstr ""
1447014470
msgid "Geo|Synced at"
1447114471
msgstr ""
1447214472

14473+
msgid "Geo|Synchronization"
14474+
msgstr ""
14475+
1447314476
msgid "Geo|Synchronization failed - %{error}"
1447414477
msgstr ""
1447514478

@@ -14509,6 +14512,9 @@ msgstr ""
1450914512
msgid "Geo|Unknown state"
1451014513
msgstr ""
1451114514

14515+
msgid "Geo|Verification"
14516+
msgstr ""
14517+
1451214518
msgid "Geo|Verification failed - %{error}"
1451314519
msgstr ""
1451414520

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@
4949
"@babel/preset-env": "^7.10.1",
5050
"@gitlab/at.js": "1.5.7",
5151
"@gitlab/favicon-overlay": "2.0.0",
52-
"@gitlab/svgs": "1.188.0",
52+
"@gitlab/svgs": "1.189.0",
5353
"@gitlab/tributejs": "1.0.0",
54-
"@gitlab/ui": "29.4.0",
54+
"@gitlab/ui": "29.5.0",
5555
"@gitlab/visual-review-tools": "1.6.1",
5656
"@rails/actioncable": "^6.0.3-4",
5757
"@rails/ujs": "^6.0.3-4",

qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module QA
2929
user.remove_via_api!
3030
end
3131

32-
it 'imports a GitHub repo', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/385' do
32+
it 'imports a GitHub repo', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1762' do
3333
Flow::Login.sign_in(as: user)
3434

3535
imported_project # import the project

qa/qa/specs/features/browser_ui/3_create/design_management/archive_design_content_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ module QA
2323
Flow::Login.sign_in
2424
end
2525

26-
it 'user archives a design', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/274' do
26+
it 'user archives a design', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1761' do
2727
third_design.issue.visit!
2828

2929
Page::Project::Issue::Show.perform do |issue|

qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module QA
1313
Flow::Login.sign_in
1414
end
1515

16-
it 'user adds a design and modifies it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/273' do
16+
it 'user adds a design and modifies it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1760' do
1717
design.issue.visit!
1818

1919
Page::Project::Issue::Show.perform do |issue|

0 commit comments

Comments
 (0)