Skip to content
Snippets Groups Projects
Commit a6c2be7c authored by GitLab Bot's avatar GitLab Bot
Browse files

Add latest changes from gitlab-org/gitlab@master

parent 74a2d57b
No related branches found
No related tags found
No related merge requests found
Showing
with 283 additions and 17 deletions
## Problem Statement
 
<!-- What is the problem we hope to validate and solve? -->
<!-- What is the problem we hope to validate? Reference how to write a real customer problem statement at https://productcoalition.com/how-to-write-a-good-customer-problem-statement-a815f80189ba for guidance. -->
 
## Reach
 
Loading
Loading
Please view this file on the master branch, on stable branches it's out of date.
 
## 12.8.0
### Removed (1 change)
- Remove confidence labels from security report. !24033
### Fixed (33 changes, 1 of them is from the community)
- Fix UI on Project Audit Events when the feature not available. !16032 (Takuya Noguchi)
- Group SSO handles locked users gracefully instead of showing 500 error. !20329
- Fix incorrect security status counts. !22650
- Fix include subgroups in security status. !22653
- Make sure type is set properly in Elasticsearch query when doing global search. !22821
- Include users from all sub-projects and shared groups when counting billing seats currently in use. !22967
- Fix vulnerability finding list endpoint query timeout on instance security dashboard. !23232
- Add app validation for any-approver rule uniqueness. !23241
- Fix 500 error in global search for blob, wiki_blob and commit search. !23326
- Fix group hook triggering from subgroup project. !23333
- Change conditions when user uses license seat. !23522
- Accept group path as ID when fetching notes from API. !23535
- Fixes a bug that prevented auto-remediation on the pipeline security dashboard. !23677
- Fix nav link in security submenu. !23775
- Order epic related issues by relative_position. !23776
- Correctly display the number of approvals for a merge request. !23827
- Fix orphan issues that were promoted to epics. !23916
- Fix rendering of design management references. !24001
- Fix 500 error when browsing the roadmap page for a group the user is not authorized to view. !24002
- Use project slug instead of name for Error Tracking Settings Display. !24176
- Display error message in MR License Report if it fails to load. !24201
- Fix display logic of Securty Report MR widget. !24204
- Set SSL certificates path env when calling ES indexer. !24213
- Allow submit to event to trigger a new search. !24262
- Fix npm package uploads when bundleDependencies is set to false. !24355
- Resolve 500 error after Web IDE terminal use. !24443
- Added commas to current active user count when appropriate. !24549
- Hide duplicate company/individual question on trial selection. !24567
- Update invalid SPDX identifiers in software licenses table. !24829
- Cleanup deprecated package dependency links. !24868
- Fix to display a link to the logs in both embed and dashboard. !25288
- Disable self-approval at the Instance level - Fix approvals filtering. !25385
- Allow user to close sidebar while editing boardlist and save wip limit.
### Changed (13 changes)
- Display generic error in codeclimate MR widget when base_path is null. !21666
- Adjust skip trial copy in trial sign up flow for SaaS users who are logged in. !22923
- Use export icon instead of download for the export button in the Dependencies List. !23094
- Apply darker color to column headers and scan names in secure features configuration. !23104
- Redacts quick actions used by support bot. !23353
- Remove Code Review Analytics feature flag. !23418
- Delete description change history - Frontend. !23568
- Support moving the design repository of a project when the project is transferred to a new namespace. !23573
- Display proper error messages on vulnerabilities fetch failure. !23812
- Add date range validation for Cycle Analytics at the backend side. !24254
- Exclude GitLab generated bot users from using a license seat. !24275
- Changes the standalone vulnerabilty endpoint. !24777
- Move Productivity Analytics page to the group level. !25329
### Performance (1 change)
- Geo - Fix query to retrieve Job Artifacts when selective sync is disabled. !25388
### Added (42 changes, 1 of them is from the community)
- Create DesignAtVersion model, exposing it with GraphQL. !15260
- Add Group-level compliance dashboard MVC. !20844
- Adds sorting to package api. !20963
- Allow to soft delete issuables description history. !21439
- Display warning flash if design upload is skipped. !21615
- Ask if a user is trying GitLab for his company or for his individual usage. !22280
- Support design tab link references for issues. !22330
- Allow using custom user name for service desk emails. !22478
- Raise exception if any namespaces runner minutes were not reset. !22636
- Adds vulnerability management state dropdown. !22823
- Add additional license information to admin dashboard. !22866
- Add sort by date to audit logs and events. !22887
- Add Group WebHooks API. !22994 (Rajendra Kadam)
- Add API route to confirm a vulnerability. !23099
- Creates the standalone vulnerability list page. !23438
- Show license badge for Gitlab.com member overview. !23521
- Create audit log when username changes. !23576
- Resolve Disable self-approval at the Instance level. !23731
- Add time picker to logs page. !23837
- Introduce Credentials Inventory for Groups that enforce Group Managed Accounts. !23944
- Add API for protected environments. !23964
- Prompt users to check their account settings. !23994
- Allow to pick a subgroup to hold the Insights config. !24053
- Add health_status column to issues and epics tables. !24202
- Add a link in dashboard to allow users to go to the logs page. !24240
- Record audit event when user is deleted. !24257
- Time Series chart filtered time range (datazoom) becomes reflected in the View logs link. !24343
- Scope merge request approval rules to protected branches using API search. !24344
- Add application limit for ES indexed field length. !24345
- Add affected projects feature to instance security dashboard. !24644
- Add trial field to namespaces API. !24666
- Make elasticsearch bulk parameters configurable. !24688
- Add feature filter for users. !24765
- Design view: moveable `new comment` pin. !24769
- Record audit event when user is added. !24855
- Add group identification headers to epic emails. !24878
- Record audit event when user is blocked. !24930
- Moveable design note pins. !24934
- Add NuGet Repository. !25157
- Add single-level Epics to EE Premium. !25184
- Show View logs link in embed metrics. !25217
- Add usage ping counter for events. !199874
### Other (1 change)
- Prepare DB structure for GMA forking changes. !22002
## 12.7.5
 
