Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
213a76e6b5
commit
3088254c32
|
|
@ -1214,3 +1214,9 @@ Rails/StrongParams:
|
|||
QA/FabricateUsage:
|
||||
Include:
|
||||
- 'qa/qa/specs/**/*_spec.rb'
|
||||
|
||||
Gitlab/NoFindInWorkers:
|
||||
Enabled: true
|
||||
Include:
|
||||
- app/workers/**/*
|
||||
- ee/app/workers/**/*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
Gitlab/NoFindInWorkers:
|
||||
Details: grace period
|
||||
Exclude:
|
||||
- 'app/workers/approve_blocked_pending_approval_users_worker.rb'
|
||||
- 'app/workers/auto_devops/disable_worker.rb'
|
||||
- 'app/workers/bulk_imports/entity_worker.rb'
|
||||
- 'app/workers/bulk_imports/export_request_worker.rb'
|
||||
- 'app/workers/bulk_imports/finish_batched_pipeline_worker.rb'
|
||||
- 'app/workers/bulk_imports/pipeline_batch_worker.rb'
|
||||
- 'app/workers/bulk_imports/pipeline_worker.rb'
|
||||
- 'app/workers/bulk_imports/relation_batch_export_worker.rb'
|
||||
- 'app/workers/bulk_imports/relation_export_worker.rb'
|
||||
- 'app/workers/bulk_imports/user_contributions_export_worker.rb'
|
||||
- 'app/workers/concerns/cluster_applications.rb'
|
||||
- 'app/workers/concerns/project_import_options.rb'
|
||||
- 'app/workers/create_pipeline_worker.rb'
|
||||
- 'app/workers/delete_diff_files_worker.rb'
|
||||
- 'app/workers/delete_merged_branches_worker.rb'
|
||||
- 'app/workers/design_management/copy_design_collection_worker.rb'
|
||||
- 'app/workers/design_management/new_version_worker.rb'
|
||||
- 'app/workers/disallow_two_factor_for_group_worker.rb'
|
||||
- 'app/workers/disallow_two_factor_for_subgroups_worker.rb'
|
||||
- 'app/workers/emails_on_push_worker.rb'
|
||||
- 'app/workers/error_tracking_issue_link_worker.rb'
|
||||
- 'app/workers/export_csv_worker.rb'
|
||||
- 'app/workers/gitlab/bitbucket_import/advance_stage_worker.rb'
|
||||
- 'app/workers/gitlab/bitbucket_server_import/advance_stage_worker.rb'
|
||||
- 'app/workers/gitlab/github_gists_import/import_gist_worker.rb'
|
||||
- 'app/workers/gitlab/github_gists_import/start_import_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/advance_stage_worker.rb'
|
||||
- 'app/workers/gitlab/jira_import/advance_stage_worker.rb'
|
||||
- 'app/workers/google_cloud/create_cloudsql_instance_worker.rb'
|
||||
- 'app/workers/group_destroy_worker.rb'
|
||||
- 'app/workers/group_export_worker.rb'
|
||||
- 'app/workers/group_import_worker.rb'
|
||||
- 'app/workers/import_issues_csv_worker.rb'
|
||||
- 'app/workers/integrations/irker_worker.rb'
|
||||
- 'app/workers/issuable/create_reminder_worker.rb'
|
||||
- 'app/workers/issuable_export_csv_worker.rb'
|
||||
- 'app/workers/issues/placement_worker.rb'
|
||||
- 'app/workers/members_destroyer/unassign_issuables_worker.rb'
|
||||
- 'app/workers/merge_requests/delete_source_branch_worker.rb'
|
||||
- 'app/workers/merge_requests/handle_assignees_change_worker.rb'
|
||||
- 'app/workers/merge_requests/resolve_todos_worker.rb'
|
||||
- 'app/workers/merge_worker.rb'
|
||||
- 'app/workers/namespaces/root_statistics_worker.rb'
|
||||
- 'app/workers/namespaces/schedule_aggregation_worker.rb'
|
||||
- 'app/workers/onboarding/user_added_worker.rb'
|
||||
- 'app/workers/packages/go/sync_packages_worker.rb'
|
||||
- 'app/workers/packages/npm/deprecate_package_worker.rb'
|
||||
- 'app/workers/project_destroy_worker.rb'
|
||||
- 'app/workers/project_export_worker.rb'
|
||||
- 'app/workers/projects/after_import_worker.rb'
|
||||
- 'app/workers/projects/git_garbage_collect_worker.rb'
|
||||
- 'app/workers/projects/import_export/parallel_project_export_worker.rb'
|
||||
- 'app/workers/projects/import_export/relation_export_worker.rb'
|
||||
- 'app/workers/projects/import_export/relation_import_worker.rb'
|
||||
- 'app/workers/projects/import_export/wait_relation_exports_worker.rb'
|
||||
- 'app/workers/projects/inactive_projects_deletion_notification_worker.rb'
|
||||
- 'app/workers/projects/update_repository_storage_worker.rb'
|
||||
- 'app/workers/rebase_worker.rb'
|
||||
- 'app/workers/repository_check/single_repository_worker.rb'
|
||||
- 'app/workers/repository_cleanup_worker.rb'
|
||||
- 'app/workers/repository_fork_worker.rb'
|
||||
- 'app/workers/snippets/update_repository_storage_worker.rb'
|
||||
- 'app/workers/upload_checksum_worker.rb'
|
||||
- 'app/workers/wikis/git_garbage_collect_worker.rb'
|
||||
- 'app/workers/work_items/import_work_items_csv_worker.rb'
|
||||
- 'ee/app/workers/abuse/new_abuse_report_worker.rb'
|
||||
- 'ee/app/workers/adjourned_project_deletion_worker.rb'
|
||||
- 'ee/app/workers/admin_emails_worker.rb'
|
||||
- 'ee/app/workers/analytics/devops_adoption/create_snapshot_worker.rb'
|
||||
- 'ee/app/workers/approval_rules/external_approval_rule_payload_worker.rb'
|
||||
- 'ee/app/workers/audit_events/audit_event_streaming_worker.rb'
|
||||
- 'ee/app/workers/ci/runners/export_usage_csv_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/chain_of_custody_report_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/framework_export_mailer_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/pending_status_check_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/project_framework_export_mailer_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/standards_adherence_export_mailer_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/update_default_framework_worker.rb'
|
||||
- 'ee/app/workers/compliance_management/violation_export_mailer_worker.rb'
|
||||
- 'ee/app/workers/create_github_webhook_worker.rb'
|
||||
- 'ee/app/workers/dependencies/export_worker.rb'
|
||||
- 'ee/app/workers/elastic/namespace_update_worker.rb'
|
||||
- 'ee/app/workers/elastic/project_transfer_worker.rb'
|
||||
- 'ee/app/workers/elastic_association_indexer_worker.rb'
|
||||
- 'ee/app/workers/elastic_namespace_indexer_worker.rb'
|
||||
- 'ee/app/workers/gitlab/export/segmented_export_finalisation_worker.rb'
|
||||
- 'ee/app/workers/gitlab/export/segmented_export_worker.rb'
|
||||
- 'ee/app/workers/group_wikis/git_garbage_collect_worker.rb'
|
||||
- 'ee/app/workers/groups/update_repository_storage_worker.rb'
|
||||
- 'ee/app/workers/namespaces/cascade_duo_features_enabled_worker.rb'
|
||||
- 'ee/app/workers/namespaces/storage_usage_export_worker.rb'
|
||||
- 'ee/app/workers/repository_update_mirror_worker.rb'
|
||||
- 'ee/app/workers/requirements_management/import_requirements_csv_worker.rb'
|
||||
- 'ee/app/workers/search/zoekt/namespace_indexer_worker.rb'
|
||||
- 'ee/app/workers/work_items/rolledup_dates/bulk_update_handler.rb'
|
||||
- 'ee/app/workers/work_items/rolledup_dates/update_rolledup_dates_worker.rb'
|
||||
773
CHANGELOG.md
773
CHANGELOG.md
|
|
@ -2,6 +2,779 @@
|
|||
documentation](doc/development/changelog.md) for instructions on adding your own
|
||||
entry.
|
||||
|
||||
## 17.2.0 (2024-07-17)
|
||||
|
||||
### Added (159 changes)
|
||||
|
||||
- [Add status to scan result policy violations](https://gitlab.com/gitlab-org/gitlab/-/commit/0a0ae8f1088928daa6b432d9179b0daf9a6feba1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158203)) **GitLab Enterprise Edition**
|
||||
- [Add new run keyword under job](https://gitlab.com/gitlab-org/gitlab/-/commit/928bb79fccefe9d52ae30272bc333116b9ca3f1e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146333))
|
||||
- [Protected containers: Add PATCH REST API for container protection rules](https://gitlab.com/gitlab-org/gitlab/-/commit/481080c01de97ded95e7d5182a6f2302aaac89cc) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158756))
|
||||
- [Added filters for multiple compliance frameworks](https://gitlab.com/gitlab-org/gitlab/-/commit/280906c08eb0df45e8fd89dd6e957ded70fbed04) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158229)) **GitLab Enterprise Edition**
|
||||
- [Add Duo Enterprise to provision service for add-ons](https://gitlab.com/gitlab-org/gitlab/-/commit/f053e045f3eb066c3c6a2b4f915616554ea07126) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158969)) **GitLab Enterprise Edition**
|
||||
- [Add Duo Pro end trial widget](https://gitlab.com/gitlab-org/gitlab/-/commit/bf8e86288372c1c18335105d11dbfefc511016bf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155614)) **GitLab Enterprise Edition**
|
||||
- [Add RoR tutorial to Observability docs](https://gitlab.com/gitlab-org/gitlab/-/commit/25c507c7a5c10fd111407225d6735692a7d17ba5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158625))
|
||||
- [Enable container scanning for registry](https://gitlab.com/gitlab-org/gitlab/-/commit/ccda3ca324318a8825fa032e1a2b853a95929e13) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156247))
|
||||
- [Add willAutoCloseByMergeRequest field to work items API](https://gitlab.com/gitlab-org/gitlab/-/commit/8ea220794cd74f59876a798cdf58ba294af3836f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158145))
|
||||
- [Add Duo Enterprise to provision service for add-ons](https://gitlab.com/gitlab-org/gitlab/-/commit/ecf4a2c3df04db0105966313e3f4d5b8c81a2963) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158963)) **GitLab Enterprise Edition**
|
||||
- [Add models for Virtual Registries, part 1/2](https://gitlab.com/gitlab-org/gitlab/-/commit/a7638db2d3bea91d1db1219df57add5986d11169) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156930))
|
||||
- [Add the API to return the multi_matches in a single file](https://gitlab.com/gitlab-org/gitlab/-/commit/c90c284bc2e9a0f304ab6410866ab0a49862eec1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155984)) **GitLab Enterprise Edition**
|
||||
- [Ensure uniqueness p_ci_job_annotation](https://gitlab.com/gitlab-org/gitlab/-/commit/760b22da62461eebaae7325c7651cf040349a97a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159071))
|
||||
- [Add job action button to PMG](https://gitlab.com/gitlab-org/gitlab/-/commit/f3a916e6ba9ee27b345526914a3652fe2915b8fd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159004))
|
||||
- [Add migration to add seat control column to namespace settings table](https://gitlab.com/gitlab-org/gitlab/-/commit/deb3e5bda554bbbfd9341a91e9221b569852627e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158819))
|
||||
- [Display ratios instead of counts in CI/CD Analytics](https://gitlab.com/gitlab-org/gitlab/-/commit/9cbe9da793af51cb171289f8f505581ec3494988) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158957))
|
||||
- [Add Importer User for imports user mapping](https://gitlab.com/gitlab-org/gitlab/-/commit/9051ecf67b14924bea3b8df52e24dad141e03b5d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157979))
|
||||
- [Workhorse: HTTP endpoint for bidirectional SSH git-receive-pack data](https://gitlab.com/gitlab-org/gitlab/-/commit/bd2f882c422de105ff2bba6b8011fd6270f65651) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155590)) **GitLab Enterprise Edition**
|
||||
- [Add GraphQL API for Duo Pro seats assigned and used](https://gitlab.com/gitlab-org/gitlab/-/commit/16bed9c42c1bcb03d5a6e0c1591e92ce8b7a5fbe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157936)) **GitLab Enterprise Edition**
|
||||
- [Enable direct code completions by default](https://gitlab.com/gitlab-org/gitlab/-/commit/257c07f0bc44606e4ef54f4ba1fc6bbb26cbf83b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158733)) **GitLab Enterprise Edition**
|
||||
- [Added mutation for updating frameworks of projects](https://gitlab.com/gitlab-org/gitlab/-/commit/9f9fdd2b4e329b02695880734b534f38cb5593b5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157893)) **GitLab Enterprise Edition**
|
||||
- [Updates AI merge commit message to be GA](https://gitlab.com/gitlab-org/gitlab/-/commit/d207449f66baa0c31943c4a28164683f2bca11fb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158339))
|
||||
- [Add gitlab-advanced-sast as a SAST job template](https://gitlab.com/gitlab-org/gitlab/-/commit/c5a2613a6dc4158a71f78a085e80af28b3c8314c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158533)) **GitLab Enterprise Edition**
|
||||
- [Update the search code according to the replica](https://gitlab.com/gitlab-org/gitlab/-/commit/1e93b4695a64366da9ac8afa62a4fb425eb4a867) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158371)) **GitLab Enterprise Edition**
|
||||
- [Add the API to return the multi_matches in a single file](https://gitlab.com/gitlab-org/gitlab/-/commit/9ed731cf614b1fc0d2a345791a096d6c08c93eda) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155984)) **GitLab Enterprise Edition**
|
||||
- [Add merge_request.squash git push option](https://gitlab.com/gitlab-org/gitlab/-/commit/6db3affce8e9bf36aef55a632ae18f3850cfbf24) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158778))
|
||||
- [Add by_pipeline_ids scope for occurrences](https://gitlab.com/gitlab-org/gitlab/-/commit/056008f7418e1b45d2c616bf7da4e09dfea309f1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158790))
|
||||
- [Release secret push protection for self-managed instances](https://gitlab.com/gitlab-org/gitlab/-/commit/b214790b5a358248b38bec911b97fefa0c27f6d4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156907)) **GitLab Enterprise Edition**
|
||||
- [Add ability to delete task list items](https://gitlab.com/gitlab-org/gitlab/-/commit/1b12e01908c312b302096c591266b73afd56471b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158243))
|
||||
- [Enable store first reviewer FF by default](https://gitlab.com/gitlab-org/gitlab/-/commit/a167164de15c9c7212ad83bba26c1b863e4b869a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158919))
|
||||
- [Add support for LDAP group sync with custom roles](https://gitlab.com/gitlab-org/gitlab/-/commit/03c57818738fd8628a7e6561b07483bea7c0b56d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157145)) **GitLab Enterprise Edition**
|
||||
- [Add delete mutation for deleting self-hosted models](https://gitlab.com/gitlab-org/gitlab/-/commit/55f5a09298d0b5bae2a8bddb920ae1a9f4abe53c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158319)) **GitLab Enterprise Edition**
|
||||
- [Add REST API endpoints to manage uploads](https://gitlab.com/gitlab-org/gitlab/-/commit/65fc96866782de44427e17c7f21964775e4dbd36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157066))
|
||||
- [This MR adds performance warning modal](https://gitlab.com/gitlab-org/gitlab/-/commit/6e684693e4cc527976c8f8509e84b7c8f7b9a32c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157745)) **GitLab Enterprise Edition**
|
||||
- [Protected containers: New GraphQL field "protectionRuleExists"](https://gitlab.com/gitlab-org/gitlab/-/commit/25615f524198cb6e08afabf6e22120d146b1e901) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156741))
|
||||
- [Add ci_component_source_policy](https://gitlab.com/gitlab-org/gitlab/-/commit/ae3418523c5b20c57becd3426a54fda7240eeb12) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157351))
|
||||
- [Add support for comments in rich text editor](https://gitlab.com/gitlab-org/gitlab/-/commit/2b7c21095ada7258e98ecbdf308e978332e18de1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158618))
|
||||
- [Add the API to return the multi_matches in a single file](https://gitlab.com/gitlab-org/gitlab/-/commit/975ea866d9f8ff1376f25849286f573ad1d2aacf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155984)) **GitLab Enterprise Edition**
|
||||
- [Add reviewer first assigned at VSA stage event](https://gitlab.com/gitlab-org/gitlab/-/commit/dcb264ff24fa7822062c736d27fc1f28a3de4900) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158716)) **GitLab Enterprise Edition**
|
||||
- [Add page metadata to work items](https://gitlab.com/gitlab-org/gitlab/-/commit/d889cbd4339e228193c7011973cf7821aa76b150) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157456))
|
||||
- [Create p_ci_finished_pipeline_ch_sync_events table](https://gitlab.com/gitlab-org/gitlab/-/commit/9a4b6ad800019e49efc1c4d4f0bc92591b30c33f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158060))
|
||||
- [Add Rake task to show token expiration info](https://gitlab.com/gitlab-org/gitlab/-/commit/f05e2dcd79b4d0d90074aad4db7dab87da2dc5ec) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157855))
|
||||
- [Add and set uploaded_by_user_id on Upload records](https://gitlab.com/gitlab-org/gitlab/-/commit/0321e29e47e24f0b6eeff464a1e16740fbf72ffc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157574))
|
||||
- [Set first MR assigned for review timestamp metrics](https://gitlab.com/gitlab-org/gitlab/-/commit/c9a1d1bcc59979f4e7968d89e1281fc1254219b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158422))
|
||||
- [Expose VSD overview counts for projects](https://gitlab.com/gitlab-org/gitlab/-/commit/aa767f85cd6f5e9ada27dc560160614047ec9942) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158017)) **GitLab Enterprise Edition**
|
||||
- [Create country_access_logs table](https://gitlab.com/gitlab-org/gitlab/-/commit/8e35bd87d23d60547907918f6a938cab88b614a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157480)) **GitLab Enterprise Edition**
|
||||
- [Show real page title in wiki sidebar](https://gitlab.com/gitlab-org/gitlab/-/commit/6c14327fd2fe5d69bf42c90ddb18f477bafa99f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158679))
|
||||
- [GraphQL: Add PipelineAnalyticsPeriod type](https://gitlab.com/gitlab-org/gitlab/-/commit/baba2199561365b0cd95b025d6a63f147be9871b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157293))
|
||||
- [CI/CD Catalog: Add description, type to components](https://gitlab.com/gitlab-org/gitlab/-/commit/410bc05a2315afe16dbffefa8b32c7b4a6c376ab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157985))
|
||||
- [Protected containers: POST REST API for container protection rules](https://gitlab.com/gitlab-org/gitlab/-/commit/afee9075d1387525ad6138eb9a7ee69f8ec777cc) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157925))
|
||||
- [Add Users::ActivityEvent and pub/sub logic](https://gitlab.com/gitlab-org/gitlab/-/commit/8fcab5a27db9a4d127c0165e83b32a0e4f938a7c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155559))
|
||||
- [Add status column to duo workflows](https://gitlab.com/gitlab-org/gitlab/-/commit/7d0440e97dd609453f5a1d87450a413a5c4c5906) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158036)) **GitLab Enterprise Edition**
|
||||
- [Enables inheritance field param via the Integrations API](https://gitlab.com/gitlab-org/gitlab/-/commit/dc7b1b96f97e4d9f361f98f698922259b5d27362) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158218))
|
||||
- [Add hasParent field to hierarchy widget](https://gitlab.com/gitlab-org/gitlab/-/commit/96e70f6c713e829baf7a2ff0ed252206e34e7bdb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156041))
|
||||
- [Add UI for CI_JOB_TOKEN permission settings](https://gitlab.com/gitlab-org/gitlab/-/commit/0a663c231314259a70a74acebeec62bb05115939) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156752))
|
||||
- [Document SPP known limitation](https://gitlab.com/gitlab-org/gitlab/-/commit/c6aa84da756e078b228b4dd78cc9ec5233d11b87) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157699))
|
||||
- [Remove ci_expand_variables_in_compare_to FF](https://gitlab.com/gitlab-org/gitlab/-/commit/b3358f2d75daeb810eb06e4b473249de2fb0e8ec) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158183))
|
||||
- [Separate wiki page title and URL fields](https://gitlab.com/gitlab-org/gitlab/-/commit/a8f32279fcf6e17d747b8648d705d37af5abfc3e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150646))
|
||||
- [Remove the `gitlab_duo_usage_menu_item` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/6b8de4adb6b8387ef65e34f22a4162ebbcd225b8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158388)) **GitLab Enterprise Edition**
|
||||
- [Remove references to hamilton_seat_management feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/00fee8b1853ac7af78c799054052e983bd894402) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156961)) **GitLab Enterprise Edition**
|
||||
- [Add FK to VSA stage event hashes organization_id](https://gitlab.com/gitlab-org/gitlab/-/commit/44e0f713faa6ef866ed829b523921b9bc1d95929) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158322))
|
||||
- [Release pipeline execution policy type](https://gitlab.com/gitlab-org/gitlab/-/commit/c7f9bb825eb2db6c480e557f0af92470c3618eea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158338)) **GitLab Enterprise Edition**
|
||||
- [Update Analytics Dashboards' viewed/created/edited tracking events](https://gitlab.com/gitlab-org/gitlab/-/commit/f1bf9efbb2e0c358efa133e521352e10ff4155e8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157680)) **GitLab Enterprise Edition**
|
||||
- [Update GitLab Pages version](https://gitlab.com/gitlab-org/gitlab/-/commit/81abcdb13c823e82e5d416df6ed2f9aa1f93e59f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158248))
|
||||
- [Add owners internal endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/0e45f6bdf283916ff5a2f8f70195a0b99a5a62cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157620)) **GitLab Enterprise Edition**
|
||||
- [Add banned/blocked indicator to card matches admin page](https://gitlab.com/gitlab-org/gitlab/-/commit/43ac9f69a4fa42b4720183096ec39d49504a2e95) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157220)) **GitLab Enterprise Edition**
|
||||
- [Recreate ci_finished_pipelines ClickHouse table](https://gitlab.com/gitlab-org/gitlab/-/commit/3db8c2909e09590b47d148a24fb938cb4fb16acc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158246))
|
||||
- [Add endpoint to update list of X-Ray dependencies](https://gitlab.com/gitlab-org/gitlab/-/commit/22f296b34c92e85c1f417f25faa87323daca4b9c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156179)) **GitLab Enterprise Edition**
|
||||
- [Add imported_from value to github importer](https://gitlab.com/gitlab-org/gitlab/-/commit/a29fc47f948df472a21f5a7f056eb3703905f7d5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157760))
|
||||
- [Create ci_finished_pipelines ClickHouse table](https://gitlab.com/gitlab-org/gitlab/-/commit/da90a98e359c6eb0ae7f053bdf26de6929200e34) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158078))
|
||||
- [Add compliance center for premium customers](https://gitlab.com/gitlab-org/gitlab/-/commit/6e68bc862fbcfd78620732995bafe0af5edf36ab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156632)) **GitLab Enterprise Edition**
|
||||
- [Add badge for feedback on new epics](https://gitlab.com/gitlab-org/gitlab/-/commit/e542ebca350e494f7e1b131f164ccc2a726a3424) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157324))
|
||||
- [Add a validation about project assignment to a replica](https://gitlab.com/gitlab-org/gitlab/-/commit/6ffd1aaa10b9f23a2d0668882369ece60e2400f5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157758)) **GitLab Enterprise Edition**
|
||||
- [Add support for LDAP group sync with custom roles](https://gitlab.com/gitlab-org/gitlab/-/commit/b426f3af63b07e64310f92733107b7891a47db52) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155680)) **GitLab Enterprise Edition**
|
||||
- [Create audit event when deploying to protected environment](https://gitlab.com/gitlab-org/gitlab/-/commit/87909ef70f040653c8be4c2dd226dd5580568fa1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156111)) **GitLab Enterprise Edition**
|
||||
- [Add new namespaces/namespace_id route](https://gitlab.com/gitlab-org/gitlab/-/commit/8410d97a8c10317b4e776303cc0e5abfbe5f84c8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157341)) **GitLab Enterprise Edition**
|
||||
- [Add support for groups in policy scope](https://gitlab.com/gitlab-org/gitlab/-/commit/62cd071153e3cf03a5878da052fbab99817f428b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157083)) **GitLab Enterprise Edition**
|
||||
- [Show TOC of a wiki page in sidebar](https://gitlab.com/gitlab-org/gitlab/-/commit/2e9921fc57e378437db033ae6f4efeca75d6bba5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154050))
|
||||
- [Add table to record placeholder contributions](https://gitlab.com/gitlab-org/gitlab/-/commit/347fe084d384dd850dec45dc76d48af6bdd2b8cb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156241))
|
||||
- [Migration to populate vulnerability_reads.identifier_external_ids](https://gitlab.com/gitlab-org/gitlab/-/commit/07a5d22507ca7b7d9c072398c9e93d7e2de388d3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157639))
|
||||
- [Add runner fleet dashboard visit metric](https://gitlab.com/gitlab-org/gitlab/-/commit/99554f12c4eb77ffd328de84a73392f0a8bcbe6b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157589)) **GitLab Enterprise Edition**
|
||||
- [Add more log fields in 401 Unauthorized requests](https://gitlab.com/gitlab-org/gitlab/-/commit/eaa8ab73884b9504156e2e2aef1a8c506dbb3f86) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157277))
|
||||
- [Add imported_from to bb cloud resources](https://gitlab.com/gitlab-org/gitlab/-/commit/2b2a583c8e96454a5ccc12f4ff27445b8bcc0e9a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157582))
|
||||
- [Integration for Beyond Identity exclusions by groups](https://gitlab.com/gitlab-org/gitlab/-/commit/5f0492a248e962139237fb40f023ed6f4f1b48ba) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153957))
|
||||
- [Add hybrid search query for issues](https://gitlab.com/gitlab-org/gitlab/-/commit/b48f5b540741be978869c50c585794f659724edd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156904)) **GitLab Enterprise Edition**
|
||||
- [Add job item to pipeline mini graph](https://gitlab.com/gitlab-org/gitlab/-/commit/724852d20740a65a61eeafc6b95c97810c11ee7a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157798))
|
||||
- [Add imported_from value to gitea imported resources](https://gitlab.com/gitlab-org/gitlab/-/commit/0a1528a6cbcecc4d071fe04fa517334ff8864ba9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157333))
|
||||
- [Add GraphQL API for AI Acceptance Rate](https://gitlab.com/gitlab-org/gitlab/-/commit/ba677efb561d0984af5c850ef7b1536702ca4bd2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157035)) **GitLab Enterprise Edition**
|
||||
- [Create audit event for container repository tag deletion](https://gitlab.com/gitlab-org/gitlab/-/commit/0c61c1eb09e9c76acf4093c2c25e3427f119a7b2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156066)) **GitLab Enterprise Edition**
|
||||
- [Add tracking to metric drill-down links in VSD and AI Impact tables](https://gitlab.com/gitlab-org/gitlab/-/commit/85ee54f6b8a3a59e516d35be7c9e05e9055f48bc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157363)) **GitLab Enterprise Edition**
|
||||
- [Perform chat requests via new endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/139b88d87cf26a25c24848d2e807aa66c88afa56) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150529)) **GitLab Enterprise Edition**
|
||||
- [Added mutation for updating MemberApprovals](https://gitlab.com/gitlab-org/gitlab/-/commit/cbcd2bf16233b16ac9065ec7889abeae21711630) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155284)) **GitLab Enterprise Edition**
|
||||
- [Add new internal users endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/eece4b86cca0ddb603540d54667c8fb0e752800c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156759)) **GitLab Enterprise Edition**
|
||||
- [Add imported_from value to bb server resources](https://gitlab.com/gitlab-org/gitlab/-/commit/5a6b7359beade96a4110126c70ffaef2bd575cc8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157507))
|
||||
- [Add support for legacy epic references in workItemsByReference query](https://gitlab.com/gitlab-org/gitlab/-/commit/4be3f387fa992071c0a0d82cf1af7739b58696f9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157787)) **GitLab Enterprise Edition**
|
||||
- [Add in pipeline stage dropdown](https://gitlab.com/gitlab-org/gitlab/-/commit/a55564a041751e6fed4b0accfa84053a7439bdc6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157506))
|
||||
- [Add branch_filter_strategy to system, group and project hooks](https://gitlab.com/gitlab-org/gitlab/-/commit/a120d1f89e4920634c58dc444ec4ac83f2d5454c) by @clxrx ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/145970))
|
||||
- [Add duo enterprise add-on type](https://gitlab.com/gitlab-org/gitlab/-/commit/b4de88cb4d1366991b7ecddca4459ee84983e16a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157730)) **GitLab Enterprise Edition**
|
||||
- [Add update mutation for the self-hosted models Vue client to leverage](https://gitlab.com/gitlab-org/gitlab/-/commit/1e3ae1075a486c6cd85c93145336f3c6ea6d3d62) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156899))
|
||||
- [Protected packages: Add label "protected" to package list on group level](https://gitlab.com/gitlab-org/gitlab/-/commit/63e733df54f0a5ad24f67115d4b83aa53d26d979) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154809))
|
||||
- [Protected containers: Add GET to REST API for container protection rules](https://gitlab.com/gitlab-org/gitlab/-/commit/215c18a415bc2dfbafb6bb81a3f5a404e8b2d5b2) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155798))
|
||||
- [Add gitlab_sec db connection and application record](https://gitlab.com/gitlab-org/gitlab/-/commit/c93d2b4e1112ed682c4690fe0c19b78a5dd51141) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157462))
|
||||
- [Fill out fields on InputType](https://gitlab.com/gitlab-org/gitlab/-/commit/92da7caa9f4148d1d611e3f1e6eda5a24d8f6164) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156328))
|
||||
- [Adds configurable default Service Desk ticket visibility](https://gitlab.com/gitlab-org/gitlab/-/commit/39be1cc96b11451030e06efea06d956f220b796c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156884))
|
||||
- [Add error message for failed association deletion](https://gitlab.com/gitlab-org/gitlab/-/commit/a6408f97c1af7e54d63a26edcd65d0fd27a6dd21) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157625))
|
||||
- [Allow `admin_runner` to create a runner linked to a user](https://gitlab.com/gitlab-org/gitlab/-/commit/98564f789a47c63a33387ebdd4a8e262d8da377c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156559)) **GitLab Enterprise Edition**
|
||||
- [Allow push to the own repo using CI_JOB_TOKEN](https://gitlab.com/gitlab-org/gitlab/-/commit/5c8b0440f95ab67f5503220ba63173f248c9054c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154111))
|
||||
- [Adds reusable SettingsSection component](https://gitlab.com/gitlab-org/gitlab/-/commit/d66062058592ca8b25f10395546706f8a44e39ae) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157270))
|
||||
- [Enable runner dashboard for groups](https://gitlab.com/gitlab-org/gitlab/-/commit/2dbe985b8822a3a5f56da73e4f30387710b7eb2e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157423)) **GitLab Enterprise Edition**
|
||||
- [GraphQL: Add job execution status to runner manager](https://gitlab.com/gitlab-org/gitlab/-/commit/8036c15b59b4194ef3c4dfe491c0f5200ced13bb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157429))
|
||||
- [Auditing framework assign and unassign to a project](https://gitlab.com/gitlab-org/gitlab/-/commit/01e758131649a64b9e925bedf933c5b3d311b501) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156605)) **GitLab Enterprise Edition**
|
||||
- [Add runner CSV export metrics at project and group level](https://gitlab.com/gitlab-org/gitlab/-/commit/c2c334e0f211370dbde828ca05b8c55321df3ab6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157197)) **GitLab Enterprise Edition**
|
||||
- [WorkItems: Fix rolledup dates when removing child](https://gitlab.com/gitlab-org/gitlab/-/commit/dfc2d692cfc9da9d5b3470d9b90aaa390729bcc1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157334)) **GitLab Enterprise Edition**
|
||||
- [feat: Add configuration for sec DB](https://gitlab.com/gitlab-org/gitlab/-/commit/faf789e010b264e31c6db729be8cdff9ed325421) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156952))
|
||||
- [GraphQL: API for retrieving most used runners](https://gitlab.com/gitlab-org/gitlab/-/commit/1ea8a9d0c44968bc38e64dc6e6dbe85dd0abd9c8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157436)) **GitLab Enterprise Edition**
|
||||
- [GraphQL: Add percentiles to QueueingHistoryTimeSeries](https://gitlab.com/gitlab-org/gitlab/-/commit/2dec0f10284ab11266564c511632ecfb0ba6a67f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157435)) **GitLab Enterprise Edition**
|
||||
- [GraphQL: Add upgradeStatus field to RunnerType](https://gitlab.com/gitlab-org/gitlab/-/commit/6ecc972d8b5e75a8ac580eca16d9fa2297750b94) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157434)) **GitLab Enterprise Edition**
|
||||
- [Add support for Claude 3.5 Sonnet for code generation](https://gitlab.com/gitlab-org/gitlab/-/commit/b793848806ec66dbf779d000d6c4adb94565dc36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157336)) **GitLab Enterprise Edition**
|
||||
- [Bump rouge to 4.3.0 with the new IEC 61131-3 Structured Text lexer](https://gitlab.com/gitlab-org/gitlab/-/commit/e8289a931d6cf482c1feac3c0e4a9af9f9b643c2) by @bufferoverflow ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157252))
|
||||
- [Add secure schemas version 15.1.4 and 5.1.3](https://gitlab.com/gitlab-org/gitlab/-/commit/f37ff659e20c823989d6f78f2d7b343b57c785c2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157282))
|
||||
- [Add metadata to group work item page](https://gitlab.com/gitlab-org/gitlab/-/commit/1d065451d1b6677b8e9e2c16f6032ebfd4865e45) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157049))
|
||||
- [Add NOT NULL on merge_request_id](https://gitlab.com/gitlab-org/gitlab/-/commit/fe28d0267fdc2230d59a00cb7841cf17f65d23d4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156170))
|
||||
- [Add merge and closed user ids to MR metrics](https://gitlab.com/gitlab-org/gitlab/-/commit/c9b115a010ad681eb1c57ce31fb333ebdc25e843) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157206))
|
||||
- [Pass org in export part creation](https://gitlab.com/gitlab-org/gitlab/-/commit/2e8c605e61e1e3ae7a13828ede9e541ec7e44266) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157074)) **GitLab Enterprise Edition**
|
||||
- [Add support for child pipelines to SBOM ingestion](https://gitlab.com/gitlab-org/gitlab/-/commit/6eab3a93690af0b73d4dd32e431a19c6bacedd78) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151814)) **GitLab Enterprise Edition**
|
||||
- [Add option to sort Pipeline Schedules to frontend](https://gitlab.com/gitlab-org/gitlab/-/commit/3573dec857ad905f2de64ee3498ddab78cc5aec4) by @schurzi ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157224))
|
||||
- [Add ability to create label in work item labels widget](https://gitlab.com/gitlab-org/gitlab/-/commit/d327d4ce3ffc63c8b3ba63b1d1742c2324cd6031) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156524))
|
||||
- [Allow `admin_runner` ability to change stale runner pruning setting](https://gitlab.com/gitlab-org/gitlab/-/commit/d903b29f8a0c48475c6045349c4964c1381f9801) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155497)) **GitLab Enterprise Edition**
|
||||
- [Adds type to issue webhook attributes](https://gitlab.com/gitlab-org/gitlab/-/commit/e6e6017ad32d0b74b224dfaffabaae3db832be84) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156760))
|
||||
- [Add button for adding additional seats to error messages](https://gitlab.com/gitlab-org/gitlab/-/commit/a1c37cf4c5ff40506c0043a752aec1d2fc5e8412) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155737)) **GitLab Enterprise Edition**
|
||||
- [Adds the CRUD Container component](https://gitlab.com/gitlab-org/gitlab/-/commit/313ca91904b092475e4d62ff90a90dbe17ca9c01) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156749))
|
||||
- [Add variables field into PipelineType](https://gitlab.com/gitlab-org/gitlab/-/commit/a6d441fc18e1df2c8c5bd9e44ae5bd6cf3d93a01) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155418))
|
||||
- [Show latest version on version creation](https://gitlab.com/gitlab-org/gitlab/-/commit/752ff4db28ec6c38eff135bc99953d8173388ddb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155978))
|
||||
- [Backfills gitlab group issue embeddings on gitlab.com](https://gitlab.com/gitlab-org/gitlab/-/commit/9101e4229aba3224e4916b5557f8d0766885ad4c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154940)) **GitLab Enterprise Edition**
|
||||
- [Enforce rate limits for notification emails](https://gitlab.com/gitlab-org/gitlab/-/commit/4d990b60e1a4341add14437d24398a07b3ce6a7b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156945))
|
||||
- [Release CI/CD popularity count and sort](https://gitlab.com/gitlab-org/gitlab/-/commit/ccc6b38cb6dc01f9f9c2f2b6d168a10c92218095) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156654))
|
||||
- [Remove ci_expand_nested_resource_group_variables FF](https://gitlab.com/gitlab-org/gitlab/-/commit/cb194188d3540d141d4d21aa679c3bb9485db840) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157146))
|
||||
- [Protected packages: REST API PATCH package protection rules](https://gitlab.com/gitlab-org/gitlab/-/commit/883ad288d8a131398c8c744432aba919d2278866) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153577))
|
||||
- [Add api to return group's shared groups](https://gitlab.com/gitlab-org/gitlab/-/commit/a015acefff8c8bceaca21193a8c576bf5fe8ec11) by @imskr ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155251))
|
||||
- [Protected containers: Allow nil value for fields `minimum_access_level`](https://gitlab.com/gitlab-org/gitlab/-/commit/430374098a1e8b078f38585219ba012fb914f996) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146997))
|
||||
- [Add maintenance mode banner to edit frameworks UI](https://gitlab.com/gitlab-org/gitlab/-/commit/d67604b6a6b900bfda49002d8b3690afaa384239) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155887)) **GitLab Enterprise Edition**
|
||||
- [Add cargo to supported sbom and sync types](https://gitlab.com/gitlab-org/gitlab/-/commit/114c6191291c84bb3f2fe0a37701ab9604389cf7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156072))
|
||||
- [Add disabled_direct_code_suggestions setting](https://gitlab.com/gitlab-org/gitlab/-/commit/57c2bf6c68e86711699c76c41ff9717c69d0f22c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156147)) **GitLab Enterprise Edition**
|
||||
- [AI impact analytics dashboard is now generally available](https://gitlab.com/gitlab-org/gitlab/-/commit/b23a75f987231d1b882e6460a57109230c604dfb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154148)) **GitLab Enterprise Edition**
|
||||
- [Adds inheritance settings to API::Integrations](https://gitlab.com/gitlab-org/gitlab/-/commit/56a2f1da6ead60b6ae42633a6263595813576c3e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154915))
|
||||
- [Remove identity_verification_arkose_challenge feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/b882650e842bc4b82b7af44507418bd414da396b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156862)) **GitLab Enterprise Edition**
|
||||
- [Added include_forked filter to the zoek search](https://gitlab.com/gitlab-org/gitlab/-/commit/dda457f63b5b0546ca9e3ab449e0dc902156655c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154099))
|
||||
- [Extend organization to snippets table](https://gitlab.com/gitlab-org/gitlab/-/commit/1b14e34b38fb9b26c3737a93c189804464ca88fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155580))
|
||||
- [Include required backend data for the Project Header](https://gitlab.com/gitlab-org/gitlab/-/commit/28c0badf0bead0768a092fb298d1b8cc39162548) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156049))
|
||||
- [Added create and delete apis for instance level namespace filters](https://gitlab.com/gitlab-org/gitlab/-/commit/cd588f8794c57f1b87f899429ff5febdb43f6699) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153156)) **GitLab Enterprise Edition**
|
||||
- [Add approval_policy_rule_id index and foreign key](https://gitlab.com/gitlab-org/gitlab/-/commit/05c2f382674e5951bdd4eb771a14bb203eb286ca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155256))
|
||||
- [Add pod logs buttons](https://gitlab.com/gitlab-org/gitlab/-/commit/7446d3fe32cbb1cb9876714805125640fc5b19cf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156544))
|
||||
- [Add support for rendering readme in terraform package details page](https://gitlab.com/gitlab-org/gitlab/-/commit/67d63b74dff09e7a4fefdfe5e8e77e74bf073bdf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155025))
|
||||
- [Create container_repository_deletion_marked audit event](https://gitlab.com/gitlab-org/gitlab/-/commit/130adeb5bea20ed3934820fd223c58e045110342) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152967)) **GitLab Enterprise Edition**
|
||||
- [Protected packages: REST API POST package protection rule](https://gitlab.com/gitlab-org/gitlab/-/commit/07af56ad982ac40656fdd907f6626f2bb4f93b1e) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153571))
|
||||
- [Adjust logic to add org to export](https://gitlab.com/gitlab-org/gitlab/-/commit/1b9cea92f6e3cb3317c36388acffd109638b835f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156367)) **GitLab Enterprise Edition**
|
||||
- [Add mediaType as a field to Tag](https://gitlab.com/gitlab-org/gitlab/-/commit/8bfa8d8f130ca74127e99f85e99c5c5f1bcb3d9c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156303))
|
||||
- [Adds List-Unsubscribe-Post header to notification emails](https://gitlab.com/gitlab-org/gitlab/-/commit/2f6f362ae293171da5882592ef93f2e5e99ca585) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156414))
|
||||
- [Add member_role_id to ldap_group_links](https://gitlab.com/gitlab-org/gitlab/-/commit/83684890db91add42b8651f0562a7d9a7a868152) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155676)) **GitLab Enterprise Edition**
|
||||
|
||||
### Fixed (162 changes)
|
||||
|
||||
- [Exclude scripts from coherence check when publishing npm packages](https://gitlab.com/gitlab-org/gitlab/-/commit/9a6daba70e91fbcc0b46cc5bd50e37de63a58eee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159427))
|
||||
- [Relax the version comparison for NPM uploads](https://gitlab.com/gitlab-org/gitlab/-/commit/450f299f822649d8772b88d516cd982d46a81bde) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159327))
|
||||
- [Fix worker when record not found](https://gitlab.com/gitlab-org/gitlab/-/commit/ce9477c4c6d2a78d1b270eb4453e5157bbc8170a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158973)) **GitLab Enterprise Edition**
|
||||
- [Fix Content-Disposition not working for Azure in API download](https://gitlab.com/gitlab-org/gitlab/-/commit/b3c547feccf134234284514d641b2dea42bd50d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159292))
|
||||
- [Display error when delete framework fails](https://gitlab.com/gitlab-org/gitlab/-/commit/571492480ace5b8e3ad5dbb5fd6df29dd0473545) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159207)) **GitLab Enterprise Edition**
|
||||
- [Cobertura parser: Extract filename OS-agnostically](https://gitlab.com/gitlab-org/gitlab/-/commit/ad34f313de7ae59910f3b0bbeff6da89ee5199eb) by @bmarconato ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159263))
|
||||
- [Fixed Productivity Analytics date range calculations](https://gitlab.com/gitlab-org/gitlab/-/commit/3e6f3a9a0f612d1b73a17487fa265a3a7f8505e6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158664)) **GitLab Enterprise Edition**
|
||||
- [Fix IDE Duo Chat timeout](https://gitlab.com/gitlab-org/gitlab/-/commit/bb885d2da7e208424e3f9100b5de78ae5c03a5b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159201)) **GitLab Enterprise Edition**
|
||||
- [Support auth credentials from URI for pull mirror validation](https://gitlab.com/gitlab-org/gitlab/-/commit/9d5f6d4bd03ef6cc8282ea539b3a50e7383b42f5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158076))
|
||||
- [Remove invalid foreign key fk_87f4cefcda_p](https://gitlab.com/gitlab-org/gitlab/-/commit/8ff55f5255757dcca5f7ec776720f8e6c4e40d62) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158585))
|
||||
- [Fix calculations for predefined date ranges in Value Stream Analytics](https://gitlab.com/gitlab-org/gitlab/-/commit/1a0f0fabf271268e7272d01ba3370985915c34e6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156355))
|
||||
- [Use sentence case for work items "Linked items" header](https://gitlab.com/gitlab-org/gitlab/-/commit/8cd3212b168810bda633c8078250aadc4050ce8c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159148))
|
||||
- [Fix custom emoji display](https://gitlab.com/gitlab-org/gitlab/-/commit/d4d9005c15a6c1d97812b0daf667d4aa2d0a2499) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159136))
|
||||
- [Fix pipeline subscription error flash message display](https://gitlab.com/gitlab-org/gitlab/-/commit/e21661bfde2afabe49af4e86384eb203664678af) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158151)) **GitLab Enterprise Edition**
|
||||
- [Remove zoekt dependency from elasticsearch](https://gitlab.com/gitlab-org/gitlab/-/commit/cb1027397db9249bd359adec7cdc5b6fb8ea5101) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157921)) **GitLab Enterprise Edition**
|
||||
- [Fix custom role bug with requirements](https://gitlab.com/gitlab-org/gitlab/-/commit/9f1ddccc5712bf0a346952d666fbf71da675d3ca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157115)) **GitLab Enterprise Edition**
|
||||
- [Fix issues with quick action explanations](https://gitlab.com/gitlab-org/gitlab/-/commit/025d14c15e7ec0c1dfe813730a9194cf2f16b410) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158990))
|
||||
- [Fix notification emails not being sent when using external authorization](https://gitlab.com/gitlab-org/gitlab/-/commit/6a140058c3e0fb99eaeb1298a357200e319e6d67) by @pR0Ps ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110709))
|
||||
- [Clear seat assignments cache on bulk upsert](https://gitlab.com/gitlab-org/gitlab/-/commit/068b498bc5072b95c4d7a88db3bb0fad9723f820) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159065)) **GitLab Enterprise Edition**
|
||||
- [Fix how maven dependency proxy credentials are sent](https://gitlab.com/gitlab-org/gitlab/-/commit/9bc5abe412a364eeb46f811f9b77092839ee3ed1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158593)) **GitLab Enterprise Edition**
|
||||
- [Remove validation for ProtectedRef access levels](https://gitlab.com/gitlab-org/gitlab/-/commit/42d475a1314f2301c24501f3b7e2e1e3b4f89bf0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158296))
|
||||
- [Make `complianceFrameworks` field work for subgroups](https://gitlab.com/gitlab-org/gitlab/-/commit/3cf82399f3ee900869dfc75f0b9142cf7feb87d6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159055)) **GitLab Enterprise Edition**
|
||||
- [Introduce dedup lock for rescheduling jobs](https://gitlab.com/gitlab-org/gitlab/-/commit/7e469afe690bb59b45456dcb426242e0d07279a2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158329))
|
||||
- [Fix GitHub Import when importing from GHE](https://gitlab.com/gitlab-org/gitlab/-/commit/ea2d574785ac7f080577c64b37864b8c4e214eb5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158503))
|
||||
- [Fix alignment of admin groups header](https://gitlab.com/gitlab-org/gitlab/-/commit/decf1f008d63edd582b5bf6fbc1627269cb209c0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158805))
|
||||
- [Parse the package.json file entirely for NPM uploads](https://gitlab.com/gitlab-org/gitlab/-/commit/6d91ce9ca96b68f720e232582b3ab6d4cdb7f5b8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158978))
|
||||
- [Authenticate the GitLab Duo usage controller](https://gitlab.com/gitlab-org/gitlab/-/commit/2540a50b105bf4971a1501e16d594548ea3b9491) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158758)) **GitLab Enterprise Edition**
|
||||
- [Fix new issue note for group level issues](https://gitlab.com/gitlab-org/gitlab/-/commit/f41a2e170fc0df8969e4404f992994b97e25963e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158496))
|
||||
- [Remove milestone truncation on issues/merge requests dashboard](https://gitlab.com/gitlab-org/gitlab/-/commit/1d6db3dcc9deda7d456735ab2e0920c52bf9e2cc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158375))
|
||||
- [Protected packages: Npm package push protection for admin user](https://gitlab.com/gitlab-org/gitlab/-/commit/7622de8c7eb77596cd4486e16cbe3887e9a6cf5c) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156439))
|
||||
- [Work Item Epic feedback close on click](https://gitlab.com/gitlab-org/gitlab/-/commit/a83a354db835594945f3b6a68cd7a53144725aa0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158900))
|
||||
- [Fix work item sticky header](https://gitlab.com/gitlab-org/gitlab/-/commit/57fd28472e239445bc8a12fc0722857c42adbc36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158896))
|
||||
- [Fix bug with achievements path when feature flag not globally enabled](https://gitlab.com/gitlab-org/gitlab/-/commit/951b4aa67a1ebbb4124274b46456dee1f243c095) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158895))
|
||||
- [Protected packages: Fix documentation](https://gitlab.com/gitlab-org/gitlab/-/commit/327f7009058a3dfe11dfc652b27bed787e0a084e) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158894))
|
||||
- [Add workItemType check for weight widget for epics](https://gitlab.com/gitlab-org/gitlab/-/commit/a14fc4ee58210c2accd95c141625d8fdcc2db81f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158878))
|
||||
- [Exclude disabled custom permissions](https://gitlab.com/gitlab-org/gitlab/-/commit/94a33e125508a13734a62a39ae702e5ce560dba4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158848)) **GitLab Enterprise Edition**
|
||||
- [Prevent modal close on comment submission](https://gitlab.com/gitlab-org/gitlab/-/commit/eb2277960ec3bf66623fa1d77670fc451823f2f2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158478))
|
||||
- [Remove empty minimum_should_match from query](https://gitlab.com/gitlab-org/gitlab/-/commit/731a7e4953bcc2575d2cb7bd6a7708c1d9d5df2a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158645)) **GitLab Enterprise Edition**
|
||||
- [Prevent running scans from execution policies after downgrading license](https://gitlab.com/gitlab-org/gitlab/-/commit/2f6536064b1d214c268ac78d53e10cbad97ce123) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158817)) **GitLab Enterprise Edition**
|
||||
- [Fix wildcard package.json search in npm upload](https://gitlab.com/gitlab-org/gitlab/-/commit/917899322e2074f2cd4468a6f5ec3b120e0d6ede) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158806))
|
||||
- [Fix sync failure retry backoff](https://gitlab.com/gitlab-org/gitlab/-/commit/75b31d017ab5f8bb420e7bb23279131b81d5c590) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157805)) **GitLab Enterprise Edition**
|
||||
- [Exclude last page link from projects/id/repository/commits endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/f1eca9272f911e1c4c0f2b4e2a67f0c53cc3e4d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158278))
|
||||
- [Unify spacing in group and project item components](https://gitlab.com/gitlab-org/gitlab/-/commit/aadf1e2079cf96c17de27253d8e07d4f8304f3d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158639))
|
||||
- [Fix MR approval policy `prevent_pushing_and_force_pushing` enforcement](https://gitlab.com/gitlab-org/gitlab/-/commit/b479126b59dd39b1fc0d738665044ece0e4c8110) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158435)) **GitLab Enterprise Edition**
|
||||
- [Update static_holmes to v0.7.11](https://gitlab.com/gitlab-org/gitlab/-/commit/6cacaf56940ab272c34a515f2fbaa8f9c388ae8c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158714))
|
||||
- [Fix meta.root_namespace not logging for groups API requests](https://gitlab.com/gitlab-org/gitlab/-/commit/8413bde199dbe4395ceb599cb88aa5d4ffb91f13) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158671))
|
||||
- [Remove `fix_sso_enforcement_for_web_activity` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/29f566014199d4ca90feb26a1dcae982743a82f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158655)) **GitLab Enterprise Edition**
|
||||
- [Fix layout of filtered search for pipelines page on mobile](https://gitlab.com/gitlab-org/gitlab/-/commit/5085921f9bebccf2b8f03c2be711b02805581216) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158649))
|
||||
- [Fix cached introspection query and graphql-explorer](https://gitlab.com/gitlab-org/gitlab/-/commit/5bab3b90d3d440ae5ee44e8fb937a81deca0c7fc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158260))
|
||||
- [Ignore object pool already exists creation errors](https://gitlab.com/gitlab-org/gitlab/-/commit/cd5c559d81fcbeed4781666eea23ff88624e52a6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158412))
|
||||
- [Fix approval policy type detection for policies list](https://gitlab.com/gitlab-org/gitlab/-/commit/9464813b2a7dcd480f6304f8f1963e5127aae7f2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158528)) **GitLab Enterprise Edition**
|
||||
- [Fix polling when retrying status check](https://gitlab.com/gitlab-org/gitlab/-/commit/9c9a7427d39481ae993fba572b379634b7ead720) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158527)) **GitLab Enterprise Edition**
|
||||
- [Fix NoMethodError in PathLocksController](https://gitlab.com/gitlab-org/gitlab/-/commit/6b66490ff71e4aa311afe05e541ac69854e6c565) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158434)) **GitLab Enterprise Edition**
|
||||
- [Protected packages: Remove developer as an example from documentation](https://gitlab.com/gitlab-org/gitlab/-/commit/7d191795eb9413b998d73b1985c02997d999cd88) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158433))
|
||||
- [Ignore selected project if adding epic](https://gitlab.com/gitlab-org/gitlab/-/commit/3fe3078b6fce5c41c1431c15ef3c053f1b07ef30) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158241))
|
||||
- [Remove Bad spacing in pending comment](https://gitlab.com/gitlab-org/gitlab/-/commit/641ecd1b8134c1d0af00f7a2f9094f4ec07a44af) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158429)) **GitLab Enterprise Edition**
|
||||
- [Fix merge train merge availability when pipeline is canceling](https://gitlab.com/gitlab-org/gitlab/-/commit/99dfd60511346c843950c911c482b08e19644904) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158126)) **GitLab Enterprise Edition**
|
||||
- [Fix broken schema path](https://gitlab.com/gitlab-org/gitlab/-/commit/e94b26c861f80efd63361f15da8964a6d62c3093) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157228)) **GitLab Enterprise Edition**
|
||||
- [Fix incorrect retry warning when merge trains are enabled](https://gitlab.com/gitlab-org/gitlab/-/commit/7e576e008ef04bf7bcefe917e4c33256caa17196) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158283)) **GitLab Enterprise Edition**
|
||||
- [Fix Zoekt exact match](https://gitlab.com/gitlab-org/gitlab/-/commit/d893df66119a92d4b0bb89c73c841050a4af14b9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158379)) **GitLab Enterprise Edition**
|
||||
- [Forking project to groups with restricted visibility levels](https://gitlab.com/gitlab-org/gitlab/-/commit/fb0a1bf330d184eb0b5901b7a3e39a2c7f273d52) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157202))
|
||||
- [Title returns a default value if no advisory title](https://gitlab.com/gitlab-org/gitlab/-/commit/31ba4d52d0a7e0a39b454dc8177175fa2e40158d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155841)) **GitLab Enterprise Edition**
|
||||
- [When activity token is cleared set query to all values](https://gitlab.com/gitlab-org/gitlab/-/commit/e26eeb648b8249684aec6d8d2f461eaa8ebc472f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158098)) **GitLab Enterprise Edition**
|
||||
- [Fix issues mailer for group level issues](https://gitlab.com/gitlab-org/gitlab/-/commit/b474a0465bbe9c8818a11ea32e8985e33db66cf2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156360))
|
||||
- [Display unverified badge for signed commits without a signature](https://gitlab.com/gitlab-org/gitlab/-/commit/1aceccdb4b372a16a7e8cb71c26666388fa5c7b2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153407))
|
||||
- [Fix related items header in dark mode](https://gitlab.com/gitlab-org/gitlab/-/commit/298622b5f009c518701835a3f79fee3d13f73fab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158169))
|
||||
- [Reduce getPipelineDetails query complexity below 200](https://gitlab.com/gitlab-org/gitlab/-/commit/42a009b95acd9df7f78f42eb7afcf6ba9789ec3e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158158))
|
||||
- [Fix issue description task actions focus bug](https://gitlab.com/gitlab-org/gitlab/-/commit/0ab321a080cde133f39971dfc6cb2c96085a1a75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157495))
|
||||
- [Reset form error when tokens change after submission failure](https://gitlab.com/gitlab-org/gitlab/-/commit/365f13032ca4c186aebfaee78de9cdf407a3631a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157792))
|
||||
- [Do not create empty rule for branch specific rules](https://gitlab.com/gitlab-org/gitlab/-/commit/e765f4ea1ad6b6f9d97a835e7f4c8eba0985a6d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157723)) **GitLab Enterprise Edition**
|
||||
- [Reinstate dt disabled message](https://gitlab.com/gitlab-org/gitlab/-/commit/2f8110a741e85ee65f73e6c738260b6475d08fe4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156744))
|
||||
- [Fix submit keyboard shortcut on commit page](https://gitlab.com/gitlab-org/gitlab/-/commit/ff4782d2fd23b5d4ce7cb240e783d9fccc9b3f3b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157998))
|
||||
- [Remove custom CSS to fix modal background color](https://gitlab.com/gitlab-org/gitlab/-/commit/caf6a6e388a98c71a3331ee70b9155222dc94a4a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158064))
|
||||
- [Fix badge issues and sticky header](https://gitlab.com/gitlab-org/gitlab/-/commit/99e5372454a66afa98e65a9b26f00a6438135c0a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158047))
|
||||
- [Skip approval updates for merged MRs](https://gitlab.com/gitlab-org/gitlab/-/commit/bc90a50bc57f11bc252cbc57e7ff4f887d5571c5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158042)) **GitLab Enterprise Edition**
|
||||
- [Fix ambiguous namespace_id in query](https://gitlab.com/gitlab-org/gitlab/-/commit/2f9aa3a181ff09af45b226f72d0e6d1847b481f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157780))
|
||||
- [Pass session_id to nested sidekiq calls](https://gitlab.com/gitlab-org/gitlab/-/commit/08a9a012054dbd9fdafc48e74165f992e3523255) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157566)) **GitLab Enterprise Edition**
|
||||
- [Prevent redudant finalisations of segmented exports](https://gitlab.com/gitlab-org/gitlab/-/commit/e51c3bbbadb487a4d64508314fda4a152279706e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157695)) **GitLab Enterprise Edition**
|
||||
- [Allow Developers to create projects from templates](https://gitlab.com/gitlab-org/gitlab/-/commit/52e43952ea7987940fb07724589b1f6caf8930ce) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157401))
|
||||
- [Fix flaky test in SyncFunnelsWorker](https://gitlab.com/gitlab-org/gitlab/-/commit/a2e34f649d3c3c3dfe22721013ee2f2385a5f07d) by @max.woolf ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157763)) **GitLab Enterprise Edition**
|
||||
- [Fix URL generation for links with spaces](https://gitlab.com/gitlab-org/gitlab/-/commit/23293597ecf724218349450527a1f64f87611d59) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157942))
|
||||
- [Fix Link header for Tree API requests](https://gitlab.com/gitlab-org/gitlab/-/commit/2ef5030ba61668fc00ff83cb088d30902af0f60b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157914))
|
||||
- [Fix issue creation on board with scope set to No iteration](https://gitlab.com/gitlab-org/gitlab/-/commit/bba2d2b4d030f1ad420ae3472612d0301749255b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157892)) **GitLab Enterprise Edition**
|
||||
- [Fix setting the `organization_id` for vulnerability exports](https://gitlab.com/gitlab-org/gitlab/-/commit/bb6b92a2d7ab40e5df07bf8b02b0f5f036bf96fb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157889)) **GitLab Enterprise Edition**
|
||||
- [Field needs to be called Url](https://gitlab.com/gitlab-org/gitlab/-/commit/bd553868ae635267f1615927ca7a6656406d16df) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157884))
|
||||
- [Fix bulk_import history prop type check](https://gitlab.com/gitlab-org/gitlab/-/commit/abae316f7bcefaa01afce3bfdf55e6bbff9bf337) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157856))
|
||||
- [Upgrade graphql-client GEM](https://gitlab.com/gitlab-org/gitlab/-/commit/8ddbcd44cde498b7fb21bf29b550a4a0bc0a1c60) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157772))
|
||||
- [Fix Milestone collapsed sidebar, adjust some aspects of issue sidebar](https://gitlab.com/gitlab-org/gitlab/-/commit/947b0449ac1bc882b14c4ed90d3e82dcefc1ce42) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157676))
|
||||
- [Add safeguard for author](https://gitlab.com/gitlab-org/gitlab/-/commit/f63aa04e88334c28958abbfdda1157214cdec008) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157814)) **GitLab Enterprise Edition**
|
||||
- [Geo: Update the host to build the replication details links](https://gitlab.com/gitlab-org/gitlab/-/commit/9e244068428fa02253cac7edf0514f4338d6d562) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157671)) **GitLab Enterprise Edition**
|
||||
- [Add missing "Deploy Keys" breadcrumb item](https://gitlab.com/gitlab-org/gitlab/-/commit/fbe188dc81095116f8d7306e7abf10cc6968ff82) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157445))
|
||||
- [Allow viewing hook logs with admin_hook permission](https://gitlab.com/gitlab-org/gitlab/-/commit/4d52095187268809685043493e3b322fb437e22a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153806)) **GitLab Enterprise Edition**
|
||||
- [Recreate records when moving issues](https://gitlab.com/gitlab-org/gitlab/-/commit/d4b0a967100e83bd22392105f4a46f215fa8f880) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157332)) **GitLab Enterprise Edition**
|
||||
- [Authenticate agent requests using Gitlab-Agentk-Api-Request header](https://gitlab.com/gitlab-org/gitlab/-/commit/cdaca4495de42c17d34f7b06928e52d2f53d08ff) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157703))
|
||||
- [Fix Verification concurrency limit](https://gitlab.com/gitlab-org/gitlab/-/commit/58c8f5c0cfaffb54698df5f8bfabe8a05ce29924) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157553)) **GitLab Enterprise Edition**
|
||||
- [SSO enforcement for web activity should only apply to current_user](https://gitlab.com/gitlab-org/gitlab/-/commit/72c0ce28c980e39c825604fb1ee1f2c593f13ac8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156934)) **GitLab Enterprise Edition**
|
||||
- [Display the number of rules for a given branch only](https://gitlab.com/gitlab-org/gitlab/-/commit/6a4e41dda7ef955a29ef1d5b20b1b49cc3efbbe1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157292)) **GitLab Enterprise Edition**
|
||||
- [Fix sticky header badges shrinking](https://gitlab.com/gitlab-org/gitlab/-/commit/df2dfef866565edf5c05496548d2dd0321782c5b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157580))
|
||||
- [Fix DML not allowed error when creating views](https://gitlab.com/gitlab-org/gitlab/-/commit/c87295b3a65e6d95b9fb3b50917781347b877589) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156986))
|
||||
- [Use pajamas default left and right spacings on Roadmap page](https://gitlab.com/gitlab-org/gitlab/-/commit/cd64bfb1757fba9f5a5179ce3fe3f1f9a230060c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156550)) **GitLab Enterprise Edition**
|
||||
- [Fix orphaned work item parent links](https://gitlab.com/gitlab-org/gitlab/-/commit/811dafe0d4ace122674f20f364f552f6d473d809) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156657)) **GitLab Enterprise Edition**
|
||||
- [Add jwt for jira connect branches](https://gitlab.com/gitlab-org/gitlab/-/commit/dba8992cad989ff4717058a1c945db8a2b1f3d0a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/149377))
|
||||
- [Do not wrap flex parent of verified badge and commit copy button](https://gitlab.com/gitlab-org/gitlab/-/commit/db8a0c4c742223639196f18672b44a339dfe3b1f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156673))
|
||||
- [Protected packages: NPM push protection for deploy token](https://gitlab.com/gitlab-org/gitlab/-/commit/c6931921bb6dad26cad0c2868dab57744c4e9e84) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156610))
|
||||
- [Use universal_stylesheet_link_tag in app layout head haml](https://gitlab.com/gitlab-org/gitlab/-/commit/2b5f004d4e2a91f7b6f8ed611734e672afea37d4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157356))
|
||||
- [Improve error message when setting parent of a work item](https://gitlab.com/gitlab-org/gitlab/-/commit/b933e6349919b84a1f6f2571d175eabbf344bd08) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154557))
|
||||
- [Fix search bar accessibility issues](https://gitlab.com/gitlab-org/gitlab/-/commit/ad6f231039e87dd6c6096eccd2c33e0de39f1166) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155091))
|
||||
- [Allow to set "No one" level for branch protection defaults](https://gitlab.com/gitlab-org/gitlab/-/commit/097cfcc599122e4c43f022f51096ce38713077bf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157315))
|
||||
- [Fix MailRoom not loading in Omnibus](https://gitlab.com/gitlab-org/gitlab/-/commit/802a87d2fea4603d3eb4ac3848ae7c0a83cf14c3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157339))
|
||||
- [Change fixture order](https://gitlab.com/gitlab-org/gitlab/-/commit/2f51e7f4d1383039ebe0c9a391f9453897b9420a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157309))
|
||||
- [Don't trigger edit wiki shortcut when using search](https://gitlab.com/gitlab-org/gitlab/-/commit/0e2078fec2a8f2ad9e1adcd0be99fb96ec7f8e35) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157303))
|
||||
- [Include action in webhook test payloads](https://gitlab.com/gitlab-org/gitlab/-/commit/3eac576afdfc3a72e1c2750b9640bbcef390a1cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156856))
|
||||
- [Fix issue using multiple contact quick actions at the same time](https://gitlab.com/gitlab-org/gitlab/-/commit/6965459cba26119b6c0909d6f026dfde6a985312) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157299))
|
||||
- [Correct finalize migration for BackfillEpicBasicFieldsToWorkItemRecord](https://gitlab.com/gitlab-org/gitlab/-/commit/44d3563325e6e58248b92dcdcba75dd114aa6c32) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157295))
|
||||
- [Remove extra gap when 0 roadmap epics have children](https://gitlab.com/gitlab-org/gitlab/-/commit/d2e4c436b848c40d75087a08a294c7752a9cf0b6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156694)) **GitLab Enterprise Edition**
|
||||
- [Fix finding name in regards to image name](https://gitlab.com/gitlab-org/gitlab/-/commit/6fc93a0fc23ce1b3b21630b7225997181a5c24e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157070)) **GitLab Enterprise Edition**
|
||||
- [Validate provided group parameters](https://gitlab.com/gitlab-org/gitlab/-/commit/97775beb0d5ebcd535758ee2d9033e4ecf7b1a87) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156977)) **GitLab Enterprise Edition**
|
||||
- [Vertically align group and project header](https://gitlab.com/gitlab-org/gitlab/-/commit/642efcacfc1806a09fae2dfcafb7ee3471b6af63) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157097))
|
||||
- [Fix undefined method error for invalid ref](https://gitlab.com/gitlab-org/gitlab/-/commit/34aed5beeb5dd85fb0236cf80635dfb6a082529a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157180))
|
||||
- [Fix NoMethodError for Files API](https://gitlab.com/gitlab-org/gitlab/-/commit/756ab645265f272b30afc340cc26427f5cd77dcf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157193))
|
||||
- [Do not show minimal access role as option](https://gitlab.com/gitlab-org/gitlab/-/commit/38f785705ef873e7b869f5f76a288f709ce21181) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156882))
|
||||
- [Include pagination values in request](https://gitlab.com/gitlab-org/gitlab/-/commit/d48821a5f2aff9acb63a7a8ca47c043fecfbfd1b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157158))
|
||||
- [DAST Scan library: Fix Tailwind classname](https://gitlab.com/gitlab-org/gitlab/-/commit/26a52654f5b5ab7530f6b52096e9b0d4db3787f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157170))
|
||||
- [Fix line number for larger numbers](https://gitlab.com/gitlab-org/gitlab/-/commit/6308ab66ca7ab4bb90d3659cc98e8cd58dc557be) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156820))
|
||||
- [Fix 500 on Changelog config](https://gitlab.com/gitlab-org/gitlab/-/commit/fbf5c11464a6a462542a3ee7e273dc8a846c7be1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156938))
|
||||
- [Fix spacing info popover icon on dependencies table](https://gitlab.com/gitlab-org/gitlab/-/commit/64b8b263e68d19e57113c708da2250cc365e0588) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157148)) **GitLab Enterprise Edition**
|
||||
- [Revert "Merge branch '430915-enhance-permission-selector' into 'master'"](https://gitlab.com/gitlab-org/gitlab/-/commit/642d945976e52049db6115742a57cce413a881c8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157142)) **GitLab Enterprise Edition**
|
||||
- [Do not show cluster image scanning vulnerabilities on development tab](https://gitlab.com/gitlab-org/gitlab/-/commit/08d6018da94e28bb4371be7974a486b5795848ca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157018)) **GitLab Enterprise Edition**
|
||||
- [Cap vulnerability report tab count if it exceeds cap count limit](https://gitlab.com/gitlab-org/gitlab/-/commit/f355e1e6b328ee9853ba646fe7f2d358515ddb20) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157116)) **GitLab Enterprise Edition**
|
||||
- [Enable the query workItemsByReference to accept a group path](https://gitlab.com/gitlab-org/gitlab/-/commit/1332f34e8f9acc5e3809e0ae8f7f7a2ea2ea9ca1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156881)) **GitLab Enterprise Edition**
|
||||
- [Improve work item query when sorting by updated_at](https://gitlab.com/gitlab-org/gitlab/-/commit/d0a53cb7cb857d799536aeb00e4d97b3c4ba09e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157075))
|
||||
- [Don't introduce Unicode null character while escaping it](https://gitlab.com/gitlab-org/gitlab/-/commit/cecc43e3618913788465fd9c9689fd6ee321ff32) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157060)) **GitLab Enterprise Edition**
|
||||
- [Fix related work item links syncing](https://gitlab.com/gitlab-org/gitlab/-/commit/e111fd6754d54c0c9946db008113ec83344d36a2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157045)) **GitLab Enterprise Edition**
|
||||
- [Fix extra blank space above drawer work item attributes sidebar](https://gitlab.com/gitlab-org/gitlab/-/commit/c44960893e0942a16034e7a194e2bb50407fb6cf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155156))
|
||||
- [Only enumerate commits in pre-receive check if push came from Web](https://gitlab.com/gitlab-org/gitlab/-/commit/ce85e857b4542999907b7826ce66e4daab26c59d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156965))
|
||||
- [Fix layout of issue list top area on small viewports](https://gitlab.com/gitlab-org/gitlab/-/commit/24bcaba38df863e2a6ab609655f97e08b46a3f61) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156972))
|
||||
- [Fix the workItemType to be valid](https://gitlab.com/gitlab-org/gitlab/-/commit/0662cbfcbabbf54a1f4f65435f1919474460dce9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156879))
|
||||
- [Ensure all analytics breadcrumbs display](https://gitlab.com/gitlab-org/gitlab/-/commit/8917292f05cc9f9edeabba64d382491360c76dca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156454)) **GitLab Enterprise Edition**
|
||||
- [Fix missing forked_from_project in projects API for unauth users](https://gitlab.com/gitlab-org/gitlab/-/commit/ebc53851c0b9e0d627eb84a628612e79480ddf85) by @_ZN3val ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154289))
|
||||
- [Fixes notebook markdown failing to render](https://gitlab.com/gitlab-org/gitlab/-/commit/ae191bc941275d408475271473b03117167b6a2f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156908))
|
||||
- [Fixed Numpad enter key event](https://gitlab.com/gitlab-org/gitlab/-/commit/b855762ffefb354ce697c47c843ee9c776646824) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156636))
|
||||
- [Fix error message when adding confidential epic to public issue](https://gitlab.com/gitlab-org/gitlab/-/commit/95ede989758b6db216d0afe82c3189d6bfb5e5eb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152972)) **GitLab Enterprise Edition**
|
||||
- [Include empty groups in mentions autocomplete](https://gitlab.com/gitlab-org/gitlab/-/commit/38c719cc94eee2165cbae364c1a45780ed960866) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156795))
|
||||
- [Fix Bitbucket importer MR reviewers](https://gitlab.com/gitlab-org/gitlab/-/commit/dbc9b292da6686335baf1ce784840fb26ee008fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156383))
|
||||
- [Use widget presence check for rendering Hierarchy widget](https://gitlab.com/gitlab-org/gitlab/-/commit/f449e168011917d571fc018e7ed0c4c2bb79509f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156836)) **GitLab Enterprise Edition**
|
||||
- [Skip IP lookups in validating URLs on certain conditions](https://gitlab.com/gitlab-org/gitlab/-/commit/e8190bd3d0ad87b98f920f144e098a6a2e08cca0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156547))
|
||||
- [Add missing ResourceLinkEvent#synthetic_note_class](https://gitlab.com/gitlab-org/gitlab/-/commit/e55071ecfb409e1b7561c0b68f33b6eb90c0d317) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156204))
|
||||
- [Fix missing require_reauthentication_to_approve in API](https://gitlab.com/gitlab-org/gitlab/-/commit/a0a0f4a5900f5db22d3f2d9c68bf1423910742f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156554)) **GitLab Enterprise Edition**
|
||||
- [Fix Inactive Project Deletion reset deletion date](https://gitlab.com/gitlab-org/gitlab/-/commit/a5268a1b0b0991464c82aacda538c9054612516e) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156036))
|
||||
- [Remove the `deduplicate_security_report_ingestion_jobs` FF](https://gitlab.com/gitlab-org/gitlab/-/commit/e5c3e03ae4c6cd916fce92d1d06bbd9317ed42fd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156374)) **GitLab Enterprise Edition**
|
||||
- [Apply `gl-break-word` to test file name in Pipeline test suite detail](https://gitlab.com/gitlab-org/gitlab/-/commit/da5605827e28ce50d88c3c3f7b59459a36ca1d0d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156668))
|
||||
- [Remove null bytes when importing diffs](https://gitlab.com/gitlab-org/gitlab/-/commit/c3a333d5d4995108be679b2a90762f55cd3b70a7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156659))
|
||||
- [Fix resolving namespace conflicts on creating internal user](https://gitlab.com/gitlab-org/gitlab/-/commit/46c2d55b45babf686012ab40077353bb319eb868) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156643))
|
||||
- [Fix redirect to docs.gitlab.com when no custom doc_url is configured](https://gitlab.com/gitlab-org/gitlab/-/commit/44e5d9c9cb3ece3351ca73514b0138011f15e25b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156642))
|
||||
- [Quarantine metrics_test_fetches_top_job_data](https://gitlab.com/gitlab-org/gitlab/-/commit/b6984b9f600cebee691c81aae8c3f7b798ac4db3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156606))
|
||||
- [Fix rename functionality using "Edit single file"](https://gitlab.com/gitlab-org/gitlab/-/commit/cd94fc7b67c1e46e4879c4f935ba2f74b3e798c0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156512))
|
||||
- [Resolve pagination issue](https://gitlab.com/gitlab-org/gitlab/-/commit/8bf5e49bd5c9d21ab9229505f4893d192d9e3718) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156391))
|
||||
- [Read more: Fix background color in darkmode](https://gitlab.com/gitlab-org/gitlab/-/commit/ab86f679430f905647da84f3cd026eea4fd40a6d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156483))
|
||||
- [Use LocalStorage for frequently used emoji](https://gitlab.com/gitlab-org/gitlab/-/commit/b464009dd1682e3946a94b2a504944fdb66b143c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156569))
|
||||
- [Fix alignment of commit in admin jobs page](https://gitlab.com/gitlab-org/gitlab/-/commit/d630ecb9c8fe9013fced4e2c0df5a4594f56e0a6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156565))
|
||||
- [Fix kubernetes tabs](https://gitlab.com/gitlab-org/gitlab/-/commit/33cf2695a8c4f0980fd11c556cf5766c9cd9b850) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156508))
|
||||
- [Skip conflict check when adding to merge train on pipeline success](https://gitlab.com/gitlab-org/gitlab/-/commit/ff44e19a433d6e2e00be36fd600b59ecf40f9d19) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156079)) **GitLab Enterprise Edition**
|
||||
|
||||
### Changed (231 changes)
|
||||
|
||||
- [Change schema for sbom_sources](https://gitlab.com/gitlab-org/gitlab/-/commit/f3b79455de4cc16d95579f0448e33be91ae72e89) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158597))
|
||||
- [Disables remaining prometheus integration endpoints](https://gitlab.com/gitlab-org/gitlab/-/commit/216e81eca14044b99eeb1bf5dca27dec3b8f3e8a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158356))
|
||||
- [Change format of iteration dates](https://gitlab.com/gitlab-org/gitlab/-/commit/b95bd4c7ae6032fffcd6f58f324c1daf00226402) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155894)) **GitLab Enterprise Edition**
|
||||
- [Use sentence case for security and compliance](https://gitlab.com/gitlab-org/gitlab/-/commit/02c120454f547a081a5e6482e81df0f3ab2bc761) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159260))
|
||||
- [Rename DAG feature to needs](https://gitlab.com/gitlab-org/gitlab/-/commit/805a9f5fb0237f935a7ac5da0917296d061c22a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157899))
|
||||
- [Clarifies error text for confidentiality](https://gitlab.com/gitlab-org/gitlab/-/commit/121f9773af11ff71f5272699bfae03bc3e203ad3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159024))
|
||||
- [Improve AI impact analytics dashboard trend indicator tooltips](https://gitlab.com/gitlab-org/gitlab/-/commit/7e0f21055af23dad7badfabc991a5b5c97ec30ec) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159128)) **GitLab Enterprise Edition**
|
||||
- [Update admin health check page UI](https://gitlab.com/gitlab-org/gitlab/-/commit/11a7b3adc2ed5928562c96b73a56ce9924cd0a78) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158355))
|
||||
- [Update scheduled_scans_max_concurrency for self-managed](https://gitlab.com/gitlab-org/gitlab/-/commit/67dd42dbe5df22c7fa7b2a68bb6d9f7901961032) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157828)) **GitLab Enterprise Edition**
|
||||
- [Defaulting Duo Chat to use Sonnet 3.5 and updating related documentation](https://gitlab.com/gitlab-org/gitlab/-/commit/9607104202f2614c09b189dc9678060ccee1906f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159248)) **GitLab Enterprise Edition**
|
||||
- [Cleanup telesign_high_risk_cc_validation feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/8c8d22d2462b3984cac418ba6b2c155e47a4f8ab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159279)) **GitLab Enterprise Edition**
|
||||
- [Updating LooseForeignKey cleaner service to not raise](https://gitlab.com/gitlab-org/gitlab/-/commit/c17516763c4ea1e8cee50b697f3f874f93877fb0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154185))
|
||||
- [Backfill zoekt replicas on zoekt indices](https://gitlab.com/gitlab-org/gitlab/-/commit/11a0e166b214ca057de5b47d58ff57efefe59507) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157849))
|
||||
- [Use sentence case for Admin area](https://gitlab.com/gitlab-org/gitlab/-/commit/f7dd3d965a91736f4b8ca7edd8d3a1c227f860d3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158935))
|
||||
- [Use group organization for import user personal namespace](https://gitlab.com/gitlab-org/gitlab/-/commit/ee2aa8f23885690452627c428ba162d7d648d351) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159222))
|
||||
- [Update background jobs header](https://gitlab.com/gitlab-org/gitlab/-/commit/9f3f0235736b4fe1121e5f098ec489d3fecdf3e7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158983))
|
||||
- [Remove pages from navigation when disabled in settings](https://gitlab.com/gitlab-org/gitlab/-/commit/c81e6fbd69ba5f5532e0b54f3dc716ec96e0f6d9) by @Taucher2003 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158488))
|
||||
- [Remove view summary experiment label](https://gitlab.com/gitlab-org/gitlab/-/commit/09bdb4dcd7d7ed97b5a2f518426e81795a5c3e37) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159139)) **GitLab Enterprise Edition**
|
||||
- [This MR adds new option for group dropdown](https://gitlab.com/gitlab-org/gitlab/-/commit/65b61d7c3b887c1f1b9d5de95c1f547b48b829ef) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158080)) **GitLab Enterprise Edition**
|
||||
- [Migrate os sbom occurrences to correct components](https://gitlab.com/gitlab-org/gitlab/-/commit/6015871347123c24c1566e4c0165af887d256675) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152585))
|
||||
- [Use monospace font for code inputs in Pages setup](https://gitlab.com/gitlab-org/gitlab/-/commit/26a838eeb8563805216faf1ac983d4aa2f0b996f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158673))
|
||||
- [Add or text between conditions sections for scan result policy](https://gitlab.com/gitlab-org/gitlab/-/commit/dbf35f870009a38f88b5fa2fb5e3092d6edcdb0e) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158508)) **GitLab Enterprise Edition**
|
||||
- [Move CI lint button](https://gitlab.com/gitlab-org/gitlab/-/commit/8063ab8e34e1c569dee7c828144ac9b407ff057a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158827))
|
||||
- [Separate terminated workspaces into a new tabbed list view](https://gitlab.com/gitlab-org/gitlab/-/commit/9557c80c736627e0fb28a3dbc078a94f6eb3e429) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153322)) **GitLab Enterprise Edition**
|
||||
- [Summarize issues using Anthropic](https://gitlab.com/gitlab-org/gitlab/-/commit/2885c45ff2feb15c7333342dd0548fdd31a59dd3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159133))
|
||||
- [Add details to client-side secret detection warnings](https://gitlab.com/gitlab-org/gitlab/-/commit/908d14efd49f636e1fc6a3163dd77d3765e69149) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156503))
|
||||
- [Enforce job uniqueness with pipeline execution policies](https://gitlab.com/gitlab-org/gitlab/-/commit/382207a516c91312c9b481f3cf4e17c1e55a3016) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158949)) **GitLab Enterprise Edition**
|
||||
- [Use sentence case for audit events](https://gitlab.com/gitlab-org/gitlab/-/commit/4231b823a9c173089c4257384e053ad8aeafb09f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158996))
|
||||
- [Renames TanukiBot to GenerateEmbeddingsCompletionsService](https://gitlab.com/gitlab-org/gitlab/-/commit/77db17e1db5c7d3c2d99abf8aba67137d8c633ab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158209)) **GitLab Enterprise Edition**
|
||||
- [Merge notes unification FF under more generic unification FF](https://gitlab.com/gitlab-org/gitlab/-/commit/270a0d9df6d76d86ad4ef7ea2ad6f46754d12bc1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158764))
|
||||
- [Author admin permissions for PersonalSnippet notes](https://gitlab.com/gitlab-org/gitlab/-/commit/e78544866cec31950d38ba39b540335eca466a30) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158715))
|
||||
- [Merge Request auto close issues now checked on merge](https://gitlab.com/gitlab-org/gitlab/-/commit/22905c5f0808e2b20ecb9d0daadc4cf8227a63be) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158395))
|
||||
- [Verify replicable after create/update](https://gitlab.com/gitlab-org/gitlab/-/commit/358f6dae5e65de9194b313dd5458faadc3bafef3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157697)) **GitLab Enterprise Edition**
|
||||
- [Add Notify mutation to resend email](https://gitlab.com/gitlab-org/gitlab/-/commit/2b510a42398afbf069c7fe4b4245e80b49f7bf73) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159073))
|
||||
- [feat: Decompose sbom_source_packages from sbom_occurrences](https://gitlab.com/gitlab-org/gitlab/-/commit/b90f4b6e36209c7aa009ecdf5fb916f3518fc02c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158143)) **GitLab Enterprise Edition**
|
||||
- [Use Duo for summarize comments](https://gitlab.com/gitlab-org/gitlab/-/commit/49499622ba1f4dd3231bff134a329e4c85bf4201) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156650))
|
||||
- [GraphQL: Rename CiRunnerJobExecutionStatus RUNNING to ACTIVE](https://gitlab.com/gitlab-org/gitlab/-/commit/b27d0d92dce5dd10d2986b666c6cd46e4662880e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159002))
|
||||
- [Update health check page](https://gitlab.com/gitlab-org/gitlab/-/commit/35b777c4e28d6c5e6cb2dc1aaeaf8a01686237e2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158986))
|
||||
- [Update usage trends feature to sentence case](https://gitlab.com/gitlab-org/gitlab/-/commit/c4ea05a622c8d3d21e99bd25eb5b49f15c2e00cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158979))
|
||||
- [Use sentence case for background migrations](https://gitlab.com/gitlab-org/gitlab/-/commit/d4a6eea7c63e694cb3b25f22f1156c9062f44614) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158981))
|
||||
- [Used new process to gen gitleaks.toml](https://gitlab.com/gitlab-org/gitlab/-/commit/bc1ca822c2d863df8935121782ce15863f759ade) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158259))
|
||||
- [Merge labels unification FF under more generic unification FF](https://gitlab.com/gitlab-org/gitlab/-/commit/ca57ef643232626642582c2051cc5bdab533049e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158643))
|
||||
- [Show selected work item labels at top of the list](https://gitlab.com/gitlab-org/gitlab/-/commit/02b81f94c42213d9d9b21ec10be89cc43d558c3d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158005))
|
||||
- [Migrate groups dashboard to filtered search and sort](https://gitlab.com/gitlab-org/gitlab/-/commit/a46b96c154fb88eb533cf9f59fe44a8ed974f0cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157667))
|
||||
- [Use Active badge instead of Running badge in runners list](https://gitlab.com/gitlab-org/gitlab/-/commit/12fbcaa099cb483fc19b8338ee3303b2e6e949dc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157935))
|
||||
- [Update admin background jobs page](https://gitlab.com/gitlab-org/gitlab/-/commit/653a55a2906304bd647a25a75d0dcdb414d070d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158351))
|
||||
- [Add license type to overview](https://gitlab.com/gitlab-org/gitlab/-/commit/228878e85b2515faf21c2d188a2db31118d60860) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158245)) **GitLab Enterprise Edition**
|
||||
- [Update dependency ai-gateway to v1.10.0](https://gitlab.com/gitlab-org/gitlab/-/commit/72ad1b5a449a65297b73e45666960010926f78c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158590))
|
||||
- [Add title and subtitle on the standalone GitLab Duo settings page](https://gitlab.com/gitlab-org/gitlab/-/commit/7229273fd5694916aad10cd94512564efa90ce2f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158482)) **GitLab Enterprise Edition**
|
||||
- [Exclude archived projects from dependency list search filter](https://gitlab.com/gitlab-org/gitlab/-/commit/504cbe3f2d1627e270d63b643e476dfbd0d28bf6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158799)) **GitLab Enterprise Edition**
|
||||
- [Hide Service Desk from navigation if disabled in settings](https://gitlab.com/gitlab-org/gitlab/-/commit/b93b46a577c2bc952a0dfabbb824d33d0b6dcf40) by @Taucher2003 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158483))
|
||||
- [Remove Gitlab.com check for last_published_at](https://gitlab.com/gitlab-org/gitlab/-/commit/73a027be56a2f1c12b10dd1cd29e60f00fa9c82f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156423))
|
||||
- [Always allow license sorting for group dependency list](https://gitlab.com/gitlab-org/gitlab/-/commit/5271ec0ec5c4faf627cbd36c4ac2437c5e239758) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158684)) **GitLab Enterprise Edition**
|
||||
- [Update spam logs UI](https://gitlab.com/gitlab-org/gitlab/-/commit/1ab4f62f1cd09b8c88a64a738a7a0bdf02a41085) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156950))
|
||||
- [feat: Add doorkeeper device auth support](https://gitlab.com/gitlab-org/gitlab/-/commit/b33cfbc4d56c1ae808949012dc1dc791b6467080) by @johnwparent ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155622))
|
||||
- [Explain quick actions inline in RTE](https://gitlab.com/gitlab-org/gitlab/-/commit/c4fcb325c334eaa81cd6b2952a34190b3fd1ad60) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158367))
|
||||
- [Add linked projects to framework](https://gitlab.com/gitlab-org/gitlab/-/commit/be668ec4482846931c6da8d3a6de058c292e169c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158403)) **GitLab Enterprise Edition**
|
||||
- [Enable submit button by default](https://gitlab.com/gitlab-org/gitlab/-/commit/dedda453d11fcf5590723c3dc5dbb684c8a7f6b9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158249)) **GitLab Enterprise Edition**
|
||||
- [AI impact analytics dashboard: Add tooltip when there is no % change](https://gitlab.com/gitlab-org/gitlab/-/commit/f3447df4b029a9fdb443c409326a62ec8d0e6e48) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158376)) **GitLab Enterprise Edition**
|
||||
- [Remove search_merge_request_query_builder FF](https://gitlab.com/gitlab-org/gitlab/-/commit/f3326fa520bfff0751a1821f3c70277e50b1946d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158135)) **GitLab Enterprise Edition**
|
||||
- [Move merge request files now shown warning to diff panel](https://gitlab.com/gitlab-org/gitlab/-/commit/39f82a3a72ddd33f9f2be15342588f5266d66994) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157597))
|
||||
- [Notify Admin re: the hierarchy limits in displaying Group(s) statistics](https://gitlab.com/gitlab-org/gitlab/-/commit/47cea8c39958630931cfa294b280eb433cafa64b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155554))
|
||||
- [Allow filtering Resource Access Tokens by state in the REST API](https://gitlab.com/gitlab-org/gitlab/-/commit/c78720efd9285328a5a653820ed3509a0b29e41b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158155))
|
||||
- [Add `seats_in_use` to GitlabSubscriptionHistory trarcked attributes](https://gitlab.com/gitlab-org/gitlab/-/commit/a2b3e7bdd7123e46836c4df94efcfcfe84151e07) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157311)) **GitLab Enterprise Edition**
|
||||
- [Sets elaticsearch_issue_upsert flag as default enabled](https://gitlab.com/gitlab-org/gitlab/-/commit/9b81c92337a7d933b221f2a9b253ec6633834b34) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158194)) **GitLab Enterprise Edition**
|
||||
- [Add placeholder data to member tabs](https://gitlab.com/gitlab-org/gitlab/-/commit/6b4f5fae5a564da827b00f47c4de69be52ae1248) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158569))
|
||||
- [Prohibit "default" as compliance framework name](https://gitlab.com/gitlab-org/gitlab/-/commit/9828c418eb60a7fb5a79e46de4dee70b80bd3099) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/149548)) **GitLab Enterprise Edition**
|
||||
- [Backfilling null project_id for p_ci_builds](https://gitlab.com/gitlab-org/gitlab/-/commit/bb06971eb127222b320b8950583c136fc8fe77f7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158480))
|
||||
- [Switch deployment approvals group view to Vue](https://gitlab.com/gitlab-org/gitlab/-/commit/402b8f34d28c6481031de9121c4a1ed00c60d952) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158052)) **GitLab Enterprise Edition**
|
||||
- [Update protected environments to handle group view](https://gitlab.com/gitlab-org/gitlab/-/commit/52452c34b9d2073acdc982461b3c5873d99ffa19) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157686)) **GitLab Enterprise Edition**
|
||||
- [Add trial and update users_over_license_count in CurrentLicenseType](https://gitlab.com/gitlab-org/gitlab/-/commit/a576f08847f6b2db61cfc18c66f66281c1b45c9f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155473)) **GitLab Enterprise Edition**
|
||||
- [List selector component for groups can fetch project only groups](https://gitlab.com/gitlab-org/gitlab/-/commit/18b39712043b895b1b980a681c355c2fc899ff36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158253)) **GitLab Enterprise Edition**
|
||||
- [Update admin credentials page](https://gitlab.com/gitlab-org/gitlab/-/commit/b3b59e785ea9a6f389cfe121e0d2a93cdb0d0ab6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158451))
|
||||
- [Update Tools Injector Image, PAT scope with additional ENV](https://gitlab.com/gitlab-org/gitlab/-/commit/228a9ccdab705a96e7513fb8f049e455dcdf07f7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156714))
|
||||
- [Update Cloud Connector architecture docs](https://gitlab.com/gitlab-org/gitlab/-/commit/16dddfacbef791ac45712e3a10ad543b2ea21349) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157911)) **GitLab Enterprise Edition**
|
||||
- [Update admin background migrations](https://gitlab.com/gitlab-org/gitlab/-/commit/618e7c72b88d42275ae53b5dba5e05deccf67ece) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158349))
|
||||
- [Clarify CI Job Token wording](https://gitlab.com/gitlab-org/gitlab/-/commit/cc67e266a9502e95f1b0cd7dbf3f9741362e9332) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156989))
|
||||
- [Adds info alert about cleanup policy regexp anchors](https://gitlab.com/gitlab-org/gitlab/-/commit/597e1c2d15f0e533f431a5c7eaf815dc06016f0d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157888))
|
||||
- [Remove unicode_escaped_blob feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/b97da58a57d56c8116b342ae1959be8afb825597) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158370))
|
||||
- [Update admin topic page](https://gitlab.com/gitlab-org/gitlab/-/commit/3a6f47bc121c454f6d0b778790b1eef7e93b177e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157848))
|
||||
- [Added Promotion Management for CreatorService](https://gitlab.com/gitlab-org/gitlab/-/commit/326329a5d856609a1f9e97aec9caa363af67f209) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156891)) **GitLab Enterprise Edition**
|
||||
- [Allow access token access to usage_data API](https://gitlab.com/gitlab-org/gitlab/-/commit/4bcea84dfecd37e25c532c53bb571ed5634255ea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158085))
|
||||
- [Default cube analytics queries to the last 7 days](https://gitlab.com/gitlab-org/gitlab/-/commit/ff012ea2897764f741c1dc268daf13f61f86e45c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158206)) **GitLab Enterprise Edition**
|
||||
- [Refactors QueueExistingMemberService](https://gitlab.com/gitlab-org/gitlab/-/commit/61f33606c8661f1cd64c27d8bbd5d0c539941de7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156801)) **GitLab Enterprise Edition**
|
||||
- [Enable custom dashboards by default on projects](https://gitlab.com/gitlab-org/gitlab/-/commit/80138e0b971eda439ad9f9a38197f7d74c8b6884) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157917)) **GitLab Enterprise Edition**
|
||||
- [Fixing target_table_name for build_name foreign key](https://gitlab.com/gitlab-org/gitlab/-/commit/e77f8bc31e151f1180045bcf88f21126062a36a4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158300))
|
||||
- [Make filter based visualization designer generally available](https://gitlab.com/gitlab-org/gitlab/-/commit/698ef8c44436233ddfa77335ebbdf4291ceb7283) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158072)) **GitLab Enterprise Edition**
|
||||
- [Ignore `confidence` column on Security::Finding](https://gitlab.com/gitlab-org/gitlab/-/commit/4003634ceb0ed0e4301adb861d0249478559689a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158035)) **GitLab Enterprise Edition**
|
||||
- [Remove DuoChat from Help center](https://gitlab.com/gitlab-org/gitlab/-/commit/db279dde3ea6c08a74a5bd0e66c42277af6b7452) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157759)) **GitLab Enterprise Edition**
|
||||
- [Remove wiki sidebar limit](https://gitlab.com/gitlab-org/gitlab/-/commit/6fe5c48e96617b5a201e2ce5bb7df0e8359f9f23) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158084))
|
||||
- [Improve token access add form](https://gitlab.com/gitlab-org/gitlab/-/commit/baabb747fcf91b4c303eb31fcbe372d61e3ac6e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151730))
|
||||
- [Move create repo position](https://gitlab.com/gitlab-org/gitlab/-/commit/1178913de16f344a5486106377b31f70dd3ebe22) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157707))
|
||||
- [Fix CI icons shape](https://gitlab.com/gitlab-org/gitlab/-/commit/4b3a40e406c3138882bb52c6d880b21a90271524) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158204))
|
||||
- [Support expanding references for work items](https://gitlab.com/gitlab-org/gitlab/-/commit/603ece973f525e7609f42e6f84304fc69b36089d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157963))
|
||||
- [Align the visual presentation of the action between groups and projects](https://gitlab.com/gitlab-org/gitlab/-/commit/08c107ecde68b41339eb711c2b7d0a610904b376) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157727)) **GitLab Enterprise Edition**
|
||||
- [Update admin project layout](https://gitlab.com/gitlab-org/gitlab/-/commit/e76d5ba332f8599570560c66fb7c854d23eaf5ec) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157529))
|
||||
- [Align admin users account content](https://gitlab.com/gitlab-org/gitlab/-/commit/e33210ac0324bffa770e5a573d6472ce0e9d8a76) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158067))
|
||||
- [Clean up signup_intent_step_one experiment](https://gitlab.com/gitlab-org/gitlab/-/commit/78d7591000f0ab105df35017e0a7c608633751d2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157181)) **GitLab Enterprise Edition**
|
||||
- [Show wiki sidebar on a 404 page](https://gitlab.com/gitlab-org/gitlab/-/commit/164db2e91935ac1469f42e1a6597e28408900217) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158088))
|
||||
- [This MR adds validation for policy action](https://gitlab.com/gitlab-org/gitlab/-/commit/f14353e720e45e59f698309cb8a9c885b53ccac1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156528)) **GitLab Enterprise Edition**
|
||||
- [Update welcome screen](https://gitlab.com/gitlab-org/gitlab/-/commit/aa1f14c90596e595426c7c841041156fcc5ab47e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156514))
|
||||
- [Update users page for admin view](https://gitlab.com/gitlab-org/gitlab/-/commit/f55b68653c9c39e9c172e1ea069f637507977ad8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157314))
|
||||
- [Update concurrency_limit for CreatePipelineWorker](https://gitlab.com/gitlab-org/gitlab/-/commit/169acd04ead7833127f0340dc3330d0de65704f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158075)) **GitLab Enterprise Edition**
|
||||
- [Added Finder, and correponding scope](https://gitlab.com/gitlab-org/gitlab/-/commit/7269bbba6850f4e791eebc969853b7fe669f1401) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154555)) **GitLab Enterprise Edition**
|
||||
- [Zoekt: Add ctags support](https://gitlab.com/gitlab-org/gitlab/-/commit/fa8d2e1db1ccdc39b6de6b5f1955ae29e7eef992) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158049)) **GitLab Enterprise Edition**
|
||||
- [Remove creating framework at sub-group level](https://gitlab.com/gitlab-org/gitlab/-/commit/cde82e647ab065dd61fbc8c8e67aa9e42a89e0a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157868)) **GitLab Enterprise Edition**
|
||||
- [Add NOT NULL constraint for `remote_mirrors.project_id`](https://gitlab.com/gitlab-org/gitlab/-/commit/19daf7b6c5386dc282490f9240708d64ef778e76) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153959))
|
||||
- [Add `taskCompletionStatus` to the work item UI](https://gitlab.com/gitlab-org/gitlab/-/commit/22a7a948a5a87db3440efee764734ab8674daddf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156589))
|
||||
- [Update semver_dialects gem version](https://gitlab.com/gitlab-org/gitlab/-/commit/9cfb70e0df3503e4d3d83faa343ffb647ae5503f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157521))
|
||||
- [Default enable FF group_level_vulnerability_report_grouping](https://gitlab.com/gitlab-org/gitlab/-/commit/3f5973054c408d9abe137cf150d54d43985f72d0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157949))
|
||||
- [Update abuse reports list view](https://gitlab.com/gitlab-org/gitlab/-/commit/3a15b7fa01bb2baaaffcfc735b81f2c3c7991ee1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157681))
|
||||
- [Use SettingsBlockComponent for admin push rules](https://gitlab.com/gitlab-org/gitlab/-/commit/a79bec61becdd9d306e9ec835cd690b050226a11) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157611))
|
||||
- [Sync epic work items to legacy epic by default](https://gitlab.com/gitlab-org/gitlab/-/commit/f2c68d054ae098cf54d37421f0952d838fad5ecd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157789)) **GitLab Enterprise Edition**
|
||||
- [Add organization_id to stage event hashes table](https://gitlab.com/gitlab-org/gitlab/-/commit/16494994cb8544388fd068b9b0396f3a63c8ac12) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156621))
|
||||
- [Admin groups: Improve display of content](https://gitlab.com/gitlab-org/gitlab/-/commit/8014ea9fcbd2232da04fcdf02f3e35c6aedccf98) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157420)) **GitLab Enterprise Edition**
|
||||
- [Update PMG architecture blueprint](https://gitlab.com/gitlab-org/gitlab/-/commit/d782d03cb892334bd1e7142ac1569d4c98b14a16) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157806))
|
||||
- [Fix required approvers validation](https://gitlab.com/gitlab-org/gitlab/-/commit/388f43277c5f82ea00a37ee2e155a8154c1490f6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157777)) **GitLab Enterprise Edition**
|
||||
- [Update graphiql-rails gem](https://gitlab.com/gitlab-org/gitlab/-/commit/313046daf347a0455ca7eab430fcb3b8b5d08af3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135010))
|
||||
- [Modified UX of command palette](https://gitlab.com/gitlab-org/gitlab/-/commit/4c2f759439605e210980ef1816b756bd2f7e2d08) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157015))
|
||||
- [Admin settings: Migrate network settings to SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/4a7b408efa1375c8d5196b288d2d323c4579f835) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157051))
|
||||
- [Migrate oauth applications to use CRUD container](https://gitlab.com/gitlab-org/gitlab/-/commit/b5348d678230f1201ec50b71077e939b0e3411fa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156903))
|
||||
- [Migrate broadcast messages page](https://gitlab.com/gitlab-org/gitlab/-/commit/093159d629902435e92561d9bcceb5771ca4576c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156895))
|
||||
- [Remove the data preview option from the visualization desinger](https://gitlab.com/gitlab-org/gitlab/-/commit/644d80d912d522194ede40687430430008e9b24f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157744)) **GitLab Enterprise Edition**
|
||||
- [Update dependency ai-gateway to v1.8.0](https://gitlab.com/gitlab-org/gitlab/-/commit/9fbdaef10c2324ea2453e2f87be57f1cde0f06a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157736))
|
||||
- [Extract SSoT for pipeline sources for which SEP should be enforced](https://gitlab.com/gitlab-org/gitlab/-/commit/c716fd84ceb2db0556918e14dfbe63911d0fec08) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157588)) **GitLab Enterprise Edition**
|
||||
- [Move Mermaid too large alert to the beginning](https://gitlab.com/gitlab-org/gitlab/-/commit/2c21c66ee910b4e07e8a978a0b06609dcfc9564d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157735))
|
||||
- [Update bulk create service for custom software licenses](https://gitlab.com/gitlab-org/gitlab/-/commit/31025b8cb969cc45ce7f11c1b1b75d714b1c770e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155588)) **GitLab Enterprise Edition**
|
||||
- [Raising error in mutation when more than 1 frameowrks for project](https://gitlab.com/gitlab-org/gitlab/-/commit/cdad457636d8d7ad0de5ed065ac0fb4efa1460fb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155854)) **GitLab Enterprise Edition**
|
||||
- [Update vendor/spdx.json to v3.24](https://gitlab.com/gitlab-org/gitlab/-/commit/74af77ec2263d9ff12164933cae35c086d40aaf1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157653))
|
||||
- [Add search_type param to SearchService](https://gitlab.com/gitlab-org/gitlab/-/commit/065d10f065ed76394a7e0f17ae8d4c7605911d90) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157022))
|
||||
- [Update wording for pipeline deprecation banner](https://gitlab.com/gitlab-org/gitlab/-/commit/d89e8c6510b3fef6c3404374e29357d542181e95) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157595)) **GitLab Enterprise Edition**
|
||||
- [Route resolve vulnerability through the Anthropic client](https://gitlab.com/gitlab-org/gitlab/-/commit/854029222599e6288722b294811274872738796a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156671)) **GitLab Enterprise Edition**
|
||||
- [Add read_runners custom ability](https://gitlab.com/gitlab-org/gitlab/-/commit/a0f8c3098e87b8fa09bca3ca6838511a07efdd28) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156798)) **GitLab Enterprise Edition**
|
||||
- [Migrates deploy keys to use CRUD container](https://gitlab.com/gitlab-org/gitlab/-/commit/6652d0ef24c4eafd866011a267ba3eb2b35263e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156909))
|
||||
- [Allow blob window size to be specified](https://gitlab.com/gitlab-org/gitlab/-/commit/1b472b9a753771ec77bddc3e67cbf2aa7b9785a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157168))
|
||||
- [Remove ":" for drawer title: overwritten part](https://gitlab.com/gitlab-org/gitlab/-/commit/12a479b2f361049980afc7c4da9f01a77d23f11a) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157550)) **GitLab Enterprise Edition**
|
||||
- [Adds snowplow form error events](https://gitlab.com/gitlab-org/gitlab/-/commit/2546c6284592d4649a6e66f84603f0969e63a9a2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157543)) **GitLab Enterprise Edition**
|
||||
- [Adjust layout of iteration report issues table](https://gitlab.com/gitlab-org/gitlab/-/commit/0028e3fc79a7bfeb4c62be91c25261327bcd54c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157377)) **GitLab Enterprise Edition**
|
||||
- [Remove "+" icon and add word "new" to button](https://gitlab.com/gitlab-org/gitlab/-/commit/e01d8f7eaac2dddfa4cf5a3a94028d122a1d7dd9) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157394)) **GitLab Enterprise Edition**
|
||||
- [Update admin groups layout](https://gitlab.com/gitlab-org/gitlab/-/commit/a1af6477a95333aaf63f46a4a884e8b7840df809) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157201))
|
||||
- [Add support for parsing CI log timestamps](https://gitlab.com/gitlab-org/gitlab/-/commit/76f92b62bbb4c378212372cec41c7704039c7164) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155695))
|
||||
- [Reduce the amount of variants for GitLab UI badges](https://gitlab.com/gitlab-org/gitlab/-/commit/499a179102694e0ac7c2e1a7d45a207641dbd151) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156880))
|
||||
- [Duo Chat cancel button integration](https://gitlab.com/gitlab-org/gitlab/-/commit/3f12dc8a3d330d357d5e142b25c53457f8b694ed) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156880)) **GitLab Enterprise Edition**
|
||||
- [Remove "scan" word from execution variable](https://gitlab.com/gitlab-org/gitlab/-/commit/e2026f16ed7890dd76181d805b71fd29878e3718) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156415)) **GitLab Enterprise Edition**
|
||||
- [Update admin product analytics settings](https://gitlab.com/gitlab-org/gitlab/-/commit/d713b19f316db1a69a9a49aa4e8c2ea32380fb7e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157088))
|
||||
- [Allow assigning compliance frameworks at sub-group level](https://gitlab.com/gitlab-org/gitlab/-/commit/08c7ab96dc50691819a0a98da0d9177dc2e595fb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157412)) **GitLab Enterprise Edition**
|
||||
- [Migrate CI/CD Variables settings to CRUD container](https://gitlab.com/gitlab-org/gitlab/-/commit/caba42c7f858e66f859270803669c72672a8c3cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157276))
|
||||
- [Update admin license and compliance layout](https://gitlab.com/gitlab-org/gitlab/-/commit/384c5ef0f03a996bd73fb8dc887ae0a06d733d0f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157095))
|
||||
- [Remove drill-down link for code suggestions usage metric](https://gitlab.com/gitlab-org/gitlab/-/commit/8a9b34bb78361f818b4fd8ca6b91c1ad4fa12285) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156984)) **GitLab Enterprise Edition**
|
||||
- [Change History links to 'View import history' buttons](https://gitlab.com/gitlab-org/gitlab/-/commit/609af389f719a76b4c758ec5e0bf668088167961) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156373))
|
||||
- [Update tools injector image](https://gitlab.com/gitlab-org/gitlab/-/commit/8cb33746ed2a41060e51ab226309da5516be40ea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156918)) **GitLab Enterprise Edition**
|
||||
- [Admin labels: Migrate to use CRUD container](https://gitlab.com/gitlab-org/gitlab/-/commit/6fb5e3e24e9d2fce5978d1898c8a9455549ec2ca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156923))
|
||||
- [Admin settings: Migrate reporting section to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/ac82c7fdcb612e8ebbc5bb7704478bae7051a618) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157047))
|
||||
- [Admin settings: Migrates repository page to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/058017c2bfd57cecaaa34d031eaafb89ac92360c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157039))
|
||||
- [Admin settings: Migrate analytics section to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/a0c84238d13d5bd3eec550898a2084690ffef4b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157054))
|
||||
- [Admin settings: Migrate preferences to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/1443c2bef7c0598888ae3480cd95380f7d939517) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157053))
|
||||
- [Admin settings: Migrate metrics settings to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/af2e67d8ce93db82586ef8aac4ea088efda73aa2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157050))
|
||||
- [Admin settings: Migrate templates section to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/9ceddc16cd553a45aaecdc2c4399d6399f18e7d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157048))
|
||||
- [Admin settings: Migrate CI/CD settings to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/6ea284f56c218f06f6400c43cc434197c565ec6d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157040))
|
||||
- [Admin settings: Migrate settings blocks of general settings](https://gitlab.com/gitlab-org/gitlab/-/commit/f73caead94a079d98b9c487b87e513a98240f24b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157033))
|
||||
- [Update GitLab Pages version](https://gitlab.com/gitlab-org/gitlab/-/commit/3c6a6b7270d07856a38dcef472640ece462b2337) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156723))
|
||||
- [Pipeline graph dropdowns: Use GlBadge for indicating jobs](https://gitlab.com/gitlab-org/gitlab/-/commit/cfcab231757af7fa07ccd5e23fd617140e1013c0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156160))
|
||||
- [Update projects page for admin view](https://gitlab.com/gitlab-org/gitlab/-/commit/30ee894176c4fc42b1c943a4a222a3f395c2bc00) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156790))
|
||||
- [Require user to solve Arkose challenge on every PN verification attempt](https://gitlab.com/gitlab-org/gitlab/-/commit/8d9db028c231f4dc594e78dd5ac35cc69701fcca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156865)) **GitLab Enterprise Edition**
|
||||
- [Migrates File Hooks to use CRUD Component](https://gitlab.com/gitlab-org/gitlab/-/commit/39b218efe1edae7ca6d05e28d39cf45840a16593) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156900))
|
||||
- [Admin settings: Migrate advanced search to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/25f6ce6fc714129beeb1d5c4070fbc35d16ce717) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157038))
|
||||
- [This MR updated approve layout](https://gitlab.com/gitlab-org/gitlab/-/commit/5d184548cc8224176f0764a9b0e32001b817418c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156628)) **GitLab Enterprise Edition**
|
||||
- [Conditionally handle AuthorizationsChangedEvent when policies exists](https://gitlab.com/gitlab-org/gitlab/-/commit/0b94a9895a58607246b47258cf641ae1d72240e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156775)) **GitLab Enterprise Edition**
|
||||
- [Add report_type to Approval Rules APIs](https://gitlab.com/gitlab-org/gitlab/-/commit/e67fbe0b7de9bc40c9de2c8218faba608b8ba592) by @PatrickRice ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155772)) **GitLab Enterprise Edition**
|
||||
- [Update locked application setting popover](https://gitlab.com/gitlab-org/gitlab/-/commit/48b93da24c1cf9c143e73a29bc5c6e2f5176c866) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156926))
|
||||
- [Enable assign resource v2 by default](https://gitlab.com/gitlab-org/gitlab/-/commit/3bdac40f8c0ebd77a7e4a14fcae063e45bcfb312) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157156))
|
||||
- [Update admin geo page](https://gitlab.com/gitlab-org/gitlab/-/commit/2008e21509833c30718c592e8798352493ae7cf8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157080))
|
||||
- [Refetch job list when an artifactless job remains](https://gitlab.com/gitlab-org/gitlab/-/commit/6e4e17193691300e40f99298bd5cf18221fc3bda) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127632))
|
||||
- [Add start trial CTA to duo pro usage tab](https://gitlab.com/gitlab-org/gitlab/-/commit/2149ae090f50d351e95b2d5d015af779b7c2ac8d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155902)) **GitLab Enterprise Edition**
|
||||
- [Provide consistent interface across scopes](https://gitlab.com/gitlab-org/gitlab/-/commit/3128f3d5f86b11b24d0d0cc7bf37a8de17c90281) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144067)) **GitLab Enterprise Edition**
|
||||
- [Update snippets empty state](https://gitlab.com/gitlab-org/gitlab/-/commit/637554379ce6e03928dada47d8260792bb4047f9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156785))
|
||||
- [Remove ignored `toggle_security_policies_policy_scope` setting](https://gitlab.com/gitlab-org/gitlab/-/commit/e105c938a7cd849decb95798ecdc0d044725cbd0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153266))
|
||||
- [Update naming of duo group settings](https://gitlab.com/gitlab-org/gitlab/-/commit/3a979af4ccba5da09b2d97bc5ccd90dd632d512f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157010))
|
||||
- [Add UserStarredProjectsResolver sort argument](https://gitlab.com/gitlab-org/gitlab/-/commit/077ca496eaadc0a9383a552ed32294233de2f7e7) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153651))
|
||||
- [Migrates gl-display-inline-flex to gl-inline-flex](https://gitlab.com/gitlab-org/gitlab/-/commit/3aa4f990bde82a9c6fb59d7c726a02bddc693cea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154887))
|
||||
- [Multiple frameworks labels](https://gitlab.com/gitlab-org/gitlab/-/commit/ca5a43e01aadde03cf32218f62f7e56eb5709f05) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156570)) **GitLab Enterprise Edition**
|
||||
- [Add permissions checking to AI impact dashboard](https://gitlab.com/gitlab-org/gitlab/-/commit/23bf0938f52424ec382ba745b57375234b769949) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156555)) **GitLab Enterprise Edition**
|
||||
- [Admin settings: Migrate security settings to use SettingsBlock](https://gitlab.com/gitlab-org/gitlab/-/commit/467df2db45835010a9b4210982fe662f2f30e8b4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157043))
|
||||
- [Externalize strings on ldap_group_links](https://gitlab.com/gitlab-org/gitlab/-/commit/2fcc3e2fd12ea0c6813e7c88a1548c90cecf24e0) by @MAlvarez32 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155271))
|
||||
- [Improve usability of environment folders](https://gitlab.com/gitlab-org/gitlab/-/commit/076d3d3a212c3a93ec60863090c3a0fa185ecd05) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157104))
|
||||
- [Display capped results for large datasets](https://gitlab.com/gitlab-org/gitlab/-/commit/d1d8005ef78e12f960dcf5ddde6b9dcc2266087d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156026)) **GitLab Enterprise Edition**
|
||||
- [Update GitLab logo on deploy page](https://gitlab.com/gitlab-org/gitlab/-/commit/f3f6e87a1ef799024b4a9e76f88afe9f3cc384d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156261))
|
||||
- [Update groups page for admin view](https://gitlab.com/gitlab-org/gitlab/-/commit/64125d73f2485bdb6f2400e2db99df134975ce8e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156800))
|
||||
- [Update admin subscription page UI](https://gitlab.com/gitlab-org/gitlab/-/commit/0f48e27e338908ff0935c6024de2bbf8db037560) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156839)) **GitLab Enterprise Edition**
|
||||
- [Add placeholder actions to table](https://gitlab.com/gitlab-org/gitlab/-/commit/dd77d0d5f36c2cffba601a0544ea28727ee5b13a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156533))
|
||||
- [Update visualization type selection with validation state](https://gitlab.com/gitlab-org/gitlab/-/commit/f7e5cdd2aa4d7eabb99d4490976844d6a111e369) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156976)) **GitLab Enterprise Edition**
|
||||
- [User friendly date formatting in Container tags_list_row](https://gitlab.com/gitlab-org/gitlab/-/commit/8721191f9f5f3c314d84e28f5e25682abf3116b7) by @Saurabh-Daware ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156376))
|
||||
- [Remove extra space in board cards](https://gitlab.com/gitlab-org/gitlab/-/commit/49d00c28e62c0550838cb12734651b3f54788d42) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156113))
|
||||
- [Check deploy_key exists during ProtectedRefDeployKeyAccess#valid?](https://gitlab.com/gitlab-org/gitlab/-/commit/d9c9f033c8be3e9ee9e6ad3ca21f8f623f6f046d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155745))
|
||||
- [Implement AR validations for ProtectedRefAccess](https://gitlab.com/gitlab-org/gitlab/-/commit/849784e42d78d25aa83e9c83b787c98178cad254) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156002)) **GitLab Enterprise Edition**
|
||||
- [This MR updates yaml schema](https://gitlab.com/gitlab-org/gitlab/-/commit/154b2da8aefb489cae1d42cf3afd04a89138fa3d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156363)) **GitLab Enterprise Edition**
|
||||
- [Remove showcase_free_security_features experiment](https://gitlab.com/gitlab-org/gitlab/-/commit/e9eea5f2cff7648915c6bdec58af9ceae9a56e00) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156803)) **GitLab Enterprise Edition**
|
||||
- [Reverse make_synced_work_item_read_only FF check logic](https://gitlab.com/gitlab-org/gitlab/-/commit/1046966e152bed6adfbb147d248ce92ae8694472) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156648)) **GitLab Enterprise Edition**
|
||||
- [Renamed autocomplete scopes to use plural form](https://gitlab.com/gitlab-org/gitlab/-/commit/cb4d38de54c7cf1fd8bf3804a1e9675b5f379b9c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156492))
|
||||
- [Show dependency location count if `occurrenceCount` field is present](https://gitlab.com/gitlab-org/gitlab/-/commit/44bc09dbc7339fe9c056153808fa60660a6a3f84) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156557)) **GitLab Enterprise Edition**
|
||||
- [This MR removes loading state](https://gitlab.com/gitlab-org/gitlab/-/commit/e7880922f54023e32063fcf0e97ef1783497ce6e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156793)) **GitLab Enterprise Edition**
|
||||
- [Add concurrency_limit to AddApproversToRulesWorker](https://gitlab.com/gitlab-org/gitlab/-/commit/790ff68c27495f69be533660910df98909476b33) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156778)) **GitLab Enterprise Edition**
|
||||
- [Update gitaly servers page](https://gitlab.com/gitlab-org/gitlab/-/commit/db83949fb9ab1e1355cbc9648dd42ab8b014f123) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156536))
|
||||
- [Update trial terms](https://gitlab.com/gitlab-org/gitlab/-/commit/a6d5bc395710a1bf7c45ed4f95aad72937ba5a01) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156341))
|
||||
- [Enable zoekt_exact_search by default](https://gitlab.com/gitlab-org/gitlab/-/commit/741fb8a8dc06422f09a4c75c6146a311182f63b4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156748)) **GitLab Enterprise Edition**
|
||||
- [Remove ai_claude_3_for_docs feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/4935a53bca171971c5844a53544725a704bc073e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155281)) **GitLab Enterprise Edition**
|
||||
- [Increase max body limit for AI GW requests](https://gitlab.com/gitlab-org/gitlab/-/commit/fa2732f43cd308e3a178332a14223a05162aa8b4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156738)) **GitLab Enterprise Edition**
|
||||
- [Remove GCP WLIF setup script API endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/b637037095f224eee419ef8518db13d7a6704525) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156699)) **GitLab Enterprise Edition**
|
||||
- [Drop ci_job_artifacts_use_primary_to_authenticate feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/3157d57733edbeff16488d545e497d26503c0c0b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156697))
|
||||
- [This MR updates yaml schema](https://gitlab.com/gitlab-org/gitlab/-/commit/26ea84d39e87d36f0b0b97b7b1b6f85d79f9b1c2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156325)) **GitLab Enterprise Edition**
|
||||
- [Adds Zoekt::Replica](https://gitlab.com/gitlab-org/gitlab/-/commit/888775a1207cfeae18dafc62ceaf8ff1d9f2ba00) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155317))
|
||||
- [Update admin system info page](https://gitlab.com/gitlab-org/gitlab/-/commit/13f5c11eed8a8386b76c705105f88f6ea460b3a4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156567))
|
||||
- [Replace approval modal with link to approval page](https://gitlab.com/gitlab-org/gitlab/-/commit/9d00cfb79edfdbac48142147eb24694049813a3a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156656))
|
||||
- [This MR refactors multi select text](https://gitlab.com/gitlab-org/gitlab/-/commit/944cd45e0b61a39408b79b72f8766fe31f16c387) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156641)) **GitLab Enterprise Edition**
|
||||
- [This MR updated user approver dropdown](https://gitlab.com/gitlab-org/gitlab/-/commit/283832501708409b15b210c260749a04bfb8a7d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155611)) **GitLab Enterprise Edition**
|
||||
- [Remove :notify_owners_of_finished_dt FF](https://gitlab.com/gitlab-org/gitlab/-/commit/6f1cfc427a1ef7a22e5afce825bf545e9934cc47) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156633))
|
||||
- [Cleanup the duo_pro_trials feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/172f26857626b38e114792d8a6d0f425d934bc83) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156132)) **GitLab Enterprise Edition**
|
||||
- [Change unit primitive for text embeddings](https://gitlab.com/gitlab-org/gitlab/-/commit/e90f96b6b63e907bfb6ecec11e6351b1ed2682e7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155835)) **GitLab Enterprise Edition**
|
||||
- [Extend error-alert Vue component with buttons](https://gitlab.com/gitlab-org/gitlab/-/commit/4a97c359cc09a20e3764ed25001083b34eba0483) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156206)) **GitLab Enterprise Edition**
|
||||
- [Add external Stripe IDs to CreditCardValidation](https://gitlab.com/gitlab-org/gitlab/-/commit/7bc3183c75dab0616a6fe2431d9820eacbdcec76) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156505)) **GitLab Enterprise Edition**
|
||||
- [Improve compliance center for subgroups](https://gitlab.com/gitlab-org/gitlab/-/commit/d57d6295907736e3c4d99b22ee3a8c026b358c31) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156260)) **GitLab Enterprise Edition**
|
||||
- [Use static AWS credentials for indexer if set](https://gitlab.com/gitlab-org/gitlab/-/commit/14207a5ebee99111fc8696c2ee7d6925acbc2005) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155960)) **GitLab Enterprise Edition**
|
||||
- [Remove transaction opening for non-basic search count](https://gitlab.com/gitlab-org/gitlab/-/commit/dcf811f417b7910c7aaaf5ff1c08dd77e118bfa1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156321))
|
||||
- [Remove overflow:hidden from card component](https://gitlab.com/gitlab-org/gitlab/-/commit/8af3832ba271bbb766c2b0a19c8a1f2cd3ab892f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156548))
|
||||
- [Display usage quota tab during duo pro trial even group on free plan](https://gitlab.com/gitlab-org/gitlab/-/commit/5dbeb1485d4fd777104bf72cc87160d9f3a9f879) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155767)) **GitLab Enterprise Edition**
|
||||
- [Allow self-signed CC tokens in development](https://gitlab.com/gitlab-org/gitlab/-/commit/c7c60323dd09e415533b737d01c92548f375dc95) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156496)) **GitLab Enterprise Edition**
|
||||
- [Add NOT NULL constraint to ci_runner_namespaces.namespace_id](https://gitlab.com/gitlab-org/gitlab/-/commit/ba16f8e7548147c4b74867458e11efa361d09457) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156318))
|
||||
- [Add NOT NULL constraint to ci_runner_projects.project_id](https://gitlab.com/gitlab-org/gitlab/-/commit/412604bf443e427faf57497cb1858bd1d1f4fe92) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156314))
|
||||
- [Update create label UI in labels widget](https://gitlab.com/gitlab-org/gitlab/-/commit/920e418ac45df7b2d8b95f135f34b3a7b2d0fca4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156056))
|
||||
- [Change help link text copy](https://gitlab.com/gitlab-org/gitlab/-/commit/6e7ed1176ae2236ae74ffc6645645eeb084e4fbe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156029))
|
||||
- [Update dependency auto-build-image to v4.2.0](https://gitlab.com/gitlab-org/gitlab/-/commit/62133c84cd65559717213f735d36e9d92382689c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155945))
|
||||
|
||||
### Removed (22 changes)
|
||||
|
||||
- [Remove triggers and old columns for bigint p_ci_builds](https://gitlab.com/gitlab-org/gitlab/-/commit/944155c2596919d5d70ab5491116cd43f5a1bf93) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158711))
|
||||
- [Removes storage_size index on project statistics](https://gitlab.com/gitlab-org/gitlab/-/commit/6c685a9fb1b35e46d3e2f8354d25fc8f815773cc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158616))
|
||||
- [Remove MR review summaries table](https://gitlab.com/gitlab-org/gitlab/-/commit/0b13bb2a53ad6ec8320e1c71934401a818762713) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157572))
|
||||
- [Drop `index_vulnerability_occurrences_for_issue_links_migration`](https://gitlab.com/gitlab-org/gitlab/-/commit/518ad733fb27471edaf7fc15605a0bc9a2962135) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158736))
|
||||
- [Reverts 112527 as no longer required](https://gitlab.com/gitlab-org/gitlab/-/commit/3336394f92d8916175b7c4679d4bbf7de54dc300) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158609))
|
||||
- [Remove EnsureStageService and prep for removal of `stage`](https://gitlab.com/gitlab-org/gitlab/-/commit/f6aaabeff28e897d7f91aa5aed448e7b82f91160) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156892))
|
||||
- [Drop legacy geo_repositories_changed_events table](https://gitlab.com/gitlab-org/gitlab/-/commit/876d67fadd97b5124f4c54fd2988eaf873c05e53) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158660))
|
||||
- [Remove SafelyChangeColumnDefault include](https://gitlab.com/gitlab-org/gitlab/-/commit/37bf0d05bc6d949e59371706b5901429bb061e5b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154212))
|
||||
- [Remove `issues_mrs_empty_state` feature](https://gitlab.com/gitlab-org/gitlab/-/commit/e63ee4fb40f484ddc6c04876a3ec31c074b3b52c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156693)) **GitLab Enterprise Edition**
|
||||
- [Remove create_user_details_all_user_creation feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/7eeb9d74630925207a3699e6f6cc83fceb0b8e3c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157958))
|
||||
- [Remove the template auto fill AI feature](https://gitlab.com/gitlab-org/gitlab/-/commit/15db60a024c937a52036e64b78f5403320194f7e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156766))
|
||||
- [Removes project stats index on packages size](https://gitlab.com/gitlab-org/gitlab/-/commit/7feef107a4e051799be9f632f55a08265acf8ca3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156008))
|
||||
- [Chore: Remove the ai editor assistant feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/ae1fd20a598a2c4515ae3ad9f2b456831dd6cb3e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157837)) **GitLab Enterprise Edition**
|
||||
- [Removes storage size idx on project_statistics](https://gitlab.com/gitlab-org/gitlab/-/commit/8ff61ea7a5debf8979fe9fc7c87127b125b09c8b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156005))
|
||||
- [Drop unused DAST tables](https://gitlab.com/gitlab-org/gitlab/-/commit/c76555c4a9840b72384ecc428f4222cc107d8232) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153443)) **GitLab Enterprise Edition**
|
||||
- [Removes project stats index on wiki size](https://gitlab.com/gitlab-org/gitlab/-/commit/e6a2a5a4e31ae200530dc7434c90a3734db06b00) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156010))
|
||||
- [Remove track_ai_metrics_in_usage_data feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/d426fa2fe74208662ca3d8c0a3c93e24f9501743) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157196))
|
||||
- [Removes index on project_statistics async](https://gitlab.com/gitlab-org/gitlab/-/commit/12ffa83842508c0be03fef1842b17beb3bcdd074) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155999))
|
||||
- [Remove obsolete codeSuggestionsUsageRate field](https://gitlab.com/gitlab-org/gitlab/-/commit/19d17c281d9b76756b1dd86e7e2e149c89067d9f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156750)) **GitLab Enterprise Edition**
|
||||
- [Remove sep batching configuration](https://gitlab.com/gitlab-org/gitlab/-/commit/3030bb11d7535ca2950429fe573dedc0e09634b6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156835)) **GitLab Enterprise Edition**
|
||||
- [Removes temp index from project statistics](https://gitlab.com/gitlab-org/gitlab/-/commit/158acf6c0a54d5bb79530f7e43822e2bddaa89a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155997))
|
||||
- [Cleanup prominent_create_board_btn feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/43d17697e2b38cf7f8f0d23b7e1800f7d040d167) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156324))
|
||||
|
||||
### Security (23 changes)
|
||||
|
||||
- [Check npm package name, version and scripts coherence](https://gitlab.com/gitlab-org/gitlab/-/commit/14ce36e7045252dd74dc59a71a5acc348ceadf13)
|
||||
- [Disallow serving Pages over disabled custom domains with deployments](https://gitlab.com/gitlab-org/gitlab/-/commit/08a5faf3c92d34407a96b03d6a44c12db00ee1f2)
|
||||
- [Prevent privilege escalation via custom role](https://gitlab.com/gitlab-org/gitlab/-/commit/30cc4e834c300d18d4e30f052de18f999065ae85)
|
||||
- [Check if user has ban_group_member access before banning in namespace](https://gitlab.com/gitlab-org/gitlab/-/commit/81594e06ccef46c19dbb2b9e760d3422a9bdf4eb)
|
||||
- [Check for create_deploy_token policy before creating deploy token](https://gitlab.com/gitlab-org/gitlab/-/commit/38d7fcbde55100c6eb63a1c8babd379cb4d205a3)
|
||||
- [Prevent using quick actions for some bot users](https://gitlab.com/gitlab-org/gitlab/-/commit/a08eaa3dac0eb76fd4135eda412572f24fb28578)
|
||||
- [Disable raw HTML for quick action pipeline](https://gitlab.com/gitlab-org/gitlab/-/commit/049504cecf622189f69b14dbc8895e6f36af0af4)
|
||||
- [Disable quick actions unless description changed](https://gitlab.com/gitlab-org/gitlab/-/commit/3d20fd45ec2b24ff02a06eea0ef1558f522a211d)
|
||||
- [Remove comment support from shrug and tableflip](https://gitlab.com/gitlab-org/gitlab/-/commit/8cf683d6f1cea2ac3f0975bcf7d6e156f40a37ba)
|
||||
- [Pass SSO session data to Sidekiq](https://gitlab.com/gitlab-org/gitlab/-/commit/c7eabd8a76e035e439d27734310dd3d6c83bc2c0)
|
||||
- [Do not run a new pipeline on re-target](https://gitlab.com/gitlab-org/gitlab/-/commit/7db0608a8e0e76c3a697edf052a9e603367161b0)
|
||||
- [Remove search results from public projects with unauthorized repos](https://gitlab.com/gitlab-org/gitlab/-/commit/d38ed3d433f51060c7c7daa793ce9aaf14beb513)
|
||||
- [Reject deletion of security policy project approval rules](https://gitlab.com/gitlab-org/gitlab/-/commit/69d6113572c1515f46ddfb1990aa746ae123c518)
|
||||
- [Add limits on autolinker regex](https://gitlab.com/gitlab-org/gitlab/-/commit/74014108b6811c8ea40813e0981915115742a1d4)
|
||||
- [Fix for Private job artifacts can be accessed by any user](https://gitlab.com/gitlab-org/gitlab/-/commit/50bd3b7b0cdcedf7efdf3b8b1d8808a4e0aaab76)
|
||||
- [Prevent non-members from using promote_to quick action for quick actions](https://gitlab.com/gitlab-org/gitlab/-/commit/ff425064c3d22341d520fff8abf829a812c5c14f)
|
||||
- [Fix the catastrophic backtracking in openapi regex](https://gitlab.com/gitlab-org/gitlab/-/commit/faa5c6e04b47aa618ef2fdf7b1242272896d134c)
|
||||
- [Use permitted_params for standalone and multiplex queries](https://gitlab.com/gitlab-org/gitlab/-/commit/b5afa91ae27c8d9b11461ebeb03b25a230f5bc54)
|
||||
- [Fix clickjacking on OAuth application page](https://gitlab.com/gitlab-org/gitlab/-/commit/5073499734aa260dc96a6329ff913ae72a3e2e62)
|
||||
- [Remove collapseLongCommitList method](https://gitlab.com/gitlab-org/gitlab/-/commit/4c970a3095e06a3406bb0cbcc2286d637ee3128c)
|
||||
- [Security fixes for banzai pipeline](https://gitlab.com/gitlab-org/gitlab/-/commit/b32d3189758c48afc0621a806645cb20f83b9864)
|
||||
- [Hide branch merge request if merge requests are private](https://gitlab.com/gitlab-org/gitlab/-/commit/c376da8991401b8748048cc11e6bdbd61c253724)
|
||||
- [Mitigate ReDoS attacks via `method_call_regex`](https://gitlab.com/gitlab-org/gitlab/-/commit/ee4cac0f6ca99cbf90724d75d42a9e03137e5ddc)
|
||||
|
||||
### Performance (3 changes)
|
||||
|
||||
- [Parse affected ranges only once](https://gitlab.com/gitlab-org/gitlab/-/commit/e6867b4399e085f47f76d96501d1e5b72db6ee87) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158842))
|
||||
- [Adjust Bitbucket server importer to be resumable](https://gitlab.com/gitlab-org/gitlab/-/commit/47b0c08f41b8ed39c57959f8bb6523cfc213da6f) by @ivantedja ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156797))
|
||||
- [Remove group-level vulnerability report performance improvements FF](https://gitlab.com/gitlab-org/gitlab/-/commit/f4fb8398fbbc1d36811634c9fe5777c26cd80daa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157786)) **GitLab Enterprise Edition**
|
||||
|
||||
### Other (150 changes)
|
||||
|
||||
- [Finalize DeleteOrphansApprovalMergeRequestRules2](https://gitlab.com/gitlab-org/gitlab/-/commit/a92c8f39a61117bf3962689bce8fb77d3c846e76) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159017))
|
||||
- [Update display_work_item_epic_issue_sidebar to work_item_epics](https://gitlab.com/gitlab-org/gitlab/-/commit/2cbeed7a47a56f659f0defe1e99f90bdc5f5aa07) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158613)) **GitLab Enterprise Edition**
|
||||
- [Remove bitbucket_cloud_convert_mentions_to_users ff](https://gitlab.com/gitlab-org/gitlab/-/commit/368af21b0ecc97e0c5fb334724b7306bd8f33a20) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157957))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/e6f582894a15d68d96b1da99e1f8377d884a4f1d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159033))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/c51b47f0d371e8b75a74367d7ffa1099762eceab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158874))
|
||||
- [Remove filter_deleted_groups feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/8e97da759c8330158fa467313e414adb766f1f15) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159214))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/aae6917b0dcc8bafeaafe62a3ce96c420429c92f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159184))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/2df953b7f5176226d1301c0874786523b21f2d75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159178))
|
||||
- [Remove unused index with namespace_id on vulnerability_reads](https://gitlab.com/gitlab-org/gitlab/-/commit/9f2e060a8daa90b8f9ed517eccec76ca6ca0f46d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158941))
|
||||
- [Sync approval settings for groups for reauth setting](https://gitlab.com/gitlab-org/gitlab/-/commit/2d483935d991f72bb0f712ae77ac2b1569a20144) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158648))
|
||||
- [Remove self_managed_code_suggestions feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/0b19feae781cfbc6127f2cc1cc2f0685b8ae35cb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158440)) **GitLab Enterprise Edition**
|
||||
- [Create table p_ci_build_tags](https://gitlab.com/gitlab-org/gitlab/-/commit/fd0f7a053d2c4953a57bc48ad54290313ba2e60e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158327))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/8e737f615f3165c284ab24b6fab14067a7bf9fe2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158710))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/a1d73b25b38a1921b1a27bb9b80b37eab21e9eb9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159034))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/f0ec39f8a3d7e47a98ccca9f6da9955277de3535) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159031))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/1344908bc4b839baefee9c2d8833ffb00d3bf9bf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159030))
|
||||
- [Remove reference to BBD ODS FF](https://gitlab.com/gitlab-org/gitlab/-/commit/e248a83b765bbdd5fe0c313581445575b3d287ad) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157902)) **GitLab Enterprise Edition**
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/614e6402a938a00524dd7317776a1d5e827fb6d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158871))
|
||||
- [Remove `rewrite_sbom_occurrences_query` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/915bf7b04257f005312f43ba893f5b8b99486855) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158772)) **GitLab Enterprise Edition**
|
||||
- [Fix forgotten ability](https://gitlab.com/gitlab-org/gitlab/-/commit/739a6964a41bfb3ee735a8721a8417aa872973b5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158698)) **GitLab Enterprise Edition**
|
||||
- [Fix <Layouts/LineLength> offenses](https://gitlab.com/gitlab-org/gitlab/-/commit/290db2121b2155f3517861c3e6556a0f823851d8) by @Rohit.Kala ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158783))
|
||||
- [Fix flaky test "#protected_branch_exists?"](https://gitlab.com/gitlab-org/gitlab/-/commit/9fbc1dfd6a04e8a0f4af63e0ac91fc3cbf7cfaa7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158779))
|
||||
- [Implement delete car mutation](https://gitlab.com/gitlab-org/gitlab/-/commit/97e567c212d65890952bd6232a6b747ff72c58b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156488)) **GitLab Enterprise Edition**
|
||||
- [Rollout Filtered Search on Vulnerability Report](https://gitlab.com/gitlab-org/gitlab/-/commit/3870780a825594d474d7b33523821f9b2eae13e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157172)) **GitLab Enterprise Edition**
|
||||
- [Fix pipeline schedule error handling](https://gitlab.com/gitlab-org/gitlab/-/commit/4c0152e2428685af535cdc56e57d36eb565f9fb2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158436))
|
||||
- [Remove temp index](https://gitlab.com/gitlab-org/gitlab/-/commit/f7211e0c62b1533f0fb16d69cdda8ff82ba5199c) by @TamsilAmani ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139271))
|
||||
- [Add a `pending_delete` column to mark namespaces deleted by user](https://gitlab.com/gitlab-org/gitlab/-/commit/03871fbcbed7cde24eb2d80eb2ddd8b7b9126603) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158309))
|
||||
- [Add partitioned FK from ci_pipeline_artifacts to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/16d0cd7c4edec447d52562d72a8fb7844ad51797) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158086))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/b81f0aadb99a88ecfbdd0367da33411390280df1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158506))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/018d27c0cfa54483ff0de92581bbae897a6de4b8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158507))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/4dd720ee04b03cf4676f936df292c40ac90f318d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158558))
|
||||
- [Finalize migration CreateComplianceStandardsAdherence](https://gitlab.com/gitlab-org/gitlab/-/commit/8d280d0605411dda077e329b5962be8670346d65) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158148))
|
||||
- [Rspec Test order: run test in random order](https://gitlab.com/gitlab-org/gitlab/-/commit/41360018cefed51bc0edaf49b888929922b2e9c5) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157845))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/20e296a10c1787ce22c5082c357bfcc28b606919) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158181))
|
||||
- [Refactor SAX document to cobertura](https://gitlab.com/gitlab-org/gitlab/-/commit/60b7d09861b6afe93d5c796123e3c4d312e03bdc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158341))
|
||||
- [Release jira_connect_remove_branches](https://gitlab.com/gitlab-org/gitlab/-/commit/8f2d020a40dbc523afc86291c25f27b12938434f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158224))
|
||||
- [Finalize BackfillWorkItemHierarchyForEpics migration](https://gitlab.com/gitlab-org/gitlab/-/commit/44702df1c97d0e01c7eb8a25141f16789f2d030d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157981))
|
||||
- [Improve accessibility of remove icon buttons](https://gitlab.com/gitlab-org/gitlab/-/commit/5c9976313973900497654370de97221c8a1d3153) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157929))
|
||||
- [Persist all policies instead of active policies](https://gitlab.com/gitlab-org/gitlab/-/commit/dd249a70ec5b944371e27ff517b650877b2b91b7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156735)) **GitLab Enterprise Edition**
|
||||
- [Remove set_ip_address feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/f3bdbedf8b6ba727c706e4102ecce306d8c02216) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158418))
|
||||
- [Finalize re-syncing basic epic attribute migration](https://gitlab.com/gitlab-org/gitlab/-/commit/6e7cd743b12fcd155634d82af2247360ac4e23ef) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158384))
|
||||
- [Finalize BackfillEpicDatesToWorkItemDatesSources](https://gitlab.com/gitlab-org/gitlab/-/commit/71eefb084e9c9cd34d8687ab693ebde92c87d936) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158037))
|
||||
- [Enable parallel_project_export feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/64374dc941d86a0e9845cc34d5bb3a4b0963f08f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158369))
|
||||
- [Add weight widget definition options](https://gitlab.com/gitlab-org/gitlab/-/commit/7c85c228ee21072c318e3117535c1543a316947f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157705))
|
||||
- [Add partitioned FK from p_ci_builds_execution_configs to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/faf68ca11c79289938d08e2ca1e7800ac2489c43) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157908))
|
||||
- [Sync create index and swap columns](https://gitlab.com/gitlab-org/gitlab/-/commit/8852ca7059369db1a5449e96ec48a496cb5f801f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/149671))
|
||||
- [Fix Style/Lambda offenses](https://gitlab.com/gitlab-org/gitlab/-/commit/cf3980a5712da1d17bb3c6409cc129533ebb5418) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157265)) **GitLab Enterprise Edition**
|
||||
- [Add index for listing uploads](https://gitlab.com/gitlab-org/gitlab/-/commit/f07a817427e63a9fec4816204d00c04bccd4f9d6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157139))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/e9abb2af481bee29ca0bda114ba340348c4ff0f6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158178))
|
||||
- [Protected packages: Batch load matching protection rules](https://gitlab.com/gitlab-org/gitlab/-/commit/463982894a3ac7ee871f373c98c4f45c0cf5fe72) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154595))
|
||||
- [Extend a troubleshooting section to cover Xcode SSH keys problem](https://gitlab.com/gitlab-org/gitlab/-/commit/f54883e42feb25cca1d1cd8932384f336d9d4efb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158215))
|
||||
- [Add partitioned FK from ci_pipeline_chat_data to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/cdfec4f6b7e4953d18beac1e7eeaf48480b8a0b0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157938))
|
||||
- [Rspec Test Order:Run spec/graphql/types in random order](https://gitlab.com/gitlab-org/gitlab/-/commit/0cf119cc43ce8facb883ed33e1eaeb2e323f2d4b) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158172))
|
||||
- [Add partitioned FK from ci_pipelines_config to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/b42f9a1e167f103a2cd118f678df685677da66d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158065))
|
||||
- [Finalize backfilling of related epic links on issue links](https://gitlab.com/gitlab-org/gitlab/-/commit/e0fda69bb3a89228d860fb81d0381dabbb0df482) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157492))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/7fa3c9217a0b0c0e5d5f1a9a1c14d58d40a89642) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158174))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/569ec66e5b1866de254374383fdd83c4e9987625) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158008))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/1c1ac1e3efe1d68fb304225a18d599c69a3585d2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157711))
|
||||
- [Fix Layout/LineBreakAfterFinalMixin offenses](https://gitlab.com/gitlab-org/gitlab/-/commit/a710a4065fd660008138594cc603b8fa8f9c6364) by @m.bortlik ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158123))
|
||||
- [Protected containers: Enable multi-line errors in GraphQL API](https://gitlab.com/gitlab-org/gitlab/-/commit/f11d937169c2b061ae65d0d3444a6d7264239417) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/148838))
|
||||
- [Fix Layout/ExtraSpacing offenses](https://gitlab.com/gitlab-org/gitlab/-/commit/c71dfae62eb6bc9ed9e682b1d0c64b0486cf9482) by @miha-prehcm ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158083))
|
||||
- [Add partitioned FK from ci_pipeline_messages to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/2cb83573d6127c0b15344a24156e8dee4c7a9d05) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158065))
|
||||
- [Add partitioned FK from ci_pipeline_metadata to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/15d7fadcc85054caf17d76d0d940c1b9f24e6f8e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158065))
|
||||
- [Mark 20230615101400 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/65ecf2b70c32c4f4b41a20cc54c4a984aa9bc9ec) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157366)) **GitLab Enterprise Edition**
|
||||
- [Change table ownership](https://gitlab.com/gitlab-org/gitlab/-/commit/d12b8a7105d8f17550ce5a2e221c328e0fa78983) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158030))
|
||||
- [Add and backfill group_id for packages_debian_group_architectures](https://gitlab.com/gitlab-org/gitlab/-/commit/38dba13a0c77b1d814d231a0764fca724cba077e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158027))
|
||||
- [Add partitioned FK from p_ci_pipeline_variables to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/f0d1874de344f6b6ef6fc7dc139cd9013ab75b60) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157747))
|
||||
- [Regenerate rubocop todo files](https://gitlab.com/gitlab-org/gitlab/-/commit/bb1b277f6d338ea63d81c6f836d5249a04e9ab2c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157740))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/c0871506caa5e628605add1bf040546d7b788468) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157246))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/c4b1fc1e8a5a275135f27061235dfa825c12f488) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156993))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/fb5441026837dd5bbaa048136e8d44e6e6180b6c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157712))
|
||||
- [Prepare ci_pipelines.autocancel_by_id for composite primary key](https://gitlab.com/gitlab-org/gitlab/-/commit/818302e3c6bd466acafdfa5062d74e84c98d53cb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157619))
|
||||
- [Finalize BackfillEpicIssuesIntoWorkItemParentLinks migration](https://gitlab.com/gitlab-org/gitlab/-/commit/95898c8f7b2329fb0c854c8a5b179496dea9391d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157974))
|
||||
- [refactor: Increase test code quality for package controller test](https://gitlab.com/gitlab-org/gitlab/-/commit/b40706054a43e93f17016061d1d5b34265abe29c) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/149383))
|
||||
- [Add partitioned FK from ci_sources_pipelines to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/3d19f526f0deee5ef049df819f92fbe82493fef8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157947))
|
||||
- [Remove default values for ci_sources_projects#partition_id](https://gitlab.com/gitlab-org/gitlab/-/commit/84427538e86c952dd4da3e6121795925ee0ef83d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157909))
|
||||
- [Add and backfill group_id for packages_debian_group_components](https://gitlab.com/gitlab-org/gitlab/-/commit/a610218dd24bd0589ffb8d197fbd79254829f5f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157905))
|
||||
- [Add spec to verify FeatureFlagReferenceFilter N+1](https://gitlab.com/gitlab-org/gitlab/-/commit/6a57b5d86957ca675debd1f684c7629dbadcb30f) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157866))
|
||||
- [Finalize migration ConvertCreditCardValidationDataToHashes](https://gitlab.com/gitlab-org/gitlab/-/commit/c55d426e46aebcd4dd786a7705668bac8b0b1d45) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157836))
|
||||
- [Add test for N+1 query for VulnerabilityReferenceFilter](https://gitlab.com/gitlab-org/gitlab/-/commit/ae717f7d3b513c9cc94a0051905a25f31b0e6778) by @jzeng88 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157853)) **GitLab Enterprise Edition**
|
||||
- [Rspec Test Order:Run spec in random order](https://gitlab.com/gitlab-org/gitlab/-/commit/32dd8048a8ecdb4397502171130fbb2b4d101696) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157844))
|
||||
- [Revert "Merge branch 'bwill/optimize-top-bound-lineage-search' into 'master'"](https://gitlab.com/gitlab-org/gitlab/-/commit/05d6aa37ff18eb424567b3631bce94ca12a2d7c2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157799))
|
||||
- [Mark 20230719094243 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/04189615cbf59008f3faca617333ab94523b3a91) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157373)) **GitLab Enterprise Edition**
|
||||
- [Resolve Layout/ArgumentAlignment offenses 76](https://gitlab.com/gitlab-org/gitlab/-/commit/0780a7089def55a53cfabbd815b1c9258d50ece8) by @gauravmarwal ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151273))
|
||||
- [Create Dependencies::DependencyListExport::Part model](https://gitlab.com/gitlab-org/gitlab/-/commit/611693796c17c26017925e8284024a286f7d5923) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157638))
|
||||
- [Add and backfill project_id for packages_debian_project_architectures](https://gitlab.com/gitlab-org/gitlab/-/commit/31b760f990afd45856d6b9b453e2cce0437d8ff7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157767))
|
||||
- [Add partitioned FK from p_ci_stages to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/764b3d35fdfda65d8f53a69764cd43618e478c63) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157753))
|
||||
- [Add partitioned FK from p_ci_builds to ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/e70f1a202ee685a29473b7c19a7af1f5d6f9bf57) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157750))
|
||||
- [Mark 20230719144243 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/69194636e77626e80f69f41b626da7fea2e712a9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157375)) **GitLab Enterprise Edition**
|
||||
- [Mark 20230628094243 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/69ebc4a04186d13151807c587d53ccc8aca3bb83) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157367)) **GitLab Enterprise Edition**
|
||||
- [Mark 20230702000000 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/af4b7fb6a2d92fa6e0521809cca5a7891d186d69) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157369)) **GitLab Enterprise Edition**
|
||||
- [Mark 20230711140500 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/aeb55e4c74b5cf5382377d23d30462139cfda6fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157372)) **GitLab Enterprise Edition**
|
||||
- [Add and backfill project_id for packages_debian_project_components](https://gitlab.com/gitlab-org/gitlab/-/commit/3a2d5db6f51b0bf98b3a3e53bb0ded82ee92e206) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157626))
|
||||
- [Mark 20230719142200 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/a884e64586bfe172d2d7fd17628172a33856c71a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157374)) **GitLab Enterprise Edition**
|
||||
- [Mark 20230703112233 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/4c875ae756b3849756fe1385a8cb84db743d4ecd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157370)) **GitLab Enterprise Edition**
|
||||
- [Remove ignored MemberRole columns](https://gitlab.com/gitlab-org/gitlab/-/commit/6bb23bcf406e5e7956d66b3c4ac28ddc04be7ee4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156264))
|
||||
- [Set internal bots profiles to be private and confirmed](https://gitlab.com/gitlab-org/gitlab/-/commit/f7602f946c819b60e3a54826caa84ee146262826) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157557))
|
||||
- [Finalize migration BackfillSbomOccurrencesTraversalIdsAndArchived](https://gitlab.com/gitlab-org/gitlab/-/commit/dda5e8c948fa9fb5c481a8673dc81c2bde079d5b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157235))
|
||||
- [Mark 20230628094700 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/7e1286ec975ad0f14341be82b52fc934800309b9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157368)) **GitLab Enterprise Edition**
|
||||
- [Add and backfill project_id for ml_candidate_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/c3e5edf00691b71c71b7531e067713fa72f0cd3e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157484))
|
||||
- [Add and backfill project_id for packages_dependency_links](https://gitlab.com/gitlab-org/gitlab/-/commit/0fc3dbc2be113adb6e36dd330f4a01c67dad708c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157483))
|
||||
- [Add not null constraint](https://gitlab.com/gitlab-org/gitlab/-/commit/49fee3d2b8383a6731771126f24298279d6edd2b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156893)) **GitLab Enterprise Edition**
|
||||
- [refactor: Apply best practices to feature test new project](https://gitlab.com/gitlab-org/gitlab/-/commit/65cbde5ccd5684f04d803bc83b95c2625cf591ba) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154086))
|
||||
- [Rspec Test order: run test in random order](https://gitlab.com/gitlab-org/gitlab/-/commit/58eafbe8bd0ec62cf1654ba691faf9f965b0b419) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157178))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/664b950a95565920a92202dfe46f0d7ee8996dce) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156997))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/dd31ad79eab6af213aa840eb093df5bceab693cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157395))
|
||||
- [Mark 20230710142700 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/25bd3ba8c783dcc885d6373cc09400a659cfe888) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157371)) **GitLab Enterprise Edition**
|
||||
- [Remove initialize_processable from Seed::Build](https://gitlab.com/gitlab-org/gitlab/-/commit/38fd3829c473eca7f851eb38110e4c993fd72ff6) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157260))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/b39d6cf95cd307b3fad5de9b36fc8d201f3b0bf8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157247))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/5c6062bae55449c954f9eb37e11f0d811f740efa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157245))
|
||||
- [Remove unused deployments indexes on .com](https://gitlab.com/gitlab-org/gitlab/-/commit/f8389ff2d52178bd0be63dabb5dc95f8135c3c3b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157136))
|
||||
- [Implement cars resolver](https://gitlab.com/gitlab-org/gitlab/-/commit/041224188e2c073a4023d81c7331ee0594b1ed5c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156145)) **GitLab Enterprise Edition**
|
||||
- [Add and backfill project_id for ml_model_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/f8cdfcee0b0276be4099c34512572aebb224f1cc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157191))
|
||||
- [Add and backfill project_id for merge_requests_closing_issues](https://gitlab.com/gitlab-org/gitlab/-/commit/1ec02dca526dc018a2de5d978b28afc10dd6f362) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157186))
|
||||
- [Add and backfill project_id for vulnerability_external_issue_links](https://gitlab.com/gitlab-org/gitlab/-/commit/4228c0d5f787b0fac105895bf845fb04d7877e98) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157179))
|
||||
- [Add and backfill project_id for packages_conan_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/11ecfcd0a9bb13be235e91949bfacfa2d933a74d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156254))
|
||||
- [Finalize migration BackfillProjectStatisticsStorageSizeWithRecentSize](https://gitlab.com/gitlab-org/gitlab/-/commit/34511dfdee1149d549f9ce5aea44afa3c0afa98f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155152))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/2642174f2cc89fb8fe8f94f2cb4808328078c3da) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157005))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/aff7cb9815d4497d005185efba1bd7fd6ddceb1b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157107))
|
||||
- [Check for N+1 in IssueReferenceFilter](https://gitlab.com/gitlab-org/gitlab/-/commit/a39910d8e7deed3e4f60ee7e014467c0271e6ddc) by @Deepak18-06 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157110))
|
||||
- [Drop `security_findings_confidence_idx` index from `security_findings`](https://gitlab.com/gitlab-org/gitlab/-/commit/2809cb8dd101755f59ae19ef2d87d93900baaa52) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157071))
|
||||
- [Add and backfill project_id for packages_maven_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/a03846af1541deaab1ebc9341d12193231f1d879) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157034))
|
||||
- [Add and backfill project_id for vulnerability_finding_evidences](https://gitlab.com/gitlab-org/gitlab/-/commit/8709db853647b5d2afa117c34d1ffda55dde47d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157032))
|
||||
- [Add and backfill project_id for merge_request_reviewers](https://gitlab.com/gitlab-org/gitlab/-/commit/ddd51bad31a2ab6ede4eb532a2e11e907291dccc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157031))
|
||||
- [Finalize migration BackfillUsersColorModeId](https://gitlab.com/gitlab-org/gitlab/-/commit/570f26edab95ec24120e8fdbde7f6d4ca33ff1bc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157013))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/2d68f1a36f6e899d587eda74156571128c95d5c8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156994))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/4081d47da3c5a1d96f79a0ace12ac792711392d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156992))
|
||||
- [Merge ExtractsRef into ExtractsPath](https://gitlab.com/gitlab-org/gitlab/-/commit/6a6aa68de80b2abaf8fd0329000d423d04ff5805) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155245))
|
||||
- [Add new column to store organization project & group sorting options](https://gitlab.com/gitlab-org/gitlab/-/commit/9f8081fe25dc8f3a11c628b3bc83768bbc1debab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154899))
|
||||
- [Remove imported column from relevant tables](https://gitlab.com/gitlab-org/gitlab/-/commit/42623a62be2315ad601e1fb88f314a29c649a7b5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156540))
|
||||
- [Add and backfill namespace_id for vulnerability_finding_signatures](https://gitlab.com/gitlab-org/gitlab/-/commit/0586512f2b76761a30f551a508e1ff7738c071d5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156794))
|
||||
- [Add post_migrate to remove invalid record](https://gitlab.com/gitlab-org/gitlab/-/commit/1107cd52bf22de3fcd2e7cb1f400d858b136217e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156518)) **GitLab Enterprise Edition**
|
||||
- [Remove default values ci_pipeline_messages#partition_id](https://gitlab.com/gitlab-org/gitlab/-/commit/ea6d8bc0acb8e1f4866d08738c8fdb219cd0f94f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155397))
|
||||
- [Drop merge_requests_closing_issues.closes_work_item column](https://gitlab.com/gitlab-org/gitlab/-/commit/9f920558b3a917d2775a608f75864ec666893f17) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156677))
|
||||
- [Resolve Layout/ArgumentAlignment offenses 88](https://gitlab.com/gitlab-org/gitlab/-/commit/6f30b452ccb6c137340cf5d4694f5c71f680b631) by @gauravmarwal ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151289))
|
||||
- [Add a new model that will handle abuse report notes](https://gitlab.com/gitlab-org/gitlab/-/commit/33f329bec6779bb8a50f6aac28e4859483e973ac) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156146))
|
||||
- [Add and backfill project_id for protected_tag_create_access_levels](https://gitlab.com/gitlab-org/gitlab/-/commit/35ec77d7d15cb131bde663ac124c5e9e5cc7326a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156637))
|
||||
- [Add and backfill project_id for vulnerability_findings_remediations](https://gitlab.com/gitlab-org/gitlab/-/commit/a03c4ff338e3aaa2cf601301d9058a5d3a427256) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156634))
|
||||
- [refactor: Remove rubocop issues](https://gitlab.com/gitlab-org/gitlab/-/commit/dba1531363d33bef26bed333ffb28507dbbab9a4) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154189))
|
||||
- [Change catalog resource last 30-day count updated_at](https://gitlab.com/gitlab-org/gitlab/-/commit/91194027ef72015493c3c8288506a333683c9bdf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156575))
|
||||
- [Finalize BackfillPartitionIdCiPipelineMessage](https://gitlab.com/gitlab-org/gitlab/-/commit/d2591c0ed7caa0e5bfc012eb5b9859a7afe8d4b9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155219))
|
||||
- [Protected packages: Shorten GraphQL field `protectionRuleExists` Part 3](https://gitlab.com/gitlab-org/gitlab/-/commit/13e610a4c2437d24597338829f43b5fcfd1c9217) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152376))
|
||||
- [Add and backfill project_id for vulnerability_flags](https://gitlab.com/gitlab-org/gitlab/-/commit/a5d8dae907e70bee6d66d67a2c55eef3e4a04fce) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156323))
|
||||
- [Add and backfill project_id for merge_request_context_commits](https://gitlab.com/gitlab-org/gitlab/-/commit/b1860549c3328b6c864c99ad1f952297e18ca643) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156255))
|
||||
- [Add and backfill namespace_id for issue_links](https://gitlab.com/gitlab-org/gitlab/-/commit/d0c9b0f5fe1c316a51b209a8f0679de24c52bc2e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156257))
|
||||
- [Add and backfill group_id for related_epic_links](https://gitlab.com/gitlab-org/gitlab/-/commit/69d1111d555041a6d3b1086b5cbdaae119c2d33c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156251))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/f1913e6a3bfa16d996c053073e3b3dca2fb5ff1f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155940))
|
||||
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/121d4e81b497b6795650aef58122a92222d91894) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155349))
|
||||
- [Remove "use_remote_mirror_destroy_service" feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/74e1e921d003960afd6f259384aee2dfec18f30e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155852))
|
||||
- [Protected containers: Cleanup renaming of protected_up_to_access_level](https://gitlab.com/gitlab-org/gitlab/-/commit/4606b5ef64f75acdd581258a0b93034195626e83) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146177))
|
||||
|
||||
## 17.1.2 (2024-07-09)
|
||||
|
||||
### Fixed (2 changes)
|
||||
|
|
|
|||
4
Gemfile
4
Gemfile
|
|
@ -208,9 +208,9 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
|
|||
gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-core', '~> 3.199.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-core', '~> 3.200.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-s3', '~> 1.154.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-s3', '~> 1.155.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@
|
|||
{"name":"aws-eventstream","version":"1.3.0","platform":"ruby","checksum":"f1434cc03ab2248756eb02cfa45e900e59a061d7fbdc4a9fd82a5dd23d796d3f"},
|
||||
{"name":"aws-partitions","version":"1.877.0","platform":"ruby","checksum":"9552ed7bbd3700ed1eeb0121c160ceaf64fa5dbaff5a1ff5fe6fd8481ecd9cfd"},
|
||||
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
|
||||
{"name":"aws-sdk-core","version":"3.199.0","platform":"ruby","checksum":"46daa7d16f9a22f493f22942a36b1a8f894ae93af004dc4e62a62b97d80f62d1"},
|
||||
{"name":"aws-sdk-core","version":"3.200.0","platform":"ruby","checksum":"1d9ac535f82b5ea7b3d6e0cee7be3c48981a948123a48ff755504b7343d16951"},
|
||||
{"name":"aws-sdk-kms","version":"1.76.0","platform":"ruby","checksum":"e7f75013cba9ba357144f66bbc600631c192e2cda9dd572794be239654e2cf49"},
|
||||
{"name":"aws-sdk-s3","version":"1.154.0","platform":"ruby","checksum":"7061deb8b73d7b00650f0736a753852ec615316642f7da43612a28cd062ead0c"},
|
||||
{"name":"aws-sdk-s3","version":"1.155.0","platform":"ruby","checksum":"4674e07846cc6d77d5bd122cef7fea5055e8b53bf238ab05beebc25ecb01c2e2"},
|
||||
{"name":"aws-sigv4","version":"1.8.0","platform":"ruby","checksum":"84dd99768b91b93b63d1d8e53ee837cfd06ab402812772a7899a78f9f9117cbc"},
|
||||
{"name":"axe-core-api","version":"4.9.1","platform":"ruby","checksum":"9ea7ac16bfee1cb3545345d210878aa8cccfb41b493e00fe1faab79af4d9fed8"},
|
||||
{"name":"axe-core-rspec","version":"4.9.1","platform":"ruby","checksum":"31ef067bee36d6efb3f156a83aa2fb6ac721270a53fb9473f0268e325a3e6efd"},
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ GEM
|
|||
aws-sdk-cloudformation (1.41.0)
|
||||
aws-sdk-core (~> 3, >= 3.99.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-core (3.199.0)
|
||||
aws-sdk-core (3.200.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.8)
|
||||
|
|
@ -316,7 +316,7 @@ GEM
|
|||
aws-sdk-kms (1.76.0)
|
||||
aws-sdk-core (~> 3, >= 3.188.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.154.0)
|
||||
aws-sdk-s3 (1.155.0)
|
||||
aws-sdk-core (~> 3, >= 3.199.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.8)
|
||||
|
|
@ -1946,8 +1946,8 @@ DEPENDENCIES
|
|||
attr_encrypted (~> 3.2.4)!
|
||||
awesome_print
|
||||
aws-sdk-cloudformation (~> 1)
|
||||
aws-sdk-core (~> 3.199.0)
|
||||
aws-sdk-s3 (~> 1.154.0)
|
||||
aws-sdk-core (~> 3.200.0)
|
||||
aws-sdk-s3 (~> 1.155.0)
|
||||
axe-core-rspec (~> 4.9.0)
|
||||
babosa (~> 2.0)
|
||||
base32 (~> 0.3.0)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
fragment Job on CiJob {
|
||||
id
|
||||
detailedStatus {
|
||||
id
|
||||
action {
|
||||
id
|
||||
confirmationMessage
|
||||
icon
|
||||
path
|
||||
title
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#import "../fragments/job.fragment.graphql"
|
||||
|
||||
mutation cancelPipelineMiniGraphJob($id: CiBuildID!) {
|
||||
jobCancel(input: { id: $id }) {
|
||||
job {
|
||||
...Job
|
||||
}
|
||||
errors
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#import "../fragments/job.fragment.graphql"
|
||||
|
||||
mutation playPipelineMiniGraphJob($id: CiBuildID!) {
|
||||
jobPlay(input: { id: $id }) {
|
||||
job {
|
||||
...Job
|
||||
}
|
||||
errors
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#import "../fragments/job.fragment.graphql"
|
||||
|
||||
mutation retryPipelineMiniGraphJob($id: CiProcessableID!) {
|
||||
jobRetry(input: { id: $id }) {
|
||||
job {
|
||||
...Job
|
||||
}
|
||||
errors
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#import "../fragments/job.fragment.graphql"
|
||||
|
||||
mutation unschedulePipelineMiniGraphJob($id: CiBuildID!) {
|
||||
jobUnschedule(input: { id: $id }) {
|
||||
job {
|
||||
...Job
|
||||
}
|
||||
errors
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,47 @@
|
|||
<script>
|
||||
import { GlButton, GlIcon, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';
|
||||
import { createAlert } from '~/alert';
|
||||
import { s__ } from '~/locale';
|
||||
import { reportToSentry } from '~/ci/utils';
|
||||
import cancelJobMutation from './graphql/mutations/job_cancel.mutation.graphql';
|
||||
import playJobMutation from './graphql/mutations/job_play.mutation.graphql';
|
||||
import retryJobMutation from './graphql/mutations/job_retry.mutation.graphql';
|
||||
import unscheduleJobMutation from './graphql/mutations/job_unschedule.mutation.graphql';
|
||||
|
||||
export const i18n = {
|
||||
errors: {
|
||||
cancelJob: s__('Pipeline|There was a problem canceling the job.'),
|
||||
playJob: s__('Pipeline|There was a problem running the job.'),
|
||||
retryJob: s__('Pipeline|There was a problem running the job again.'),
|
||||
unscheduleJob: s__('Pipeline|There was a problem unscheduling the job.'),
|
||||
},
|
||||
};
|
||||
|
||||
export default {
|
||||
name: 'JobActionButton',
|
||||
JOB_ACTIONS: {
|
||||
cancel: {
|
||||
dataName: 'jobCancel',
|
||||
error: i18n.errors.cancelJob,
|
||||
mutation: cancelJobMutation,
|
||||
},
|
||||
play: {
|
||||
dataName: 'jobPlay',
|
||||
error: i18n.errors.playJob,
|
||||
mutation: playJobMutation,
|
||||
},
|
||||
retry: {
|
||||
dataName: 'jobRetry',
|
||||
error: i18n.errors.retryJob,
|
||||
mutation: retryJobMutation,
|
||||
},
|
||||
'time-out': {
|
||||
dataName: 'jobUnschedule',
|
||||
error: i18n.errors.unscheduleJob,
|
||||
mutation: unscheduleJobMutation,
|
||||
},
|
||||
},
|
||||
i18n,
|
||||
components: {
|
||||
GlButton,
|
||||
GlIcon,
|
||||
|
|
@ -31,6 +70,37 @@ export default {
|
|||
showConfirmationModal: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
actionType() {
|
||||
return this.jobAction.icon;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
onActionButtonClick() {
|
||||
this.executeJobAction();
|
||||
},
|
||||
async executeJobAction() {
|
||||
try {
|
||||
this.isLoading = true;
|
||||
const {
|
||||
data: {
|
||||
[this.$options.JOB_ACTIONS[this.actionType].dataName]: { errors },
|
||||
},
|
||||
} = await this.$apollo.mutate({
|
||||
mutation: this.$options.JOB_ACTIONS[this.actionType].mutation,
|
||||
variables: { id: this.jobId },
|
||||
});
|
||||
if (errors.length) {
|
||||
reportToSentry(this.$options.name, new Error(errors.join(', ')));
|
||||
}
|
||||
} catch (error) {
|
||||
createAlert({ message: this.$options.JOB_ACTIONS[this.actionType].error });
|
||||
reportToSentry(this.$options.name, error);
|
||||
} finally {
|
||||
this.isLoading = false;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
@ -42,6 +112,7 @@ export default {
|
|||
:aria-label="jobAction.title"
|
||||
:disabled="isLoading"
|
||||
class="gl-rounded-full! gl-p-0! gl-w-6 gl-h-6"
|
||||
@click.prevent="onActionButtonClick"
|
||||
>
|
||||
<gl-loading-icon v-if="isLoading" size="sm" class="gl-m-2" />
|
||||
<gl-icon v-else :name="jobAction.icon" :size="12" />
|
||||
|
|
|
|||
|
|
@ -37,12 +37,12 @@ export default {
|
|||
return this.job.detailedStatus || {};
|
||||
},
|
||||
tooltipText() {
|
||||
const { tooltip: statusTooltip } = this.status;
|
||||
const statusTooltip = capitalizeFirstCharacter(this.status?.tooltip);
|
||||
|
||||
if (this.isDelayedJob) {
|
||||
return sprintf(statusTooltip, { remainingTime: this.remainingTime });
|
||||
}
|
||||
return capitalizeFirstCharacter(statusTooltip);
|
||||
return statusTooltip;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -87,9 +87,7 @@ export default {
|
|||
<gl-card
|
||||
:id="$options.ariaControlsId"
|
||||
class="gl-new-card"
|
||||
:class="{
|
||||
'gl-border-white gl-hover-border-gray-100 is-collapsed': !isExpanded,
|
||||
}"
|
||||
:class="{ 'gl-border-white hover:gl-border-gray-100 is-collapsed': !isExpanded }"
|
||||
header-class="gl-new-card-header gl-px-3 gl-py-3"
|
||||
body-class="gl-new-card-body"
|
||||
data-testid="failed-jobs-card"
|
||||
|
|
|
|||
|
|
@ -3,14 +3,23 @@ import {
|
|||
defaultMarkdownSerializer,
|
||||
} from '~/lib/prosemirror_markdown_serializer';
|
||||
import * as extensions from '../extensions';
|
||||
import code from './serializer/code';
|
||||
import bold from './serializer/bold';
|
||||
import italic from './serializer/italic';
|
||||
import link from './serializer/link';
|
||||
import strike from './serializer/strike';
|
||||
import subscript from './serializer/subscript';
|
||||
import superscript from './serializer/superscript';
|
||||
import highlight from './serializer/highlight';
|
||||
import inlineDiff from './serializer/inline_diff';
|
||||
import mathInline from './serializer/math_inline';
|
||||
import htmlMark from './serializer/html_mark';
|
||||
import {
|
||||
renderCodeBlock,
|
||||
renderHardBreak,
|
||||
renderTable,
|
||||
renderTableCell,
|
||||
renderTableRow,
|
||||
openTag,
|
||||
closeTag,
|
||||
renderOrderedList,
|
||||
renderImage,
|
||||
renderHeading,
|
||||
|
|
@ -22,11 +31,6 @@ import {
|
|||
renderReference,
|
||||
renderReferenceLabel,
|
||||
preserveUnchanged,
|
||||
bold,
|
||||
italic,
|
||||
link,
|
||||
code,
|
||||
strike,
|
||||
} from './serialization_helpers';
|
||||
|
||||
const defaultSerializerConfig = {
|
||||
|
|
@ -34,35 +38,17 @@ const defaultSerializerConfig = {
|
|||
[extensions.Bold.name]: bold,
|
||||
[extensions.Italic.name]: italic,
|
||||
[extensions.Code.name]: code,
|
||||
[extensions.Subscript.name]: { open: '<sub>', close: '</sub>', mixable: true },
|
||||
[extensions.Superscript.name]: { open: '<sup>', close: '</sup>', mixable: true },
|
||||
[extensions.Highlight.name]: { open: '<mark>', close: '</mark>', mixable: true },
|
||||
[extensions.InlineDiff.name]: {
|
||||
mixable: true,
|
||||
open(_, mark) {
|
||||
return mark.attrs.type === 'addition' ? '{+' : '{-';
|
||||
},
|
||||
close(_, mark) {
|
||||
return mark.attrs.type === 'addition' ? '+}' : '-}';
|
||||
},
|
||||
},
|
||||
[extensions.Subscript.name]: subscript,
|
||||
[extensions.Superscript.name]: superscript,
|
||||
[extensions.Highlight.name]: highlight,
|
||||
[extensions.InlineDiff.name]: inlineDiff,
|
||||
[extensions.Link.name]: link,
|
||||
[extensions.MathInline.name]: {
|
||||
open: (...args) => `$${defaultMarkdownSerializer.marks.code.open(...args)}`,
|
||||
close: (...args) => `${defaultMarkdownSerializer.marks.code.close(...args)}$`,
|
||||
escape: false,
|
||||
},
|
||||
[extensions.MathInline.name]: mathInline,
|
||||
[extensions.Strike.name]: strike,
|
||||
...extensions.HTMLMarks.reduce(
|
||||
(acc, { name }) => ({
|
||||
...acc,
|
||||
[name]: {
|
||||
mixable: true,
|
||||
open(state, node) {
|
||||
return openTag(name, node.attrs);
|
||||
},
|
||||
close: closeTag(name),
|
||||
},
|
||||
[name]: htmlMark(name),
|
||||
}),
|
||||
{},
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import { uniq, omit, isFunction } from 'lodash';
|
||||
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
|
||||
import { removeLastSlashInUrlPath, removeUrlProtocol } from '../../lib/utils/url_utility';
|
||||
|
||||
const defaultAttrs = {
|
||||
td: { colspan: 1, rowspan: 1, colwidth: null, align: 'left' },
|
||||
|
|
@ -519,7 +518,7 @@ export function renderReferenceLabel(state, node) {
|
|||
state.write(node.attrs.originalText || `~${state.quote(node.attrs.text)}`);
|
||||
}
|
||||
|
||||
const findChildWithMark = (mark, parent) => {
|
||||
export const findChildWithMark = (mark, parent) => {
|
||||
let child;
|
||||
let offset;
|
||||
let index;
|
||||
|
|
@ -535,252 +534,6 @@ const findChildWithMark = (mark, parent) => {
|
|||
return child ? { child, offset, index } : null;
|
||||
};
|
||||
|
||||
const generateBoldTags = (wrapTagName = openTag) => {
|
||||
return (_, mark) => {
|
||||
const type = /^(\*\*|__|<strong|<b).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
switch (type) {
|
||||
case '**':
|
||||
case '__':
|
||||
return type;
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
case '<strong':
|
||||
case '<b':
|
||||
return wrapTagName(type.substring(1));
|
||||
default:
|
||||
return '**';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export const bold = {
|
||||
open: generateBoldTags(),
|
||||
close: generateBoldTags(closeTag),
|
||||
mixable: true,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
const generateItalicTag = (wrapTagName = openTag) => {
|
||||
return (_, mark) => {
|
||||
const type = /^(\*|_|<em|<i).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
switch (type) {
|
||||
case '*':
|
||||
case '_':
|
||||
return type;
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
case '<em':
|
||||
case '<i':
|
||||
return wrapTagName(type.substring(1));
|
||||
default:
|
||||
return '_';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export const italic = {
|
||||
open: generateItalicTag(),
|
||||
close: generateItalicTag(closeTag),
|
||||
mixable: true,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
function getMarkText(mark, parent) {
|
||||
export function getMarkText(mark, parent) {
|
||||
return findChildWithMark(mark, parent).child?.text || '';
|
||||
}
|
||||
|
||||
const generateCodeTag = (wrapTagName = openTag) => {
|
||||
const isOpen = wrapTagName === openTag;
|
||||
|
||||
return (_, mark, parent) => {
|
||||
const type = /^(`|<code).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
if (type === '<code') {
|
||||
return wrapTagName(type.substring(1));
|
||||
}
|
||||
|
||||
const childText = getMarkText(mark, parent);
|
||||
if (childText.includes('`')) {
|
||||
let tag = '``';
|
||||
if (childText.startsWith('`') || childText.endsWith('`'))
|
||||
tag = isOpen ? `${tag} ` : ` ${tag}`;
|
||||
return tag;
|
||||
}
|
||||
|
||||
return '`';
|
||||
};
|
||||
};
|
||||
|
||||
export const code = {
|
||||
open: generateCodeTag(),
|
||||
close: generateCodeTag(closeTag),
|
||||
mixable: true,
|
||||
escape: false,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
const LINK_HTML = 'linkHtml';
|
||||
const LINK_MARKDOWN = 'linkMarkdown';
|
||||
|
||||
const linkType = (sourceMarkdown) => {
|
||||
const expression = /^(\[|<a).*/.exec(sourceMarkdown)?.[1];
|
||||
|
||||
if (!expression || expression === '[') {
|
||||
return LINK_MARKDOWN;
|
||||
}
|
||||
|
||||
return LINK_HTML;
|
||||
};
|
||||
|
||||
const normalizeUrl = (url) => {
|
||||
const processedUrl = removeLastSlashInUrlPath(removeUrlProtocol(url));
|
||||
try {
|
||||
return decodeURIComponent(processedUrl);
|
||||
} catch {
|
||||
return processedUrl;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Validates that the provided URL is a valid GFM autolink
|
||||
*
|
||||
* @param {String} url
|
||||
* @returns Returns true when the URL is a valid GFM autolink
|
||||
*/
|
||||
const isValidAutolinkURL = (url) =>
|
||||
/(https?:\/\/)?([\w-])+\.{1}([a-zA-Z]{2,63})([/\w-]*)*\/?\??([^#\n\r]*)?#?([^\n\r]*)/.test(url);
|
||||
|
||||
/**
|
||||
* This function detects whether a link should be serialized
|
||||
* as an autolink.
|
||||
*
|
||||
* See https://github.github.com/gfm/#autolinks-extension-
|
||||
* to understand the parsing rules of autolinks.
|
||||
* */
|
||||
const isAutoLink = (linkMark, parent) => {
|
||||
const { title, href } = linkMark.attrs;
|
||||
|
||||
if (title || !/^\w+:/.test(href)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const { child } = findChildWithMark(linkMark, parent);
|
||||
|
||||
if (
|
||||
!child ||
|
||||
!child.isText ||
|
||||
!isValidAutolinkURL(href) ||
|
||||
normalizeUrl(child.text) !== normalizeUrl(href)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true if the user used brackets to the define
|
||||
* the autolink in the original markdown source
|
||||
*/
|
||||
const isBracketAutoLink = (sourceMarkdown) => /^<.+?>$/.test(sourceMarkdown);
|
||||
|
||||
function getLinkHref(mark, useCanonicalSrc = true) {
|
||||
const { canonicalSrc, href } = mark.attrs;
|
||||
|
||||
if (useCanonicalSrc) return canonicalSrc || href || '';
|
||||
return href || '';
|
||||
}
|
||||
|
||||
export const link = {
|
||||
open(state, mark, parent) {
|
||||
if (isAutoLink(mark, parent)) {
|
||||
return isBracketAutoLink(mark.attrs.sourceMarkdown) ? '<' : '';
|
||||
}
|
||||
|
||||
const { href, title, sourceMarkdown, isGollumLink } = mark.attrs;
|
||||
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
if (href.startsWith('data:') || href.startsWith('blob:')) return '';
|
||||
|
||||
if (linkType(sourceMarkdown) === LINK_MARKDOWN) {
|
||||
if (isGollumLink) return '[[';
|
||||
return '[';
|
||||
}
|
||||
|
||||
const attrs = {
|
||||
href: state.esc(getLinkHref(mark, state.options.useCanonicalSrc)),
|
||||
};
|
||||
|
||||
if (title) {
|
||||
attrs.title = title;
|
||||
}
|
||||
|
||||
return openTag('a', attrs);
|
||||
},
|
||||
close(state, mark, parent) {
|
||||
if (isAutoLink(mark, parent)) {
|
||||
return isBracketAutoLink(mark.attrs.sourceMarkdown) ? '>' : '';
|
||||
}
|
||||
|
||||
const {
|
||||
href = '',
|
||||
title,
|
||||
sourceMarkdown,
|
||||
isReference,
|
||||
isGollumLink,
|
||||
canonicalSrc,
|
||||
} = mark.attrs;
|
||||
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
if (href.startsWith('data:') || href.startsWith('blob:')) return '';
|
||||
|
||||
if (isReference) {
|
||||
return `][${state.esc(getLinkHref(mark, state.options.useCanonicalSrc))}]`;
|
||||
}
|
||||
|
||||
if (linkType(sourceMarkdown) === LINK_HTML) {
|
||||
return closeTag('a');
|
||||
}
|
||||
|
||||
if (isGollumLink) {
|
||||
const text = getMarkText(mark, parent);
|
||||
const escapedCanonicalSrc = state.esc(canonicalSrc);
|
||||
|
||||
if (text.toLowerCase() === escapedCanonicalSrc.toLowerCase()) {
|
||||
return ']]';
|
||||
}
|
||||
|
||||
return `|${escapedCanonicalSrc}]]`;
|
||||
}
|
||||
|
||||
return `](${state.esc(getLinkHref(mark, state.options.useCanonicalSrc))}${
|
||||
title ? ` ${state.quote(title)}` : ''
|
||||
})`;
|
||||
},
|
||||
};
|
||||
|
||||
const generateStrikeTag = (wrapTagName = openTag) => {
|
||||
return (_, mark) => {
|
||||
if (mark.attrs.htmlTag) return wrapTagName(mark.attrs.htmlTag);
|
||||
|
||||
const type = /^(~~|<del|<strike|<s).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
switch (type) {
|
||||
case '~~':
|
||||
return type;
|
||||
case '<del': // eslint-disable-line @gitlab/require-i18n-strings
|
||||
case '<strike': // eslint-disable-line @gitlab/require-i18n-strings
|
||||
case '<s':
|
||||
return wrapTagName(type.substring(1));
|
||||
default:
|
||||
return '~~';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export const strike = {
|
||||
open: generateStrikeTag(),
|
||||
close: generateStrikeTag(closeTag),
|
||||
mixable: true,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
import { openTag, closeTag } from '../serialization_helpers';
|
||||
|
||||
const generateBoldTags = (wrapTagName = openTag) => {
|
||||
return (_, mark) => {
|
||||
const type = /^(\*\*|__|<strong|<b).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
switch (type) {
|
||||
case '**':
|
||||
case '__':
|
||||
return type;
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
case '<strong':
|
||||
case '<b':
|
||||
return wrapTagName(type.substring(1));
|
||||
default:
|
||||
return '**';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
const bold = {
|
||||
open: generateBoldTags(),
|
||||
close: generateBoldTags(closeTag),
|
||||
mixable: true,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
export default bold;
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
import { openTag, closeTag, getMarkText } from '../serialization_helpers';
|
||||
|
||||
const generateCodeTag = (wrapTagName = openTag) => {
|
||||
const isOpen = wrapTagName === openTag;
|
||||
|
||||
return (_, mark, parent) => {
|
||||
const type = /^(`|<code).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
if (type === '<code') {
|
||||
return wrapTagName(type.substring(1));
|
||||
}
|
||||
|
||||
const childText = getMarkText(mark, parent);
|
||||
if (childText.includes('`')) {
|
||||
let tag = '``';
|
||||
if (childText.startsWith('`') || childText.endsWith('`'))
|
||||
tag = isOpen ? `${tag} ` : ` ${tag}`;
|
||||
return tag;
|
||||
}
|
||||
|
||||
return '`';
|
||||
};
|
||||
};
|
||||
|
||||
const code = {
|
||||
open: generateCodeTag(),
|
||||
close: generateCodeTag(closeTag),
|
||||
mixable: true,
|
||||
escape: false,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
export default code;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
const highlight = { open: '<mark>', close: '</mark>', mixable: true };
|
||||
|
||||
export default highlight;
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { openTag, closeTag } from '../serialization_helpers';
|
||||
|
||||
const htmlMark = (name) => ({
|
||||
mixable: true,
|
||||
open(state, node) {
|
||||
return openTag(name, node.attrs);
|
||||
},
|
||||
close: closeTag(name),
|
||||
});
|
||||
|
||||
export default htmlMark;
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
const inlineDiff = {
|
||||
mixable: true,
|
||||
open(_, mark) {
|
||||
return mark.attrs.type === 'addition' ? '{+' : '{-';
|
||||
},
|
||||
close(_, mark) {
|
||||
return mark.attrs.type === 'addition' ? '+}' : '-}';
|
||||
},
|
||||
};
|
||||
|
||||
export default inlineDiff;
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
import { openTag, closeTag } from '../serialization_helpers';
|
||||
|
||||
const generateItalicTag = (wrapTagName = openTag) => {
|
||||
return (_, mark) => {
|
||||
const type = /^(\*|_|<em|<i).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
switch (type) {
|
||||
case '*':
|
||||
case '_':
|
||||
return type;
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
case '<em':
|
||||
case '<i':
|
||||
return wrapTagName(type.substring(1));
|
||||
default:
|
||||
return '_';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
const italic = {
|
||||
open: generateItalicTag(),
|
||||
close: generateItalicTag(closeTag),
|
||||
mixable: true,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
export default italic;
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
import { removeLastSlashInUrlPath, removeUrlProtocol } from '~/lib/utils/url_utility';
|
||||
import { findChildWithMark, openTag, closeTag, getMarkText } from '../serialization_helpers';
|
||||
|
||||
const LINK_HTML = 'linkHtml';
|
||||
const LINK_MARKDOWN = 'linkMarkdown';
|
||||
|
||||
/**
|
||||
* Validates that the provided URL is a valid GFM autolink
|
||||
*
|
||||
* @param {String} url
|
||||
* @returns Returns true when the URL is a valid GFM autolink
|
||||
*/
|
||||
const isValidAutolinkURL = (url) =>
|
||||
/(https?:\/\/)?([\w-])+\.{1}([a-zA-Z]{2,63})([/\w-]*)*\/?\??([^#\n\r]*)?#?([^\n\r]*)/.test(url);
|
||||
|
||||
const normalizeUrl = (url) => {
|
||||
const processedUrl = removeLastSlashInUrlPath(removeUrlProtocol(url));
|
||||
try {
|
||||
return decodeURIComponent(processedUrl);
|
||||
} catch {
|
||||
return processedUrl;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* This function detects whether a link should be serialized
|
||||
* as an autolink.
|
||||
*
|
||||
* See https://github.github.com/gfm/#autolinks-extension-
|
||||
* to understand the parsing rules of autolinks.
|
||||
* */
|
||||
const isAutoLink = (linkMark, parent) => {
|
||||
const { title, href } = linkMark.attrs;
|
||||
|
||||
if (title || !/^\w+:/.test(href)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const { child } = findChildWithMark(linkMark, parent);
|
||||
|
||||
if (
|
||||
!child ||
|
||||
!child.isText ||
|
||||
!isValidAutolinkURL(href) ||
|
||||
normalizeUrl(child.text) !== normalizeUrl(href)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true if the user used brackets to the define
|
||||
* the autolink in the original markdown source
|
||||
*/
|
||||
const isBracketAutoLink = (sourceMarkdown) => /^<.+?>$/.test(sourceMarkdown);
|
||||
|
||||
function getLinkHref(mark, useCanonicalSrc = true) {
|
||||
const { canonicalSrc, href } = mark.attrs;
|
||||
|
||||
if (useCanonicalSrc) return canonicalSrc || href || '';
|
||||
return href || '';
|
||||
}
|
||||
|
||||
const linkType = (sourceMarkdown) => {
|
||||
const expression = /^(\[|<a).*/.exec(sourceMarkdown)?.[1];
|
||||
|
||||
if (!expression || expression === '[') {
|
||||
return LINK_MARKDOWN;
|
||||
}
|
||||
|
||||
return LINK_HTML;
|
||||
};
|
||||
|
||||
const link = {
|
||||
open(state, mark, parent) {
|
||||
if (isAutoLink(mark, parent)) {
|
||||
return isBracketAutoLink(mark.attrs.sourceMarkdown) ? '<' : '';
|
||||
}
|
||||
|
||||
const { href, title, sourceMarkdown, isGollumLink } = mark.attrs;
|
||||
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
if (href.startsWith('data:') || href.startsWith('blob:')) return '';
|
||||
|
||||
if (linkType(sourceMarkdown) === LINK_MARKDOWN) {
|
||||
if (isGollumLink) return '[[';
|
||||
return '[';
|
||||
}
|
||||
|
||||
const attrs = {
|
||||
href: state.esc(getLinkHref(mark, state.options.useCanonicalSrc)),
|
||||
};
|
||||
|
||||
if (title) {
|
||||
attrs.title = title;
|
||||
}
|
||||
|
||||
return openTag('a', attrs);
|
||||
},
|
||||
close(state, mark, parent) {
|
||||
if (isAutoLink(mark, parent)) {
|
||||
return isBracketAutoLink(mark.attrs.sourceMarkdown) ? '>' : '';
|
||||
}
|
||||
|
||||
const {
|
||||
href = '',
|
||||
title,
|
||||
sourceMarkdown,
|
||||
isReference,
|
||||
isGollumLink,
|
||||
canonicalSrc,
|
||||
} = mark.attrs;
|
||||
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
if (href.startsWith('data:') || href.startsWith('blob:')) return '';
|
||||
|
||||
if (isReference) {
|
||||
return `][${state.esc(getLinkHref(mark, state.options.useCanonicalSrc))}]`;
|
||||
}
|
||||
|
||||
if (linkType(sourceMarkdown) === LINK_HTML) {
|
||||
return closeTag('a');
|
||||
}
|
||||
|
||||
if (isGollumLink) {
|
||||
const text = getMarkText(mark, parent);
|
||||
const escapedCanonicalSrc = state.esc(canonicalSrc);
|
||||
|
||||
if (text.toLowerCase() === escapedCanonicalSrc.toLowerCase()) {
|
||||
return ']]';
|
||||
}
|
||||
|
||||
return `|${escapedCanonicalSrc}]]`;
|
||||
}
|
||||
|
||||
return `](${state.esc(getLinkHref(mark, state.options.useCanonicalSrc))}${
|
||||
title ? ` ${state.quote(title)}` : ''
|
||||
})`;
|
||||
},
|
||||
};
|
||||
|
||||
export default link;
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
|
||||
|
||||
const mathInline = {
|
||||
open: (...args) => `$${defaultMarkdownSerializer.marks.code.open(...args)}`,
|
||||
close: (...args) => `${defaultMarkdownSerializer.marks.code.close(...args)}$`,
|
||||
escape: false,
|
||||
};
|
||||
|
||||
export default mathInline;
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
import { openTag, closeTag } from '../serialization_helpers';
|
||||
|
||||
const generateStrikeTag = (wrapTagName = openTag) => {
|
||||
return (_, mark) => {
|
||||
if (mark.attrs.htmlTag) return wrapTagName(mark.attrs.htmlTag);
|
||||
|
||||
const type = /^(~~|<del|<strike|<s).*/.exec(mark.attrs.sourceMarkdown)?.[1];
|
||||
|
||||
switch (type) {
|
||||
case '~~':
|
||||
return type;
|
||||
case '<del': // eslint-disable-line @gitlab/require-i18n-strings
|
||||
case '<strike': // eslint-disable-line @gitlab/require-i18n-strings
|
||||
case '<s':
|
||||
return wrapTagName(type.substring(1));
|
||||
default:
|
||||
return '~~';
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
const strike = {
|
||||
open: generateStrikeTag(),
|
||||
close: generateStrikeTag(closeTag),
|
||||
mixable: true,
|
||||
expelEnclosingWhitespace: true,
|
||||
};
|
||||
|
||||
export default strike;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
const subscript = { open: '<sub>', close: '</sub>', mixable: true };
|
||||
|
||||
export default subscript;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
const superscript = { open: '<sup>', close: '</sup>', mixable: true };
|
||||
|
||||
export default superscript;
|
||||
|
|
@ -153,7 +153,7 @@ export const EVENT_CLOSED_ICONS = Object.freeze({
|
|||
});
|
||||
|
||||
export const EVENT_REOPENED_ICONS = Object.freeze({
|
||||
[TARGET_TYPE_MERGE_REQUEST]: 'merge-request-open',
|
||||
[TARGET_TYPE_MERGE_REQUEST]: 'merge-request',
|
||||
[TYPE_FALLBACK]: 'status_open',
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ const badgePropertiesMap = {
|
|||
},
|
||||
[TYPE_MERGE_REQUEST]: {
|
||||
[STATUS_OPEN]: {
|
||||
icon: 'merge-request-open',
|
||||
icon: 'merge-request',
|
||||
text: __('Open'),
|
||||
variant: 'success',
|
||||
},
|
||||
|
|
@ -58,7 +58,7 @@ const badgePropertiesMap = {
|
|||
variant: 'info',
|
||||
},
|
||||
[STATUS_LOCKED]: {
|
||||
icon: 'merge-request-open',
|
||||
icon: 'merge-request',
|
||||
text: __('Open'),
|
||||
variant: 'success',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { GlBadge, GlTab, GlTabs } from '@gitlab/ui';
|
|||
import { createAlert } from '~/alert';
|
||||
import { s__ } from '~/locale';
|
||||
|
||||
import importSourceUsersQuery from '../../placeholders/graphql/queries/import_source_users.query.graphql';
|
||||
import importSourceUsersQuery from '../graphql/queries/import_source_users.query.graphql';
|
||||
import PlaceholdersTable from './placeholders_table.vue';
|
||||
|
||||
const DEFAULT_PAGE_SIZE = 20;
|
||||
|
|
@ -12,10 +12,10 @@ import {
|
|||
PLACEHOLDER_STATUS_AWAITING_APPROVAL,
|
||||
PLACEHOLDER_STATUS_REASSIGNING,
|
||||
} from '~/import_entities/import_groups/constants';
|
||||
import importSourceUserReassignMutation from '../../placeholders/graphql/mutations/reassign.mutation.graphql';
|
||||
import importSourceUserKeepAsPlaceholderMutation from '../../placeholders/graphql/mutations/keep_as_placeholder.mutation.graphql';
|
||||
import importSourceUseResendNotificationMutation from '../../placeholders/graphql/mutations/resend_notification.mutation.graphql';
|
||||
import importSourceUserCancelReassignmentMutation from '../../placeholders/graphql/mutations/cancel_reassignment.mutation.graphql';
|
||||
import importSourceUserReassignMutation from '../graphql/mutations/reassign.mutation.graphql';
|
||||
import importSourceUserKeepAsPlaceholderMutation from '../graphql/mutations/keep_as_placeholder.mutation.graphql';
|
||||
import importSourceUseResendNotificationMutation from '../graphql/mutations/resend_notification.mutation.graphql';
|
||||
import importSourceUserCancelReassignmentMutation from '../graphql/mutations/cancel_reassignment.mutation.graphql';
|
||||
|
||||
const USERS_PER_PAGE = 20;
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { __, s__ } from '~/locale';
|
||||
import PlaceholdersTabApp from './components/placeholders/app.vue';
|
||||
import PlaceholdersTabApp from './placeholders/components/app.vue';
|
||||
import { MEMBERS_TAB_TYPES, TAB_QUERY_PARAM_VALUES } from './constants';
|
||||
|
||||
// Overridden in EE
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import ProjectsList from '~/projects_list';
|
||||
import { initYourWorkProjects } from '~/projects/your_work';
|
||||
|
||||
new ProjectsList(); // eslint-disable-line no-new
|
||||
initYourWorkProjects();
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
import ProjectsList from '~/projects_list';
|
||||
|
||||
new ProjectsList(); // eslint-disable-line no-new
|
||||
|
|
@ -180,7 +180,7 @@ export default {
|
|||
<counter
|
||||
v-gl-tooltip:super-sidebar.bottom="mrMenuShown ? '' : $options.i18n.mergeRequests"
|
||||
class="gl-w-full"
|
||||
icon="merge-request-open"
|
||||
icon="merge-request"
|
||||
:href="sidebarData.merge_request_dashboard_path"
|
||||
:count="mergeRequestTotalCount"
|
||||
:label="$options.i18n.mergeRequests"
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ export default {
|
|||
if (this.note.noteable_type === 'Issue') {
|
||||
icon = 'issue-open-m';
|
||||
} else if (this.note.noteable_type === 'MergeRequest') {
|
||||
icon = 'merge-request-open';
|
||||
icon = 'merge-request';
|
||||
}
|
||||
}
|
||||
return icon;
|
||||
|
|
|
|||
|
|
@ -511,10 +511,6 @@ li.note {
|
|||
}
|
||||
}
|
||||
|
||||
.gl-font-sm { font-size: $gl-font-size-small; }
|
||||
.gl-font-lg { font-size: $gl-font-size-large; }
|
||||
.gl-font-base { font-size: $gl-font-size-14; }
|
||||
|
||||
.gl-font-size-0 { font-size: 0; }
|
||||
.gl-font-size-28 { font-size: $gl-font-size-28; }
|
||||
.gl-font-size-42 { font-size: $gl-font-size-42; }
|
||||
|
|
|
|||
|
|
@ -7,10 +7,3 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.trial-discover-page-card.gl-flex-basis-third,
|
||||
.trial-discover-page-card.gl-flex-basis-half {
|
||||
@include media-breakpoint-down(md) {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@
|
|||
gap: 0.5ch;
|
||||
}
|
||||
|
||||
.commit-author-link.gl-text-truncate {
|
||||
.commit-author-link {
|
||||
max-width: 19ch;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,12 +113,6 @@
|
|||
@include gl-focus($gl-border-size-1, $gray-900, true);
|
||||
}
|
||||
|
||||
.gl-sm-mr-0\! {
|
||||
@include gl-media-breakpoint-down(md) {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.gl-sm-mb-5 {
|
||||
@include gl-media-breakpoint-down(md) {
|
||||
margin-bottom: $gl-spacing-scale-5;
|
||||
|
|
@ -133,10 +127,6 @@
|
|||
fill: $red-500;
|
||||
}
|
||||
|
||||
.gl-hover-border-gray-100:hover {
|
||||
border-color: $gray-100;
|
||||
}
|
||||
|
||||
.gl-last-of-type-border-b-0:last-of-type {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ module ApplicationHelper
|
|||
timeago = time_ago_with_tooltip(editable_object.last_edited_at, placement: placement, html_class: html_class)
|
||||
|
||||
if !exclude_author && editable_object.last_edited_by
|
||||
author_link = link_to_member(editable_object.project, editable_object.last_edited_by, avatar: false, extra_class: 'gl-hover-text-decoration-underline gl-text-gray-700', author_class: nil)
|
||||
author_link = link_to_member(editable_object.last_edited_by, avatar: false, extra_class: 'gl-hover-text-decoration-underline gl-text-gray-700', author_class: nil)
|
||||
output = safe_format(_("Edited %{timeago} by %{author}"), timeago: timeago, author: author_link)
|
||||
else
|
||||
output = safe_format(_("Edited %{timeago}"), timeago: timeago)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ module BranchesHelper
|
|||
variant = :success
|
||||
variant = :warning if merge_request.draft?
|
||||
|
||||
mr_icon = 'merge-request-open'
|
||||
mr_icon = 'merge-request'
|
||||
mr_status = _('Open')
|
||||
elsif merge_request.merged?
|
||||
variant = :info
|
||||
|
|
|
|||
|
|
@ -303,8 +303,8 @@ module MergeRequestsHelper
|
|||
link_to branch, branch_path, title: branch_title, class: 'ref-container gl-display-inline-block gl-text-truncate gl-max-w-26 gl-ml-2'
|
||||
end
|
||||
|
||||
def merge_request_header(project, merge_request)
|
||||
link_to_author = link_to_member(project, merge_request.author, size: 24, extra_class: 'gl-font-bold gl-mr-2', avatar: false)
|
||||
def merge_request_header(merge_request)
|
||||
link_to_author = link_to_member(merge_request.author, size: 24, extra_class: 'gl-font-bold gl-mr-2', avatar: false)
|
||||
copy_action_description = _('Copy branch name')
|
||||
copy_action_shortcut = 'b'
|
||||
copy_button_title = "#{copy_action_description} <kbd class='flat ml-1' aria-hidden=true>#{copy_action_shortcut}</kbd>"
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ module ProjectsHelper
|
|||
content_tag(:span, username, name_tag_options)
|
||||
end
|
||||
|
||||
def link_to_member(_project, author, opts = {}, &block)
|
||||
def link_to_member(author, opts = {}, &block)
|
||||
default_opts = { avatar: true, name: true, title: ":name" }
|
||||
opts = default_opts.merge(opts)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
module Integrations
|
||||
class JiraCloudApp < Integration
|
||||
include HasAvatar
|
||||
|
||||
SERVICE_IDS_REGEX = /\A^[A-Za-z0-9=,:]*$\z/
|
||||
SERVICE_IDS_LIMIT = 100
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ module Organizations
|
|||
|
||||
has_many :namespaces
|
||||
has_many :groups
|
||||
has_many :root_groups, -> { roots }, class_name: 'Group', inverse_of: :organization
|
||||
has_many :projects
|
||||
has_many :snippets
|
||||
|
||||
|
|
@ -35,6 +36,8 @@ module Organizations
|
|||
'organizations/path': true,
|
||||
length: { minimum: 2, maximum: 255 }
|
||||
|
||||
validate :check_visibility_level, if: -> { new_record? || visibility_level_changed? }
|
||||
|
||||
delegate :description, :description_html, :avatar, :avatar_url, :remove_avatar!, to: :organization_detail
|
||||
|
||||
accepts_nested_attributes_for :organization_detail
|
||||
|
|
@ -94,6 +97,16 @@ module Organizations
|
|||
|
||||
private
|
||||
|
||||
# The visibility must be broader than the visibility of any contained root groups.
|
||||
def check_visibility_level
|
||||
max_group_level = root_groups.maximum(:visibility_level)
|
||||
return unless max_group_level
|
||||
|
||||
return if visibility_level >= max_group_level
|
||||
|
||||
errors.add(:visibility_level, _("can not be more restrictive than group visibility levels"))
|
||||
end
|
||||
|
||||
def check_if_default_organization
|
||||
return unless default?
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ module Packages
|
|||
class Rule < ApplicationRecord
|
||||
include IgnorableColumns
|
||||
|
||||
ignore_column :push_protected_up_to_access_level, remove_with: '17.3', remove_after: '2024-07-22'
|
||||
|
||||
enum package_type: Packages::Package.package_types.slice(:npm)
|
||||
enum minimum_access_level_for_push:
|
||||
Gitlab::Access.sym_options_with_admin.slice(:maintainer, :owner, :admin),
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
= render_if_exists 'groups/settings/wiki', f: f, group: @group
|
||||
= render 'groups/settings/lfs', f: f
|
||||
= render_if_exists 'groups/settings/auto_assign_duo_pro', f: f, group: @group
|
||||
= render_if_exists 'groups/settings/security/security_policy_management', f: f, group: @group
|
||||
= render_if_exists 'groups/settings/duo_features_enabled', f: f, group: @group
|
||||
= render_if_exists 'groups/settings/experimental_settings', f: f, group: @group
|
||||
= render_if_exists 'groups/settings/product_analytics_settings', f: f, group: @group
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@
|
|||
%span.issuable-authored.gl-hidden.sm:gl-inline-block
|
||||
·
|
||||
- if issue.service_desk_reply_to
|
||||
#{_('created %{timeAgoString} by %{email} via %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), email: issue.present(current_user: current_user).service_desk_reply_to, user: link_to_member(@project, issue.author, avatar: false) }}
|
||||
#{_('created %{timeAgoString} by %{email} via %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), email: issue.present(current_user: current_user).service_desk_reply_to, user: link_to_member(issue.author, avatar: false) }}
|
||||
- else
|
||||
#{s_('IssueList|created %{timeAgoString} by %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), user: link_to_member(@project, issue.author, avatar: false) }}
|
||||
#{s_('IssueList|created %{timeAgoString} by %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(issue.created_at, placement: 'bottom'), user: link_to_member(issue.author, avatar: false) }}
|
||||
- if issue.milestone
|
||||
%span.issuable-milestone.gl-hidden.sm:gl-inline-block
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#{issuable_reference(merge_request)}
|
||||
%span.issuable-authored.gl-inline-block.gl-text-gray-500!
|
||||
·
|
||||
#{s_('IssueList|created %{timeAgoString} by %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(merge_request.created_at, placement: 'bottom'), user: link_to_member(@project, merge_request.author, avatar: false, extra_class: 'gl-text-gray-500!') }}
|
||||
#{s_('IssueList|created %{timeAgoString} by %{user}').html_safe % { timeAgoString: time_ago_with_tooltip(merge_request.created_at, placement: 'bottom'), user: link_to_member(merge_request.author, avatar: false, extra_class: 'gl-text-gray-500!') }}
|
||||
- if merge_request.milestone
|
||||
%span.issuable-milestone.gl-inline-block
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
.detail-page-description.gl-pt-2.gl-pb-4.gl-display-flex.gl-align-items-baseline.gl-flex-wrap{ class: "#{'is-merge-request' if !fluid_layout}" }
|
||||
.js-mr-header{ data: { project_path: @merge_request.project.path_with_namespace, hidden: @merge_request.hidden?.to_s, imported: @merge_request.imported?.to_s, iid: @merge_request.iid, state: @merge_request.state } }
|
||||
= merge_request_header(@project, @merge_request)
|
||||
= merge_request_header(@merge_request)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
.gl-text-secondary.gl-mb-3.gl-mt-2.gl-font-sm
|
||||
= issuable_project_reference(issuable)
|
||||
·
|
||||
= sprintf(s_('created %{issuable_created} by %{author}'), { issuable_created: time_ago_with_tooltip(issuable.created_at, placement: 'bottom'), author: link_to_member(@project, issuable.author, avatar: false) }).html_safe
|
||||
= sprintf(s_('created %{issuable_created} by %{author}'), { issuable_created: time_ago_with_tooltip(issuable.created_at, placement: 'bottom'), author: link_to_member(issuable.author, avatar: false) }).html_safe
|
||||
- if (target_branch = issuable_visible_target_branch(issuable))
|
||||
%span.project-ref-path.has-tooltip.gl-inline-block.gl-text-truncate.gl-max-w-26.gl-align-bottom{ title: _('Target branch: %{target_branch}') % {target_branch: target_branch} }
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
.note-search-caption.gl-max-w-full
|
||||
.gl-font-sm.gl-text-secondary.gl-float-right= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
|
||||
.gl-display-inline-block.gl-text-truncate.search-max-w-inherit.gl-align-bottom
|
||||
.gl-font-bold= link_to_member(project, note.author, avatar: true, extra_class: 'gl-text-black-normal')
|
||||
.gl-font-bold= link_to_member(note.author, avatar: true, extra_class: 'gl-text-black-normal')
|
||||
.gl-text-secondary
|
||||
= _("Commented on %{link_to_project}").html_safe % { link_to_project: link_to(project.full_name, project) }
|
||||
·
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
- more_assignees_count = issuable.assignees.size - render_count
|
||||
|
||||
- issuable.assignees.take(render_count).each do |assignee| # rubocop: disable CodeReuse/ActiveRecord
|
||||
= link_to_member(@project, assignee, name: false, title: s_("MrList|Assigned to %{name}") % { name: assignee.name})
|
||||
= link_to_member(assignee, name: false, title: s_("MrList|Assigned to %{name}") % { name: assignee.name})
|
||||
|
||||
- if more_assignees_count > 0
|
||||
%span{ class: 'avatar-counter has-tooltip', data: { container: 'body', placement: 'bottom', 'line-type' => 'old' }, title: _("+%{more_assignees_count} more assignees") % { more_assignees_count: more_assignees_count} }
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
- more_reviewers_count = issuable.reviewers.size - render_count
|
||||
|
||||
- issuable.reviewers.take(render_count).each do |reviewer| # rubocop: disable CodeReuse/ActiveRecord
|
||||
= link_to_member(@project, reviewer, name: false, title: s_("MrList|Review requested from %{name}") % { name: reviewer.name})
|
||||
= link_to_member(reviewer, name: false, title: s_("MrList|Review requested from %{name}") % { name: reviewer.name})
|
||||
|
||||
- if more_reviewers_count > 0
|
||||
%span{ class: 'avatar-counter has-tooltip', data: { container: 'body', placement: 'bottom', 'line-type' => 'old' }, title: _("+%{more_reviewers_count} more reviewers") % { more_reviewers_count: more_reviewers_count} }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
name: sync_audit_events_to_new_tables
|
||||
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/454175
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158202
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/470481
|
||||
milestone: '17.3'
|
||||
group: group::compliance
|
||||
type: gitlab_com_derisk
|
||||
default_enabled: false
|
||||
|
|
@ -73,6 +73,254 @@ On _each_ Consul server node:
|
|||
If the results display any nodes with a status that isn't `alive`, or if any
|
||||
of the three nodes are missing, see the [Troubleshooting section](#troubleshooting-consul).
|
||||
|
||||
## Securing the Consul nodes
|
||||
|
||||
There are two ways you can secure the communication between the Consul nodes, using either TLS or gossip encryption.
|
||||
|
||||
### TLS encryption
|
||||
|
||||
By default TLS is not enabled for the Consul cluster, the default configuration
|
||||
options and their defaults are:
|
||||
|
||||
```ruby
|
||||
consul['use_tls'] = false
|
||||
consul['tls_ca_file'] = nil
|
||||
consul['tls_certificate_file'] = nil
|
||||
consul['tls_key_file'] = nil
|
||||
consul['tls_verify_client'] = nil
|
||||
```
|
||||
|
||||
These configuration options apply to both client and server nodes.
|
||||
|
||||
To enable TLS on a Consul node start with `consul['use_tls'] = true`. Depending
|
||||
on the role of the node (server or client) and your TLS preferences you need to
|
||||
provide further configuration:
|
||||
|
||||
- On a server node you must at least specify `tls_ca_file`,
|
||||
`tls_certificate_file`, and `tls_key_file`.
|
||||
- On a client node, when client TLS authentication is disabled on the server
|
||||
(enabled by default) you must at least specify `tls_ca_file`, otherwise you have
|
||||
to pass the client TLS certificate and key using `tls_certificate_file`,
|
||||
`tls_key_file`.
|
||||
|
||||
When TLS is enabled, by default the server uses mTLS and listens on both HTTPS
|
||||
and HTTP (and TLS and non-TLS RPC). It expects clients to use TLS
|
||||
authentication. You can disable client TLS authentication by setting
|
||||
`consul['tls_verify_client'] = false`.
|
||||
|
||||
On the other hand, clients only use TLS for outgoing connection to server nodes
|
||||
and only listen on HTTP (and non-TLS RPC) for incoming requests. You can enforce
|
||||
client Consul agents to use TLS for incoming connections by setting
|
||||
`consul['https_port']` to a non-negative integer (`8501` is the Consul's default
|
||||
HTTPS port). You must also pass `tls_certificate_file` and `tls_key_file` for
|
||||
this to work. When server nodes use client TLS authentication, the client TLS
|
||||
certificate and key is used for both TLS authentication and incoming HTTPS
|
||||
connections.
|
||||
|
||||
Consul client nodes do not use TLS client authentication by default (as opposed
|
||||
to servers) and you need to explicitly instruct them to do it by setting
|
||||
`consul['tls_verify_client'] = true`.
|
||||
|
||||
Below are some examples of TLS encryption.
|
||||
|
||||
#### Minimal TLS support
|
||||
|
||||
In the following example, the server uses TLS for incoming connections (without client TLS authentication).
|
||||
|
||||
::Tabs
|
||||
|
||||
:::TabTitle Consul server node
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['enable'] = true
|
||||
consul['configuration'] = {
|
||||
'server' => true
|
||||
}
|
||||
|
||||
consul['use_tls'] = true
|
||||
consul['tls_ca_file'] = '/path/to/ca.crt.pem'
|
||||
consul['tls_certificate_file'] = '/path/to/server.crt.pem'
|
||||
consul['tls_key_file'] = '/path/to/server.key.pem'
|
||||
consul['tls_verify_client'] = false
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
:::TabTitle Consul client node
|
||||
|
||||
The following can be configured on a Patroni node for example.
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['enable'] = true
|
||||
consul['use_tls'] = true
|
||||
consul['tls_ca_file'] = '/path/to/ca.crt.pem'
|
||||
patroni['consul']['url'] = 'http://localhost:8500'
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
Patroni talks to the local Consul agent which does not use TLS for incoming
|
||||
connections. Hence the HTTP URL for `patroni['consul']['url']`.
|
||||
|
||||
::EndTabs
|
||||
|
||||
#### Default TLS support
|
||||
|
||||
In the following example, the server uses mutual TLS authentication.
|
||||
|
||||
::Tabs
|
||||
|
||||
:::TabTitle Consul server node
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['enable'] = true
|
||||
consul['configuration'] = {
|
||||
'server' => true
|
||||
}
|
||||
|
||||
consul['use_tls'] = true
|
||||
consul['tls_ca_file'] = '/path/to/ca.crt.pem'
|
||||
consul['tls_certificate_file'] = '/path/to/server.crt.pem'
|
||||
consul['tls_key_file'] = '/path/to/server.key.pem'
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
:::TabTitle Consul client node
|
||||
|
||||
The following can be configured on a Patroni node for example.
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['enable'] = true
|
||||
consul['use_tls'] = true
|
||||
consul['tls_ca_file'] = '/path/to/ca.crt.pem'
|
||||
consul['tls_certificate_file'] = '/path/to/client.crt.pem'
|
||||
consul['tls_key_file'] = '/path/to/client.key.pem'
|
||||
patroni['consul']['url'] = 'http://localhost:8500'
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
Patroni talks to the local Consul agent which does not use TLS for incoming
|
||||
connections, even though it uses TLS authentication to Consul server nodes.
|
||||
Hence the HTTP URL for `patroni['consul']['url']`.
|
||||
|
||||
::EndTabs
|
||||
|
||||
#### Full TLS support
|
||||
|
||||
In the following example, both client and server use mutual TLS authentication.
|
||||
|
||||
The Consul server, client, and Patroni client certificates must be issued by the
|
||||
same CA for mutual TLS authentication to work.
|
||||
|
||||
::Tabs
|
||||
|
||||
:::TabTitle Consul server node
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['enable'] = true
|
||||
consul['configuration'] = {
|
||||
'server' => true
|
||||
}
|
||||
|
||||
consul['use_tls'] = true
|
||||
consul['tls_ca_file'] = '/path/to/ca.crt.pem'
|
||||
consul['tls_certificate_file'] = '/path/to/server.crt.pem'
|
||||
consul['tls_key_file'] = '/path/to/server.key.pem'
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
:::TabTitle Consul client node
|
||||
|
||||
The following can be configured on a Patroni node for example.
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['enable'] = true
|
||||
consul['use_tls'] = true
|
||||
consul['tls_verify_client'] = true
|
||||
consul['tls_ca_file'] = '/path/to/ca.crt.pem'
|
||||
consul['tls_certificate_file'] = '/path/to/client.crt.pem'
|
||||
consul['tls_key_file'] = '/path/to/client.key.pem'
|
||||
consul['https_port'] = 8501
|
||||
|
||||
patroni['consul']['url'] = 'https://localhost:8501'
|
||||
patroni['consul']['cacert'] = '/path/to/ca.crt.pem'
|
||||
patroni['consul']['cert'] = '/opt/tls/patroni.crt.pem'
|
||||
patroni['consul']['key'] = '/opt/tls/patroni.key.pem'
|
||||
patroni['consul']['verify'] = true
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
::EndTabs
|
||||
|
||||
### Gossip encryption
|
||||
|
||||
The Gossip protocol can be encrypted to secure communication between Consul
|
||||
agents. By default encryption is not enabled, to enable encryption a shared
|
||||
encryption key is required. For convenience, the key can be generated by using
|
||||
the `gitlab-ctl consul keygen` command. The key must be 32 bytes long, Base 64
|
||||
encoded and shared on all agents.
|
||||
|
||||
The following options work on both client and server nodes.
|
||||
|
||||
To enable the gossip protocol:
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
||||
```ruby
|
||||
consul['encryption_key'] = <base-64-key>
|
||||
consul['encryption_verify_incoming'] = true
|
||||
consul['encryption_verify_outgoing'] = true
|
||||
```
|
||||
|
||||
1. Reconfigure GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
To [enable encryption in an existing datacenter](https://learn.hashicorp.com/tutorials/consul/gossip-encryption-secure#enable-on-an-existing-consul-datacenter),
|
||||
manually set these options for a rolling update.
|
||||
|
||||
## Upgrade the Consul nodes
|
||||
|
||||
To upgrade your Consul nodes, upgrade the GitLab package.
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ Component statuses are linked to configuration documentation for each component.
|
|||
| [Gitaly](#gitaly) | Git RPC service for handling all Git calls made by GitLab | ✅ | ✅ | ✅ | ✅ | ✅ | ⚙ | ✅ | CE & EE |
|
||||
| [GitLab Exporter](#gitlab-exporter) | Generates a variety of GitLab metrics | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | CE & EE |
|
||||
| [GitLab Geo](#gitlab-geo) | Geographically distributed GitLab site | ⚙ | ⚙ | ❌ | ❌ | ✅ | ❌ | ⚙ | EE Only |
|
||||
| [GitLab Pages](#gitlab-pages) | Hosts static websites | ⚙ | ⚙ | ❌ | ❌ | ✅ | ⚙ | ⚙ | CE & EE |
|
||||
| [GitLab Pages](#gitlab-pages) | Hosts static websites | ⚙ | ⚙ | ⚙ | ❌ | ✅ | ⚙ | ⚙ | CE & EE |
|
||||
| [GitLab agent](#gitlab-agent) | Integrate Kubernetes clusters in a cloud-native way | ⚙ | ⚙ | ⚙ | ❌ | ❌ | ⤓ | ⚙ | EE Only |
|
||||
| [GitLab self-monitoring: Alertmanager](#alertmanager) | Deduplicates, groups, and routes alerts from Prometheus | ⚙ | ⚙ | ✅ | ⚙ | ✅ | ❌ | ❌ | CE & EE |
|
||||
| [GitLab self-monitoring: Grafana](#grafana) | Metrics dashboard | ✅ | ✅ | ⚙ | ⤓ | ✅ | ❌ | ⚙ | CE & EE |
|
||||
|
|
|
|||
|
|
@ -62,11 +62,12 @@ with the deployed staging AI Gateway. To do this:
|
|||
|
||||
1. Add a **GitLab Ultimate Self-Managed** subscription with a [Duo Pro subscription add-on](../../subscriptions/subscription-add-ons.md) to your GDK instance.
|
||||
|
||||
[Self-purchase your own subscription](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/30a6670d39da223565081cbe46ba17d8e610aad1/doc/flows/buy_subscription.md#buy-subscription) for GitLab Ultimate Self-Managed from the [staging Customers Portal](https://customers.staging.gitlab.com).
|
||||
To do this, send a message to the `#s_fulfillment` or `s_fulfillment_engineering` Slack channels. The team will:
|
||||
|
||||
- Give you instructions or set your account so you do not have to pay for a subscription.
|
||||
- Add the Duo Pro add-on to your account.
|
||||
1. Sign in to the [staging Customers Portal](https://customers.staging.gitlab.com) by selecting the **Continue with GitLab.com account** button.
|
||||
If you do not have an existing account, you are prompted to create one.
|
||||
1. If you do not have an existing cloud activation code, visit the **Ultimate Self-Managed Subscription** page using the [buy subscription flow link](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/8aa922840091ad5c5d96ada43d0065a1b6198841/doc/flows/buy_subscription.md).
|
||||
1. Purchase the subscription using [a test credit card](https://gitlab.com/gitlab-org/customers-gitlab-com/#testing-credit-card-information).
|
||||
1. Once you have a subscription, on the subscription card, select the ellipse menu **...** > **Buy Duo Pro add-on**.
|
||||
1. Use the previously saved credit card information, and the same number of seats as in the subscription.
|
||||
|
||||
After this step is complete, you will have an activation code for a _GitLab Ultimate Self-Managed subscription with a Duo Pro add-on_.
|
||||
|
||||
|
|
@ -80,10 +81,11 @@ with the deployed staging AI Gateway. To do this:
|
|||
export GITLAB_SIMULATE_SAAS=0
|
||||
```
|
||||
|
||||
On a non-GDK instance, you can set the variables using `gitlab_rails['env']` in the `gitlab.rb` file.
|
||||
1. Restart your GDK.
|
||||
1. Go to `/admin/subscription`.
|
||||
1. Optional. Remove any active license.
|
||||
1. Add the new activation code.
|
||||
|
||||
1. Inside your GDK, navigate to Admin area > GitLab Duo Pro, go to `/admin/code_suggestions`
|
||||
1. Inside your GDK, navigate to **Admin area** > **GitLab Duo Pro**, go to `/admin/code_suggestions`
|
||||
1. Filter users to find `root` and click the toggle to assign a GitLab Duo Pro add-on seat to the root user
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ and you can use it to create a value stream with a custom stage.
|
|||
Now that you have a project with collaborators, you can start tracking and visualizing the activity.
|
||||
[Value Stream Analytics](../../user/group/value_stream_analytics/index.md) helps you measure the time it takes
|
||||
to go from an idea to production, and identify inefficiencies in the development process.
|
||||
For a click-through demo of analytics features, see [the Value Stream Management product tour](https://gitlab.navattic.com/vsm).
|
||||
|
||||
To get started, create a value stream in the `My website` project:
|
||||
|
||||
|
|
|
|||
|
|
@ -429,94 +429,3 @@ this case, two SAST jobs run in the pipeline, one with the developer's variables
|
|||
If you want to avoid running duplicate scans, you can either remove the scans from the project's `.gitlab-ci.yml` file or disable your
|
||||
local jobs by setting `SAST_DISABLED: "true"`. Disabling jobs this way does not prevent the security jobs defined by scan execution
|
||||
policies from running.
|
||||
|
||||
## Experimental features
|
||||
|
||||
DETAILS:
|
||||
**Status:** Experiment has ended
|
||||
|
||||
This experiment has concluded and will not continue. After receiving feedback within this experiment, we will be focusing our efforts on a new policy type for enforcement of custom CI. The experiment will be removed in 17.3.
|
||||
|
||||
Learn more about the [pipeline execution policy](pipeline_execution_policies.md).
|
||||
|
||||
### Pipeline execution policy action
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- To enable the pipeline execution policy action feature, a Group owner or administrator must enable
|
||||
the experimental feature:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
1. Select **Settings > General**.
|
||||
1. Expand **Permissions and group features**.
|
||||
1. Select the **Security policy pipeline execution action** checkbox.
|
||||
1. Optional. Select **Enforce for all subgroups**.
|
||||
|
||||
If the setting is not enforced for all subgroups, subgroup owners can manage the setting per subgroup.
|
||||
|
||||
The pipeline execution policy action introduces a new scan action type into
|
||||
scan execution policies for creating and enforcing custom CI in your target
|
||||
development projects.
|
||||
|
||||
This custom scan type uses a remote CI configuration file to define the custom
|
||||
CI you want enforced. Scan execution policies then merge this file with the
|
||||
project's `.gitlab-ci.yml` to execute the compliance jobs for each project
|
||||
enforced by the policy.
|
||||
|
||||
#### `scan` action type
|
||||
|
||||
This action executes the selected `scan` with additional parameters when
|
||||
conditions for at least one rule in the defined policy are met.
|
||||
|
||||
| Field | Type | Possible values | Description |
|
||||
|-------------------------|----------|-----------------|-------------|
|
||||
| `scan` | `string` | `custom` | The action's type. |
|
||||
| `ci_configuration` | `string` | | GitLab CI YAML as formatted as string. |
|
||||
| `ci_configuration_path` | object | | Object with project path and filename pointing to a CI configuration. |
|
||||
|
||||
#### `ci_configuration_path` object
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|-----------|---------------------|----------|-------------|
|
||||
| `project` | `string` | true | A project namespace path. |
|
||||
| `file` | `string` | true | The filename of the CI/CD YAML file. |
|
||||
| `ref` | `string` | false | The branch name, tag name, or commit SHA. If not specified, uses the default branch. |
|
||||
|
||||
Note the following:
|
||||
|
||||
- For `custom` scans, you must specify one of `ci_configuration` or `ci_configuration_path`.
|
||||
- `custom` scans are being executed for triggered rules only.
|
||||
- Jobs variables from `custom` scans take precedence over the project's CI/CD configuration.
|
||||
- Users triggering a pipeline must have at least read access to CI files specified in the `ci_configuration_path` or included in the CI/CD configuration.
|
||||
- It is not possible to define custom stages using the `stages` keyword in a custom scan action. Instead three reserved stages will be added to the pipeline:
|
||||
- `.pipeline-policy-pre`at the beginning of the pipeline, before the `.pre` stage.
|
||||
- `.pipeline-policy-test` after the `test` stage. If the `test` stage does not exist, it will be injected after the `build` stage. If the `build` stage does not exist, it will be injected at the beginning of the pipeline after the `.pre` stage.
|
||||
- `.pipeline-policy-post` at the very end of the pipeline, after the .post stage.
|
||||
- Jobs without a stage are assigned to the `.pipeline-policy-test` stage by default.
|
||||
- It is not possible to assign jobs to reserved stages outside of a custom scan action.
|
||||
|
||||
#### Example security policies project
|
||||
|
||||
You can use this example in a `.gitlab/security-policies/policy.yml` file stored in a
|
||||
[security policy project](index.md#security-policy-project):
|
||||
|
||||
```yaml
|
||||
---
|
||||
scan_execution_policy:
|
||||
- name: Create a custom scan that injects test job
|
||||
description: This policy enforces pipeline configuration to have a job with DAST scan for release branches
|
||||
enabled: true
|
||||
rules:
|
||||
- type: pipeline
|
||||
branches:
|
||||
- release/*
|
||||
actions:
|
||||
- scan: custom
|
||||
ci_configuration: |-
|
||||
test job:
|
||||
stage: test
|
||||
script:
|
||||
- echo "Hello World"
|
||||
```
|
||||
|
||||
In this example a `test job` is injected into the `test` stage of the pipeline, printing `Hello World`.
|
||||
|
|
|
|||
|
|
@ -154,27 +154,34 @@ If, on the other hand, the class being analyzed is part of your project, conside
|
|||
|
||||
This occurs when Flawfinder encounters an invalid UTF-8 character. To fix this, apply [their documented advice](https://github.com/david-a-wheeler/flawfinder#character-encoding-errors) to your entire repository, or only per job using the [`before_script`](../../../ci/yaml/index.md#before_script) feature.
|
||||
|
||||
You can configure the `before_script` section in each `.gitlab-ci.yml` file, or use a [pipeline execution policy action](../policies/scan-execution-policies.md#pipeline-execution-policy-action) to install the encoder and run the converter command. For example, you can add a `before_script` section to the `flawfinder-sast-0` job generated from the execution policy to convert all files with a `.cpp` extension.
|
||||
You can configure the `before_script` section in each `.gitlab-ci.yml` file, or use a [pipeline execution policy](../policies/pipeline_execution_policies.md) to install the encoder and run the converter command. For example, you can add a `before_script` section to the `flawfinder-sast` job generated from the security scanner template to convert all files with a `.cpp` extension.
|
||||
|
||||
### Example pipeline execution policy YAML
|
||||
|
||||
```yaml
|
||||
---
|
||||
scan_execution_policy:
|
||||
pipeline_execution_policy:
|
||||
- name: SAST
|
||||
description: 'Run SAST on C++ application'
|
||||
enabled: true
|
||||
rules:
|
||||
- type: pipeline
|
||||
branch_type: all
|
||||
actions:
|
||||
- scan: sast
|
||||
- scan: custom
|
||||
ci_configuration: |-
|
||||
flawfinder-sast-0:
|
||||
before_script:
|
||||
- pip install cvt2utf
|
||||
- cvt2utf convert "$PWD" -i cpp
|
||||
pipeline_config_strategy: inject_ci
|
||||
content:
|
||||
include:
|
||||
- project: my-group/compliance-project
|
||||
file: flawfinder.yml
|
||||
ref: main
|
||||
```
|
||||
|
||||
`flawfinder.yml`:
|
||||
|
||||
```yaml
|
||||
include:
|
||||
- template: Security/SAST.gitlab-ci.yml
|
||||
|
||||
flawfinder-sast:
|
||||
before_script:
|
||||
- pip install cvt2utf
|
||||
- cvt2utf convert "$PWD" -i cpp
|
||||
```
|
||||
|
||||
## Semgrep slowness, unexpected results, or other errors
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ The following features are extended from standard Markdown:
|
|||
| Standard Markdown | Extended Markdown in GitLab |
|
||||
|---------------------------------------|---------------------------------------------------------------------------------------|
|
||||
| [Blockquotes](#blockquotes) | [Multiline blockquotes](#multiline-blockquote) |
|
||||
| [Code blocks](#code-spans-and-blocks) | [Colored code and syntax highlighting](#colored-code-and-syntax-highlighting) |
|
||||
| [Code blocks](#code-spans-and-blocks) | [Colored code and syntax highlighting](#syntax-highlighting) |
|
||||
| [Headings](#headings) | [Linkable heading IDs](#heading-ids-and-links) |
|
||||
| [Images](#images) | [Embedded videos](#videos) and [audio](#audio) |
|
||||
| [Links](#links) | [Automatically linking URLs](#url-auto-linking) |
|
||||
|
|
@ -846,9 +846,9 @@ is like using
|
|||
Tildes are OK too.
|
||||
```
|
||||
|
||||
### Colored code and syntax highlighting
|
||||
### Syntax highlighting
|
||||
|
||||
[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colored-code-and-syntax-highlighting).
|
||||
[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#syntax-highlighting).
|
||||
|
||||
GitLab uses the [Rouge Ruby library](https://github.com/rouge-ruby/rouge) for more colorful syntax
|
||||
highlighting in code blocks. For a list of supported languages visit the
|
||||
|
|
|
|||
|
|
@ -90,35 +90,6 @@ The following table lists project permissions available for each role:
|
|||
| [Incident Management](../operations/incident_management/index.md):<br>Change [incident escalation policy](../operations/incident_management/manage_incidents.md#change-escalation-policy) | | | ✓ | ✓ | ✓ | |
|
||||
| [Incident Management](../operations/incident_management/index.md):<br>Manage [on-call schedules](../operations/incident_management/oncall_schedules.md) | | | | ✓ | ✓ | |
|
||||
| [Incident Management](../operations/incident_management/index.md):<br>Manage [escalation policies](../operations/incident_management/escalation_policies.md) | | | | ✓ | ✓ | |
|
||||
| [Issue boards](project/issue_board.md):<br>Create or delete lists | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issue boards](project/issue_board.md):<br>Move issues between lists | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Add Labels | ✓ | ✓ | ✓ | ✓ | ✓ | Guest users can only set metadata (for example, labels, assignees, or milestones) when creating an issue. They cannot change the metadata on existing issues. |
|
||||
| [Issues](project/issues/index.md):<br>Add to epic | | ✓ | ✓ | ✓ | ✓ | You must have permission to [view the epic](group/epics/manage_epics.md#who-can-view-an-epic). |
|
||||
| [Issues](project/issues/index.md):<br>Assign | ✓ | ✓ | ✓ | ✓ | ✓ | Guest users can only set metadata (for example, labels, assignees, or milestones) when creating an issue. They cannot change the metadata on existing issues. |
|
||||
| [Issues](project/issues/index.md):<br>Create | ✓ | ✓ | ✓ | ✓ | ✓ | Authors and assignees can modify the title and description even if they don't have the Reporter role. |
|
||||
| [Issues](project/issues/index.md):<br>Create [confidential issues](project/issues/confidential_issues.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>View [Design Management](project/issues/design_management.md) pages | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>View [related issues](project/issues/related_issues.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Set [weight](project/issues/issue_weight.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Set metadata such as labels, milestones, or assignees when creating an issue | ✓ | ✓ | ✓ | ✓ | ✓ | Guest users can only set metadata (for example, labels, assignees, or milestones) when creating an issue. They cannot change the metadata on existing issues. |
|
||||
| [Issues](project/issues/index.md):<br>Edit metadata such labels, milestones, or assignees for an existing issue | | ✓ | ✓ | ✓ | ✓ | Guest users can only set metadata (for example, labels, assignees, or milestones) when creating an issue. They cannot change the metadata on existing issues. |
|
||||
| [Issues](project/issues/index.md):<br>Set [parent epic](group/epics/manage_epics.md#add-an-existing-issue-to-an-epic) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>View [confidential issues](project/issues/confidential_issues.md) | | ✓ | ✓ | ✓ | ✓ | Guest users can only view the [confidential issues](project/issues/confidential_issues.md) they created themselves or are assigned to. |
|
||||
| [Issues](project/issues/index.md):<br>Close / reopen | | ✓ | ✓ | ✓ | ✓ | Authors and assignees can close and reopen issues even if they don't have the Reporter role. |
|
||||
| [Issues](project/issues/index.md):<br>Lock threads | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Manage [related issues](project/issues/related_issues.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Manage tracker | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Move issues | | ✓ | ✓ | ✓ | ✓ | Attached design files are moved together with the issue. |
|
||||
| [Issues](project/issues/index.md):<br>Set issue [time tracking](project/time_tracking.md) estimate and time spent | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Archive [Design Management](project/issues/design_management.md) files | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Upload [Design Management](project/issues/design_management.md) files | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Issues](project/issues/index.md):<br>Delete | | | | | ✓ | |
|
||||
| [Objectives and key results](okrs.md):<br>Add a child OKR | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Objectives and key results](okrs.md):<br>Add a linked item | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Objectives and key results](okrs.md):<br>Create | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Objectives and key results](okrs.md):<br>View | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Objectives and key results](okrs.md):<br>Change confidentiality | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Objectives and key results](okrs.md):<br>Edit | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Package registry](packages/index.md):<br>Pull a package | ✓ | ✓ | ✓ | ✓ | ✓ | On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). [External users](../administration/external_users.md) must be given explicit access (at least the **Reporter** role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available. |
|
||||
| [Package registry](packages/index.md):<br>Publish a package | | | ✓ | ✓ | ✓ | |
|
||||
| [Package registry](packages/index.md):<br>Delete a package | | | | ✓ | ✓ | |
|
||||
|
|
@ -133,20 +104,15 @@ The following table lists project permissions available for each role:
|
|||
| [Projects](project/index.md):<br>View [releases](project/releases/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | Guest users can access GitLab [**Releases**](project/releases/index.md) for downloading assets but are not allowed to download the source code nor see [repository information like commits and release evidence](project/releases/index.md#view-a-release-and-download-assets). |
|
||||
| [Projects](project/index.md):<br>View [Requirements](project/requirements/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>View [time tracking](project/time_tracking.md) reports | ✓ | ✓ | ✓ | ✓ | ✓ | On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). [External users](../administration/external_users.md) must be given explicit access (at least the **Reporter** role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available. |
|
||||
| [Projects](project/index.md):<br>View [wiki](project/wiki/index.md) pages | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Create [snippets](snippets.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Manage labels | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>View [project traffic statistics](../api/project_statistics.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Create, edit, delete [milestones](project/milestones/index.md). | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Create, edit, delete [releases](project/releases/index.md) | | | ✓ | ✓ | ✓ | If the [tag is protected](project/protected_tags.md), this depends on the access given to Developers and Maintainers. |
|
||||
| [Projects](project/index.md):<br>Create, edit [wiki](project/wiki/index.md) pages | | | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Enable [review apps](../ci/review_apps/index.md) | | | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Add [deploy keys](project/deploy_keys/index.md) | | | | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Add new [team members](project/members/index.md) | | | | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Manage [team members](project/members/index.md) | | | | ✓ | ✓ | Maintainers cannot create, demote, or remove Owners, and they cannot promote users to the Owner role. They also cannot approve Owner role access requests. |
|
||||
| [Projects](project/index.md):<br>Change [project features visibility](public_access.md) level | | | | ✓ | ✓ | A Maintainer or Owner can't change project features visibility level if [project visibility](public_access.md) is set to private. |
|
||||
| [Projects](project/index.md):<br>Configure [webhooks](project/integrations/webhooks.md) | | | | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Delete [wiki](project/wiki/index.md) pages | | | ✓ | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Edit comments (posted by any user) | | | | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Edit project badges | | | | ✓ | ✓ | |
|
||||
| [Projects](project/index.md):<br>Edit project settings | | | | ✓ | ✓ | |
|
||||
|
|
@ -165,11 +131,6 @@ The following table lists project permissions available for each role:
|
|||
| [Requirements Management](project/requirements/index.md):<br>Archive / reopen | | ✓ | ✓ | ✓ | ✓ | Authors and assignees can archive and re-open even if they don't have the Reporter role. |
|
||||
| [Requirements Management](project/requirements/index.md):<br>Create / edit | | ✓ | ✓ | ✓ | ✓ | Authors and assignees can modify the title and description even if they don't have the Reporter role.|
|
||||
| [Requirements Management](project/requirements/index.md):<br>Import / export | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Tasks](tasks.md):<br>Add a linked item | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Tasks](tasks.md):<br>Create | | ✓ | ✓ | ✓ | ✓ | Authors and assignees can modify the title and description even if they don't have the Reporter role. |
|
||||
| [Tasks](tasks.md):<br>Edit | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Tasks](tasks.md):<br>Remove from issue | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| [Tasks](tasks.md):<br>Delete | | | | | ✓ | Authors of tasks can delete them even if they don't have the Owner role, but they have to have at least the Guest role for the project. |
|
||||
| [Terraform](infrastructure/index.md):<br>Read Terraform state | | | ✓ | ✓ | ✓ | |
|
||||
| [Terraform](infrastructure/index.md):<br>Manage Terraform state | | | | ✓ | ✓ | |
|
||||
| [Test cases](../ci/test_cases/index.md):<br>Archive | | ✓ | ✓ | ✓ | ✓ | |
|
||||
|
|
@ -179,7 +140,7 @@ The following table lists project permissions available for each role:
|
|||
|
||||
### Application Security
|
||||
|
||||
Project permissions for [Application Security](application_security/secure_your_application.md) features including dependency management, security analyzers, security policies, and vulnerability management.
|
||||
Project permissions for [application security](application_security/secure_your_application.md) features including dependency management, security analyzers, security policies, and vulnerability management.
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
|
|
@ -208,6 +169,52 @@ Project permissions for [compliance](compliance/index.md) features including com
|
|||
| Create, edit, and delete license approval policies | | | ✓ | ✓ | ✓ | |
|
||||
| Manage [audit streams](compliance/audit_event_streaming.md) | | | | | ✓ | |
|
||||
|
||||
### Project planning
|
||||
|
||||
Project permissions for [issues](project/issues/index.md):
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|-----------------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
| View issues | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create issues | ✓ | ✓ | ✓ | ✓ | ✓ | Authors and assignees can modify the title and description even if they don't have the Reporter role. |
|
||||
| View [confidential issues](project/issues/confidential_issues.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Update metadata on issues | | ✓ | ✓ | ✓ | ✓ | Metadata includes labels, assignees, milestones, epics, weight, confidentiality, time tracking, and more.<br /><br />Guest users can only set metadata when creating an issue. They cannot change the metadata on existing issues. |
|
||||
| Close / reopen issues | | ✓ | ✓ | ✓ | ✓ | Authors and assignees can close and reopen issues even if they don't have the Reporter role. |
|
||||
| Manage [design management](project/issues/design_management.md) files | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Manage [issue boards](project/issue_board.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Manage [milestones](project/milestones/index.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Delete issues | | | | | ✓ | |
|
||||
|
||||
Project permissions for [tasks](tasks.md):
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|-------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
| View tasks | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create tasks | ✓ | ✓ | ✓ | ✓ | ✓ | Guest users can create tasks for issues they authored. Authors and assignees can modify the title and description even if they don't have the Reporter role. |
|
||||
| Add a linked item | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Edit tasks | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Remove from issue | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Delete tasks | | | | | ✓ | Authors of tasks can delete them even if they don't have the Owner role. |
|
||||
|
||||
Project permissions for [OKRs](okrs.md):
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|-------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
| View OKRs | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create OKRs | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Add a child OKR | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Add a linked item | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Edit OKRs | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Change confidentiality in OKR | | ✓ | ✓ | ✓ | ✓ | |
|
||||
|
||||
Project permissions for [wikis](project/wiki/index.md):
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|----------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
| View wiki | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create and edit wiki pages | | | ✓ | ✓ | ✓ | |
|
||||
| Delete wiki pages | | | ✓ | ✓ | ✓ | |
|
||||
|
||||
### Repository
|
||||
|
||||
Project permissions for [repository](project/repository/index.md) features including source code, branches, push rules, and more:
|
||||
|
|
@ -324,34 +331,23 @@ The following table lists group permissions available for each role:
|
|||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|-----------------------------------------------------------------------------------------|-------|----------|-----------|------------|-------|-------|
|
||||
| Add an issue to an [epic](group/epics/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | You must have permission to [view the epic](group/epics/manage_epics.md#who-can-view-an-epic) and edit the issue. |
|
||||
| Add/remove [child epics](group/epics/manage_epics.md#multi-level-child-epics) | ✓ | ✓ | ✓ | ✓ | ✓ | You must have permission to [view](group/epics/manage_epics.md#who-can-view-an-epic) the parent and child epics. |
|
||||
| Browse group | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Pull a container image using the dependency proxy | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Pull a container registry image | ✓ | ✓ | ✓ | ✓ | ✓ | Guests can only view events based on their individual actions. |
|
||||
| View [group wiki](project/wiki/group.md) pages | ✓ | ✓ | ✓ | ✓ | ✓ | Guests: In addition, if your group is public or internal, all users who can see the group can also see group wiki pages. |
|
||||
| View [Insights](project/insights/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View [Insights](project/insights/index.md) charts | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View [Issue analytics](group/issues_analytics/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View Contribution analytics | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View group [epic](group/epics/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View value stream analytics | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create/edit group [epic](group/epics/index.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create/edit/delete [epic boards](group/epics/epic_boards.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create/edit/delete group milestones | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Create/edit/delete iterations | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Manage group labels | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Pull [packages](packages/index.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View [Group DevOps Adoption](group/devops_adoption/index.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View [Productivity analytics](analytics/productivity_analytics.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| View metrics dashboard annotations | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Publish [packages](packages/index.md) | | | ✓ | ✓ | ✓ | |
|
||||
| Remove a container registry image | | | ✓ | ✓ | ✓ | |
|
||||
| Create and edit [group wiki](project/wiki/group.md) pages | | | ✓ | ✓ | ✓ | |
|
||||
| Create project in group | | | ✓ | ✓ | ✓ | Developers, Maintainers and Owners: Only if the project creation role is set at the [instance level](../administration/settings/visibility_and_access_controls.md#define-which-roles-can-create-projects) or the [group level](group/index.md#specify-who-can-add-projects-to-a-group).<br><br>Developers: Developers can push commits to the default branch of a new project only if the [default branch protection](group/manage.md#change-the-default-branch-protection-of-a-group) is set to "Partially protected" or "Not protected". |
|
||||
| Create/edit/delete metrics dashboard annotations | | | ✓ | ✓ | ✓ | |
|
||||
| View group audit events | | | ✓ | ✓ | ✓ | Developers and Maintainers can only view events based on their individual actions. |
|
||||
| Delete [group wiki](project/wiki/group.md) pages | | | ✓ | ✓ | ✓ | |
|
||||
| Create subgroup | | | | ✓ | ✓ | Maintainers: Only if users with the Maintainer role [can create subgroups](group/subgroups/index.md#change-who-can-create-subgroups). |
|
||||
| Create/edit/delete [Maven](packages/maven_repository/index.md#do-not-allow-duplicate-maven-packages), [generic](packages/generic_packages/index.md#do-not-allow-duplicate-generic-packages), [NuGet](packages/nuget_repository/index.md#do-not-allow-duplicate-nuget-packages), and [Terraform Modules](packages/terraform_module_registry/index.md#allow-duplicate-terraform-modules) package duplicate settings | | | | | ✓ | |
|
||||
| Create/edit/delete dependency proxy [cleanup policies](packages/dependency_proxy/reduce_dependency_proxy_storage.md#cleanup-policies) | | | | | ✓ | |
|
||||
|
|
@ -366,7 +362,6 @@ The following table lists group permissions available for each role:
|
|||
| Create and manage compliance frameworks | | | | | ✓ | |
|
||||
| Create/Delete [group access tokens](group/settings/group_access_tokens.md) | | | | | ✓ | |
|
||||
| Delete group | | | | | ✓ | |
|
||||
| Delete group [epic](group/epics/index.md) | | | | | ✓ | |
|
||||
| Disable notification emails | | | | | ✓ | |
|
||||
| Edit [SAML SSO](group/saml_sso/index.md) | | | | | ✓ | Does not apply to subgroups |
|
||||
| Edit group settings | | | | | ✓ | |
|
||||
|
|
@ -410,6 +405,36 @@ Groups permissions for [compliance](compliance/index.md) features including comp
|
|||
| Manage [compliance frameworks](group/compliance_frameworks.md) | | | | | ✓ | |
|
||||
| Assign [compliance frameworks](group/compliance_frameworks.md) to projects | | | | | ✓ | |
|
||||
|
||||
### Project planning
|
||||
|
||||
Group permissions for project planning features including iterations, milestones, and labels:
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|-------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
| Manage group labels | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Manage group milestones | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Manage iterations | | ✓ | ✓ | ✓ | ✓ | |
|
||||
|
||||
Group permisisons for [epics](group/epics/index.md):
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|:------------------------------------------------------------------------------|:------|:---------|:----------|:-----------|:------|:------|
|
||||
| View epic | ✓ | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Add an issue to an [epic](group/epics/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | You must have permission to [view the epic](group/epics/manage_epics.md#who-can-view-an-epic) and edit the issue. |
|
||||
| Add/remove [child epics](group/epics/manage_epics.md#multi-level-child-epics) | ✓ | ✓ | ✓ | ✓ | ✓ | You must have permission to [view](group/epics/manage_epics.md#who-can-view-an-epic) the parent and child epics. |
|
||||
| Create epic | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Edit epic | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Manage [epic boards](group/epics/epic_boards.md) | | ✓ | ✓ | ✓ | ✓ | |
|
||||
| Delete epic | | | | | ✓ | |
|
||||
|
||||
Group permissions for [wikis](project/wiki/group.md):
|
||||
|
||||
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|
||||
|----------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
|
||||
| View group wiki | ✓ | ✓ | ✓ | ✓ | ✓ | Guests: In addition, if your group is public or internal, all users who can see the group can also see group wiki pages. |
|
||||
| Create and edit group wiki pages | | | ✓ | ✓ | ✓ | |
|
||||
| Delete group wiki pages | | | ✓ | ✓ | ✓ | |
|
||||
|
||||
### Repository
|
||||
|
||||
Group permissions for [repository](project/repository/index.md) features including merge requests, push rules, and deploy tokens.
|
||||
|
|
|
|||
|
|
@ -139,3 +139,7 @@ Rails/StrongParams:
|
|||
Enabled: true
|
||||
Include:
|
||||
- '**/controllers/**/*'
|
||||
|
||||
# This cop doesn't make sense in the context of gems
|
||||
Gitlab/NoFindInWorkers:
|
||||
Enabled: false
|
||||
|
|
|
|||
|
|
@ -9,6 +9,13 @@ module Gitlab
|
|||
::Operations::FeatureFlag
|
||||
].freeze
|
||||
|
||||
ENTITY_TYPE_TO_CLASS = {
|
||||
'User' => AuditEvents::UserAuditEvent,
|
||||
'Project' => AuditEvents::ProjectAuditEvent,
|
||||
'Group' => AuditEvents::GroupAuditEvent,
|
||||
'Gitlab::Audit::InstanceScope' => AuditEvents::InstanceAuditEvent
|
||||
}.freeze
|
||||
|
||||
# Record audit events
|
||||
#
|
||||
# @param [Hash] context
|
||||
|
|
@ -102,6 +109,7 @@ module Gitlab
|
|||
def log_events_and_stream(events)
|
||||
log_authentication_event
|
||||
saved_events = log_to_database(events)
|
||||
log_to_new_tables(saved_events)
|
||||
|
||||
# we only want to override events with saved_events when it successfully saves into database.
|
||||
# we are doing so to ensure events in memory reflects events saved in database and have id column.
|
||||
|
|
@ -189,6 +197,15 @@ module Gitlab
|
|||
::Gitlab::ErrorTracking.track_exception(e, audit_operation: @name)
|
||||
end
|
||||
|
||||
def log_to_new_tables(events)
|
||||
return if events.blank?
|
||||
return unless Feature.enabled?(:sync_audit_events_to_new_tables, Feature.current_request)
|
||||
|
||||
events.each { |event| log_event(event) }
|
||||
rescue ActiveRecord::RecordInvalid => e
|
||||
::Gitlab::ErrorTracking.track_exception(e, audit_operation: @name)
|
||||
end
|
||||
|
||||
def log_to_file(events)
|
||||
file_logger = ::Gitlab::AuditJsonLogger.build
|
||||
|
||||
|
|
@ -197,6 +214,40 @@ module Gitlab
|
|||
|
||||
private
|
||||
|
||||
def log_event(event)
|
||||
event_class = ENTITY_TYPE_TO_CLASS[event.entity_type.to_s]
|
||||
event_class.create!(build_event_attributes(event))
|
||||
end
|
||||
|
||||
def build_event_attributes(event)
|
||||
{
|
||||
id: event.id,
|
||||
created_at: event.created_at,
|
||||
author_id: event.author_id,
|
||||
target_id: event.target_id,
|
||||
event_name: @name,
|
||||
details: event.details,
|
||||
ip_address: event.ip_address,
|
||||
author_name: event.author_name,
|
||||
entity_path: event.entity_path,
|
||||
target_details: event.target_details,
|
||||
target_type: event.target_type
|
||||
}.merge(additional_attributes(event))
|
||||
end
|
||||
|
||||
def additional_attributes(event)
|
||||
case event.entity_type
|
||||
when 'User'
|
||||
{ user_id: event.entity_id }
|
||||
when 'Project'
|
||||
{ project_id: event.entity_id }
|
||||
when 'Group'
|
||||
{ group_id: event.entity_id }
|
||||
else
|
||||
{}
|
||||
end
|
||||
end
|
||||
|
||||
def log_payload(event)
|
||||
payload = event.as_json
|
||||
details = formatted_details(event.details)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module Gitlab
|
|||
image: 'illustrations/empty-state/empty-job-failed-md.svg',
|
||||
size: '',
|
||||
title: _('Failed to create resources'),
|
||||
content: _('Retry this job in order to create the necessary resources.')
|
||||
content: _('Run this job again in order to create the necessary resources.')
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ module Gitlab
|
|||
end
|
||||
|
||||
def action_button_title
|
||||
_('Retry this job')
|
||||
_('Run this job again')
|
||||
end
|
||||
|
||||
def action_path
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ module Gitlab
|
|||
yield line.chomp
|
||||
end
|
||||
|
||||
log_error(stderr.read.color(:red)) unless status_thread.value.success?
|
||||
log_error(Rainbow(stderr.read).red) unless status_thread.value.success?
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ module Gitlab
|
|||
|
||||
def run!(dry_run: false)
|
||||
unless configuration.enabled
|
||||
logger.warn "Object storage not enabled. Exit".color(:yellow)
|
||||
logger.warn Rainbow("Object storage not enabled. Exit").yellow
|
||||
|
||||
return
|
||||
end
|
||||
|
|
|
|||
|
|
@ -17,23 +17,6 @@ module Gitlab
|
|||
Thread.current[STORE_KEY]
|
||||
end
|
||||
|
||||
def session_id_for_worker
|
||||
session = self.current
|
||||
|
||||
return unless session
|
||||
|
||||
if session.is_a?(ActionDispatch::Request::Session)
|
||||
session.id.private_id
|
||||
elsif session.respond_to?(:[]) # Hash-like
|
||||
session['set_session_id']
|
||||
else
|
||||
raise("Unsupported session class: #{session.class}")
|
||||
end
|
||||
rescue StandardError => e
|
||||
Gitlab::ErrorTracking.track_and_raise_for_dev_exception(e)
|
||||
nil
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def current=(value)
|
||||
|
|
@ -42,3 +25,5 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
Gitlab::Session.prepend_mod
|
||||
|
|
|
|||
|
|
@ -1054,6 +1054,9 @@ msgid_plural "%{no_of_days} days"
|
|||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
msgid "%{numOfSteps} steps across %{numOfFiles} files"
|
||||
msgstr ""
|
||||
|
||||
msgid "%{numberOfSelectedTags} tags"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -13417,10 +13420,10 @@ msgstr ""
|
|||
msgid "Compliance center"
|
||||
msgstr ""
|
||||
|
||||
msgid "Compliance framework"
|
||||
msgid "Compliance framework settings have moved."
|
||||
msgstr ""
|
||||
|
||||
msgid "Compliance framework settings have moved."
|
||||
msgid "Compliance frameworks"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceChainOfCustody| Chain of custody export"
|
||||
|
|
@ -13638,10 +13641,7 @@ msgstr ""
|
|||
msgid "ComplianceFramework|No compliance frameworks are set up yet"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Add framework"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Apply framework to selected projects"
|
||||
msgid "ComplianceReport|Apply frameworks to selected projects"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Approved by author"
|
||||
|
|
@ -13656,9 +13656,6 @@ msgstr ""
|
|||
msgid "ComplianceReport|Choose one bulk action"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Choose one framework"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Compliance framework"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -13680,10 +13677,7 @@ msgstr ""
|
|||
msgid "ComplianceReport|For more information, see %{linkStart}how to migrate from compliance pipelines to pipeline execution policy actions%{linkEnd}."
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Framework successfully applied"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Framework successfully removed"
|
||||
msgid "ComplianceReport|Frameworks have been successfully updated."
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Full target branch name"
|
||||
|
|
@ -13695,6 +13689,9 @@ msgstr ""
|
|||
msgid "ComplianceReport|Migrate pipeline to a policy"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|No frameworks"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|No frameworks found"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -13710,7 +13707,7 @@ msgstr ""
|
|||
msgid "ComplianceReport|No violations found. Change search options and try again"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Remove framework from selected projects"
|
||||
msgid "ComplianceReport|Remove frameworks from selected projects"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Search target branch"
|
||||
|
|
@ -13719,6 +13716,9 @@ msgstr ""
|
|||
msgid "ComplianceReport|Select at least one project to apply the bulk action"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Select frameworks"
|
||||
msgstr ""
|
||||
|
||||
msgid "ComplianceReport|Unable to load the compliance framework projects report. Refresh the page and try again."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -15474,9 +15474,6 @@ msgstr ""
|
|||
msgid "Create an incident. Incidents are created for each alert triggered."
|
||||
msgstr ""
|
||||
|
||||
msgid "Create and enforce custom CI jobs and scripts using this new policy action. %{link_start}Learn more%{link_end}."
|
||||
msgstr ""
|
||||
|
||||
msgid "Create branch"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -25633,9 +25630,6 @@ msgstr ""
|
|||
msgid "GroupSettings|Reporting"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Security policy management"
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|Select a project"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -25714,9 +25708,6 @@ msgstr ""
|
|||
msgid "GroupSettings|When disabled, members cannot use runner registration tokens to register runners. Members can use runner authentication tokens instead as the more secure registration method."
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|When you enable any of these features, you accept the %{link_start}GitLab Testing Agreement%{link_end}."
|
||||
msgstr ""
|
||||
|
||||
msgid "GroupSettings|You must have the Owner role in the target group"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -34773,6 +34764,9 @@ msgstr ""
|
|||
msgid "Next scan"
|
||||
msgstr ""
|
||||
|
||||
msgid "Next step"
|
||||
msgstr ""
|
||||
|
||||
msgid "Next unresolved thread"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -39378,6 +39372,18 @@ msgstr ""
|
|||
msgid "Pipeline|Test coverage"
|
||||
msgstr ""
|
||||
|
||||
msgid "Pipeline|There was a problem canceling the job."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pipeline|There was a problem running the job again."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pipeline|There was a problem running the job."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pipeline|There was a problem unscheduling the job."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pipeline|This change will decrease the overall test coverage if merged."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -40080,6 +40086,9 @@ msgstr ""
|
|||
msgid "Previous file in diff"
|
||||
msgstr ""
|
||||
|
||||
msgid "Previous step"
|
||||
msgstr ""
|
||||
|
||||
msgid "Previous unresolved thread"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -45009,12 +45018,6 @@ msgstr ""
|
|||
msgid "Retry migration"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retry this job"
|
||||
msgstr ""
|
||||
|
||||
msgid "Retry this job in order to create the necessary resources."
|
||||
msgstr ""
|
||||
|
||||
msgid "Retry verification"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -45200,6 +45203,12 @@ msgstr ""
|
|||
msgid "Run tests against your code live using the Web Terminal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run this job again"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run this job again in order to create the necessary resources."
|
||||
msgstr ""
|
||||
|
||||
msgid "Run untagged jobs"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -49954,9 +49963,6 @@ msgstr ""
|
|||
msgid "Settings saved successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings|Security policy pipeline execution action"
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings|Unable to load the merge request options settings. Try reloading the page."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -58987,6 +58993,12 @@ msgstr ""
|
|||
msgid "Vulnerability|%{scannerName} (version %{scannerVersion})"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|A 'sink' is where untrusted data is used in a potentially risky way, such as in SQL queries or HTML output. Sink points are monitored to prevent security vulnerabilities in the software."
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|A 'source' refers to untrusted inputs like user data or external data sources. These inputs can introduce security risks into the software system and are monitored to prevent vulnerabilities."
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|A solution is available for this vulnerability"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -59023,6 +59035,9 @@ msgstr ""
|
|||
msgid "Vulnerability|Code flow"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|Code flow helps trace and flag risky data ('tainted data') as it moves through your software. Vulnerabilities are detected by pinpointing how untrusted inputs, like user data or network traffic, are utilized. This technique finds and fixes data handling flaws, securing software from injection and cross-site scripting attacks."
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|Comments"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -59176,6 +59191,9 @@ msgstr ""
|
|||
msgid "Vulnerability|Status:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|Steps"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|The scanner determined this vulnerability to be a false positive. Verify the evaluation before changing its status. %{linkStart}Learn more about false positive detection.%{linkEnd}"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -59215,9 +59233,15 @@ msgstr ""
|
|||
msgid "Vulnerability|Warning: possible secrets detected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|What is code flow?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|You can also %{message}."
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|code area"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vulnerability|code_flow"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -62355,6 +62379,9 @@ msgstr ""
|
|||
msgid "can not be changed when assigned to an epic"
|
||||
msgstr ""
|
||||
|
||||
msgid "can not be more restrictive than group visibility levels"
|
||||
msgstr ""
|
||||
|
||||
msgid "can not be set for template labels"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
"@gitlab/cluster-client": "^2.2.0",
|
||||
"@gitlab/favicon-overlay": "2.0.0",
|
||||
"@gitlab/fonts": "^1.3.0",
|
||||
"@gitlab/svgs": "3.105.0",
|
||||
"@gitlab/svgs": "3.106.0",
|
||||
"@gitlab/ui": "86.11.1",
|
||||
"@gitlab/web-ide": "^0.0.1-dev-20240613133550",
|
||||
"@mattiasbuelens/web-streams-adapter": "^0.1.0",
|
||||
|
|
|
|||
|
|
@ -2,11 +2,7 @@
|
|||
|
||||
module QA
|
||||
RSpec.describe 'Data Stores' do
|
||||
describe 'Project owner permissions', :smoke, product_group: :tenant_scale,
|
||||
quarantine: {
|
||||
issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/469562',
|
||||
type: :investigating
|
||||
} do
|
||||
describe 'Project owner permissions', :smoke, product_group: :tenant_scale do
|
||||
let!(:owner) do
|
||||
Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
module Gitlab
|
||||
# Checks for use of ActiveRecord find in Sidekiq workers.
|
||||
#
|
||||
# @example
|
||||
# # bad
|
||||
# class ExampleWorker
|
||||
# def perform
|
||||
# record = Klass.find(id)
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# # good
|
||||
# class ExampleWorker
|
||||
# def perform
|
||||
# record = Klass.find_by_id(id)
|
||||
# return unless record
|
||||
# end
|
||||
# end
|
||||
#
|
||||
class NoFindInWorkers < RuboCop::Cop::Base
|
||||
DOC_LINK = 'https://docs.gitlab.com/ee/development/sidekiq/#retries'
|
||||
|
||||
RESTRICT_ON_SEND = [:find].freeze
|
||||
|
||||
MSG = <<~MSG.freeze
|
||||
Refrain from using `find`, use `find_by` instead. See #{DOC_LINK}.
|
||||
MSG
|
||||
|
||||
def_node_matcher :find_method?, <<~PATTERN
|
||||
(send _ :find ...)
|
||||
PATTERN
|
||||
|
||||
def on_send(node)
|
||||
add_offense(node, message: MSG)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -167,7 +167,7 @@ describe('Job App', () => {
|
|||
confirmation_message: null,
|
||||
},
|
||||
illustration: {
|
||||
content: 'Retry this job in order to create the necessary resources.',
|
||||
content: 'Run this job again in order to create the necessary resources.',
|
||||
image: 'path',
|
||||
size: 'svg-430',
|
||||
title: 'Failed to create resources',
|
||||
|
|
|
|||
|
|
@ -1,9 +1,29 @@
|
|||
import { GlButton, GlIcon } from '@gitlab/ui';
|
||||
|
||||
import Vue from 'vue';
|
||||
import VueApollo from 'vue-apollo';
|
||||
import createMockApollo from 'helpers/mock_apollo_helper';
|
||||
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
|
||||
|
||||
import { createAlert } from '~/alert';
|
||||
import waitForPromises from 'helpers/wait_for_promises';
|
||||
|
||||
import JobActionButton from '~/ci/pipeline_mini_graph/job_action_button.vue';
|
||||
import { mockJobActions } from './mock_data';
|
||||
import JobActionButton, { i18n } from '~/ci/pipeline_mini_graph/job_action_button.vue';
|
||||
|
||||
import cancelJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_cancel.mutation.graphql';
|
||||
import playJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_play.mutation.graphql';
|
||||
import retryJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_retry.mutation.graphql';
|
||||
import unscheduleJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_unschedule.mutation.graphql';
|
||||
import {
|
||||
mockJobActions,
|
||||
mockJobCancelResponse,
|
||||
mockJobPlayResponse,
|
||||
mockJobRetryResponse,
|
||||
mockJobUnscheduleResponse,
|
||||
} from './mock_data';
|
||||
|
||||
Vue.use(VueApollo);
|
||||
jest.mock('~/alert');
|
||||
|
||||
describe('JobActionButton', () => {
|
||||
let wrapper;
|
||||
|
|
@ -16,20 +36,35 @@ describe('JobActionButton', () => {
|
|||
jobName: 'test_job',
|
||||
};
|
||||
|
||||
const createComponent = ({ props = {} } = {}) => {
|
||||
const createComponent = ({ handlers = [], props = {} } = {}) => {
|
||||
const mockApollo = createMockApollo(handlers);
|
||||
|
||||
wrapper = shallowMountExtended(JobActionButton, {
|
||||
propsData: {
|
||||
...defaultProps,
|
||||
...props,
|
||||
},
|
||||
apolloProvider: mockApollo,
|
||||
});
|
||||
|
||||
return waitForPromises();
|
||||
};
|
||||
|
||||
const cancelMutationHandler = jest.fn().mockResolvedValue(mockJobCancelResponse);
|
||||
const playMutationHandler = jest.fn().mockResolvedValue(mockJobPlayResponse);
|
||||
const retryMutationHandler = jest.fn().mockResolvedValue(mockJobRetryResponse);
|
||||
const unscheduleMutationHandler = jest.fn().mockResolvedValue(mockJobUnscheduleResponse);
|
||||
const failedHandler = jest.fn().mockRejectedValue(new Error('GraphQL error'));
|
||||
|
||||
const findActionButton = () => wrapper.findComponent(GlButton);
|
||||
const findActionIcon = () => wrapper.findComponent(GlIcon);
|
||||
|
||||
const clickActionButton = async () => {
|
||||
const event = { preventDefault: jest.fn() };
|
||||
findActionButton().vm.$emit('click', event);
|
||||
await waitForPromises();
|
||||
};
|
||||
|
||||
describe('when mounted', () => {
|
||||
beforeEach(() => {
|
||||
createComponent();
|
||||
|
|
@ -66,5 +101,35 @@ describe('JobActionButton', () => {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('mutations', () => {
|
||||
describe.each`
|
||||
action | mockIndex | mutation | handler | errorMessage
|
||||
${'cancel'} | ${0} | ${cancelJobMutation} | ${cancelMutationHandler} | ${i18n.errors.cancelJob}
|
||||
${'run'} | ${1} | ${playJobMutation} | ${playMutationHandler} | ${i18n.errors.playJob}
|
||||
${'retry'} | ${2} | ${retryJobMutation} | ${retryMutationHandler} | ${i18n.errors.retryJob}
|
||||
${'unschedule'} | ${3} | ${unscheduleJobMutation} | ${unscheduleMutationHandler} | ${i18n.errors.unscheduleJob}
|
||||
`('$action action', ({ mockIndex, mutation, handler, errorMessage }) => {
|
||||
it('calls the correct mutation on button click', async () => {
|
||||
await createComponent({
|
||||
handlers: [[mutation, handler]],
|
||||
props: { jobAction: mockJobActions[mockIndex] },
|
||||
});
|
||||
await clickActionButton();
|
||||
|
||||
expect(handler).toHaveBeenCalledWith({ id: defaultProps.jobId });
|
||||
});
|
||||
|
||||
it('displays the appropriate error message if mutation is not successful', async () => {
|
||||
await createComponent({
|
||||
handlers: [[mutation, failedHandler]],
|
||||
props: { jobAction: mockJobActions[mockIndex] },
|
||||
});
|
||||
await clickActionButton();
|
||||
|
||||
expect(createAlert).toHaveBeenCalledWith({ message: errorMessage });
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -106,6 +106,35 @@ export const mockJobActions = [
|
|||
},
|
||||
];
|
||||
|
||||
export const mockJobMutationResponse = (dataName) => ({
|
||||
data: {
|
||||
[dataName]: {
|
||||
job: {
|
||||
__typename: 'CiJob',
|
||||
id: 'gid://gitlab/Ci::Build/1001',
|
||||
detailedStatus: {
|
||||
__typename: 'DetailedStatus',
|
||||
id: 'running-1001-1001',
|
||||
action: {
|
||||
__typename: 'StatusAction',
|
||||
id: 'Ci::Build-manual-1001',
|
||||
confirmationMessage: 'here is a message',
|
||||
icon: 'play',
|
||||
path: '/flightjs/Flight/-/jobs/1001/play',
|
||||
title: 'Run',
|
||||
},
|
||||
},
|
||||
},
|
||||
errors: [],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const mockJobCancelResponse = mockJobMutationResponse('jobCancel');
|
||||
export const mockJobPlayResponse = mockJobMutationResponse('jobPlay');
|
||||
export const mockJobRetryResponse = mockJobMutationResponse('jobRetry');
|
||||
export const mockJobUnscheduleResponse = mockJobMutationResponse('jobUnschedule');
|
||||
|
||||
// for `job_item_spec.js`
|
||||
export const mockPipelineJob = {
|
||||
__typename: 'CiJob',
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ describe('PipelineFailedJobsWidget component', () => {
|
|||
});
|
||||
});
|
||||
|
||||
const CSS_BORDER_CLASSES = 'gl-border-white gl-hover-border-gray-100 is-collapsed';
|
||||
const CSS_BORDER_CLASSES = 'gl-border-white hover:gl-border-gray-100 is-collapsed';
|
||||
|
||||
describe('when the job button is clicked', () => {
|
||||
beforeEach(async () => {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ describe('ContributionEventReopened', () => {
|
|||
event | expectedMessage | iconName
|
||||
${eventMilestoneReopened()} | ${'Reopened milestone %{targetLink} in %{resourceParentLink}.'} | ${'status_open'}
|
||||
${eventIssueReopened()} | ${'Reopened issue %{targetLink} in %{resourceParentLink}.'} | ${'status_open'}
|
||||
${eventMergeRequestReopened()} | ${'Reopened merge request %{targetLink} in %{resourceParentLink}.'} | ${'merge-request-open'}
|
||||
${eventMergeRequestReopened()} | ${'Reopened merge request %{targetLink} in %{resourceParentLink}.'} | ${'merge-request'}
|
||||
${{ target: { type: 'unsupported type' } }} | ${'Reopened resource.'} | ${'status_open'}
|
||||
`('when event target type is $event.target.type', ({ event, expectedMessage, iconName }) => {
|
||||
it('renders `ContributionEventBase` with correct props', () => {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ describe('StatusBadge component', () => {
|
|||
|
||||
describe.each`
|
||||
issuableType | badgeText | state | badgeVariant | badgeIcon
|
||||
${'merge_request'} | ${'Open'} | ${'opened'} | ${'success'} | ${'merge-request-open'}
|
||||
${'merge_request'} | ${'Open'} | ${'opened'} | ${'success'} | ${'merge-request'}
|
||||
${'merge_request'} | ${'Closed'} | ${'closed'} | ${'danger'} | ${'merge-request-close'}
|
||||
${'merge_request'} | ${'Merged'} | ${'merged'} | ${'info'} | ${'merge'}
|
||||
${'issue'} | ${'Open'} | ${'opened'} | ${'success'} | ${'issue-open-m'}
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ import { createAlert } from '~/alert';
|
|||
import createMockApollo from 'helpers/mock_apollo_helper';
|
||||
import waitForPromises from 'helpers/wait_for_promises';
|
||||
|
||||
import PlaceholdersTabApp from '~/members/components/placeholders/app.vue';
|
||||
import PlaceholdersTable from '~/members/components/placeholders/placeholders_table.vue';
|
||||
import PlaceholdersTabApp from '~/members/placeholders/components/app.vue';
|
||||
import PlaceholdersTable from '~/members/placeholders/components/placeholders_table.vue';
|
||||
import importSourceUsersQuery from '~/members/placeholders/graphql/queries/import_source_users.query.graphql';
|
||||
import { mockSourceUsersQueryResponse } from './mock_data';
|
||||
import { mockSourceUsersQueryResponse } from '../mock_data';
|
||||
|
||||
Vue.use(VueApollo);
|
||||
jest.mock('~/alert');
|
||||
|
|
@ -6,7 +6,7 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
|
|||
import createMockApollo from 'helpers/mock_apollo_helper';
|
||||
import waitForPromises from 'helpers/wait_for_promises';
|
||||
|
||||
import PlaceholderActions from '~/members/components/placeholders/placeholder_actions.vue';
|
||||
import PlaceholderActions from '~/members/placeholders/components/placeholder_actions.vue';
|
||||
import searchUsersQuery from '~/graphql_shared/queries/users_search_all_paginated.query.graphql';
|
||||
import importSourceUserReassignMutation from '~/members/placeholders/graphql/mutations/reassign.mutation.graphql';
|
||||
import importSourceUserKeepAsPlaceholderMutation from '~/members/placeholders/graphql/mutations/keep_as_placeholder.mutation.graphql';
|
||||
|
|
@ -23,7 +23,7 @@ import {
|
|||
mockUser2,
|
||||
mockUsersQueryResponse,
|
||||
mockUsersWithPaginationQueryResponse,
|
||||
} from './mock_data';
|
||||
} from '../mock_data';
|
||||
|
||||
Vue.use(VueApollo);
|
||||
jest.mock('~/alert');
|
||||
|
|
@ -5,9 +5,9 @@ import { GlAvatarLabeled, GlBadge, GlKeysetPagination, GlLoadingIcon, GlTable }
|
|||
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
|
||||
import createMockApollo from 'helpers/mock_apollo_helper';
|
||||
|
||||
import PlaceholdersTable from '~/members/components/placeholders/placeholders_table.vue';
|
||||
import PlaceholderActions from '~/members/components/placeholders/placeholder_actions.vue';
|
||||
import { mockSourceUsers } from './mock_data';
|
||||
import PlaceholdersTable from '~/members/placeholders/components/placeholders_table.vue';
|
||||
import PlaceholderActions from '~/members/placeholders/components/placeholder_actions.vue';
|
||||
import { mockSourceUsers } from '../mock_data';
|
||||
|
||||
Vue.use(VueApollo);
|
||||
|
||||
|
|
@ -69,19 +69,19 @@ RSpec.describe BranchesHelper, feature_category: :source_code_management do
|
|||
end
|
||||
|
||||
context 'when merge request is open' do
|
||||
it { is_expected.to eq(icon: 'merge-request-open', title: "Open - #{title}", variant: :success) }
|
||||
it { is_expected.to eq(icon: 'merge-request', title: "Open - #{title}", variant: :success) }
|
||||
end
|
||||
|
||||
context 'when merge request is locked' do
|
||||
let(:merge_request) { build(:merge_request, :locked, title: title) }
|
||||
|
||||
it { is_expected.to eq(icon: 'merge-request-open', title: "Open - #{title}", variant: :success) }
|
||||
it { is_expected.to eq(icon: 'merge-request', title: "Open - #{title}", variant: :success) }
|
||||
end
|
||||
|
||||
context 'when merge request is draft' do
|
||||
let(:title) { 'Draft: Test MR' }
|
||||
|
||||
it { is_expected.to eq(icon: 'merge-request-open', title: "Open - #{title}", variant: :warning) }
|
||||
it { is_expected.to eq(icon: 'merge-request', title: "Open - #{title}", variant: :warning) }
|
||||
end
|
||||
|
||||
context 'when merge request is merged' do
|
||||
|
|
|
|||
|
|
@ -355,13 +355,13 @@ RSpec.describe ProjectsHelper, feature_category: :source_code_management do
|
|||
|
||||
describe 'using the default options' do
|
||||
it 'returns an HTML link to the user' do
|
||||
link = helper.link_to_member(project, user)
|
||||
link = helper.link_to_member(user)
|
||||
|
||||
expect(link).to match(%r{/#{user.username}})
|
||||
end
|
||||
|
||||
it 'HTML escapes the name of the user' do
|
||||
link = helper.link_to_member(project, user)
|
||||
link = helper.link_to_member(user)
|
||||
|
||||
expect(link).to include(ERB::Util.html_escape(user.name))
|
||||
expect(link).not_to include(user.name)
|
||||
|
|
@ -370,7 +370,7 @@ RSpec.describe ProjectsHelper, feature_category: :source_code_management do
|
|||
|
||||
context 'when user is nil' do
|
||||
it 'returns "(deleted)"' do
|
||||
link = helper.link_to_member(project, nil)
|
||||
link = helper.link_to_member(nil)
|
||||
|
||||
expect(link).to eq("(deleted)")
|
||||
end
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ RSpec.describe Gitlab::Ci::Status::Build::Retryable do
|
|||
end
|
||||
|
||||
describe '#action_button_title' do
|
||||
it { expect(subject.action_button_title).to eq 'Retry this job' }
|
||||
it { expect(subject.action_button_title).to eq 'Run this job again' }
|
||||
end
|
||||
|
||||
describe '#confirmation_message' do
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
require 'fast_spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::Session do
|
||||
it 'uses the current thread as a data store' do
|
||||
|
|
@ -24,68 +24,4 @@ RSpec.describe Gitlab::Session do
|
|||
expect(described_class.current).to eq nil
|
||||
end
|
||||
end
|
||||
|
||||
describe '.session_id_for_worker' do
|
||||
context 'when session is ActionDispatch::Request::Session' do
|
||||
let(:rack_session) { Rack::Session::SessionId.new('6919a6f1bb119dd7396fadc38fd18d0d') }
|
||||
let(:session) do
|
||||
ActionDispatch::Request::Session.allocate.tap do |session|
|
||||
allow(session).to receive(:id).and_return(rack_session)
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns rack session private id' do
|
||||
described_class.with_session(session) do
|
||||
expect(described_class.session_id_for_worker).to eq(rack_session.private_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when session behaves like Hash' do
|
||||
let(:session) { { set_session_id: 'abc' }.with_indifferent_access }
|
||||
|
||||
it 'returns session id in Hash' do
|
||||
described_class.with_session(session) do
|
||||
expect(described_class.session_id_for_worker).to eq('abc')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when sessionless' do
|
||||
let(:session) { nil }
|
||||
|
||||
it 'returns nil' do
|
||||
described_class.with_session(session) do
|
||||
expect(described_class.session_id_for_worker).to eq(nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when unknown type' do
|
||||
let(:session) { Object.new }
|
||||
|
||||
it 'raises error' do
|
||||
described_class.with_session(session) do
|
||||
expect { described_class.session_id_for_worker }.to raise_error("Unsupported session class: Object")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when an exception is raised' do
|
||||
let(:session) { { set_session_id: 'abc' }.with_indifferent_access }
|
||||
let(:exception) { StandardError.new('Something went wrong') }
|
||||
|
||||
before do
|
||||
allow(session).to receive(:is_a?).and_raise(exception)
|
||||
allow(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception)
|
||||
end
|
||||
|
||||
it 'tracks the exception and returns nil' do
|
||||
described_class.with_session(session) do
|
||||
expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception).with(exception)
|
||||
expect(described_class.session_id_for_worker).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ RSpec.describe Integrations::JiraCloudApp, feature_category: :integrations do
|
|||
|
||||
subject(:integration) { build(:jira_cloud_app_integration, project: project) }
|
||||
|
||||
it_behaves_like Integrations::HasAvatar
|
||||
|
||||
it { is_expected.to allow_value(nil).for(:jira_cloud_app_service_ids) }
|
||||
it { is_expected.to allow_value('b:asfasd=,b:asfasd=').for(:jira_cloud_app_service_ids) }
|
||||
it { is_expected.to allow_value('b:asfasd=').for(:jira_cloud_app_service_ids) }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Organizations::Organization, type: :model, feature_category: :cell do
|
||||
let_it_be(:organization) { create(:organization) }
|
||||
let_it_be_with_refind(:organization) { create(:organization) }
|
||||
let_it_be(:default_organization) { create(:organization, :default) }
|
||||
|
||||
describe 'associations' do
|
||||
|
|
@ -11,6 +11,17 @@ RSpec.describe Organizations::Organization, type: :model, feature_category: :cel
|
|||
|
||||
it { is_expected.to have_many :namespaces }
|
||||
it { is_expected.to have_many :groups }
|
||||
it { is_expected.to have_many :root_groups }
|
||||
|
||||
describe '.root_groups' do
|
||||
let_it_be(:group) { create(:group, organization: organization) }
|
||||
let_it_be(:subgroup) { create(:group, parent: group) }
|
||||
|
||||
it 'returns only root groups' do
|
||||
expect(organization.root_groups).to contain_exactly(group)
|
||||
end
|
||||
end
|
||||
|
||||
it { is_expected.to have_many(:users).through(:organization_users).inverse_of(:organizations) }
|
||||
it { is_expected.to have_many(:organization_users).inverse_of(:organization) }
|
||||
it { is_expected.to have_many :projects }
|
||||
|
|
@ -18,7 +29,7 @@ RSpec.describe Organizations::Organization, type: :model, feature_category: :cel
|
|||
end
|
||||
|
||||
describe 'validations' do
|
||||
subject { create(:organization) }
|
||||
subject { organization }
|
||||
|
||||
it { is_expected.to validate_presence_of(:name) }
|
||||
it { is_expected.to validate_length_of(:name).is_at_most(255) }
|
||||
|
|
@ -26,6 +37,69 @@ RSpec.describe Organizations::Organization, type: :model, feature_category: :cel
|
|||
it { is_expected.to validate_length_of(:path).is_at_least(2).is_at_most(255) }
|
||||
it { is_expected.to validate_uniqueness_of(:path).case_insensitive }
|
||||
|
||||
context 'with visibility level' do
|
||||
shared_examples 'visibility level validation' do
|
||||
it 'performs visibility level validation' do
|
||||
expect(organization).to receive(:check_visibility_level).and_call_original
|
||||
|
||||
organization.valid?
|
||||
end
|
||||
end
|
||||
|
||||
context 'when new record' do
|
||||
let(:organization) { build(:organization) }
|
||||
|
||||
it_behaves_like 'visibility level validation'
|
||||
end
|
||||
|
||||
context 'when visibility level is changed' do
|
||||
before do
|
||||
organization.visibility_level = Gitlab::VisibilityLevel::PUBLIC
|
||||
end
|
||||
|
||||
it_behaves_like 'visibility level validation'
|
||||
end
|
||||
|
||||
context 'when visibility level is not changed' do
|
||||
it 'skips visibility level validation' do
|
||||
expect(organization).not_to receive(:check_visibility_level).and_call_original
|
||||
|
||||
organization.valid?
|
||||
end
|
||||
end
|
||||
|
||||
where(:visibility_level, :max_group_visibility, :valid) do
|
||||
[
|
||||
[Gitlab::VisibilityLevel::PRIVATE, Gitlab::VisibilityLevel::PRIVATE, true],
|
||||
[Gitlab::VisibilityLevel::PRIVATE, Gitlab::VisibilityLevel::INTERNAL, false],
|
||||
[Gitlab::VisibilityLevel::PRIVATE, Gitlab::VisibilityLevel::PUBLIC, false],
|
||||
[Gitlab::VisibilityLevel::INTERNAL, Gitlab::VisibilityLevel::PRIVATE, true],
|
||||
[Gitlab::VisibilityLevel::INTERNAL, Gitlab::VisibilityLevel::INTERNAL, true],
|
||||
[Gitlab::VisibilityLevel::INTERNAL, Gitlab::VisibilityLevel::PUBLIC, false],
|
||||
[Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::PRIVATE, true],
|
||||
[Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::INTERNAL, true],
|
||||
[Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::PUBLIC, true]
|
||||
]
|
||||
end
|
||||
|
||||
with_them do
|
||||
let(:organization) { build(:organization, visibility_level: visibility_level) }
|
||||
|
||||
it 'validates visibility level' do
|
||||
allow(organization.root_groups).to receive(:maximum).with(:visibility_level).and_return(max_group_visibility)
|
||||
|
||||
expect(organization.valid?).to eq(valid)
|
||||
|
||||
error_message = "Visibility level can not be more restrictive than group visibility levels"
|
||||
if valid
|
||||
expect(organization.errors.full_messages).not_to include(error_message)
|
||||
else
|
||||
expect(organization.errors.full_messages).to include(error_message)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'path validator' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rubocop_spec_helper'
|
||||
require_relative '../../../../rubocop/cop/gitlab/no_find_in_workers'
|
||||
|
||||
RSpec.describe RuboCop::Cop::Gitlab::NoFindInWorkers, feature_category: :shared do
|
||||
context 'when find is used' do
|
||||
it 'adds an offense' do
|
||||
expect_offense(<<~CODE)
|
||||
class SomeWorker
|
||||
include ApplicationWorker
|
||||
|
||||
def perform
|
||||
namespace = Namespace.find(namespace_id)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Refrain from using `find`, use `find_by` instead. See https://docs.gitlab.com/ee/development/sidekiq/#retries.[...]
|
||||
end
|
||||
end
|
||||
CODE
|
||||
end
|
||||
end
|
||||
|
||||
context 'when find is not used' do
|
||||
it 'adds no offense' do
|
||||
expect_no_offenses(<<~CODE)
|
||||
class SomeWorker
|
||||
include ApplicationWorker
|
||||
|
||||
def perform
|
||||
namespace = Namespace.find_by(namespace_id)
|
||||
return unless namespace
|
||||
end
|
||||
end
|
||||
CODE
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1354,10 +1354,10 @@
|
|||
stylelint-declaration-strict-value "1.10.4"
|
||||
stylelint-scss "6.0.0"
|
||||
|
||||
"@gitlab/svgs@3.105.0":
|
||||
version "3.105.0"
|
||||
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.105.0.tgz#0d15978755093b79e5c9b883a27d8074bf316e9a"
|
||||
integrity sha512-JrXE7T3j+9FyQakG4XVg/uhXL3TZvmFgTuggaiSXdyelVOqAzYdPPm1oergdp8C+Io0zBKlLkJv/4nWG3AgkfQ==
|
||||
"@gitlab/svgs@3.106.0":
|
||||
version "3.106.0"
|
||||
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.106.0.tgz#eb5a2331f59c5c258c54dd6f905dda57b4c68c0e"
|
||||
integrity sha512-NOU2eW7aQaOtll2DxYeLR/IIphMP8l7WKHUqB1tbIAVt/QOPio9pJym17FzpBc1Deibxtf7dS0wEl4DoNLTxoA==
|
||||
|
||||
"@gitlab/ui@86.11.1":
|
||||
version "86.11.1"
|
||||
|
|
|
|||
Loading…
Reference in New Issue