Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2022-10-31 12:11:25 +00:00
parent 5025412fc4
commit 004274926a
21 changed files with 72 additions and 59 deletions

View File

@ -15,6 +15,7 @@ import eventHub from '../event_hub';
import GroupsApp from './app.vue';
const [SORTING_ITEM_NAME] = OVERVIEW_TABS_SORTING_ITEMS;
const MIN_SEARCH_LENGTH = 3;
export default {
components: { GlTabs, GlTab, GroupsApp, GlSearchBoxByType, GlSorting, GlSortingItem },
@ -136,7 +137,9 @@ export default {
handleSearchInput(value) {
this.search = value;
this.debouncedSearch();
if (!this.search || this.search.length >= MIN_SEARCH_LENGTH) {
this.debouncedSearch();
}
},
debouncedSearch: debounce(async function debouncedSearch() {
this.handleSearchOrSortChange();

View File

@ -50,7 +50,11 @@ export default {
</script>
<template>
<div class="mr-widget-body media" :class="wrapperClasses" v-on="$listeners">
<div
class="mr-widget-body media mr-widget-body-line-height-1 gl-line-height-normal"
:class="wrapperClasses"
v-on="$listeners"
>
<div v-if="isLoading" class="gl-w-full mr-conflict-loader">
<slot name="loading">
<div class="gl-display-flex">
@ -67,7 +71,10 @@ export default {
</slot>
<div class="gl-display-flex gl-w-full">
<div
:class="{ 'gl-display-flex': actions.length, 'gl-md-display-flex': !actions.length }"
:class="{
'gl-display-flex': actions.length,
'gl-md-display-flex gl-align-items-center': !actions.length,
}"
class="media-body"
>
<slot></slot>

View File

@ -7,8 +7,8 @@ value_description: ""
extra_properties:
identifiers:
product_section: dev
product_stage: create
product_group: group::ecosystem
product_stage: manage
product_group: group::foundations
product_category:
milestone: "13.4"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41668

View File

@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/345837
milestone: '14.7'
type: development
group: group::dynamic analysis
default_enabled: false
default_enabled: true

View File

@ -58,7 +58,7 @@
to one of the other two forms (using the correct appropriate type in the signature, or using
an inline argument expression).
# The following items are not published on the docs page, but may be used in the future.
stage: ecosystem
stage: Manage
tiers: # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate]
issue_url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/257883'
documentation_url: # (optional) This is a link to the current documentation page

View File

@ -8,7 +8,7 @@
The [Jira DVCS Connector](https://docs.gitlab.com/ee/integration/jira/dvcs.html) (which enables the [Jira Development Panel](https://support.atlassian.com/jira-software-cloud/docs/view-development-information-for-an-issue/)), will no longer support Jira Cloud users starting with GitLab 16.0. The [GitLab for Jira App](https://docs.gitlab.com/ee/integration/jira/connect-app.html) has always been recommended for Jira Cloud users, and it will be required instead of the DVCS connector. If you are a Jira Cloud user, we recommended you begin migrating to the GitLab for Jira App.
Any Jira Server and Jira Data Center users will need to confirm they are not using the GitHub Enterprise Connector to enable the GitLab DVCS integration, but they may continue to use the [native GitLab DVCS integration](https://docs.gitlab.com/ee/integration/jira/dvcs.html) (supported in Jira 8.14 and later).
# The following items are not published on the docs page, but may be used in the future.
stage: Ecosystem # (optional - may be required in the future) String value of the stage that the feature was created in. e.g., Growth
stage: Manage # (optional - may be required in the future) String value of the stage that the feature was created in. e.g., Growth
tiers: # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate]
issue_url: https://gitlab.com/groups/gitlab-org/-/epics/7508 # (optional) This is a link to the deprecation issue in GitLab
documentation_url: https://docs.gitlab.com/ee/integration/jira/dvcs.html # (optional) This is a link to the current documentation page

View File

@ -42,7 +42,7 @@ gitlab-rake "gitlab:uploads:migrate:all"
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:uploads:migrate:all
```
You can optionally track progress and verify that all packages migrated successfully using the
You can optionally track progress and verify that all uploads migrated successfully using the
[PostgreSQL console](https://docs.gitlab.com/omnibus/settings/database.html#connecting-to-the-bundled-postgresql-database):
- `sudo gitlab-rails dbconsole` for Omnibus GitLab instances.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -4106,6 +4106,8 @@ successfully complete before starting.
shows **pending** (**{status_pending}**) if the downstream pipeline status is
**waiting for manual action** (**{status_manual}**) due to manual jobs. By default,
jobs in later stages do not start until the trigger job completes.
- If the downstream pipeline has a failed job, but the job uses [`allow_failure: true`](#allow_failure),
the downstream pipeline is considered successful and the trigger job shows **success**.
#### `trigger:forward`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1152,6 +1152,9 @@ To delete an on-demand scan:
## Site profile
> - Scan method [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/345837) in GitLab 15.6.
> - File URL [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/345837) in GitLab 15.6.
A site profile defines the attributes and configuration details of the deployed application,
website, or API to be scanned by DAST. A site profile can be referenced in `.gitlab-ci.yml` and
on-demand scans.
@ -1172,6 +1175,9 @@ A site profile contains:
- **Password form field**: The name of password field at the sign-in HTML form.
- **Submit form field**: The `id` or `name` of the element that when selected submits the sign-in HTML form.
- **Scan method**: A type of method to perform API testing. The supported methods are OpenAPI, Postman Collections, and HTTP Archive (HAR) documents.
- **File URL**: The URL of the OpenAPI, Postman Collection, or HTTP Archive file.
When an API site type is selected, a [host override](#host-override) is used to ensure the API being scanned is on the same host as the target. This is done to reduce the risk of running an active scan against the wrong API.
When configured, request headers and password fields are encrypted using [`aes-256-gcm`](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) before being stored in the database.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -168,7 +168,7 @@ If an issue or merge request is locked and closed, you cannot reopen it.
> - [Renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87403) from "confidential comments" to "internal notes" in GitLab 15.0.
> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87383) in GitLab 15.0.
> - [Feature flag `confidential_notes`](https://gitlab.com/gitlab-org/gitlab/-/issues/362712) removed in GitLab 15.2.
> - [Changed] permissions in GitLab 15.5 to at least the Reporter role. In GitLab 15.4 and earlier, issue or epic authors and assignees could also read and create internal notes.
> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/363045) permissions in GitLab 15.5 to at least the Reporter role. In GitLab 15.4 and earlier, issue or epic authors and assignees could also read and create internal notes.
You can add an internal note **to an issue or an epic**. It's then visible only to project members who have at least the Reporter role.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -37,7 +37,6 @@ namespace :tw do
CodeOwnerRule.new('Distribution (Omnibus)', '@axil'),
CodeOwnerRule.new('Documentation Guidelines', '@sselhorn'),
CodeOwnerRule.new('Dynamic Analysis', '@rdickenson'),
CodeOwnerRule.new('Ecosystem', '@kpaizee'),
CodeOwnerRule.new('Editor', '@ashrafkhamis'),
CodeOwnerRule.new('Foundations', '@rdickenson'),
CodeOwnerRule.new('Fuzz Testing', '@rdickenson'),

View File

@ -27129,9 +27129,6 @@ msgstr ""
msgid "No matching results for \"%{query}\""
msgstr ""
msgid "No matching results..."
msgstr ""
msgid "No members found"
msgstr ""
@ -28104,12 +28101,6 @@ msgstr ""
msgid "OnDemandScans|Could not run the scan. Please try again."
msgstr ""
msgid "OnDemandScans|Create new scanner profile"
msgstr ""
msgid "OnDemandScans|Create new site profile"
msgstr ""
msgid "OnDemandScans|DAST configuration"
msgstr ""
@ -28155,12 +28146,6 @@ msgstr ""
msgid "OnDemandScans|Keep editing"
msgstr ""
msgid "OnDemandScans|Manage scanner profiles"
msgstr ""
msgid "OnDemandScans|Manage site profiles"
msgstr ""
msgid "OnDemandScans|My daily scan"
msgstr ""
@ -28182,12 +28167,6 @@ msgstr ""
msgid "OnDemandScans|No %{profileType} profiles found for DAST"
msgstr ""
msgid "OnDemandScans|No profile yet. In order to create a new scan, you need to have at least one completed scanner profile."
msgstr ""
msgid "OnDemandScans|No profile yet. In order to create a new scan, you need to have at least one completed site profile."
msgstr ""
msgid "OnDemandScans|On-demand Scans"
msgstr ""
@ -28230,15 +28209,6 @@ msgstr ""
msgid "OnDemandScans|Scan type"
msgstr ""
msgid "OnDemandScans|Scanner profile"
msgstr ""
msgid "OnDemandScans|Select one of the existing profiles"
msgstr ""
msgid "OnDemandScans|Site profile"
msgstr ""
msgid "OnDemandScans|Start by creating a new profile. Profiles make it easy to save and reuse configuration details for GitLabs security tools."
msgstr ""
@ -28269,12 +28239,6 @@ msgstr ""
msgid "OnDemandScans|Timezone"
msgstr ""
msgid "OnDemandScans|Use existing scanner profile"
msgstr ""
msgid "OnDemandScans|Use existing site profile"
msgstr ""
msgid "OnDemandScans|View results"
msgstr ""

View File

@ -42,10 +42,10 @@ gitlab:
resources:
requests:
cpu: 200m
memory: 450Mi
memory: 500Mi
limits:
cpu: 400m
memory: 900Mi
memory: 1000Mi
gitlab-shell:
resources:
requests:

View File

@ -67,6 +67,7 @@ describe('OverviewTabs', () => {
const findTabPanels = () => wrapper.findAllComponents(GlTab);
const findTab = (name) => wrapper.findByRole('tab', { name });
const findSelectedTab = () => wrapper.findByRole('tab', { selected: true });
const findSearchInput = () => wrapper.findByPlaceholderText(OverviewTabs.i18n.searchPlaceholder);
beforeEach(() => {
axiosMock = new AxiosMockAdapter(axios);
@ -244,18 +245,39 @@ describe('OverviewTabs', () => {
};
describe('when search is typed in', () => {
const search = 'Foo bar';
describe('when search is greater than or equal to 3 characters', () => {
const search = 'Foo bar';
beforeEach(async () => {
await setup();
await wrapper.findByPlaceholderText(OverviewTabs.i18n.searchPlaceholder).setValue(search);
beforeEach(async () => {
await setup();
await findSearchInput().setValue(search);
});
it('updates query string with `filter` key', () => {
expect(routerMock.push).toHaveBeenCalledWith({ query: { filter: search } });
});
sharedAssertions({ search, sort: defaultProvide.initialSort });
});
it('updates query string with `filter` key', () => {
expect(routerMock.push).toHaveBeenCalledWith({ query: { filter: search } });
});
describe('when search is less than 3 characters', () => {
const search = 'Fo';
sharedAssertions({ search, sort: defaultProvide.initialSort });
beforeEach(async () => {
await setup();
await findSearchInput().setValue(search);
});
it('does not emit `fetchFilteredAndSortedGroups` event from `eventHub`', () => {
expect(eventHub.$emit).not.toHaveBeenCalledWith(
`${ACTIVE_TAB_SUBGROUPS_AND_PROJECTS}fetchFilteredAndSortedGroups`,
{
filterGroupsBy: search,
sortBy: defaultProvide.initialSort,
},
);
});
});
});
describe('when sort is changed', () => {
@ -308,6 +330,16 @@ describe('OverviewTabs', () => {
).toBe('Foo bar');
});
describe('when search is cleared', () => {
it('removes `filter` key from query string', async () => {
await findSearchInput().setValue('');
expect(routerMock.push).toHaveBeenCalledWith({
query: { sort: SORTING_ITEM_UPDATED.desc },
});
});
});
it('sets sort dropdown', () => {
expect(wrapper.findComponent(GlSorting).props()).toMatchObject({
text: SORTING_ITEM_UPDATED.label,

View File

@ -2,7 +2,7 @@
exports[`MRWidgetAutoMergeEnabled when graphql is disabled template should have correct elements 1`] = `
<div
class="mr-widget-body media"
class="mr-widget-body media mr-widget-body-line-height-1 gl-line-height-normal"
>
<div
class="gl-w-6 gl-h-6 gl-display-flex gl-align-self-start gl-mr-3"
@ -179,7 +179,7 @@ exports[`MRWidgetAutoMergeEnabled when graphql is disabled template should have
exports[`MRWidgetAutoMergeEnabled when graphql is enabled template should have correct elements 1`] = `
<div
class="mr-widget-body media"
class="mr-widget-body media mr-widget-body-line-height-1 gl-line-height-normal"
>
<div
class="gl-w-6 gl-h-6 gl-display-flex gl-align-self-start gl-mr-3"