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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-17 03:11:47 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-17 03:11:47 +0300
commit77ed02d1fe93001f3649b878ddbe28697e77d5d9 (patch)
tree1648ddc01569ba260753e0156fbdb5b5f45faf30
parentf5ea25c365d9b40dc0d8319a64b69179e2ecd8c0 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/CODEOWNERS2
-rw-r--r--Gemfile.checksum4
-rw-r--r--Gemfile.lock4
-rw-r--r--app/assets/javascripts/diffs/components/diff_file.vue12
-rw-r--r--app/assets/javascripts/notes/components/diff_with_note.vue9
-rw-r--r--app/assets/stylesheets/themes/dark_mode_overrides.scss10
-rw-r--r--app/services/batched_git_ref_updates/project_cleanup_service.rb2
-rw-r--r--config/feature_flags/development/adherence_report_ui.yml2
-rw-r--r--config/feature_flags/development/compliance_adherence_report.yml2
-rw-r--r--doc/development/data_science/index.md7
-rw-r--r--doc/development/data_science/model_registry/index.md98
-rw-r--r--doc/user/application_security/vulnerability_report/index.md14
-rw-r--r--doc/user/compliance/compliance_center/index.md8
-rw-r--r--doc/user/project/merge_requests/index.md14
-rw-r--r--lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml2
-rw-r--r--package.json2
-rw-r--r--qa/qa/tools/reliable_report.rb20
-rw-r--r--qa/spec/tools/reliable_report_spec.rb2
-rw-r--r--scripts/allowed_warnings.txt3
-rw-r--r--spec/controllers/concerns/send_file_upload_spec.rb2
-rw-r--r--spec/requests/api/graphql/merge_request/merge_request_spec.rb38
-rw-r--r--spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb9
-rw-r--r--tooling/config/CODEOWNERS.yml4
-rw-r--r--yarn.lock8
26 files changed, 213 insertions, 69 deletions
diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index 10fa312bad5..ea20717943d 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -1005,7 +1005,7 @@ lib/gitlab/checks/**
/doc/user/workspace/ @ashrafkhamis
# End rake-managed-docs-block
-[Authentication and Authorization] @gitlab-org/govern/authentication-and-authorization/approvers
+[Authentication] @gitlab-org/govern/authentication/approvers
/app/assets/javascripts/access_tokens/
/app/assets/javascripts/alerts_settings/graphql/mutations/reset_http_token.mutation.graphql
/app/assets/javascripts/authentication/
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 7b924e447d7..9f958bfc244 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -352,8 +352,8 @@
{"name":"memoist","version":"0.16.2","platform":"ruby","checksum":"a52c53a3f25b5875151670b2f3fd44388633486dc0f09f9a7150ead1e3bf3c45"},
{"name":"memory_profiler","version":"1.0.1","platform":"ruby","checksum":"38cdb42f22d9100df2eba0365c199724b58b05c38e765cd764a07392916901b1"},
{"name":"method_source","version":"1.0.0","platform":"ruby","checksum":"d779455a2b5666a079ce58577bfad8534f571af7cec8107f4dce328f0981dede"},
-{"name":"mime-types","version":"3.4.1","platform":"ruby","checksum":"6bcf8b0e656b6ae9977bdc1351ef211d0383252d2f759a59ef4bcf254542fc46"},
-{"name":"mime-types-data","version":"3.2022.0105","platform":"ruby","checksum":"d8c401ba9ea8b648b7145b90081789ec714e91fd625d82c5040079c5ea696f00"},
+{"name":"mime-types","version":"3.5.1","platform":"ruby","checksum":"85d772fb6cf21f999ac8085998192fb9dd5d16e86ec4c69c5e79ac3003420d61"},
+{"name":"mime-types-data","version":"3.2023.1003","platform":"ruby","checksum":"0f7b96d4e54d17752ed78398dca9402359ccaeb391aa0c0e5b305bedaf025b7a"},
{"name":"mini_histogram","version":"0.3.1","platform":"ruby","checksum":"6a114b504e4618b0e076cc672996036870f7cc6f16b8e5c25c0c637726d2dd94"},
{"name":"mini_magick","version":"4.10.1","platform":"ruby","checksum":"e939d2c70c8002233fc6b1eecfe762f38a156d69ad31a87160205870be08f852"},
{"name":"mini_mime","version":"1.1.2","platform":"ruby","checksum":"a54aec0cc7438a03a850adb00daca2bdb60747f839e28186994df057cea87151"},
diff --git a/Gemfile.lock b/Gemfile.lock
index c84cca6e917..5d515f49393 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1013,9 +1013,9 @@ GEM
memoist (0.16.2)
memory_profiler (1.0.1)
method_source (1.0.0)
- mime-types (3.4.1)
+ mime-types (3.5.1)
mime-types-data (~> 3.2015)
- mime-types-data (3.2022.0105)
+ mime-types-data (3.2023.1003)
mini_histogram (0.3.1)
mini_magick (4.10.1)
mini_mime (1.1.2)
diff --git a/app/assets/javascripts/diffs/components/diff_file.vue b/app/assets/javascripts/diffs/components/diff_file.vue
index 13274129f1d..c74a4b47fcb 100644
--- a/app/assets/javascripts/diffs/components/diff_file.vue
+++ b/app/assets/javascripts/diffs/components/diff_file.vue
@@ -402,23 +402,23 @@ export default {
<div
v-if="idState.forkMessageVisible"
- class="js-file-fork-suggestion-section file-fork-suggestion"
+ class="js-file-fork-suggestion-section file-fork-suggestion gl-border-1 gl-border-solid gl-border-gray-100 gl-border-top-0"
>
<span v-safe-html="forkMessage" class="file-fork-suggestion-note"></span>
<gl-button
:href="file.fork_path"
- class="js-fork-suggestion-button"
+ class="js-fork-suggestion-button gl-mr-3"
category="secondary"
variant="confirm"
>{{ $options.i18n.fork }}</gl-button
>
- <button
- class="js-cancel-fork-suggestion-button btn btn-grouped"
- type="button"
+ <gl-button
+ class="js-cancel-fork-suggestion-button"
+ category="secondary"
@click="hideForkMessage"
>
{{ $options.i18n.cancel }}
- </button>
+ </gl-button>
</div>
<template v-else>
<div
diff --git a/app/assets/javascripts/notes/components/diff_with_note.vue b/app/assets/javascripts/notes/components/diff_with_note.vue
index f08c005259c..efb6fc67806 100644
--- a/app/assets/javascripts/notes/components/diff_with_note.vue
+++ b/app/assets/javascripts/notes/components/diff_with_note.vue
@@ -1,5 +1,5 @@
<script>
-import { GlSkeletonLoader } from '@gitlab/ui';
+import { GlButton, GlSkeletonLoader } from '@gitlab/ui';
// eslint-disable-next-line no-restricted-imports
import { mapState, mapActions } from 'vuex';
import SafeHtml from '~/vue_shared/directives/safe_html';
@@ -19,6 +19,7 @@ export default {
GlSkeletonLoader,
DiffViewer,
ImageDiffOverlay,
+ GlButton,
},
directives: {
SafeHtml,
@@ -127,12 +128,12 @@ export default {
<td class="new_line diff-line-num"></td>
<td v-if="error" class="js-error-lazy-load-diff diff-loading-error-block">
{{ __('Unable to load the diff') }}
- <button
- class="gl-button btn-link btn-link-retry gl-p-0 js-toggle-lazy-diff-retry-button gl-reset-font-size!"
+ <gl-button
+ class="btn-link-retry gl-font-regular js-toggle-lazy-diff-retry-button"
@click="fetchDiff"
>
{{ __('Try again') }}
- </button>
+ </gl-button>
</td>
<td v-else class="line_content js-success-lazy-load">
<span></span>
diff --git a/app/assets/stylesheets/themes/dark_mode_overrides.scss b/app/assets/stylesheets/themes/dark_mode_overrides.scss
index 6d6f758ae9f..73877c04c46 100644
--- a/app/assets/stylesheets/themes/dark_mode_overrides.scss
+++ b/app/assets/stylesheets/themes/dark_mode_overrides.scss
@@ -172,11 +172,17 @@ body.gl-dark {
// white-ish text for light labels
.gl-label-text-light.gl-label-text-light {
- color: $gray-900;
+ &,
+ .gl-label-close .gl-icon {
+ color: $gray-900;
+ }
}
.gl-label-text-dark.gl-label-text-dark {
- color: $gray-10;
+ &,
+ .gl-label-close .gl-icon {
+ color: $gray-10;
+ }
}
// This applies to "gl-labels" from "gitlab-ui"
diff --git a/app/services/batched_git_ref_updates/project_cleanup_service.rb b/app/services/batched_git_ref_updates/project_cleanup_service.rb
index f9518cad975..7367c8be1d1 100644
--- a/app/services/batched_git_ref_updates/project_cleanup_service.rb
+++ b/app/services/batched_git_ref_updates/project_cleanup_service.rb
@@ -28,7 +28,7 @@ module BatchedGitRefUpdates
refs = batch.map(&:ref)
refs.each_slice(GITALY_BATCH_SIZE) do |refs_to_delete|
- project.repository.delete_refs(*refs_to_delete)
+ project.repository.delete_refs(*refs_to_delete.uniq)
end
total_deletes += refs.count
diff --git a/config/feature_flags/development/adherence_report_ui.yml b/config/feature_flags/development/adherence_report_ui.yml
index 5648299c689..7db4fbb756f 100644
--- a/config/feature_flags/development/adherence_report_ui.yml
+++ b/config/feature_flags/development/adherence_report_ui.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/414495
milestone: '16.1'
type: development
group: group::compliance
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/compliance_adherence_report.yml b/config/feature_flags/development/compliance_adherence_report.yml
index b4a19625a5d..f67ff7bdec3 100644
--- a/config/feature_flags/development/compliance_adherence_report.yml
+++ b/config/feature_flags/development/compliance_adherence_report.yml
@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/416988
milestone: '16.2'
type: development
group: group::compliance
-default_enabled: false
+default_enabled: true
diff --git a/doc/development/data_science/index.md b/doc/development/data_science/index.md
new file mode 100644
index 00000000000..832d3999645
--- /dev/null
+++ b/doc/development/data_science/index.md
@@ -0,0 +1,7 @@
+---
+stage: Data Science
+group: ModelOps
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+- [Model Registry](model_registry/index.md)
diff --git a/doc/development/data_science/model_registry/index.md b/doc/development/data_science/model_registry/index.md
new file mode 100644
index 00000000000..6ebf6430727
--- /dev/null
+++ b/doc/development/data_science/model_registry/index.md
@@ -0,0 +1,98 @@
+---
+stage: Data Science
+group: ModelOps
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Model Registry
+
+Model registry is the component in the MLOps lifecycle responsible for managing
+model versions. Beyond tracking just artifacts, it is responsible to track the
+metadata associated to each model, like:
+
+- Performance
+- Parameters
+- Data lineage
+
+## Data topology
+
+All entities belong to a project, and only users with access to the project can
+interact with the entities.
+
+### `Ml::Model`
+
+- Holds general information about a model, like name and description.
+- Each model as a default `Ml::Experiment` with the same name where candidates are logged to.
+- Has many `Ml::ModelVersion`.
+
+#### `Ml::ModelVersion`
+
+- Is a version of the model.
+- Links to a `Packages::Package` with the same project, name, and version.
+- Version must use semantic versioning.
+
+#### `Ml::Experiment`
+
+- Collection of comparable `Ml::Candidates`.
+
+#### `Ml::Candidate`
+
+- A candidate to a model version.
+- Can have many parameters (`Ml::CandidateParams`), which are usually configuration variables passed to the training code.
+- Can have many performance indicators (`Ml::CandidateMetrics`).
+- Can have many user defined metadata (`Ml::CandidateMetadata`).
+
+## MLflow compatibility layer
+
+To make it easier for Data Scientists with GitLab Model registry, we provided a
+compatibility layer to [MLflow client](https://mlflow.org/docs/latest/python_api/mlflow.client.html).
+We do not provide an MLflow instance with GitLab. Instead, GitLab itself acts as
+an instance of MLflow. This method stores data on the GitLab database, which
+improves user reliability and functionality. See the user documentation about
+[the compatibility layer](../../../user/project/ml/experiment_tracking/mlflow_client.md).
+
+The compatibility layer is implemented by replicating the [MLflow rest API](https://mlflow.org/docs/latest/rest-api.html)
+in [`lib/api/ml/mlflow`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/api/ml/mlflow).
+
+Some terms on MLflow are named differently in GitLab:
+
+- An MLflow `Run` is a GitLab `Candidate`.
+- An MLflow `Registered model` is a GitLab `Model`.
+
+### Setting up for testing
+
+To test the an script with MLflow with GitLab as the backend:
+
+1. Install MLflow:
+
+ ```shell
+ mkdir mlflow-compatibility
+ cd mlflow-compatibility
+ pip install mlflow jupyterlab
+ ```
+
+1. In the directory, create a Python file named `mlflow_test.py` with the following code:
+
+ ```python3
+ import mlflow
+ import os
+ from mlflow.tracking import MlflowClient
+
+ os.environ["MLFLOW_TRACKING_TOKEN"]='<TOKEN>'
+ os.environ["MLFLOW_TRACKING_URI"]='<your gitlab endpoint>/api/v4/projects/<your project id>/ml/mlflow'
+
+ client = MlflowClient()
+ client.create_experiment("My first experiment")
+ ```
+
+1. Run the script:
+
+ ```shell
+ python mlflow_test.py
+ ```
+
+1. Go to the project `/-/ml/experiments`. An experiment should have been created.
+
+You can edit the script to call the client methods we are trying to implement. See
+[GitLab Model experiments example](https://gitlab.com/gitlab-org/incubation-engineering/mlops/model_experiment_example)
+for a more complete example.
diff --git a/doc/user/application_security/vulnerability_report/index.md b/doc/user/application_security/vulnerability_report/index.md
index 3ec1151b1d6..24ed318e688 100644
--- a/doc/user/application_security/vulnerability_report/index.md
+++ b/doc/user/application_security/vulnerability_report/index.md
@@ -67,6 +67,7 @@ From the Vulnerability Report you can:
- [Export details of vulnerabilities](#export-vulnerability-details).
- [Sort vulnerabilities by date](#sort-vulnerabilities-by-date-detected).
- [Manually add a vulnerability finding](#manually-add-a-vulnerability-finding).
+- [Grouping vulnerability report](#group-vulnerabilities)
## Vulnerability Report filters
@@ -256,6 +257,19 @@ To add a new vulnerability finding from your project level Vulnerability Report
You are brought to the newly created vulnerability's detail page. Manually created records appear in the
Group, Project, and Security Center Vulnerability Reports. To filter them, use the Generic Tool filter.
+## Group vulnerabilities
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/420055) in GitLab 16.4. Disabled by default.
+> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/422509) in GitLab 16.5.
+
+To group the Vulnerability Report:
+
+1. Below the **Vulnerability Report** filters, select the **Group By** dropdown list.
+1. Select the attribute you want to group by: status or severity.
+
+To see what is included in a group, select a category to expand the report and see related
+vulnerabilities.
+
## Operational vulnerabilities
> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/6345) in GitLab 14.6.
diff --git a/doc/user/compliance/compliance_center/index.md b/doc/user/compliance/compliance_center/index.md
index 9096dde07f1..0e205a29920 100644
--- a/doc/user/compliance/compliance_center/index.md
+++ b/doc/user/compliance/compliance_center/index.md
@@ -15,12 +15,12 @@ See report and manage standards adherence, violations, and compliance frameworks
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125875) GraphQL APIs in GitLab 16.2 [with a flag](../../../administration/feature_flags.md) named `compliance_adherence_report`. Disabled by default.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125444) standards adherence dashboard in GitLab 16.3 [with a flag](../../../administration/feature_flags.md) named `adherence_report_ui`. Disabled by default.
+> - [Enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/414495) in GitLab 16.5.
FLAG:
-On self-managed GitLab, by default this feature is not available. To make it available per project or for your entire
-instance, an administrator can [enable the feature flags](../../../administration/feature_flags.md) named
-`compliance_adherence_report` and `adherence_report_ui`. On GitLab.com, this feature is not available.
-This feature is not ready for production use.
+On self-managed GitLab, by default this feature is available. To hide the feature per project or for your entire instance, an administrator can
+[disable the feature flags](../../../administration/feature_flags.md) named `compliance_adherence_report` and `adherence_report_ui`. On GitLab.com,
+this feature is available.
Standards adherence dashboard lists the adherence status of projects complying to GitLab standard.
diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md
index 1af363a2239..22cd8f9b89e 100644
--- a/doc/user/project/merge_requests/index.md
+++ b/doc/user/project/merge_requests/index.md
@@ -391,6 +391,20 @@ with a new push.
Threads are now resolved if a push makes a diff section outdated.
Threads on lines that don't change and top-level resolvable threads are not resolved.
+## Move notifications and to-dos **(FREE SELF)**
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132678) in GitLab 16.5 [with a flag](../../../administration/feature_flags.md) named `notifications_todos_buttons`. Disabled by default.
+> - [Issues, incidents](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133474), and [epics](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133881) also updated.
+
+FLAG:
+On self-managed GitLab, by default this feature is not available. To make it available, an administrator can [enable the feature flag](../../../administration/feature_flags.md) named `notifications_todos_buttons`.
+On GitLab.com, this feature is not available.
+
+When this feature flag is enabled, the notifications and to-do item buttons are moved to the upper right corner of the page.
+
+- On merge requests, these buttons are located to the far right of the tabs.
+- On issues, incidents, and epics, these buttons are located at the top of the right sidebar.
+
## Related topics
- [Create a merge request](creating_merge_requests.md)
diff --git a/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
index b27f5e35229..4d53b92763a 100644
--- a/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- DAST_AUTO_DEPLOY_IMAGE_VERSION: 'v2.59.0'
+ DAST_AUTO_DEPLOY_IMAGE_VERSION: 'v2.59.1'
.dast-auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${DAST_AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
index f6c7649f30b..390824e8e49 100644
--- a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- AUTO_DEPLOY_IMAGE_VERSION: 'v2.59.0'
+ AUTO_DEPLOY_IMAGE_VERSION: 'v2.59.1'
.auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
index b6c9bc386d7..a9681c0f927 100644
--- a/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- AUTO_DEPLOY_IMAGE_VERSION: 'v2.59.0'
+ AUTO_DEPLOY_IMAGE_VERSION: 'v2.59.1'
.auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/package.json b/package.json
index 706f48cd76c..f2c5add0f99 100644
--- a/package.json
+++ b/package.json
@@ -61,7 +61,7 @@
"@gitlab/favicon-overlay": "2.0.0",
"@gitlab/fonts": "^1.3.0",
"@gitlab/svgs": "3.66.0",
- "@gitlab/ui": "66.27.0",
+ "@gitlab/ui": "66.31.1",
"@gitlab/visual-review-tools": "1.7.3",
"@gitlab/web-ide": "0.0.1-dev-20231004090414",
"@mattiasbuelens/web-streams-adapter": "^0.1.0",
diff --git a/qa/qa/tools/reliable_report.rb b/qa/qa/tools/reliable_report.rb
index 32c7349b111..a0933d07166 100644
--- a/qa/qa/tools/reliable_report.rb
+++ b/qa/qa/tools/reliable_report.rb
@@ -29,6 +29,7 @@ module QA
# Project for report creation: https://gitlab.com/gitlab-org/gitlab
PROJECT_ID = 278964
+ FEATURES_DIR = 'https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/'
def initialize(range)
@range = range.to_i
@@ -261,8 +262,9 @@ module QA
markdown: markdown,
rows: specs.map do |k, v|
[
- name_column(name: k, file: v[:file], exceptions_and_job_urls: v[:exceptions_and_job_urls],
- markdown: markdown), *table_params(v.values)
+ name_column(name: k, file: v[:file], link: v[:link],
+ exceptions_and_job_urls: v[:exceptions_and_job_urls], markdown: markdown),
+ *table_params(v.values)
]
end
)]
@@ -322,20 +324,24 @@ module QA
# @param [Array] parameters
# @return [Array]
def table_params(parameters)
- [*parameters[1..2], "#{parameters.last}%"]
+ [*parameters[2..3], "#{parameters.last}%"]
end
# Name column content
#
# @param [String] name
# @param [String] file
+ # @param [String] link
+ # @param [Hash] exceptions_and_job_urls
# @param [Boolean] markdown
# @return [String]
- def name_column(name:, file:, exceptions_and_job_urls:, markdown: false)
- return "**name**: #{name}<br>**file**: #{file}#{exceptions_markdown(exceptions_and_job_urls)}" if markdown
+ def name_column(name:, file:, link:, exceptions_and_job_urls:, markdown: false)
+ if markdown
+ return "**Name**: #{name}<br>**File**: [#{file}](#{link})#{exceptions_markdown(exceptions_and_job_urls)}"
+ end
wrapped_name = name.length > 150 ? "#{name} ".scan(/.{1,150} /).map(&:strip).join("\n") : name
- "name: '#{wrapped_name}'\nfile: #{file.ljust(160)}"
+ "Name: '#{wrapped_name}'\nFile: #{file.ljust(160)}"
end
# Formatted exceptions with link to job url
@@ -370,6 +376,7 @@ module QA
last_record = records.last.values
name = last_record["name"]
file = last_record["file_path"].split("/").last
+ link = FEATURES_DIR + last_record["file_path"]
stage = last_record["stage"] || "unknown"
runs = records.count
@@ -389,6 +396,7 @@ module QA
result[stage][name] = {
file: file,
+ link: link,
runs: runs,
failed: failed,
exceptions_and_job_urls: exceptions_and_job_urls,
diff --git a/qa/spec/tools/reliable_report_spec.rb b/qa/spec/tools/reliable_report_spec.rb
index e700d5d0ce1..cf5c9dea794 100644
--- a/qa/spec/tools/reliable_report_spec.rb
+++ b/qa/spec/tools/reliable_report_spec.rb
@@ -118,7 +118,7 @@ describe QA::Tools::ReliableReport do
end
def name_column(spec_name, exceptions_and_job_urls = {})
- "**name**: #{spec_name}<br>**file**: spec.rb#{exceptions_markdown(exceptions_and_job_urls)}"
+ "**Name**: #{spec_name}<br>**File**: [spec.rb](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/some/spec.rb)#{exceptions_markdown(exceptions_and_job_urls)}"
end
def exceptions_markdown(exceptions_and_job_urls)
diff --git a/scripts/allowed_warnings.txt b/scripts/allowed_warnings.txt
index 9048e3958ef..de98be345d3 100644
--- a/scripts/allowed_warnings.txt
+++ b/scripts/allowed_warnings.txt
@@ -8,9 +8,6 @@
# warning message so that GitLab backports don't fail.
Browserslist: caniuse-lite is outdated\. Please run next command `yarn upgrade`
-# https://github.com/mime-types/mime-types-data/pull/50#issuecomment-1060908930
-Type application/netcdf is already registered as a variant of application/netcdf\.
-
# This warning is emitted by scripts/static-analysis.
\*\*\*\* .+ had the following warning\(s\):
diff --git a/spec/controllers/concerns/send_file_upload_spec.rb b/spec/controllers/concerns/send_file_upload_spec.rb
index bf6b68df54e..d58f07a92a6 100644
--- a/spec/controllers/concerns/send_file_upload_spec.rb
+++ b/spec/controllers/concerns/send_file_upload_spec.rb
@@ -193,7 +193,7 @@ RSpec.describe SendFileUpload, feature_category: :user_profile do
it 'sends a file with a custom type' do
headers = double
- expected_headers = /response-content-disposition=attachment%3B%20filename%3D%22test.js%22%3B%20filename%2A%3DUTF-8%27%27test.js&response-content-type=application%2Fjavascript/
+ expected_headers = /response-content-disposition=attachment%3B%20filename%3D%22test.js%22%3B%20filename%2A%3DUTF-8%27%27test.js&response-content-type=text%2Fjavascript/
expect(Gitlab::Workhorse).to receive(:send_url).with(expected_headers).and_call_original
expect(headers).to receive(:store).with(Gitlab::Workhorse::SEND_DATA_HEADER, /^send-url:/)
diff --git a/spec/requests/api/graphql/merge_request/merge_request_spec.rb b/spec/requests/api/graphql/merge_request/merge_request_spec.rb
index 02ea7bac920..83b25a7c692 100644
--- a/spec/requests/api/graphql/merge_request/merge_request_spec.rb
+++ b/spec/requests/api/graphql/merge_request/merge_request_spec.rb
@@ -17,37 +17,27 @@ RSpec.describe 'Query.merge_request(id)', feature_category: :code_review_workflo
graphql_query_for('mergeRequest', merge_request_params, merge_request_fields)
end
- it_behaves_like 'a working graphql query' do
- before do
- post_graphql(query, current_user: current_user)
+ context 'when the user does not have access to the merge request' do
+ it_behaves_like 'a working graphql query that returns no data' do
+ before do
+ post_graphql(query, current_user: current_user)
+ end
end
end
- it_behaves_like 'a noteable graphql type we can query' do
- let(:noteable) { merge_request }
- let(:project) { merge_request.project }
- let(:path_to_noteable) { [:merge_request] }
-
+ context 'when the user does have access' do
before do
project.add_reporter(current_user)
end
- def query(fields)
- graphql_query_for('mergeRequest', merge_request_params, fields)
- end
- end
-
- context 'when the user does not have access to the merge request' do
- it 'returns nil' do
- post_graphql(query)
-
- expect(merge_request_data).to be nil
- end
- end
+ it_behaves_like 'a noteable graphql type we can query' do
+ let(:noteable) { merge_request }
+ let(:project) { merge_request.project }
+ let(:path_to_noteable) { [:merge_request] }
- context 'when the user does have access' do
- before do
- project.add_reporter(current_user)
+ def query(fields)
+ graphql_query_for('mergeRequest', merge_request_params, fields)
+ end
end
it 'returns the merge request' do
@@ -65,7 +55,7 @@ RSpec.describe 'Query.merge_request(id)', feature_category: :code_review_workflo
end
with_them do
- it_behaves_like 'a working graphql query' do
+ it_behaves_like 'a working graphql query that returns data' do
let(:merge_request_fields) do
field
end
diff --git a/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb b/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb
index dcdfdfade3c..e8ac9588ef3 100644
--- a/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb
+++ b/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb
@@ -53,6 +53,15 @@ RSpec.describe BatchedGitRefUpdates::ProjectCleanupService, feature_category: :g
expect(test_refs(project2)).to include('refs/test/project2-ref1')
end
+ it 'handles duplicates' do
+ BatchedGitRefUpdates::Deletion.create!(project_id: project1.id, ref: 'refs/test/some-duplicate')
+ BatchedGitRefUpdates::Deletion.create!(project_id: project1.id, ref: 'refs/test/some-duplicate')
+
+ service.execute
+
+ expect(test_refs(project1)).not_to include('refs/test/some-duplicate')
+ end
+
it 'marks the processed BatchedGitRefUpdates::Deletion as processed' do
service.execute
diff --git a/tooling/config/CODEOWNERS.yml b/tooling/config/CODEOWNERS.yml
index b7f8e5d4813..323ae8d7d60 100644
--- a/tooling/config/CODEOWNERS.yml
+++ b/tooling/config/CODEOWNERS.yml
@@ -2,8 +2,8 @@
# tooling/bin/find_codeowners tooling/config/CODEOWNERS.yml
# And paste the contents into .gitlab/CODEOWNERS
-'[Authentication and Authorization]':
- '@gitlab-org/govern/authentication-and-authorization/approvers':
+'[Authentication]':
+ '@gitlab-org/govern/authentication/approvers':
allow:
keywords:
- 'password'
diff --git a/yarn.lock b/yarn.lock
index 566950603e4..807aa85437a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1274,10 +1274,10 @@
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.66.0.tgz#5dbe98f9811001942d78395756b9d7c588300c01"
integrity sha512-FdkoMAprxjJJnl90GJYoCMeIpvCaYPNAnRkrlsmo7NY3Ce8fpRb/XE/ZakqULeadj82S7R1IRuTHYfWB06vVtA==
-"@gitlab/ui@66.27.0":
- version "66.27.0"
- resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-66.27.0.tgz#1b79bc953290ab39c8dd96404a917a10a89afee0"
- integrity sha512-CerbUwRs4uusK++XLx8iyrmrUANiuwKwAfPG1GHwxskytG+XjyrZ1C80QAbmwAlqpkPoELIxoOpUiJ7qYtYO7Q==
+"@gitlab/ui@66.31.1":
+ version "66.31.1"
+ resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-66.31.1.tgz#15ef5a57fbee3144767b6ceb1f79e8934a7afc9a"
+ integrity sha512-2RMl1O/dCMIz67n5wX2qswt/WkSdx3AlJFsJbT6QitTgUMJC5l7PDp0ABOcNvGYgvNHxHaw+gBjIavITEnQj0g==
dependencies:
"@floating-ui/dom" "1.2.9"
bootstrap-vue "2.23.1"