### Fixed (1 change)
Loading
Loading
Loading
Loading
@@ -5,7 +5,25 @@ module Mutations
class Update < Base
graphql_name 'UpdateIssue'
 
# Add arguments here instead of creating separate mutations
argument :title,
GraphQL::STRING_TYPE,
required: false,
description: copy_field_description(Types::IssueType, :title)
argument :description,
GraphQL::STRING_TYPE,
required: false,
description: copy_field_description(Types::IssueType, :description)
argument :due_date,
Types::TimeType,
required: true,
description: copy_field_description(Types::IssueType, :due_date)
argument :confidential,
GraphQL::BOOLEAN_TYPE,
required: true,
description: copy_field_description(Types::IssueType, :confidential)
 
def resolve(project_path:, iid:, **args)
issue = authorized_find!(project_path: project_path, iid: iid)
Loading
Loading
Loading
Loading
@@ -11,6 +11,7 @@ class LfsObject < ApplicationRecord
 
scope :with_files_stored_locally, -> { where(file_store: LfsObjectUploader::Store::LOCAL) }
scope :with_files_stored_remotely, -> { where(file_store: LfsObjectUploader::Store::REMOTE) }
scope :for_oids, -> (oids) { where(oid: oids) }
 
validates :oid, presence: true, uniqueness: true
 
Loading
Loading
Loading
Loading
@@ -25,7 +25,6 @@ module Projects
 
private
 
# rubocop: disable CodeReuse/ActiveRecord
def link_existing_lfs_objects(oids)
linked_existing_objects = []
iterations = 0
Loading
Loading
@@ -33,7 +32,7 @@ module Projects
oids.each_slice(BATCH_SIZE) do |oids_batch|
# Load all existing LFS Objects immediately so we don't issue an extra
# query for the `.any?`
existent_lfs_objects = LfsObject.where(oid: oids_batch).load
existent_lfs_objects = LfsObject.for_oids(oids_batch).load
next unless existent_lfs_objects.any?
 
rows = existent_lfs_objects
Loading
Loading
@@ -49,7 +48,6 @@ module Projects
 
