summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-02-10 06:10:56 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-10 06:10:56 +0000
commit36ff95a8a93225f47a833989429cc766a6ff2661 (patch)
tree2101cffff43469c06d846fcd1ed6a58acd06f735
parent677227413ae31f5a02fd4c8e10f6ef50c228334f (diff)
downloadgitlab-ce-36ff95a8a93225f47a833989429cc766a6ff2661.tar.gz
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab-ci.yml3
-rw-r--r--app/assets/javascripts/boards/components/boards_selector.vue4
-rw-r--r--app/services/users/build_service.rb1
-rw-r--r--data/deprecations/15-9-required-pipeline-configuration.yml28
-rw-r--r--doc/api/users.md8
-rw-r--r--doc/update/deprecations.md16
-rw-r--r--lib/api/entities/user.rb2
-rw-r--r--lib/api/users.rb1
-rw-r--r--spec/frontend/boards/components/boards_selector_spec.js32
-rw-r--r--spec/lib/api/entities/user_spec.rb2
10 files changed, 95 insertions, 2 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0a30af70364..9972d0f166b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -193,6 +193,9 @@ variables:
# See https://gitlab.com/gitlab-com/gl-security/engineering-and-research/inventory/-/issues/827#note_1203181407
DISABLE_OPENCOLLECTIVE: "true"
+ # This is set at the gitlab-org level, but we set it here for forks
+ DANGER_DO_NOT_POST_INVALID_DANGERFILE_ERROR: "1"
+
include:
- local: .gitlab/ci/*.gitlab-ci.yml
- remote: 'https://gitlab.com/gitlab-org/frontend/untamper-my-lockfile/-/raw/main/templates/merge_request_pipelines.yml'
diff --git a/app/assets/javascripts/boards/components/boards_selector.vue b/app/assets/javascripts/boards/components/boards_selector.vue
index 33a82ab3827..2f521363c16 100644
--- a/app/assets/javascripts/boards/components/boards_selector.vue
+++ b/app/assets/javascripts/boards/components/boards_selector.vue
@@ -103,6 +103,9 @@ export default {
showDelete() {
return this.boards.length > 1;
},
+ showDropdown() {
+ return this.showCreate || this.hasMissingBoards;
+ },
scrollFadeClass() {
return {
'fade-out': !this.hasScrollFade,
@@ -244,6 +247,7 @@ export default {
<div class="boards-switcher gl-mr-3" data-testid="boards-selector">
<span class="boards-selector-wrapper">
<gl-dropdown
+ v-if="showDropdown"
data-testid="boards-dropdown"
data-qa-selector="boards_dropdown"
toggle-class="dropdown-menu-toggle"
diff --git a/app/services/users/build_service.rb b/app/services/users/build_service.rb
index ad2ade19f2b..934dccf2f76 100644
--- a/app/services/users/build_service.rb
+++ b/app/services/users/build_service.rb
@@ -163,6 +163,7 @@ module Users
:skype,
:theme_id,
:twitter,
+ :discord,
:username,
:website_url,
:private_profile,
diff --git a/data/deprecations/15-9-required-pipeline-configuration.yml b/data/deprecations/15-9-required-pipeline-configuration.yml
new file mode 100644
index 00000000000..625d00cb07e
--- /dev/null
+++ b/data/deprecations/15-9-required-pipeline-configuration.yml
@@ -0,0 +1,28 @@
+#
+# REQUIRED FIELDS
+#
+- title: "Required Pipeline Configuration is deprecated" # (required) Clearly explain the change, or planned change. For example, "The `confidential` field for a `Note` is deprecated" or "CI/CD job names will be limited to 250 characters."
+ announcement_milestone: "15.9" # (required) The milestone when this feature was first announced as deprecated.
+ removal_milestone: "16.0" # (required) The milestone when this feature is planned to be removed
+ breaking_change: true # (required) Change to false if this is not a breaking change.
+ reporter: jheimbuck_gl # (required) GitLab username of the person reporting the change
+ stage: Verify # (required) String value of the stage that the feature was created in. e.g., Growth
+ issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/389467 # (required) Link to the deprecation issue in GitLab
+ body: | # (required) Do not modify this line, instead modify the lines below.
+ Required Pipeline Configuration will be removed in the 16.0 release. This impacts Self-Managed users on the Ultimate license.
+
+ We recommend replacing this with an alternative [compliance solution](https://docs.gitlab.com/ee/user/group/compliance_frameworks.html#configure-a-compliance-pipeline) that is available now. We recommend this alternative solution because it provides greater flexibility, allowing required pipelines to be assigned to specific compliance framework labels.
+#
+# OPTIONAL END OF SUPPORT FIELDS
+#
+# If an End of Support period applies, the announcement should be shared with GitLab Support
+# in the `#spt_managers` channel in Slack, and mention `@gitlab-com/support` in this MR.
+#
+ end_of_support_milestone: # (optional) Use "XX.YY" format. The milestone when support for this feature will end.
+ #
+ # OTHER OPTIONAL FIELDS
+ #
+ 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]
+ documentation_url: https://docs.gitlab.com/ee/user/admin_area/settings/continuous_integration.html#required-pipeline-configuration # (optional) This is a link to the current documentation page
+ 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
diff --git a/doc/api/users.md b/doc/api/users.md
index d6a4604cf51..4ecb3d48c0f 100644
--- a/doc/api/users.md
+++ b/doc/api/users.md
@@ -142,6 +142,7 @@ GET /users
"skype": "",
"linkedin": "",
"twitter": "",
+ "discord": "",
"website_url": "",
"organization": "",
"job_title": "",
@@ -183,6 +184,7 @@ GET /users
"skype": "",
"linkedin": "",
"twitter": "",
+ "discord": "",
"website_url": "",
"organization": "",
"job_title": "",
@@ -319,6 +321,7 @@ Parameters:
"skype": "",
"linkedin": "",
"twitter": "",
+ "discord": "",
"website_url": "",
"organization": "",
"job_title": "Operations Specialist",
@@ -365,6 +368,7 @@ Example Responses:
"skype": "",
"linkedin": "",
"twitter": "",
+ "discord": "",
"website_url": "",
"organization": "",
"job_title": "Operations Specialist",
@@ -508,6 +512,7 @@ Parameters:
| `skype` | No | Skype ID |
| `theme_id` | No | GitLab theme for the user (for more information, see the [user preference documentation](../user/profile/preferences.md#navigation-theme) for more information) |
| `twitter` | No | Twitter account |
+| `discord` | No | Discord account |
| `username` | Yes | Username |
| `view_diffs_file_by_file` | No | Flag indicating the user sees only one file diff per page |
| `website_url` | No | Website URL |
@@ -558,6 +563,7 @@ Parameters:
| `skype` | No | Skype ID |
| `theme_id` | No | GitLab theme for the user (for more information, see the [user preference documentation](../user/profile/preferences.md#navigation-theme) for more information) |
| `twitter` | No | Twitter account |
+| `discord` | No | Discord account |
| `username` | No | Username |
| `view_diffs_file_by_file` | No | Flag indicating the user sees only one file diff per page |
| `website_url` | No | Website URL |
@@ -626,6 +632,7 @@ GET /user
"skype": "",
"linkedin": "",
"twitter": "",
+ "discord": "",
"website_url": "",
"organization": "",
"job_title": "",
@@ -690,6 +697,7 @@ Parameters:
"skype": "",
"linkedin": "",
"twitter": "",
+ "discord": "",
"website_url": "",
"organization": "",
"job_title": "",
diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md
index d7369089103..2329649c25c 100644
--- a/doc/update/deprecations.md
+++ b/doc/update/deprecations.md
@@ -191,6 +191,22 @@ The option to delete projects immediately by default was deprecated to prevent u
<div class="deprecation removal-160 breaking-change">
+### Required Pipeline Configuration is deprecated
+
+Planned removal: GitLab <span class="removal-milestone">16.0</span> <span class="removal-date"></span>
+
+WARNING:
+This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/).
+Review the details carefully before upgrading.
+
+Required Pipeline Configuration will be removed in the 16.0 release. This impacts Self-Managed users on the Ultimate license.
+
+We recommend replacing this with an alternative [compliance solution](https://docs.gitlab.com/ee/user/group/compliance_frameworks.html#configure-a-compliance-pipeline) that is available now. We recommend this alternative solution because it provides greater flexibility, allowing required pipelines to be assigned to specific compliance framework labels.
+
+</div>
+
+<div class="deprecation removal-160 breaking-change">
+
### Support for Praefect custom metrics endpoint configuration
Planned removal: GitLab <span class="removal-milestone">16.0</span> <span class="removal-date"></span>
diff --git a/lib/api/entities/user.rb b/lib/api/entities/user.rb
index a86039b856a..884f0f75d7a 100644
--- a/lib/api/entities/user.rb
+++ b/lib/api/entities/user.rb
@@ -7,7 +7,7 @@ module API
include TimeZoneHelper
expose :created_at, if: ->(user, opts) { Ability.allowed?(opts[:current_user], :read_user_profile, user) }
- expose :bio, :location, :public_email, :skype, :linkedin, :twitter, :website_url, :organization, :job_title, :pronouns
+ expose :bio, :location, :public_email, :skype, :linkedin, :twitter, :discord, :website_url, :organization, :job_title, :pronouns
expose :bot?, as: :bot
expose :work_information do |user|
work_information(user)
diff --git a/lib/api/users.rb b/lib/api/users.rb
index 6e9dc22cf86..cc7eb63798a 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -46,6 +46,7 @@ module API
optional :skype, type: String, desc: 'The Skype username'
optional :linkedin, type: String, desc: 'The LinkedIn username'
optional :twitter, type: String, desc: 'The Twitter username'
+ optional :discord, type: String, desc: 'The Discord user ID'
optional :website_url, type: String, desc: 'The website of the user'
optional :organization, type: String, desc: 'The organization of the user'
optional :projects_limit, type: Integer, desc: 'The number of projects a user can create'
diff --git a/spec/frontend/boards/components/boards_selector_spec.js b/spec/frontend/boards/components/boards_selector_spec.js
index dfd8d2351a6..28f51e0ecbf 100644
--- a/spec/frontend/boards/components/boards_selector_spec.js
+++ b/spec/frontend/boards/components/boards_selector_spec.js
@@ -82,6 +82,7 @@ describe('BoardsSelector', () => {
projectRecentBoardsQueryHandler = projectRecentBoardsQueryHandlerSuccess,
isGroupBoard = false,
isProjectBoard = false,
+ provide = {},
} = {}) => {
fakeApollo = createMockApollo([
[projectBoardsQuery, projectBoardsQueryHandler],
@@ -109,6 +110,7 @@ describe('BoardsSelector', () => {
isGroupBoard,
isProjectBoard,
isApolloBoard: false,
+ ...provide,
},
});
};
@@ -246,4 +248,34 @@ describe('BoardsSelector', () => {
expect(notCalledHandler).not.toHaveBeenCalled();
});
});
+
+ describe('dropdown visibility', () => {
+ describe('when multipleIssueBoardsAvailable is enabled', () => {
+ it('show dropdown', async () => {
+ createStore();
+ createComponent({ provide: { multipleIssueBoardsAvailable: true } });
+ expect(findDropdown().exists()).toBe(true);
+ });
+ });
+
+ describe('when multipleIssueBoardsAvailable is disabled but it hasMissingBoards', () => {
+ it('show dropdown', async () => {
+ createStore();
+ createComponent({
+ provide: { multipleIssueBoardsAvailable: false, hasMissingBoards: true },
+ });
+ expect(findDropdown().exists()).toBe(true);
+ });
+ });
+
+ describe("when multipleIssueBoardsAvailable is disabled and it dosn't hasMissingBoards", () => {
+ it('hide dropdown', async () => {
+ createStore();
+ createComponent({
+ provide: { multipleIssueBoardsAvailable: false, hasMissingBoards: false },
+ });
+ expect(findDropdown().exists()).toBe(false);
+ });
+ });
+ });
});
diff --git a/spec/lib/api/entities/user_spec.rb b/spec/lib/api/entities/user_spec.rb
index 407f2894f01..3094fc748c9 100644
--- a/spec/lib/api/entities/user_spec.rb
+++ b/spec/lib/api/entities/user_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe API::Entities::User do
# UserBasic
:state, :avatar_url, :web_url,
# User
- :created_at, :bio, :location, :public_email, :skype, :linkedin, :twitter,
+ :created_at, :bio, :location, :public_email, :skype, :linkedin, :twitter, :discord,
:website_url, :organization, :job_title, :pronouns, :bot, :work_information,
:followers, :following, :is_followed, :local_time
)