{}">
diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/store/actions.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/store/actions.js
index e624bd1eaee..14b46c1c431 100644
--- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/store/actions.js
+++ b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/store/actions.js
@@ -20,7 +20,7 @@ export const receiveLabelsFailure = ({ commit }) => {
};
export const fetchLabels = ({ state, dispatch }) => {
dispatch('requestLabels');
- axios
+ return axios
.get(state.labelsFetchPath)
.then(({ data }) => {
dispatch('receiveLabelsSuccess', data);
diff --git a/changelogs/unreleased/auto-deploy-1-0-7.yml b/changelogs/unreleased/auto-deploy-1-0-7.yml
new file mode 100644
index 00000000000..6bac06115ae
--- /dev/null
+++ b/changelogs/unreleased/auto-deploy-1-0-7.yml
@@ -0,0 +1,5 @@
+---
+title: 'Auto Deploy: fixes issues for fetching other charts from stable repo'
+merge_request: 46531
+author:
+type: fixed
diff --git a/changelogs/unreleased/kp-fix-labels-dropdown-search-autofocus.yml b/changelogs/unreleased/kp-fix-labels-dropdown-search-autofocus.yml
new file mode 100644
index 00000000000..76981893244
--- /dev/null
+++ b/changelogs/unreleased/kp-fix-labels-dropdown-search-autofocus.yml
@@ -0,0 +1,5 @@
+---
+title: Autofocus on search input within labels dropdown after labels are loaded
+merge_request: 46750
+author:
+type: fixed
diff --git a/changelogs/unreleased/update-haml_lint-to-0-36-0.yml b/changelogs/unreleased/update-haml_lint-to-0-36-0.yml
new file mode 100644
index 00000000000..74ed2b5226b
--- /dev/null
+++ b/changelogs/unreleased/update-haml_lint-to-0-36-0.yml
@@ -0,0 +1,5 @@
+---
+title: Update haml_lint from 0.34.0 to 0.36.0
+merge_request: 44914
+author: Takuya Noguchi
+type: other
diff --git a/changelogs/unreleased/wiki-delete.yml b/changelogs/unreleased/wiki-delete.yml
new file mode 100644
index 00000000000..28e1aa64313
--- /dev/null
+++ b/changelogs/unreleased/wiki-delete.yml
@@ -0,0 +1,5 @@
+---
+title: Minor UI improvements to Wiki Delete Page button and modal
+merge_request: 45740
+author:
+type: changed
diff --git a/danger/commit_messages/Dangerfile b/danger/commit_messages/Dangerfile
index 9aee544bc8a..4e17db60471 100644
--- a/danger/commit_messages/Dangerfile
+++ b/danger/commit_messages/Dangerfile
@@ -101,25 +101,27 @@ end
def lint_commits(commits)
commit_linters = commits.map { |commit| lint_commit(commit) }
- failed_commit_linters = commit_linters.select { |commit_linter| commit_linter.failed? }
- warn_or_fail_commits(failed_commit_linters, default_to_fail: !squash_mr?)
-
- if count_non_fixup_commits(commit_linters) > MAX_COMMITS_COUNT
- self.warn(format(MAX_COMMITS_COUNT_EXCEEDED_MESSAGE, max_commits_count: MAX_COMMITS_COUNT))
- end
if squash_mr?
multi_line_commit_linter = commit_linters.detect { |commit_linter| !commit_linter.merge? && commit_linter.multi_line? }
if multi_line_commit_linter && multi_line_commit_linter.failed?
warn_or_fail_commits(multi_line_commit_linter)
+ commit_linters.delete(multi_line_commit_linter) # Don't show an error (here) and a warning (below)
elsif gitlab_danger.ci? # We don't have access to the MR title locally
title_linter = lint_mr_title(gitlab.mr_json['title'])
if title_linter.failed?
warn_or_fail_commits(title_linter)
end
end
+ else
+ if count_non_fixup_commits(commit_linters) > MAX_COMMITS_COUNT
+ self.warn(format(MAX_COMMITS_COUNT_EXCEEDED_MESSAGE, max_commits_count: MAX_COMMITS_COUNT))
+ end
end
+
+ failed_commit_linters = commit_linters.select { |commit_linter| commit_linter.failed? }
+ warn_or_fail_commits(failed_commit_linters, default_to_fail: !squash_mr?)
end
def warn_or_fail_commits(failed_linters, default_to_fail: true)
diff --git a/doc/README.md b/doc/README.md
index 210f5ecab65..5ef546ea952 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -452,7 +452,7 @@ Learn more about using Git, and using Git with GitLab:
## Coming to GitLab from another platform
-If you are coming to GitLab from another platform, you'll find the following information useful:
+If you are coming to GitLab from another platform, the following information is useful:
| Topic | Description |
|:---------------------------------------------------------------|:---------------------------------------------------------------------------------------|
diff --git a/doc/administration/gitaly/index.md b/doc/administration/gitaly/index.md
index bfa32b08b3e..0d9c761e078 100644
--- a/doc/administration/gitaly/index.md
+++ b/doc/administration/gitaly/index.md
@@ -373,7 +373,7 @@ As the final step, you must update Gitaly clients to switch from using local Git
the Gitaly servers you just configured.
This can be risky because anything that prevents your Gitaly clients from reaching the Gitaly
-servers will cause all Gitaly requests to fail. For example, any sort of network, firewall, or name
+servers causes all Gitaly requests to fail. For example, any sort of network, firewall, or name
resolution problems.
Additionally, you must [disable Rugged](../nfs.md#improving-nfs-performance-with-gitlab)
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index 977de5c2a6d..92644d5820f 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -8047,7 +8047,7 @@ type Group {
"""
Represents the code coverage activity for this group. Available only when
- feature flag `group_coverage_data_report` is enabled
+ feature flag `group_coverage_data_report_graph` is enabled
"""
codeCoverageActivities(
"""
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index 3f946a6a7a7..7108dbd2280 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -22228,7 +22228,7 @@
},
{
"name": "codeCoverageActivities",
- "description": "Represents the code coverage activity for this group. Available only when feature flag `group_coverage_data_report` is enabled",
+ "description": "Represents the code coverage activity for this group. Available only when feature flag `group_coverage_data_report_graph` is enabled",
"args": [
{
"name": "startDate",
diff --git a/doc/development/contributing/merge_request_workflow.md b/doc/development/contributing/merge_request_workflow.md
index 31f59ad875c..0d2e94d4359 100644
--- a/doc/development/contributing/merge_request_workflow.md
+++ b/doc/development/contributing/merge_request_workflow.md
@@ -123,24 +123,36 @@ document from the Kubernetes team also has some great points regarding this.
### Commit messages guidelines
-When writing commit messages, please follow the guidelines below:
+Commit messages should follow the guidelines below, for reasons explained by Chris Beams in [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/):
-- The commit subject must contain at least 3 words.
-- The commit subject must not be longer than 72 characters.
-- The commit subject must start with a capital letter.
-- The commit subject must not end with a period.
- The commit subject and body must be separated by a blank line.
+- The commit subject must start with a capital letter.
+- The commit subject must not be longer than 72 characters.
+- The commit subject must not end with a period.
- The commit body must not contain more than 72 characters per line.
- Commits that change 30 or more lines across at least 3 files must
describe these changes in the commit body.
- The commit subject or body must not contain Emojis.
- Use issues and merge requests' full URLs instead of short references,
as they are displayed as plain text outside of GitLab.
-- The merge request must not contain more than 10 commit messages.
+- The merge request should not contain more than 10 commit messages.
+- The commit subject should contain at least 3 words.
-If the guidelines are not met, the MR will not pass the
+CAUTION: **Caution:**
+If the guidelines are not met, the MR may not pass the
[Danger checks](https://gitlab.com/gitlab-org/gitlab/blob/master/danger/commit_messages/Dangerfile).
-For more information see [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/).
+
+TIP: **Tip:**
+Consider enabling [Squash and merge](../../user/project/merge_requests/squash_and_merge.md#squash-and-merge) if your merge
+request includes "Applied suggestion to X files" commits, so that Danger can ignore those.
+
+#### Why these standards matter
+
+1. Consistent commit messages that follow these guidelines make the history more readable.
+1. Concise standard commit messages helps to identify breaking changes for a deployment or ~"master:broken" quicker when
+ reviewing commits between two points in time.
+
+#### Commit message template
Example commit message template that can be used on your machine that embodies the above (guide for [how to apply template](https://codeinthehole.com/tips/a-useful-template-for-commit-messages/)):
diff --git a/doc/development/feature_flags/development.md b/doc/development/feature_flags/development.md
index 40b086d12ff..8383c3a2b09 100644
--- a/doc/development/feature_flags/development.md
+++ b/doc/development/feature_flags/development.md
@@ -104,7 +104,7 @@ a YAML definition in `config/feature_flags` or `ee/config/feature_flags`.
Only feature flags that have a YAML definition file can be used when running the development or testing environments.
```shell
-$ bin/feature-flag my-feature-flag
+$ bin/feature-flag my_feature_flag
>> Specify the group introducing the feature flag, like `group::apm`:
?> group::memory
@@ -116,9 +116,9 @@ https://gitlab.com/gitlab-org/gitlab/-/issues/new?issue%5Btitle%5D=%5BFeature+fl
>> URL of the rollout issue (enter to skip):
?> https://gitlab.com/gitlab-org/gitlab/-/issues/232533
-create config/feature_flags/development/test-flag.yml
+create config/feature_flags/development/my_feature_flag.yml
---
-name: test-flag
+name: my_feature_flag
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38602
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/232533
group: group::memory
diff --git a/doc/user/project/wiki/img/wiki_move_page_1.png b/doc/user/project/wiki/img/wiki_move_page_1.png
deleted file mode 100644
index 189fcc9a845..00000000000
Binary files a/doc/user/project/wiki/img/wiki_move_page_1.png and /dev/null differ
diff --git a/doc/user/project/wiki/img/wiki_move_page_2.png b/doc/user/project/wiki/img/wiki_move_page_2.png
deleted file mode 100644
index 63e6ddb29c1..00000000000
Binary files a/doc/user/project/wiki/img/wiki_move_page_2.png and /dev/null differ
diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md
index 64608b9a915..e082e091dec 100644
--- a/doc/user/project/wiki/index.md
+++ b/doc/user/project/wiki/index.md
@@ -96,12 +96,12 @@ Please note that:
## Editing a wiki page
-NOTE: **Note:**
-Requires Developer [permissions](../../permissions.md).
+You need Developer [permissions](../../permissions.md) or higher to edit a wiki page.
+To do so:
-To edit a page, simply click on the **Edit** button. From there on, you can
-change its content. When done, click **Save changes** for the changes to take
-effect.
+1. Click the edit icon (**{pencil}**).
+1. Edit the content.
+1. Click **Save changes**.
### Adding a table of contents
@@ -110,23 +110,34 @@ For an example, see [Table of contents](../../markdown.md#table-of-contents).
## Deleting a wiki page
-NOTE: **Note:**
-Requires Maintainer [permissions](../../permissions.md).
+You need Maintainer [permissions](../../permissions.md) or higher to delete a wiki page.
+To do so:
-You can find the **Delete** button only when editing a page. Click on it and
-confirm you want the page to be deleted.
+1. Open the page you want to delete.
+1. Click the **Delete page** button.
+1. Confirm the deletion.
## Moving a wiki page
-You can move a wiki page from one directory to another by specifying the full
-path in the wiki page title in the [edit](#editing-a-wiki-page) form.
+You need Developer [permissions](../../permissions.md) or higher to move a wiki page.
+To do so:
-![Moving a page](img/wiki_move_page_1.png)
+1. Click the edit icon (**{pencil}**).
+1. Add the new path to the **Title** field.
+1. Click **Save changes**.
-![After moving a page](img/wiki_move_page_2.png)
+For example, if you have a wiki page called `about` under `company` and you want to
+move it to the wiki's root:
-In order to move a wiki page to the root directory, the wiki page title must
-be preceded by the slash (`/`) character.
+1. Click the edit icon (**{pencil}**).
+1. Change the **Title** from `about` to `/about`.
+1. Click **Save changes**.
+
+If you want to do the opposite:
+
+1. Click the edit icon (**{pencil}**).
+1. Change the **Title** from `about` to `company/about`.
+1. Click **Save changes**.
## Viewing a list of all created wiki pages
diff --git a/lefthook.yml b/lefthook.yml
index 54bbdf87e53..e4a960090ed 100644
--- a/lefthook.yml
+++ b/lefthook.yml
@@ -13,6 +13,11 @@ pre-push:
files: git diff --name-only $(git merge-base origin/master HEAD)..HEAD
glob: "*.html.haml"
run: bundle exec haml-lint --config .haml-lint.yml {files}
+ markdownlint:
+ tags: documentation style
+ files: git diff --name-only $(git merge-base origin/master HEAD)..HEAD
+ glob: "*.md"
+ run: yarn markdownlint {files}
scss-lint:
tags: stylesheet css style
files: git diff --name-only $(git merge-base origin/master HEAD)..HEAD
@@ -24,3 +29,8 @@ pre-push:
files: git diff --name-only $(git merge-base origin/master HEAD)..HEAD
glob: "*.rb"
run: bundle exec rubocop --parallel --force-exclusion {files}
+ vale: # Requires Vale: https://docs.gitlab.com/ee/development/documentation/#install-linters
+ tags: documentation style
+ files: git diff --name-only $(git merge-base origin/master HEAD)..HEAD
+ glob: "*.md"
+ run: if command -v vale 2> /dev/null; then vale --config .vale.ini --minAlertLevel error {files}; else echo "Vale not found. Install Vale"; fi
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 974b141d5a9..7ad5a9e2bba 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 @@
.dast-auto-deploy:
- image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v1.0.6"
+ image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v1.0.7"
dast_environment_deploy:
extends: .dast-auto-deploy
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
index 4e0f2232cb6..33d77e39bc9 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 @@
.auto-deploy:
- image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v1.0.6"
+ image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v1.0.7"
dependencies: []
review:
diff --git a/package.json b/package.json
index 225b77b3241..683f04ef172 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"eslint-staged-fix": "git diff --diff-filter=d --cached --name-only | grep -E \"(.*)\\.(js|vue)$\" | xargs eslint --cache --max-warnings 0 --report-unused-disable-directives --fix",
"eslint-report": "eslint --max-warnings 0 --ext .js,.vue --format html --output-file ./eslint-report.html --no-inline-config .",
"file-coverage": "scripts/frontend/file_test_coverage.js",
+ "lint-docs": "scripts/lint-doc.sh",
"prejest": "yarn check-dependencies",
"jest": "jest --config jest.config.js",
"jest-debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
@@ -20,7 +21,7 @@
"karma": "BABEL_ENV=${BABEL_ENV:=karma} karma start --single-run true config/karma.config.js",
"karma-coverage": "BABEL_ENV=coverage karma start --single-run true config/karma.config.js",
"karma-start": "BABEL_ENV=karma karma start config/karma.config.js",
- "markdownlint": "markdownlint -c .markdownlint.json 'doc/**/*.md'",
+ "markdownlint": "markdownlint --config .markdownlint.json",
"postinstall": "node ./scripts/frontend/postinstall.js",
"prettier-staged": "node ./scripts/frontend/prettier.js check",
"prettier-staged-save": "node ./scripts/frontend/prettier.js save",
@@ -80,7 +81,7 @@
"deckar01-task_list": "^2.3.1",
"diff": "^3.4.0",
"document-register-element": "1.14.3",
- "dompurify": "^2.2.0",
+ "dompurify": "^2.2.2",
"dropzone": "^4.2.0",
"editorconfig": "^0.15.3",
"emoji-regex": "^7.0.3",
diff --git a/spec/frontend/vue_shared/components/sidebar/labels_select_vue/dropdown_contents_labels_view_spec.js b/spec/frontend/vue_shared/components/sidebar/labels_select_vue/dropdown_contents_labels_view_spec.js
index e8a126d8774..78367b3a5b4 100644
--- a/spec/frontend/vue_shared/components/sidebar/labels_select_vue/dropdown_contents_labels_view_spec.js
+++ b/spec/frontend/vue_shared/components/sidebar/labels_select_vue/dropdown_contents_labels_view_spec.js
@@ -128,6 +128,16 @@ describe('DropdownContentsLabelsView', () => {
});
});
+ describe('handleComponentAppear', () => {
+ it('calls `focusInput` on searchInput field', async () => {
+ wrapper.vm.$refs.searchInput.focusInput = jest.fn();
+
+ await wrapper.vm.handleComponentAppear();
+
+ expect(wrapper.vm.$refs.searchInput.focusInput).toHaveBeenCalled();
+ });
+ });
+
describe('handleComponentDisappear', () => {
it('calls action `receiveLabelsSuccess` with empty array', () => {
jest.spyOn(wrapper.vm, 'receiveLabelsSuccess');
@@ -301,7 +311,6 @@ describe('DropdownContentsLabelsView', () => {
const searchInputEl = wrapper.find(GlSearchBoxByType);
expect(searchInputEl.exists()).toBe(true);
- expect(searchInputEl.attributes('autofocus')).toBe('true');
});
it('renders label elements for all labels', () => {
diff --git a/yarn.lock b/yarn.lock
index 1eafecb9c7e..51734d866f5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4181,10 +4181,10 @@ domhandler@^2.3.0:
dependencies:
domelementtype "1"
-dompurify@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.0.tgz#51d34e76faa38b5d6b4e83a0678530f27fe3965c"
- integrity sha512-bqFOQ7XRmmozp0VsKdIEe8UwZYxj0yttz7l80GBtBqdVRY48cOpXH2J/CVO7AEkV51qY0EBVXfilec18mdmQ/w==
+dompurify@^2.2.0, dompurify@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.2.tgz#cb8c2b1a2f3c8a0b565127504ae4eedec176a972"
+ integrity sha512-BsGR4nDLaC5CNBnyT5I+d5pOeaoWvgVeg6Gq/aqmKYWMPR07131u60I80BvExLAJ0FQEIBQ1BTicw+C5+jOyrg==
domutils@^1.5.1:
version "1.6.2"