linked_existing_objects
end
# rubocop: enable CodeReuse/ActiveRecord
 
def log_lfs_link_results(lfs_objects_linked_count, iterations)
Gitlab::Import::Logger.info(
Loading
Loading
Loading
Loading
@@ -27,7 +27,7 @@ module Projects
@status.run!
 
raise InvalidStateError, 'missing pages artifacts' unless build.artifacts?
raise InvalidStateError, 'pages are outdated' unless latest?
raise InvalidStateError, 'build SHA is outdated for this ref' unless latest?
 
# Create temporary directory in which we will extract the artifacts
make_secure_tmp_dir(tmp_path) do |archive_path|
Loading
Loading
@@ -36,7 +36,7 @@ module Projects
# Check if we did extract public directory
archive_public_path = File.join(archive_path, PUBLIC_DIR)
raise InvalidStateError, 'pages miss the public folder' unless Dir.exist?(archive_public_path)
raise InvalidStateError, 'pages are outdated' unless latest?
raise InvalidStateError, 'build SHA is outdated for this ref' unless latest?
 
deploy_page!(archive_public_path)
success
Loading
Loading
---
title: Add id and image_v432x230 columns to design_management_designs_versions
merge_request: 22860
author:
type: changed
---
title: 'Elasticsearch: when index is absent warn users and disable index button'
merge_request: 25254
author:
type: fixed
---
title: Add migration to create self monitoring project environment
merge_request: 25289
author:
type: added
---
title: Use clearer error message for pages deploy job when the SHA is outdated
merge_request: 25659
author:
type: other
---
title: Drop forked_project_links table
merge_request: 20771
author: Lee Tickett
type: other
---
title: Add missing arguments to UpdateIssue mutation
merge_request: 25268
author:
type: added
# frozen_string_literal: true
class AddImageToDesignManagementDesignsVersions < ActiveRecord::Migration[6.0]
DOWNTIME = false
def change
add_column :design_management_designs_versions, :image_v432x230, :string, limit: 255
end
end
# frozen_string_literal: true
class AddIdToDesignManagementDesignsVersions < ActiveRecord::Migration[6.0]
DOWNTIME = false
def change
add_column :design_management_designs_versions, :id, :primary_key
end
end
# frozen_string_literal: true
class DropForkedProjectLinksFk < ActiveRecord::Migration[6.0]
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
disable_ddl_transaction!
def up
with_lock_retries do
remove_foreign_key_if_exists :forked_project_links, column: :forked_to_project_id
end
end
def down
unless foreign_key_exists?(:forked_project_links, :projects, column: :forked_to_project_id)
with_lock_retries do
# rubocop: disable Migration/AddConcurrentForeignKey
add_foreign_key :forked_project_links, :projects, column: :forked_to_project_id, on_delete: :cascade, validate: false
end
end
fk_name = concurrent_foreign_key_name(:forked_project_links, :forked_to_project_id, prefix: 'fk_rails_')
validate_foreign_key(:forked_project_links, :forked_to_project_id, name: fk_name)
end
end
# frozen_string_literal: true
class DropForkedProjectLinksTable < ActiveRecord::Migration[6.0]
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
def change
drop_table "forked_project_links", id: :serial do |t|
t.integer "forked_to_project_id", null: false
t.integer "forked_from_project_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.index ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true
end
end
end
# frozen_string_literal: true
class CreateEnvironmentForSelfMonitoringProject < ActiveRecord::Migration[6.0]
DOWNTIME = false
def up
execute <<~SQL
INSERT INTO environments (project_id, name, slug, created_at, updated_at)
SELECT instance_administration_project_id, 'production', 'production', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
FROM application_settings
WHERE instance_administration_project_id IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM environments
INNER JOIN application_settings
ON application_settings.instance_administration_project_id = environments.project_id
)
SQL
end
def down
# no-op
# This migration cannot be reversed because it cannot be ensured that the environment for the Self Monitoring Project
# did not already exist before the migration ran - in that case, the migration does nothing, and it would be unexpected
# behavior for that environment to be deleted by reversing this migration.
end
end
Loading
Loading
@@ -1417,10 +1417,11 @@ ActiveRecord::Schema.define(version: 2020_02_20_180944) do
t.index ["project_id"], name: "index_design_management_designs_on_project_id"
end
 
