diff --git a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue
new file mode 100644
index 00000000000..f08bfb3a90f
--- /dev/null
+++ b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+ {{ content }}
+
+
+
+
+ {{ content }}
+
+
+
+
+
+
diff --git a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue
index 9085383e230..27f13ace779 100644
--- a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue
@@ -9,6 +9,7 @@ import SmartInterval from '~/smart_interval';
import createFlash from '../flash';
import Loading from './components/loading.vue';
import WidgetHeader from './components/mr_widget_header.vue';
+import WidgetSuggestPipeline from './components/mr_widget_suggest_pipeline.vue';
import WidgetMergeHelp from './components/mr_widget_merge_help.vue';
import MrWidgetPipelineContainer from './components/mr_widget_pipeline_container.vue';
import Deployment from './components/deployment/deployment.vue';
@@ -46,6 +47,7 @@ export default {
components: {
Loading,
'mr-widget-header': WidgetHeader,
+ 'mr-widget-suggest-pipeline': WidgetSuggestPipeline,
'mr-widget-merge-help': WidgetMergeHelp,
MrWidgetPipelineContainer,
Deployment,
@@ -99,6 +101,9 @@ export default {
shouldRenderPipelines() {
return this.mr.hasCI;
},
+ shouldSuggestPipelines() {
+ return gon.features?.suggestPipeline && !this.mr.hasCI && this.mr.mergeRequestAddCiConfigPath;
+ },
shouldRenderRelatedLinks() {
return Boolean(this.mr.relatedLinks) && !this.mr.isNothingToMergeState;
},
@@ -353,6 +358,11 @@ export default {
diff --git a/app/assets/stylesheets/pages/merge_requests.scss b/app/assets/stylesheets/pages/merge_requests.scss
index 84daec4fb43..5ca75c28ac3 100644
--- a/app/assets/stylesheets/pages/merge_requests.scss
+++ b/app/assets/stylesheets/pages/merge_requests.scss
@@ -3,6 +3,8 @@
*
*/
+$mr-widget-min-height: 69px;
+
.space-children {
@include clearfix;
@@ -555,12 +557,11 @@
}
.mr-source-target {
- display: flex;
flex-wrap: wrap;
border-radius: $border-radius-default;
padding: $gl-padding;
border: 1px solid $border-color;
- min-height: 69px;
+ min-height: $mr-widget-min-height;
@include media-breakpoint-up(md) {
align-items: center;
@@ -599,6 +600,22 @@
}
}
+.mr-pipeline-suggest {
+ flex-wrap: wrap;
+ border-radius: $border-radius-default;
+ padding: $gl-padding;
+ border: 1px solid $border-color;
+ min-height: $mr-widget-min-height;
+
+ @include media-breakpoint-up(md) {
+ align-items: center;
+ }
+
+ .circle-icon-container {
+ color: $gl-text-color-quaternary;
+ }
+}
+
.card-new-merge-request {
.card-header {
padding: 5px 10px;
diff --git a/app/workers/concerns/security_scans_queue.rb b/app/workers/concerns/security_scans_queue.rb
new file mode 100644
index 00000000000..f731317bb37
--- /dev/null
+++ b/app/workers/concerns/security_scans_queue.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+##
+# Concern for setting Sidekiq settings for the various Secure product queues
+#
+module SecurityScansQueue
+ extend ActiveSupport::Concern
+
+ included do
+ queue_namespace :security_scans
+ feature_category :static_application_security_testing
+ end
+end
diff --git a/changelogs/unreleased/10225-detroy-oauth-application-when-secondary-becomes-primary.yml b/changelogs/unreleased/10225-detroy-oauth-application-when-secondary-becomes-primary.yml
new file mode 100644
index 00000000000..59600a31f46
--- /dev/null
+++ b/changelogs/unreleased/10225-detroy-oauth-application-when-secondary-becomes-primary.yml
@@ -0,0 +1,5 @@
+---
+title: Destroy the OAuth application when Geo secondary becomes a primary
+merge_request: 25154
+author: briankabiro
+type: other
diff --git a/changelogs/unreleased/202109.yml b/changelogs/unreleased/202109.yml
new file mode 100644
index 00000000000..29376d0f947
--- /dev/null
+++ b/changelogs/unreleased/202109.yml
@@ -0,0 +1,6 @@
+---
+title: update main javascript file to only apply right sidebar class when an aside
+ is present
+merge_request:
+author: Oregand
+type: fixed
diff --git a/changelogs/unreleased/georgekoltsov-remove-name-path-from-group-ie-yml.yml b/changelogs/unreleased/georgekoltsov-remove-name-path-from-group-ie-yml.yml
new file mode 100644
index 00000000000..f21a91a21b2
--- /dev/null
+++ b/changelogs/unreleased/georgekoltsov-remove-name-path-from-group-ie-yml.yml
@@ -0,0 +1,5 @@
+---
+title: Remove name & path from list of excluded attributes during Group Import
+merge_request: 25342
+author:
+type: fixed
diff --git a/changelogs/unreleased/i18n-groups-audit-events.yml b/changelogs/unreleased/i18n-groups-audit-events.yml
new file mode 100644
index 00000000000..9b8601fc4cf
--- /dev/null
+++ b/changelogs/unreleased/i18n-groups-audit-events.yml
@@ -0,0 +1,5 @@
+---
+title: Internationalize messages for group audit events
+merge_request: 25233
+author: Takuya Noguchi
+type: other
diff --git a/changelogs/unreleased/rk4bir-master-patch-88996.yml b/changelogs/unreleased/rk4bir-master-patch-88996.yml
new file mode 100644
index 00000000000..11e97ec4012
--- /dev/null
+++ b/changelogs/unreleased/rk4bir-master-patch-88996.yml
@@ -0,0 +1,5 @@
+---
+title: Migrate from class .fa-spinner to .spinner in app/assets/javascripts/gfm_auto_complete.js
+merge_request: 25039
+author: rk4bir
+type: changed
diff --git a/db/post_migrate/20200213220159_migrate_store_security_reports_sidekiq_queue.rb b/db/post_migrate/20200213220159_migrate_store_security_reports_sidekiq_queue.rb
new file mode 100644
index 00000000000..5bba4c95328
--- /dev/null
+++ b/db/post_migrate/20200213220159_migrate_store_security_reports_sidekiq_queue.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class MigrateStoreSecurityReportsSidekiqQueue < ActiveRecord::Migration[6.0]
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def up
+ sidekiq_queue_migrate 'pipeline_default:store_security_reports', to: 'security_scans:store_security_reports'
+ end
+
+ def down
+ sidekiq_queue_migrate 'security_scans:store_security_reports', to: 'pipeline_default:store_security_reports'
+ end
+end
diff --git a/db/post_migrate/20200213220211_migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue.rb b/db/post_migrate/20200213220211_migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue.rb
new file mode 100644
index 00000000000..e3ed4c60f21
--- /dev/null
+++ b/db/post_migrate/20200213220211_migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class MigrateSyncSecurityReportsToReportApprovalRulesSidekiqQueue < ActiveRecord::Migration[6.0]
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def up
+ sidekiq_queue_migrate 'pipeline_default:sync_security_reports_to_report_approval_rules',
+ to: 'security_scans:sync_security_reports_to_report_approval_rules'
+ end
+
+ def down
+ sidekiq_queue_migrate 'security_scans:sync_security_reports_to_report_approval_rules',
+ to: 'pipeline_default:sync_security_reports_to_report_approval_rules'
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 8836ace2312..0259c63d3e5 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2020_02_13_204737) do
+ActiveRecord::Schema.define(version: 2020_02_13_220211) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_trgm"
diff --git a/doc/administration/gitaly/praefect.md b/doc/administration/gitaly/praefect.md
index 073e2010fd2..7f314bc5e31 100644
--- a/doc/administration/gitaly/praefect.md
+++ b/doc/administration/gitaly/praefect.md
@@ -261,7 +261,10 @@ gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN'
# Configure the gitlab-shell API callback URL. Without this, `git push` will
# fail. This can be your 'front door' GitLab URL or an internal load
# balancer.
-gitlab_rails['internal_api_url'] = 'https://gitlab.example.com'
+# Possible values could be: 'http://10.23.101.53', 'https://gitlab.example.com',
+# etc. Please replace GITLAB_SERVER_ADDRESS with proper value and change schema
+# to 'https' in case you use encrypted connection.
+gitlab_rails['internal_api_url'] = 'http://GITLAB_SERVER_ADDRESS'
# Replace PRAEFECT_INTERNAL_TOKEN below with a real secret.
gitaly['auth_token'] = 'PRAEFECT_INTERNAL_TOKEN'
@@ -324,6 +327,12 @@ git_data_dirs({
# Replace GITLAB_SHELL_SECRET_TOKEN below with real secret
gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN'
+
+# Possible values could be: 'http://10.23.101.53', 'https://gitlab.example.com',
+# etc. Please replace GITLAB_SERVER_ADDRESS with proper value and change schema
+# to 'https' in case you use encrypted connection. For more info please refer
+# to https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
+external_url "http://
"
```
Replace `GITLAB_SHELL_SECRET_TOKEN` and `PRAEFECT_EXTERNAL_TOKEN`
diff --git a/doc/development/fe_guide/icons.md b/doc/development/fe_guide/icons.md
index d81a520c5f3..36537a22e67 100644
--- a/doc/development/fe_guide/icons.md
+++ b/doc/development/fe_guide/icons.md
@@ -42,25 +42,25 @@ sprite_icon(icon_name, size: nil, css_class: '')
### Usage in Vue
-We have a special Vue component for our sprite icons in `\vue_shared\components\icon.vue`.
+[GitLab UI][gitlab-ui], our components library, provides a component to display sprite icons.
Sample usage :
-```javascript
+```html