Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
4dd542c935
commit
7510df057e
|
@ -2,11 +2,11 @@
|
|||
# project here: https://gitlab.com/gitlab-org/gitlab/-/project_members
|
||||
# As described in https://docs.gitlab.com/ee/user/project/code_owners.html
|
||||
|
||||
* @gitlab-org/maintainers/rails-backend @gitlab-org/maintainers/frontend @gitlab-org/maintainers/database @gl-quality/qe-maintainers @gitlab-org/delivery @gitlab-org/maintainers/cicd-templates @kwiebers @nolith @jacobvosmaer-gitlab
|
||||
* @gitlab-org/maintainers/rails-backend @gitlab-org/maintainers/frontend @gitlab-org/maintainers/database @gl-quality/qe-maintainers @gitlab-org/delivery @gitlab-org/maintainers/cicd-templates @kwiebers @nolith @jacobvosmaer-gitlab @gitlab-org/tw-leadership
|
||||
|
||||
CODEOWNERS @clefelhocz1 @timzallmann @cdu1 @wayne @dsatcher @sgoldstein @jeromezng @stanhu @susantacker @dianalogan @kpaizee @sselhorn
|
||||
docs/CODEOWNERS @clefelhocz1 @timzallmann @cdu1 @wayne @dsatcher @sgoldstein @jeromezng @stanhu @susantacker @dianalogan @kpaizee @sselhorn
|
||||
.gitlab/CODEOWNERS @clefelhocz1 @timzallmann @cdu1 @wayne @dsatcher @sgoldstein @jeromezng @stanhu @susantacker @dianalogan @kpaizee @sselhorn
|
||||
CODEOWNERS @clefelhocz1 @timzallmann @cdu1 @wayne @dsatcher @sgoldstein @jeromezng @stanhu @gitlab-org/tw-leadership
|
||||
docs/CODEOWNERS @clefelhocz1 @timzallmann @cdu1 @wayne @dsatcher @sgoldstein @jeromezng @stanhu @gitlab-org/tw-leadership
|
||||
.gitlab/CODEOWNERS @clefelhocz1 @timzallmann @cdu1 @wayne @dsatcher @sgoldstein @jeromezng @stanhu @gitlab-org/tw-leadership
|
||||
|
||||
## Allows release tooling to update the Gitaly Version
|
||||
GITALY_SERVER_VERSION @project_278964_bot6 @gitlab-org/maintainers/rails-backend @gitlab-org/delivery
|
||||
|
@ -20,6 +20,14 @@ GITALY_SERVER_VERSION @project_278964_bot6 @gitlab-org/maintainers/rails-backend
|
|||
/data/deprecations/*.yml
|
||||
/data/removals/*.yml
|
||||
|
||||
## Technical writing files that do need approval
|
||||
/data/deprecations/templates/ @marcel.amirault @gitlab-org/tw-leadership @sarahgerman
|
||||
/data/removals/templates/ @marcel.amirault @gitlab-org/tw-leadership @sarahgerman
|
||||
.markdownlint.yml @marcel.amirault @eread @aqualls @gitlab-org/tw-leadership
|
||||
/doc/.markdownlint/ @marcel.amirault @eread @aqualls @gitlab-org/tw-leadership
|
||||
/doc/.vale/ @marcel.amirault @eread @aqualls @gitlab-org/tw-leadership
|
||||
/lib/tasks/gitlab/tw/codeowners.rake @aqualls @gitlab-org/tw-leadership
|
||||
|
||||
^[Backend]
|
||||
*.rb @gitlab-org/maintainers/rails-backend
|
||||
*.rake @gitlab-org/maintainers/rails-backend
|
||||
|
@ -333,10 +341,9 @@ ee/lib/ee/gitlab/checks/** @proglottis @toon @zj-gitlab
|
|||
lib/gitlab/checks/** @proglottis @toon @zj-gitlab
|
||||
|
||||
^[Documentation Directories]
|
||||
.markdownlint.yml @marcel.amirault @eread @aqualls @dianalogan @kpaizee
|
||||
/doc/ @gl-docsteam
|
||||
/doc/.markdownlint/ @marcel.amirault @eread @aqualls @dianalogan @kpaizee
|
||||
/doc/.vale/ @marcel.amirault @eread @aqualls @dianalogan @kpaizee
|
||||
/data/deprecations/ @gl-docsteam
|
||||
/data/removals/ @gl-docsteam
|
||||
|
||||
^[Documentation Pages]
|
||||
/doc/administration/application_settings_cache.md @sselhorn
|
||||
|
|
|
@ -56,6 +56,9 @@ If you include multiple screenshots it can be helpful to hide all but the first
|
|||
<!-- Base labels. -->
|
||||
/label ~Quality ~QA ~test
|
||||
|
||||
<!-- Work classification type label, please apply ignore type label until the investigation is complete and an [issue type](https://about.gitlab.com/handbook/engineering/metrics/#work-type-classification) is determined.-->
|
||||
/label ~"type::ignore"
|
||||
|
||||
<!-- Test failure type label, please use just one.-->
|
||||
/label ~"failure::broken-test" ~"failure::flaky-test" ~"failure::stale-test" ~"failure::test-environment" ~"failure::investigating" ~"failure::new"
|
||||
|
||||
|
|
|
@ -81,18 +81,16 @@ export default {
|
|||
:class="{
|
||||
'gl-bg-orange-50': blocksMerge && !allResolved,
|
||||
'gl-bg-gray-50': !blocksMerge || allResolved,
|
||||
'gl-pr-2': !allResolved,
|
||||
}"
|
||||
data-testid="discussions-counter-text"
|
||||
>
|
||||
<template v-if="allResolved">
|
||||
{{ __('All threads resolved!') }}
|
||||
<gl-dropdown
|
||||
v-gl-tooltip:discussionCounter.hover.bottom
|
||||
size="small"
|
||||
category="tertiary"
|
||||
right
|
||||
:title="__('Thread options')"
|
||||
:aria-label="__('Thread options')"
|
||||
toggle-class="btn-icon"
|
||||
class="gl-pt-0! gl-px-2 gl-h-full gl-ml-2"
|
||||
>
|
||||
|
@ -135,12 +133,9 @@ export default {
|
|||
@click="jumpNext"
|
||||
/>
|
||||
<gl-dropdown
|
||||
v-gl-tooltip:discussionCounter.hover.bottom
|
||||
size="small"
|
||||
category="tertiary"
|
||||
right
|
||||
:title="__('Thread options')"
|
||||
:aria-label="__('Thread options')"
|
||||
toggle-class="btn-icon"
|
||||
class="gl-pt-0! gl-px-2"
|
||||
>
|
||||
|
|
|
@ -165,6 +165,7 @@ import { loadCSSFile } from '../lib/utils/css_utils';
|
|||
setPreview() {
|
||||
const filename = this.fileInput.val().replace(FILENAMEREGEX, '');
|
||||
this.previewImage.attr('src', this.dataURL);
|
||||
this.previewImage.attr('srcset', this.dataURL);
|
||||
return this.filename.text(filename);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ export default class Profile {
|
|||
initAvatarGlCrop() {
|
||||
const cropOpts = {
|
||||
filename: '.js-avatar-filename',
|
||||
previewImage: '.avatar-image .avatar',
|
||||
previewImage: '.avatar-image .gl-avatar',
|
||||
modalCrop: '.modal-profile-crop',
|
||||
pickImageEl: '.js-choose-user-avatar-button',
|
||||
uploadImageBtn: '.js-upload-user-avatar',
|
||||
|
|
|
@ -1,19 +1,6 @@
|
|||
@import 'mixins_and_variables_and_functions';
|
||||
@import 'framework/buttons';
|
||||
|
||||
.avatar-image {
|
||||
margin-bottom: $grid-size;
|
||||
|
||||
.avatar {
|
||||
float: none;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
float: left;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.edit-user {
|
||||
.emoji-menu-toggle-button {
|
||||
@include emoji-menu-toggle-button;
|
||||
|
|
|
@ -215,7 +215,7 @@ module Ci
|
|||
|
||||
validates :maintenance_note, length: { maximum: 1024 }
|
||||
|
||||
alias_attribute :maintenance_note, :maintainer_note
|
||||
alias_attribute :maintenance_note, :maintainer_note # NOTE: Need to keep until REST v5 is implemented
|
||||
|
||||
# Searches for runners matching the given query.
|
||||
#
|
||||
|
@ -345,7 +345,7 @@ module Ci
|
|||
end
|
||||
|
||||
# DEPRECATED
|
||||
# TODO Remove in %16.0 in favor of `status` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/344648
|
||||
# TODO Remove in v5 in favor of `status` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/344648
|
||||
def deprecated_rest_status
|
||||
return :stale if stale?
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
.col-lg-8
|
||||
.avatar-image
|
||||
= link_to avatar_icon_for_user(@user, 400), target: '_blank', rel: 'noopener noreferrer' do
|
||||
= image_tag avatar_icon_for_user(@user, 96), alt: '', class: 'avatar s96'
|
||||
= render Pajamas::AvatarComponent.new(@user, size: 96, alt: "", class: 'gl-float-left gl-mr-5')
|
||||
%h5.gl-mt-0= s_("Profiles|Upload new avatar")
|
||||
.gl-display-flex.gl-align-items-center.gl-my-3
|
||||
= render Pajamas::ButtonComponent.new(button_options: { class: 'js-choose-user-avatar-button' }) do
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
- display_issuable_type = issuable_display_type(@merge_request)
|
||||
|
||||
.float-left.btn-group.gl-md-ml-3.gl-display-flex.dropdown.gl-new-dropdown.gl-md-w-auto.gl-w-full
|
||||
= button_tag type: 'button', class: "btn dropdown-toggle btn-default btn-md gl-button gl-dropdown-toggle btn-default-tertiary dropdown-icon-only dropdown-toggle-no-caret has-tooltip gl-display-none! gl-md-display-inline-flex!", data: { 'toggle' => 'dropdown' }, title: _('Merge request actions') , 'aria-label': _('Merge request actions') do
|
||||
= button_tag type: 'button', class: "btn dropdown-toggle btn-default btn-md gl-button gl-dropdown-toggle btn-default-tertiary dropdown-icon-only dropdown-toggle-no-caret gl-display-none! gl-md-display-inline-flex!", data: { 'toggle' => 'dropdown' } do
|
||||
%span.gl-sr-only= _('Toggle dropdown')
|
||||
= sprite_icon "ellipsis_v", size: 16, css_class: "dropdown-icon gl-icon"
|
||||
= button_tag type: 'button', class: "btn dropdown-toggle btn-default btn-md btn-block gl-button gl-dropdown-toggle gl-md-display-none!", data: { 'toggle' => 'dropdown' } do
|
||||
%span.gl-new-dropdown-button-text= _('Merge request actions')
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
- commit = update
|
||||
%tr
|
||||
%td
|
||||
= link_to project_commits_path(@project, commit.head.name) do
|
||||
%strong
|
||||
= commit.head.name
|
||||
- if @project.root_ref?(commit.head.name)
|
||||
%span.label default
|
||||
|
||||
%td
|
||||
%div
|
||||
= link_to project_commits_path(@project, commit.id) do
|
||||
%code= commit.short_id
|
||||
= image_tag avatar_icon_for_email(commit.author_email), class: "", width: 16, alt: ''
|
||||
= markdown(truncate(commit.title, length: 40), pipeline: :single_line, author: commit.author)
|
||||
%td
|
||||
%span.float-right.cgray
|
||||
= time_ago_with_tooltip(commit.committed_date)
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
.col-lg-3.col-md-4.col-sm-12
|
||||
.card
|
||||
.card-body
|
||||
= image_tag avatar_icon_for_user(starrer.user, 40), class: "avatar s40", alt: ''
|
||||
.card-body.gl-display-flex
|
||||
= render Pajamas::AvatarComponent.new(starrer.user, size: 48, alt: "", class: 'gl-mr-3')
|
||||
|
||||
.user-info
|
||||
.block-truncated
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- notes_count = @noteable_meta_data[snippet.id].user_notes_count
|
||||
|
||||
%li.snippet-row.py-3{ data: { qa_selector: 'snippet_link', qa_snippet_title: snippet.title } }
|
||||
= image_tag avatar_icon_for_user(snippet.author), class: "avatar s40 d-none d-sm-block", alt: ''
|
||||
= render Pajamas::AvatarComponent.new(snippet.author, size: 48, alt: "", class: 'gl-display-none gl-sm-display-block gl-float-left gl-mr-3')
|
||||
|
||||
= link_to gitlab_snippet_path(snippet), class: "title" do
|
||||
= snippet.title
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
.col-lg-3.col-md-4.col-sm-12
|
||||
= render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5' }) do |c|
|
||||
= c.body do
|
||||
= image_tag avatar_icon_for_user(user, 40), class: "avatar s40", alt: ''
|
||||
= render Pajamas::AvatarComponent.new(user, size: 48, alt: "", class: 'gl-float-left gl-mr-3')
|
||||
|
||||
.user-info
|
||||
.block-truncated
|
||||
|
|
|
@ -44,20 +44,9 @@ module Gitlab
|
|||
# This exception will be more useful in development when a new
|
||||
# Representation is created but the developer forgot to add a
|
||||
# `:github_identifiers` field.
|
||||
Gitlab::Import::ImportFailureService.track(
|
||||
project_id: project.id,
|
||||
error_source: importer_class.name,
|
||||
exception: e,
|
||||
fail_import: true
|
||||
)
|
||||
|
||||
raise(e)
|
||||
track_and_raise_exception(project, e, fail_import: true)
|
||||
rescue StandardError => e
|
||||
Gitlab::Import::ImportFailureService.track(
|
||||
project_id: project.id,
|
||||
error_source: importer_class.name,
|
||||
exception: e
|
||||
)
|
||||
track_and_raise_exception(project, e)
|
||||
end
|
||||
|
||||
def object_type
|
||||
|
@ -90,6 +79,17 @@ module Gitlab
|
|||
github_identifiers: github_identifiers
|
||||
)
|
||||
end
|
||||
|
||||
def track_and_raise_exception(project, exception, fail_import: false)
|
||||
Gitlab::Import::ImportFailureService.track(
|
||||
project_id: project.id,
|
||||
error_source: importer_class.name,
|
||||
exception: exception,
|
||||
fail_import: fail_import
|
||||
)
|
||||
|
||||
raise(exception)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
- name: "REST and GraphQL API Runner status will not return `paused`"
|
||||
- name: "GraphQL API Runner status will not return `paused`"
|
||||
announcement_milestone: "14.5" # The milestone when this feature was first announced as deprecated.
|
||||
announcement_date: "2021-11-22"
|
||||
removal_milestone: "16.0" # the milestone when this feature is planned to be removed
|
||||
removal_date: "2023-04-22" # the date of the milestone release when this feature is planned to be removed
|
||||
breaking_change: true
|
||||
body: | # Do not modify this line, instead modify the lines below.
|
||||
The GitLab Runner REST and GraphQL API endpoints will not return `paused` or `active` as a status in GitLab 16.0.
|
||||
The GitLab Runner GraphQL API endpoints will not return `paused` or `active` as a status in GitLab 16.0.
|
||||
In a future v5 of the REST API, the endpoints for GitLab Runner will also not return `paused` or `active`.
|
||||
|
||||
A runner's status will only relate to runner contact status, such as:
|
||||
`online`, `offline`, or `not_connected`. Status `paused` or `active` will no longer appear.
|
||||
|
|
|
@ -6,15 +6,16 @@
|
|||
breaking_change: true
|
||||
reporter: pedropombeiro
|
||||
body: |
|
||||
Occurrences of the `active` identifier in the GitLab Runner REST and GraphQL API endpoints will be
|
||||
renamed to `paused` in GitLab 16.0, namely:
|
||||
Occurrences of the `active` identifier in the GitLab Runner GraphQL API endpoints will be
|
||||
renamed to `paused` in GitLab 16.0.
|
||||
|
||||
- GraphQL API:
|
||||
- the `CiRunner` property;
|
||||
- the `RunnerUpdateInput` input type for the `runnerUpdate` mutation;
|
||||
- the `runners` and `Group.runners` queries.
|
||||
- REST API:
|
||||
- endpoints taking or returning `active` properties, such as:
|
||||
- For the GraphQL API, this change affects:
|
||||
- the `CiRunner` property
|
||||
- the `RunnerUpdateInput` input type for the `runnerUpdate` mutation
|
||||
- the `runners` and `Group.runners` queries
|
||||
- In v4 of the REST API, starting in GitLab 14.8, you can use the `paused` property in place of `active`
|
||||
- In v5 of the REST API, this change will affect:
|
||||
- endpoints taking or returning `active` property, such as:
|
||||
- `GET /runners`
|
||||
- `GET /runners/all`
|
||||
- `GET /runners/:id` / `PUT /runners/:id`
|
||||
|
@ -22,9 +23,7 @@
|
|||
- `GET /projects/:id/runners` / `POST /projects/:id/runners`
|
||||
- `GET /groups/:id/runners`
|
||||
|
||||
The 16.0 release of the GitLab Runner will start using the `paused` property when registering runners, and therefore
|
||||
will only be compatible with GitLab 16.0 and later. Until 16.0, GitLab will accept the deprecated `active` flag from
|
||||
existing runners.
|
||||
The 16.0 release of GitLab Runner will start using the `paused` property when registering runners.
|
||||
stage: Verify
|
||||
tiers: [Core, Premium, Ultimate]
|
||||
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/351109
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
- name: "REST API endpoint to list group runners no longer accepts `project_type` value for `type` argument"
|
||||
announcement_milestone: "14.8"
|
||||
announcement_date: "2022-02-22"
|
||||
removal_milestone: "16.0"
|
||||
removal_date: "2023-04-22"
|
||||
breaking_change: true
|
||||
reporter: pedropombeiro
|
||||
body: |
|
||||
The `GET /groups/:id/runners?type=project_type` endpoint will be removed in GitLab 16.0. The endpoint always returned an empty collection.
|
||||
stage: Verify
|
||||
tiers: [Core, Premium, Ultimate]
|
||||
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/351466
|
||||
documentation_url: https://docs.gitlab.com/ee/api/runners.html
|
||||
image_url: # (optional) This is a link to a thumbnail image depicting the feature
|
||||
video_url: # (optional) Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg
|
|
@ -1,17 +1,20 @@
|
|||
- name: "REST API Runner will not accept `status` filter values of `active` or `paused`"
|
||||
- name: "GraphQL API Runner will not accept `status` filter values of `active` or `paused`"
|
||||
announcement_milestone: "14.8" # The milestone when this feature was first announced as deprecated.
|
||||
announcement_date: "2022-02-22"
|
||||
removal_milestone: "16.0"
|
||||
removal_date: "2023-04-22"
|
||||
breaking_change: true
|
||||
body: | # Do not modify this line, instead modify the lines below.
|
||||
The GitLab Runner REST endpoints will stop accepting `paused` or `active` as a status value in GitLab 16.0.
|
||||
The GitLab Runner GraphQL endpoints will stop accepting `paused` or `active` as a status value in GitLab 16.0.
|
||||
|
||||
A runner's status will only relate to runner contact status, such as: `online`, `offline`.
|
||||
Status values `paused` or `active` will no longer be accepted and will be replaced by the `paused` query parameter.
|
||||
|
||||
When checking for paused runners, API users are advised to specify `paused=true` as the query parameter.
|
||||
When checking for active runners, specify `paused=false`.
|
||||
When checking for paused runners, API users are advised to specify `paused: true` as the query parameter.
|
||||
When checking for active runners, specify `paused: false`.
|
||||
|
||||
The REST API endpoints will follow in the same direction in a future REST v5 API, however the new `paused`
|
||||
status value can be used in place of `active` since GitLab 14.8.
|
||||
stage: Verify
|
||||
tiers: [Core, Premium, Ultimate]
|
||||
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/351109
|
||||
|
|
|
@ -982,14 +982,6 @@ Find this content in the [Container Registry troubleshooting documentation](../p
|
|||
|
||||
This content has been moved to [Troubleshooting Sidekiq](sidekiq.md).
|
||||
|
||||
## Redis
|
||||
|
||||
### Connect to Redis (omnibus)
|
||||
|
||||
```shell
|
||||
/opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket
|
||||
```
|
||||
|
||||
## LFS
|
||||
|
||||
### Get information about LFS objects and associated project
|
||||
|
|
|
@ -36,7 +36,10 @@ issue list with a search query, including labels or the test case's title.
|
|||
|
||||
Prerequisite:
|
||||
|
||||
- You must have at least the Guest role.
|
||||
Whether you can view an test case depends on the [project visibility level](../../user/public_access.md):
|
||||
|
||||
- Public project: You don't have to be a member of the project.
|
||||
- Private project: You must have at least the Guest role for the project.
|
||||
|
||||
To view a test case:
|
||||
|
||||
|
|
|
@ -45,15 +45,27 @@ Once a test is in quarantine, there are 3 choices:
|
|||
On our CI, we use [RSpec::Retry](https://github.com/NoRedInk/rspec-retry) to automatically retry a failing example a few
|
||||
times (see [`spec/spec_helper.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/spec_helper.rb) for the precise retries count).
|
||||
|
||||
We also use a home-made `RspecFlaky::Listener` listener which records flaky
|
||||
examples in a JSON report file on `main` (`retrieve-tests-metadata` and
|
||||
`update-tests-metadata` jobs).
|
||||
We also use a custom [`RspecFlaky::Listener`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/tooling/rspec_flaky/listener.rb).
|
||||
This listener runs in the `update-tests-metadata` job in `maintenance` scheduled pipelines
|
||||
on the `master` branch, and saves flaky examples to `rspec/flaky/report-suite.json`.
|
||||
The report file is then retrieved by the `retrieve-tests-metadata` job in all pipelines.
|
||||
|
||||
This was originally implemented in: <https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13021>.
|
||||
|
||||
If you want to enable retries locally, you can use the `RETRIES` environment variable.
|
||||
For instance `RETRIES=1 bin/rspec ...` would retry the failing examples once.
|
||||
|
||||
To generate the reports locally, use the `FLAKY_RSPEC_GENERATE_REPORT` environment variable.
|
||||
For example, `FLAKY_RSPEC_GENERATE_REPORT=1 bin/rspec ...`.
|
||||
|
||||
### Usage of the `rspec/flaky/report-suite.json` report
|
||||
|
||||
The `rspec/flaky/report-suite.json` report is:
|
||||
|
||||
- Used for [automatically skipping known flaky tests](../pipelines.md#automatic-skipping-of-flaky-tests).
|
||||
- [Imported into Snowflake](https://gitlab.com/gitlab-data/analytics/-/blob/master/extract/gitlab_flaky_tests/upload.py)
|
||||
once per day, for monitoring with the [internal dashboard](https://app.periscopedata.com/app/gitlab/888968/EP---Flaky-tests).
|
||||
|
||||
## Problems we had in the past at GitLab
|
||||
|
||||
- [`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>
|
||||
|
|
|
@ -200,7 +200,6 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper'
|
|||
|
||||
const wrapper = shallowMountExtended(ExampleComponent);
|
||||
|
||||
// In this example, `wrapper` is a `@vue/test-utils` wrapper returned from `mount` or `shallowMount`.
|
||||
it('exists', () => {
|
||||
// Best (especially for integration tests)
|
||||
wrapper.findByRole('link', { name: /Click Me/i })
|
||||
|
|
|
@ -10,9 +10,6 @@ Incidents are critical entities in incident management workflows. They represent
|
|||
a service disruption or outage that needs to be restored urgently. GitLab provides
|
||||
tools for the triage, response, and remediation of incidents.
|
||||
|
||||
Users with at least Guest [permissions](../../user/permissions.md) can access
|
||||
incidents [on public projects](../../user/permissions.md#project-members-permissions).
|
||||
|
||||
## Incident creation
|
||||
|
||||
You can create an incident manually or automatically.
|
||||
|
@ -86,8 +83,14 @@ confirm that a GitLab incident is created from the incident.
|
|||
|
||||
## Incident list
|
||||
|
||||
For users with at least Guest [permissions](../../user/permissions.md), the
|
||||
Incident list is available at **Monitor > Incidents**
|
||||
Whether you can view an incident depends on the [project visibility level](../../user/public_access.md) and
|
||||
the incident's confidentiality status:
|
||||
|
||||
- Public project and a non-confidential incident: You don't have to be a member of the project.
|
||||
- Private project and non-confidential incident: You must have at least the Guest role for the project.
|
||||
- Confidential incident (regardless of project visibility): You must have at least the Reporter.
|
||||
|
||||
The Incident list is available at **Monitor > Incidents**
|
||||
in your project's sidebar. The list contains the following metrics:
|
||||
|
||||
![Incident List](img/incident_list_v14_9.png)
|
||||
|
@ -138,10 +141,9 @@ For a live example of the incident list in action, visit this
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/230847) in GitLab 13.4.
|
||||
|
||||
Users with at least Guest [permissions](../../user/permissions.md) can view
|
||||
the Incident Details page. Navigate to **Monitor > Incidents** in your project's
|
||||
sidebar, and select an incident from the list.
|
||||
|
||||
1. On the top bar, select **Main menu > Projects** and find your project.
|
||||
1. On the left sidebar, select **Monitor > Incidents**.
|
||||
1. Select an incident from the list.
|
||||
When you take any of these actions on an incident, GitLab logs a system note and
|
||||
displays it in the Incident Details view:
|
||||
|
||||
|
|
|
@ -809,6 +809,29 @@ To align with this change, API calls to list external status checks will also re
|
|||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-160 breaking-change">
|
||||
|
||||
### GraphQL API Runner will not accept `status` filter values of `active` or `paused`
|
||||
|
||||
Planned removal: GitLab <span class="removal-milestone">16.0</span> (2023-04-22)
|
||||
|
||||
WARNING:
|
||||
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
|
||||
Review the details carefully before upgrading.
|
||||
|
||||
The GitLab Runner GraphQL endpoints will stop accepting `paused` or `active` as a status value in GitLab 16.0.
|
||||
|
||||
A runner's status will only relate to runner contact status, such as: `online`, `offline`.
|
||||
Status values `paused` or `active` will no longer be accepted and will be replaced by the `paused` query parameter.
|
||||
|
||||
When checking for paused runners, API users are advised to specify `paused: true` as the query parameter.
|
||||
When checking for active runners, specify `paused: false`.
|
||||
|
||||
The REST API endpoints will follow in the same direction in a future REST v5 API, however the new `paused`
|
||||
status value can be used in place of `active` since GitLab 14.8.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-150 breaking-change">
|
||||
|
||||
### GraphQL ID and GlobalID compatibility
|
||||
|
@ -968,40 +991,6 @@ The `instanceStatisticsMeasurements` GraphQL node has been renamed to `usageTren
|
|||
|
||||
<div class="deprecation removal-160 breaking-change">
|
||||
|
||||
### REST API Runner will not accept `status` filter values of `active` or `paused`
|
||||
|
||||
Planned removal: GitLab <span class="removal-milestone">16.0</span> (2023-04-22)
|
||||
|
||||
WARNING:
|
||||
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
|
||||
Review the details carefully before upgrading.
|
||||
|
||||
The GitLab Runner REST endpoints will stop accepting `paused` or `active` as a status value in GitLab 16.0.
|
||||
|
||||
A runner's status will only relate to runner contact status, such as: `online`, `offline`.
|
||||
Status values `paused` or `active` will no longer be accepted and will be replaced by the `paused` query parameter.
|
||||
|
||||
When checking for paused runners, API users are advised to specify `paused=true` as the query parameter.
|
||||
When checking for active runners, specify `paused=false`.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-160 breaking-change">
|
||||
|
||||
### REST API endpoint to list group runners no longer accepts `project_type` value for `type` argument
|
||||
|
||||
Planned removal: GitLab <span class="removal-milestone">16.0</span> (2023-04-22)
|
||||
|
||||
WARNING:
|
||||
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
|
||||
Review the details carefully before upgrading.
|
||||
|
||||
The `GET /groups/:id/runners?type=project_type` endpoint will be removed in GitLab 16.0. The endpoint always returned an empty collection.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-160 breaking-change">
|
||||
|
||||
### REST and GraphQL API Runner usage of `active` replaced by `paused`
|
||||
|
||||
Planned removal: GitLab <span class="removal-milestone">16.0</span> (2023-04-22)
|
||||
|
@ -1010,15 +999,16 @@ WARNING:
|
|||
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
|
||||
Review the details carefully before upgrading.
|
||||
|
||||
Occurrences of the `active` identifier in the GitLab Runner REST and GraphQL API endpoints will be
|
||||
renamed to `paused` in GitLab 16.0, namely:
|
||||
Occurrences of the `active` identifier in the GitLab Runner GraphQL API endpoints will be
|
||||
renamed to `paused` in GitLab 16.0.
|
||||
|
||||
- GraphQL API:
|
||||
- the `CiRunner` property;
|
||||
- the `RunnerUpdateInput` input type for the `runnerUpdate` mutation;
|
||||
- the `runners` and `Group.runners` queries.
|
||||
- REST API:
|
||||
- endpoints taking or returning `active` properties, such as:
|
||||
- For the GraphQL API, this change affects:
|
||||
- the `CiRunner` property
|
||||
- the `RunnerUpdateInput` input type for the `runnerUpdate` mutation
|
||||
- the `runners` and `Group.runners` queries
|
||||
- In v4 of the REST API, starting in GitLab 14.8, you can use the `paused` property in place of `active`
|
||||
- In v5 of the REST API, this change will affect:
|
||||
- endpoints taking or returning `active` property, such as:
|
||||
- `GET /runners`
|
||||
- `GET /runners/all`
|
||||
- `GET /runners/:id` / `PUT /runners/:id`
|
||||
|
@ -1026,9 +1016,7 @@ renamed to `paused` in GitLab 16.0, namely:
|
|||
- `GET /projects/:id/runners` / `POST /projects/:id/runners`
|
||||
- `GET /groups/:id/runners`
|
||||
|
||||
The 16.0 release of the GitLab Runner will start using the `paused` property when registering runners, and therefore
|
||||
will only be compatible with GitLab 16.0 and later. Until 16.0, GitLab will accept the deprecated `active` flag from
|
||||
existing runners.
|
||||
The 16.0 release of GitLab Runner will start using the `paused` property when registering runners.
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -1788,6 +1776,27 @@ Administrators who need to add runners for multiple projects can register a runn
|
|||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-160 breaking-change">
|
||||
|
||||
### GraphQL API Runner status will not return `paused`
|
||||
|
||||
Planned removal: GitLab <span class="removal-milestone">16.0</span> (2023-04-22)
|
||||
|
||||
WARNING:
|
||||
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
|
||||
Review the details carefully before upgrading.
|
||||
|
||||
The GitLab Runner GraphQL API endpoints will not return `paused` or `active` as a status in GitLab 16.0.
|
||||
In a future v5 of the REST API, the endpoints for GitLab Runner will also not return `paused` or `active`.
|
||||
|
||||
A runner's status will only relate to runner contact status, such as:
|
||||
`online`, `offline`, or `not_connected`. Status `paused` or `active` will no longer appear.
|
||||
|
||||
When checking if a runner is `paused`, API users are advised to check the boolean attribute
|
||||
`paused` to be `true` instead. When checking if a runner is `active`, check if `paused` is `false`.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-150 breaking-change">
|
||||
|
||||
### Known host required for GitLab Runner SSH executor
|
||||
|
@ -1820,26 +1829,6 @@ In milestone 16.0, we will remove the `pipelines` attribute from the API respons
|
|||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-160 breaking-change">
|
||||
|
||||
### REST and GraphQL API Runner status will not return `paused`
|
||||
|
||||
Planned removal: GitLab <span class="removal-milestone">16.0</span> (2023-04-22)
|
||||
|
||||
WARNING:
|
||||
This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
|
||||
Review the details carefully before upgrading.
|
||||
|
||||
The GitLab Runner REST and GraphQL API endpoints will not return `paused` or `active` as a status in GitLab 16.0.
|
||||
|
||||
A runner's status will only relate to runner contact status, such as:
|
||||
`online`, `offline`, or `not_connected`. Status `paused` or `active` will no longer appear.
|
||||
|
||||
When checking if a runner is `paused`, API users are advised to check the boolean attribute
|
||||
`paused` to be `true` instead. When checking if a runner is `active`, check if `paused` is `false`.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="deprecation removal-159 breaking-change">
|
||||
|
||||
### SaaS certificate-based integration with Kubernetes
|
||||
|
|
|
@ -182,7 +182,7 @@ To do this:
|
|||
1. On the top bar, select **Main menu > Admin**.
|
||||
1. On the left sidebar, select **Settings > General**.
|
||||
1. Expand the **Account and limit** section.
|
||||
1. Under **Dormant users**, check **Deactivate dormant users after 90 days of inactivity**.
|
||||
1. Under **Dormant users**, check **Deactivate dormant users after a period of inactivity**.
|
||||
1. Under **Period of inactivity (days)**, enter a period of time before deactivation.
|
||||
1. Select **Save changes**.
|
||||
|
||||
|
|
|
@ -98,6 +98,10 @@ and gives you the option to return to the search results page.
|
|||
|
||||
## Searching for specific terms
|
||||
|
||||
> - [Removed support for partial matches in issue searches](https://gitlab.com/gitlab-org/gitlab/-/issues/273784) in GitLab 14.9 [with a flag](../../administration/feature_flags.md) named `issues_full_text_search`. Disabled by default.
|
||||
> - Feature flag [`issues_full_text_search` enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/273784) in GitLab 14.10.
|
||||
> - Feature flag [`issues_full_text_search` enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/273784) in GitLab 15.2.
|
||||
|
||||
You can filter issues and merge requests by specific terms included in titles or descriptions.
|
||||
|
||||
- Syntax
|
||||
|
@ -108,6 +112,9 @@ You can filter issues and merge requests by specific terms included in titles or
|
|||
- For performance reasons, terms shorter than 3 chars are ignored. For example: searching
|
||||
issues for `included in titles` is same as `included titles`
|
||||
- Search is limited to 4096 characters and 64 terms per query.
|
||||
- When searching issues, partial matches are not allowed. For example: searching for `play` will
|
||||
not return issues that have the word `display`. But variations of words will still match, so searching
|
||||
for `displays` also returns issues that have the word `display`.
|
||||
|
||||
## Retrieve search results as feed
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ module API
|
|||
expose :id
|
||||
expose :description
|
||||
expose :ip_address
|
||||
expose :active # TODO Remove in %16.0 in favor of `paused` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/351109
|
||||
expose :active # TODO Remove in v5 in favor of `paused` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/375709
|
||||
expose :paused do |runner|
|
||||
!runner.active
|
||||
end
|
||||
|
@ -16,7 +16,7 @@ module API
|
|||
expose :name
|
||||
expose :online?, as: :online
|
||||
# DEPRECATED
|
||||
# TODO Remove in %16.0 in favor of `status` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/344648
|
||||
# TODO Remove in v5 in favor of `status` for REST calls, see https://gitlab.com/gitlab-org/gitlab/-/issues/375709
|
||||
expose :deprecated_rest_status, as: :status
|
||||
end
|
||||
end
|
||||
|
|
|
@ -43,6 +43,8 @@ image: maven:3-openjdk-8
|
|||
|
||||
# Cache downloaded dependencies and plugins between builds.
|
||||
# To keep cache across branches add 'key: "$CI_JOB_NAME"'
|
||||
# Be aware that `mvn deploy` will install the built jar into this repository. If you notice your cache size
|
||||
# increasing, consider adding `-Dmaven.install.skip=true` to `MAVEN_OPTS` or in `.mvn/maven.config`
|
||||
cache:
|
||||
paths:
|
||||
- .m2/repository
|
||||
|
|
|
@ -41361,9 +41361,6 @@ msgstr ""
|
|||
msgid "This will remove the fork relationship between this project and other projects in the fork network."
|
||||
msgstr ""
|
||||
|
||||
msgid "Thread options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Thread to reply to cannot be found"
|
||||
msgstr ""
|
||||
|
||||
|
@ -41962,6 +41959,9 @@ msgstr ""
|
|||
msgid "Toggle commit list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle dropdown"
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle emoji award"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -226,7 +226,11 @@ module QA
|
|||
end
|
||||
|
||||
def api_housekeeping_path
|
||||
"/projects/#{id}/housekeeping"
|
||||
"#{api_get_path}/housekeeping"
|
||||
end
|
||||
|
||||
def api_protected_branches_path
|
||||
"#{api_get_path}/protected_branches"
|
||||
end
|
||||
|
||||
def api_post_body
|
||||
|
@ -423,7 +427,7 @@ module QA
|
|||
end
|
||||
|
||||
def wikis
|
||||
response = get(request_url(api_wikis_path))
|
||||
response = api_get_from(api_wikis_path)
|
||||
parse_body(response)
|
||||
end
|
||||
|
||||
|
@ -440,6 +444,11 @@ module QA
|
|||
api_post_to(api_releases_path, tag_name: tag, ref: ref, **params)
|
||||
end
|
||||
|
||||
def protected_branches
|
||||
response = api_get_from(api_protected_branches_path)
|
||||
parse_body(response)
|
||||
end
|
||||
|
||||
# Uses the API to wait until a pull mirroring update is successful (pull mirroring is treated as an import)
|
||||
def wait_for_pull_mirroring
|
||||
mirror_succeeded = Support::Retrier.retry_until(
|
||||
|
|
|
@ -41,6 +41,7 @@ module QA
|
|||
aggregate_failures do
|
||||
verify_status_data
|
||||
verify_repository_import
|
||||
verify_protected_branches_import
|
||||
verify_commits_import
|
||||
verify_labels_import
|
||||
verify_issues_import
|
||||
|
@ -69,6 +70,21 @@ module QA
|
|||
expect(imported_project.api_response[:import_error]).to be_nil
|
||||
end
|
||||
|
||||
def verify_protected_branches_import
|
||||
branches = imported_project.protected_branches.map do |branch|
|
||||
branch.slice(:name, :allow_force_push, :code_owner_approval_required)
|
||||
end
|
||||
expect(branches.first).to include(
|
||||
{
|
||||
name: 'main'
|
||||
# TODO: Add validation once https://gitlab.com/groups/gitlab-org/-/epics/8585 is closed
|
||||
# At the moment both options are always set to false regardless of state in github
|
||||
# allow_force_push: true,
|
||||
# code_owner_approval_required: true
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
def verify_commits_import
|
||||
expect(imported_project.commits.length).to eq(2)
|
||||
end
|
||||
|
@ -122,7 +138,7 @@ module QA
|
|||
mr.iid = merge_requests.first[:iid]
|
||||
mr.api_client = api_client
|
||||
end.reload!
|
||||
mr_comments = merge_request.comments.map { |comment| comment[:body] } # rubocop:disable Rails/Pluck
|
||||
mr_comments = merge_request.comments.map { |comment| comment[:body] }
|
||||
|
||||
expect(merge_requests.length).to eq(1)
|
||||
expect(merge_request.api_resource).to include(
|
||||
|
|
|
@ -24,14 +24,14 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do
|
|||
|
||||
context 'close/reopen/report toggle' do
|
||||
it 'opens a dropdown when toggle is clicked' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(container).to have_link("Close merge request")
|
||||
expect(container).to have_link('Report abuse')
|
||||
end
|
||||
|
||||
it 'links to Report Abuse' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
click_link 'Report abuse'
|
||||
|
||||
expect(page).to have_content('Report abuse to admin')
|
||||
|
@ -42,7 +42,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do
|
|||
let(:issuable) { create(:merge_request, :opened, source_project: project) }
|
||||
|
||||
it 'shows the `Edit` and `Mark as draft` buttons' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(container).to have_link('Edit')
|
||||
expect(container).to have_link('Mark as draft')
|
||||
|
@ -56,7 +56,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do
|
|||
let(:issuable) { create(:merge_request, :closed, source_project: project) }
|
||||
|
||||
it 'shows both the `Edit` and `Reopen` button' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(container).to have_link('Edit')
|
||||
expect(container).to have_link('Report abuse')
|
||||
|
@ -68,7 +68,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do
|
|||
let(:issuable) { create(:merge_request, :closed, source_project: project, author: user) }
|
||||
|
||||
it 'shows both the `Edit` and `Reopen` button' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(container).to have_link('Edit')
|
||||
expect(container).to have_link('Reopen merge request')
|
||||
|
|
|
@ -90,7 +90,7 @@ RSpec.describe 'Merge Request Discussion Lock', :js do
|
|||
end
|
||||
|
||||
it 'the user can lock the merge_request' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(page).to have_content('Lock merge request')
|
||||
end
|
||||
|
@ -103,7 +103,7 @@ RSpec.describe 'Merge Request Discussion Lock', :js do
|
|||
end
|
||||
|
||||
it 'the user can unlock the merge_request' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(page).to have_content('Unlock merge request')
|
||||
end
|
||||
|
|
|
@ -43,7 +43,7 @@ RSpec.describe 'User manages subscription', :js do
|
|||
it 'toggles subscription' do
|
||||
wait_for_requests
|
||||
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
expect(page).to have_selector('.gl-toggle:not(.is-checked)')
|
||||
find('[data-testid="notifications-toggle"] .gl-toggle').click
|
||||
|
|
|
@ -16,12 +16,12 @@ RSpec.describe 'Merge request > User marks merge request as draft', :js do
|
|||
end
|
||||
|
||||
it 'toggles draft status' do
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
click_link 'Mark as draft'
|
||||
|
||||
expect(page).to have_content("Draft: #{merge_request.title}")
|
||||
|
||||
click_button 'Merge request actions'
|
||||
click_button 'Toggle dropdown'
|
||||
|
||||
page.within('.detail-page-header-actions') do
|
||||
click_link 'Mark as ready'
|
||||
|
|
|
@ -31,7 +31,7 @@ RSpec.describe 'User uploads avatar to profile' do
|
|||
|
||||
wait_for_all_requests
|
||||
|
||||
data_uri = find('.avatar-image .avatar')['src']
|
||||
data_uri = find('.avatar-image .gl-avatar')['src']
|
||||
expect(page.find('.header-user-avatar')['src']).to eq data_uri
|
||||
expect(page.find('[data-testid="sidebar-user-avatar"]')['src']).to eq data_uri
|
||||
end
|
||||
|
|
|
@ -1147,7 +1147,7 @@ RSpec.describe API::Ci::Runners do
|
|||
])
|
||||
end
|
||||
|
||||
# TODO: Remove in %15.0 (https://gitlab.com/gitlab-org/gitlab/-/issues/351466)
|
||||
# TODO: Remove when REST API v5 is implemented (https://gitlab.com/gitlab-org/gitlab/-/issues/351466)
|
||||
it 'returns empty result when type does not match' do
|
||||
get api("/groups/#{group.id}/runners?type=project_type", user)
|
||||
|
||||
|
|
|
@ -159,11 +159,13 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter, :aggregate_failures do
|
|||
.with(
|
||||
project_id: project.id,
|
||||
exception: exception,
|
||||
error_source: 'klass_name'
|
||||
error_source: 'klass_name',
|
||||
fail_import: false
|
||||
)
|
||||
.and_call_original
|
||||
|
||||
worker.import(project, client, { 'number' => 10, 'github_id' => 1 })
|
||||
expect { worker.import(project, client, { 'number' => 10, 'github_id' => 1 }) }
|
||||
.to raise_error(exception)
|
||||
|
||||
expect(project.import_state.reload.status).to eq('started')
|
||||
|
||||
|
|
Loading…
Reference in New Issue