create_table "design_management_designs_versions", id: false, force: :cascade do |t|
create_table "design_management_designs_versions", force: :cascade do |t|
t.bigint "design_id", null: false
t.bigint "version_id", null: false
t.integer "event", limit: 2, default: 0, null: false
t.string "image_v432x230", limit: 255
t.index ["design_id", "version_id"], name: "design_management_designs_versions_uniqueness", unique: true
t.index ["design_id"], name: "index_design_management_designs_versions_on_design_id"
t.index ["event"], name: "index_design_management_designs_versions_on_event"
Loading
Loading
@@ -1654,14 +1655,6 @@ ActiveRecord::Schema.define(version: 2020_02_20_180944) do
t.index ["root_project_id"], name: "index_fork_networks_on_root_project_id", unique: true
end
 
create_table "forked_project_links", id: :serial, force: :cascade do |t|
t.integer "forked_to_project_id", null: false
t.integer "forked_from_project_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.index ["forked_to_project_id"], name: "index_forked_project_links_on_forked_to_project_id", unique: true
end
create_table "geo_cache_invalidation_events", force: :cascade do |t|
t.string "key", null: false
end
Loading
Loading
@@ -4747,7 +4740,6 @@ ActiveRecord::Schema.define(version: 2020_02_20_180944) do
add_foreign_key "fork_network_members", "projects", column: "forked_from_project_id", name: "fk_b01280dae4", on_delete: :nullify
add_foreign_key "fork_network_members", "projects", on_delete: :cascade
add_foreign_key "fork_networks", "projects", column: "root_project_id", name: "fk_e7b436b2b5", on_delete: :nullify
add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade
add_foreign_key "geo_container_repository_updated_events", "container_repositories", name: "fk_212c89c706", on_delete: :cascade
add_foreign_key "geo_event_log", "geo_cache_invalidation_events", column: "cache_invalidation_event_id", name: "fk_42c3b54bed", on_delete: :cascade
add_foreign_key "geo_event_log", "geo_container_repository_updated_events", column: "container_repository_updated_event_id", name: "fk_6ada82d42a", on_delete: :cascade
Loading
Loading
Loading
Loading
@@ -73,6 +73,9 @@ gitlab-rake "gitlab:uploads:migrate[FileUploader, Project]"
gitlab-rake "gitlab:uploads:migrate[PersonalFileUploader, Snippet]"
gitlab-rake "gitlab:uploads:migrate[NamespaceFileUploader, Snippet]"
gitlab-rake "gitlab:uploads:migrate[FileUploader, MergeRequest]"
# Design Management design thumbnails (EE)
gitlab-rake "gitlab:uploads:migrate[DesignManagement::DesignV432x230Uploader, DesignManagement::Action, :image_v432x230]"
```
 
**Source Installation**
Loading
Loading
@@ -102,6 +105,8 @@ sudo -u git -H bundle exec rake "gitlab:uploads:migrate[PersonalFileUploader, Sn
sudo -u git -H bundle exec rake "gitlab:uploads:migrate[NamespaceFileUploader, Snippet]"
sudo -u git -H bundle exec rake "gitlab:uploads:migrate[FileUploader, MergeRequest]"
 
# Design Management design thumbnails (EE)
sudo -u git -H bundle exec rake "gitlab:uploads:migrate[DesignManagement::DesignV432x230Uploader, DesignManagement::Action]"
```
 
## Migrate legacy uploads out of deprecated paths
Loading
Loading
Loading
Loading
@@ -7841,6 +7841,21 @@ input UpdateIssueInput {
"""
clientMutationId: String
 
"""
Indicates the issue is confidential
"""
confidential: Boolean!
"""
Description of the issue
"""
description: String
"""
Due date of the issue
"""
dueDate: Time!
"""
The desired health status
"""
Loading
Loading
@@ -7855,6 +7870,11 @@ input UpdateIssueInput {
The project the issue to mutate is in
"""
projectPath: ID!
"""
Title of the issue
"""
title: String
}
 
"""
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment