From 77fd1643e1daee91ea3c8099db3b6d927f40a971 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 27 May 2025 09:11:42 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- config/events/glci_predictive_tests_count.yml | 21 ++ config/sidekiq_queues.yml | 2 + db/docs/analyzer_namespace_statuses.yml | 1 + db/docs/analyzer_project_statuses.yml | 1 + db/docs/merge_request_assignment_events.yml | 2 +- db/docs/notification_settings.yml | 2 +- db/docs/security_scans.yml | 2 +- db/docs/snippets.yml | 2 +- db/docs/user_custom_attributes.yml | 2 +- ...ci_build_needs_on_partition_id_build_id.rb | 18 ++ db/schema_migrations/20250521204006 | 1 + doc/ci/variables/_index.md | 10 +- .../issue_triage_complex_group/_index.md | 299 ++++++++++++++++++ .../img/priority_labels_v16_3.png | Bin 0 -> 52327 bytes .../img/triage_board_v16_3.png | Bin 0 -> 21049 bytes .../img/triage_report_v16_3.png | Bin 0 -> 9204 bytes .../import/direct_transfer_migrations.md | 7 +- doc/user/project/repository/files/_index.md | 17 + qa/qa/page/dashboard/projects.rb | 12 +- rubocop/rubocop-migrations.yml | 1 + 20 files changed, 387 insertions(+), 13 deletions(-) create mode 100644 config/events/glci_predictive_tests_count.yml create mode 100644 db/post_migrate/20250521204006_async_remove_idx_ci_build_needs_on_partition_id_build_id.rb create mode 100644 db/schema_migrations/20250521204006 create mode 100644 doc/tutorials/issue_triage_complex_group/_index.md create mode 100644 doc/tutorials/issue_triage_complex_group/img/priority_labels_v16_3.png create mode 100644 doc/tutorials/issue_triage_complex_group/img/triage_board_v16_3.png create mode 100644 doc/tutorials/issue_triage_complex_group/img/triage_report_v16_3.png diff --git a/config/events/glci_predictive_tests_count.yml b/config/events/glci_predictive_tests_count.yml new file mode 100644 index 00000000000..f0ae2ad86b2 --- /dev/null +++ b/config/events/glci_predictive_tests_count.yml @@ -0,0 +1,21 @@ +--- +description: Count of predictive tests selected for execution +internal_events: true +action: glci_predictive_tests_count +identifiers: +- project +- namespace +additional_properties: + label: + description: predictive test metric type + property: + description: predictive test selection strategy + value: + description: amount of tests selected +product_group: development_analytics +milestone: '18.1' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/191286 +tiers: +- free +- premium +- ultimate diff --git a/config/sidekiq_queues.yml b/config/sidekiq_queues.yml index 8ae57aa3685..625d62d352e 100644 --- a/config/sidekiq_queues.yml +++ b/config/sidekiq_queues.yml @@ -1021,6 +1021,8 @@ - 1 - - vulnerabilities_namespace_statistics_adjustment - 1 +- - vulnerabilities_namespace_statistics_process_group_delete_events + - 1 - - vulnerabilities_namespace_statistics_process_group_transfer_events - 1 - - vulnerabilities_namespace_statistics_process_project_delete_events diff --git a/db/docs/analyzer_namespace_statuses.yml b/db/docs/analyzer_namespace_statuses.yml index cd3ba33d3ae..6690ce94931 100644 --- a/db/docs/analyzer_namespace_statuses.yml +++ b/db/docs/analyzer_namespace_statuses.yml @@ -12,3 +12,4 @@ milestone: '17.11' gitlab_schema: gitlab_sec sharding_key: namespace_id: namespaces +table_size: small diff --git a/db/docs/analyzer_project_statuses.yml b/db/docs/analyzer_project_statuses.yml index 6535b059ada..1df23443c17 100644 --- a/db/docs/analyzer_project_statuses.yml +++ b/db/docs/analyzer_project_statuses.yml @@ -10,3 +10,4 @@ milestone: '17.11' gitlab_schema: gitlab_sec sharding_key: project_id: projects +table_size: small diff --git a/db/docs/merge_request_assignment_events.yml b/db/docs/merge_request_assignment_events.yml index c57e49bf6f2..b646217beb8 100644 --- a/db/docs/merge_request_assignment_events.yml +++ b/db/docs/merge_request_assignment_events.yml @@ -18,4 +18,4 @@ desired_sharding_key: sharding_key: target_project_id belongs_to: merge_request desired_sharding_key_migration_job_name: BackfillMergeRequestAssignmentEventsProjectId -table_size: medium +table_size: small diff --git a/db/docs/notification_settings.yml b/db/docs/notification_settings.yml index f9079617e2d..5657f88cc97 100644 --- a/db/docs/notification_settings.yml +++ b/db/docs/notification_settings.yml @@ -10,4 +10,4 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/31b0e53015e38e5 milestone: '8.7' gitlab_schema: gitlab_main_cell sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/514596 -table_size: medium +table_size: small diff --git a/db/docs/security_scans.yml b/db/docs/security_scans.yml index f3b73d7d90e..cbbd57b40af 100644 --- a/db/docs/security_scans.yml +++ b/db/docs/security_scans.yml @@ -10,4 +10,4 @@ milestone: '12.8' gitlab_schema: gitlab_sec sharding_key: project_id: projects -table_size: large +table_size: over_limit diff --git a/db/docs/snippets.yml b/db/docs/snippets.yml index 812220a6230..9d9e1b80746 100644 --- a/db/docs/snippets.yml +++ b/db/docs/snippets.yml @@ -14,4 +14,4 @@ gitlab_schema: gitlab_main_cell sharding_key: project_id: projects organization_id: organizations -table_size: medium +table_size: small diff --git a/db/docs/user_custom_attributes.yml b/db/docs/user_custom_attributes.yml index 2bfcf40bfce..78d8f48695b 100644 --- a/db/docs/user_custom_attributes.yml +++ b/db/docs/user_custom_attributes.yml @@ -8,4 +8,4 @@ description: Storing custom attributes per user introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13038 milestone: '10.1' gitlab_schema: gitlab_main_clusterwide -table_size: medium +table_size: small diff --git a/db/post_migrate/20250521204006_async_remove_idx_ci_build_needs_on_partition_id_build_id.rb b/db/post_migrate/20250521204006_async_remove_idx_ci_build_needs_on_partition_id_build_id.rb new file mode 100644 index 00000000000..ef4448a5f88 --- /dev/null +++ b/db/post_migrate/20250521204006_async_remove_idx_ci_build_needs_on_partition_id_build_id.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AsyncRemoveIdxCiBuildNeedsOnPartitionIdBuildId < Gitlab::Database::Migration[2.3] + milestone '18.1' + + TABLE_NAME = :ci_build_needs + INDEX_NAME = :index_ci_build_needs_on_partition_id_build_id + COLUMNS = [:partition_id, :build_id] + + # TODO: Index to be destroyed synchronously in https://gitlab.com/gitlab-org/gitlab/-/issues/536403 + def up + prepare_async_index_removal TABLE_NAME, COLUMNS, name: INDEX_NAME + end + + def down + unprepare_async_index TABLE_NAME, COLUMNS, name: INDEX_NAME + end +end diff --git a/db/schema_migrations/20250521204006 b/db/schema_migrations/20250521204006 new file mode 100644 index 00000000000..e5fcd5d32df --- /dev/null +++ b/db/schema_migrations/20250521204006 @@ -0,0 +1 @@ +9e42174942bfed73c96b736cfe54b874e078974d5d44ce2a3c2b145bd11058de \ No newline at end of file diff --git a/doc/ci/variables/_index.md b/doc/ci/variables/_index.md index 7039b08f010..3ed13f8d894 100644 --- a/doc/ci/variables/_index.md +++ b/doc/ci/variables/_index.md @@ -89,11 +89,11 @@ Certificate Authority file) is only available when: To summarize, the following are the differences between predefined and configuration variables: -| | Predefined variables | Configuration variables | -|----------------|--------------------------|----------------------------------------------------| -| Purpose | Supports script logic | Configure runner and the job execution environment | -| Availability | Always available | Available only under specific conditions | -| Defined by | Users in`.gitlab-ci.yml` | Administrators in `config.toml` | +| | Predefined variables | Configuration variables | +|----------------|---------------------------|----------------------------------------------------| +| Purpose | Supports script logic | Configure runner and the job execution environment | +| Availability | Always available | Available only under specific conditions | +| Defined by | Users in `.gitlab-ci.yml` | Administrators in `config.toml` | ## Define a CI/CD variable in the `.gitlab-ci.yml` file diff --git a/doc/tutorials/issue_triage_complex_group/_index.md b/doc/tutorials/issue_triage_complex_group/_index.md new file mode 100644 index 00000000000..0c914e6bc59 --- /dev/null +++ b/doc/tutorials/issue_triage_complex_group/_index.md @@ -0,0 +1,299 @@ +--- +stage: Plan +group: Project Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +title: 'Tutorial: Set up a complex group with subgroups for issue triage' +--- + +{{< details >}} + +- Tier: Free, Premium, Ultimate +- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated + +{{< /details >}} + + + +Issue triage is the process of categorization according to type and severity. +As your project grows and people create more issues, it's worth creating a workflow for how you'll +triage incoming issues. + +In this tutorial, you'll learn how to set up a GitLab group with subgroups for this scenario. + +To set up GitLab for a complex group with subgroups for issue triage: + +1. [Create a group](#create-a-group) +1. [Create subgroups inside a group](#create-subgroups-inside-a-group) +1. [Create projects inside subgroups](#create-projects-inside-subgroups) +1. [Decide on the criteria for types, severity, and priority](#decide-on-the-criteria-for-types-severity-and-priority) +1. [Document your criteria](#document-your-criteria) +1. [Create scoped labels](#create-scoped-labels) +1. [Prioritize the new labels](#prioritize-the-new-labels) +1. [Create a parent group issue triage board](#create-a-parent-group-issue-triage-board) +1. [Create issues for features](#create-issues-for-features) + +## Before you begin + +- If you're using an existing project for this tutorial, make sure you have at least the Reporter role + for the project. + - If your existing project does not have a parent group, create a group and [promote the project labels to group labels](../../user/project/labels.md#promote-a-project-label-to-a-group-label). + +## Create a group + +A [group](../../user/group/_index.md) is, in essence, a container for multiple projects. +It allows users to manage multiple projects and communicate with group members all at once. + +To create a new group: + +1. On the left sidebar, at the top, select **Create new** ({{< icon name="plus" >}}) and select **New group**. +1. Select **Create group**. +1. Enter the group details: + - For **Group name**, enter `Web App Dev` or another value. +1. At the bottom of the page, select **Create group**. + +## Create subgroups inside a group + +A [subgroup](../../user/group/subgroups/_index.md) is a group in a group. +Subgroups help organize large projects and manage permissions. + +To create a new subgroup: + +1. On the left sidebar, select **Search or go to** and find your **Web App Dev** group. +1. Select **Create new** ({{< icon name="plus" >}}) and **New subgroup**. +1. Enter the subgroup details: + - For **Subgroup name**, enter `Frontend` or another value. +1. Select **Create subgroup**. +1. Repeat this process to create a second subgroup named `Backend` or another value. + +## Create projects inside subgroups + +To manage issue-tracking across multiple projects, you need to create projects in your subgroups. + +To create a new project: + +1. On the left sidebar, select **Search or go to** and find your `Frontend` subgroup. +1. On the left sidebar, at the top, select **Create new** ({{< icon name="plus" >}}) and select **New project/repository**. +1. Select **Create blank project**. +1. Enter the project details: + - For **Project name**, enter `Web UI`. For more information, see project + [naming rules](../../user/reserved_names.md#rules-for-usernames-project-and-group-names-and-slugs). +1. At the bottom of the page, select **Create project**. +1. Repeat this process to create a second project named `Accessibility Audit` in the `Frontend` + subgroup and a third project named `API` in the `Backend` subgroup. + +## Decide on the criteria for types, severity, and priority + +Next, you'll need to determine: + +- **Types** of issues you want to recognize. If you need a more granular approach, you + can also create subtypes for each type. Types help categorize work to understand the + kind of work that is requested of your team. +- Levels of **priorities** and **severities** to define the impact that incoming work has on end + users and to assist in prioritization. + +For this tutorial, suppose you've decided on the following: + +- Type: `Bug`, `Feature`, and `Maintenance` +- Priority: `1`, `2`, `3`, and `4` +- Severity: `1`, `2`, `3`, and `4` + +For inspiration, see how we define these at GitLab: + +- [Types and subtypes](https://handbook.gitlab.com/handbook/engineering/metrics/#work-type-classification) +- [Priority](https://handbook.gitlab.com/handbook/engineering/infrastructure/engineering-productivity/issue-triage/#priority) +- [Severity](https://handbook.gitlab.com/handbook/engineering/infrastructure/engineering-productivity/issue-triage/#severity) + +## Document your criteria + +After you agree on all the criteria, write it all down somewhere your teammates can always access. + +For example, add it to a [wiki](../../user/project/wiki/_index.md) in your project, or your company +handbook published with [GitLab Pages](../../user/project/pages/_index.md). + + + +## Create scoped labels + +{{< details >}} + +- Tier: Premium, Ultimate +- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated + +{{< /details >}} + +Next, you'll create labels to add to issues to categorize them. + +The best tool for this is [scoped labels](../../user/project/labels.md#scoped-labels), which you +can use to set mutually exclusive attributes. + +Checking with the list of types, severities, and priorities you've assembled +[previously](#decide-on-the-criteria-for-types-severity-and-priority), you'll want to create matching +scoped labels. + +The double colon (`::`) in the name of a scoped label prevents two labels of the same scope being +used together. +For example, if you add the `type::feature` label to an issue that already has `type::bug`, the +previous one is removed. + +{{< alert type="note" >}} + +Scoped labels are available in the Premium and Ultimate tier. +If you're on the Free tier, you can use regular labels instead. +However, they aren't mutually exclusive. + +{{< /alert >}} + +To make labels available to all projects across every subgroup, first go to the parent group that +contains your subgroups. If you want labels to be available to only projects in a certain subgroup, +then follow these steps from inside a subgroup. + +To create each label: + +1. On the left sidebar, select **Search or go to** and find your **Web App Dev** group. +1. Select **Manage > Labels**. +1. Select **New label**. +1. In the **Title** field, enter the name of the label. Start with `type::bug`. +1. Optional. Select a color from the available colors, or enter a hex color value for + a specific color in the **Background color** field. +1. Select **Create label**. + +Repeat steps 3-6 to create all the labels you need. +Here are some examples: + +- `type::bug` +- `type::feature` +- `type::maintenance` +- `priority::1` +- `priority::2` +- `priority::3` +- `priority::4` +- `severity::1` +- `severity::2` +- `severity::3` +- `severity::4` + +## Prioritize the new labels + +Now, set the new labels as priority labels. +Doing this ensures that the most important issues show on top +of the issue list if you sort by priority or label priority. + +To learn what happens when you sort by priority or label priority, see +[Sorting and ordering issue lists](../../user/project/issues/sorting_issue_lists.md). + +To prioritize labels: + +1. On the Labels page, next to a label you want to prioritize, select **Prioritize** ({{< icon name="star-o" >}}). + This label now appears at the top of the label list, under **Prioritized labels**. +1. To change the relative priority of these labels, drag them up and down the list. + Labels higher in the list get higher priority. +1. Prioritize all the labels you previously created. + Make sure that labels of higher priority and severity are higher on the list than those of lower values. + +![List of eleven prioritized scoped labels](img/priority_labels_v16_3.png) + +## Create a parent group issue triage board + +To prepare for the incoming issue backlog, create an [issue board](../../user/project/issue_board.md) that organizes issues by label. +You'll use it to quickly create issues and add labels to them by dragging cards to various lists. + +To set up your issue board: + +1. Decide on the scope of the board. + For example, create a [group issue board](../../user/project/issue_board.md#group-issue-boards) to assign + severity to issues. +1. On the left sidebar, select **Search or go to** and find your **Web App Dev** group. +1. Select **Plan > Issue board**. +1. In the upper-left corner of the issue board page, select the dropdown list with the current board name. +1. Select **Create new board**. +1. In the **Title** field, enter `Issue triage (by severity)`. +1. Keep the **Show the Open list** checkbox selected and clear the **Show the Closed list** one. +1. Select **Create board**. You should see an empty board. +1. Create a list for the `severity::1` label: + 1. In the upper-right corner of the issue board page, select **Create list**. + 1. In the column that appears, from the **Value** dropdown list, select the `severity::1` label. + 1. At the bottom of the list, select **Add to board**. +1. Repeat the previous step for labels `severity::2`, `severity::3`, and `severity::4`. + +To create subgroup issue boards, follow steps 3-10 from inside a subgroup. + +For now, the lists in your board should be empty. Next, you'll populate them with some issues. + +## Create issues for features + +To track upcoming features and bugs, you must create some issues. +Issues belong in projects, but you can also create them directly from your group issue board. + +Start by creating some issues for planned features. +You can create issues for bugs as you find them (hopefully not too many!). + +To create an issue from your **Issue triage (by severity)** board: + +1. Go to the **Open** list. + This list shows issues that don't fit any other board list. + If you already know which severity label your issue should have, you can create it directly from + that label's list. + Keep in mind that each issue created from a label list is given that label. + + For now, we'll proceed with using the **Open** list. +1. On the **Open** list, select the **Create new issue** icon ({{< icon name="plus" >}}). +1. Complete the fields: + - Under **Title**, enter `Dark mode toggle`. + - Select the project to which this issue applies. We will select `Frontend / Web UI`. +1. Select **Create issue**. +1. Repeat these steps to create a few more issues. + + For example, if you're building a Web API app, `Frontend` and `Backend` refer to different + engineering teams. The projects refer to different aspects of stack development. + Create the following issues, assigning to projects as you see fit: + + - `User registration` + - `Profile creation` + - `Search functionality` + - `Add to favorites` + - `Push notifications` + - `Social sharing` + - `In-app messaging` + - `Track progress` + - `Feedback and ratings` + - `Settings and preferences` + +{{< alert type="note" >}} + +Issues in one project's issue board can't be seen from other project's issue board. +Similarly, issues in projects in one subgroup can only be seen on that subgroup's +issue board. To view all issues across every project in a parent group, you must be in +the parent group's issue board. + +{{< /alert >}} + +Your first triage issue board is ready! +Try it out by dragging some issues from the **Open** list to one of the label lists to add one of +the severity labels. + +![Issue board with unlabeled issues and prioritized "severity" labels for labeling issues](img/triage_board_v16_3.png) + +## Next steps + +Next, you can: + +- Tweak how you use issue boards. Some options include: + - Edit your current issue board to also have lists for priority and type labels. + This way, you'll make the board wider and might require some horizontal scrolling. + - Create separate issue boards named `Issue triage (by priority)` and `Issue triage (by type)`. + This way, you'll keep various types of triage work separate, but will require switching between + boards. + - [Set up issue boards for team hand-off](../boards_for_teams/_index.md). +- Browse issues by priority or severity in issue lists, + [filtered by each label](../../user/project/issues/managing_issues.md#filter-the-list-of-issues). + If it's available to you, make use of + [the "is one of" filter operator](../../user/project/issues/managing_issues.md#filter-with-the-or-operator). +- Break the issues down into [tasks](../../user/tasks.md). +- Create policies that help automate issue triage in a project with the [`gitlab-triage` gem](https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage). + Generate summary reports with heatmaps like the following: + + ![Diagonal heatmap for issues with "priority" and "severity" labels](img/triage_report_v16_3.png) + +To learn more about issue triage at GitLab, see [Issue Triage](https://handbook.gitlab.com/handbook/engineering/infrastructure/engineering-productivity/issue-triage/) +and [Triage Operations](https://handbook.gitlab.com/handbook/engineering/infrastructure/engineering-productivity/triage-operations/). diff --git a/doc/tutorials/issue_triage_complex_group/img/priority_labels_v16_3.png b/doc/tutorials/issue_triage_complex_group/img/priority_labels_v16_3.png new file mode 100644 index 0000000000000000000000000000000000000000..afcf1752955fdc5446e149d1b9306cf2db6cdf20 GIT binary patch literal 52327 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 literal 0 HcmV?d00001 diff --git a/doc/tutorials/issue_triage_complex_group/img/triage_board_v16_3.png b/doc/tutorials/issue_triage_complex_group/img/triage_board_v16_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c32352a454ec3f518cb0806f2e6a938b650c221f GIT binary patch literal 21049 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 G3;sW`_vv#0 literal 0 HcmV?d00001 diff --git a/doc/tutorials/issue_triage_complex_group/img/triage_report_v16_3.png b/doc/tutorials/issue_triage_complex_group/img/triage_report_v16_3.png new file mode 100644 index 0000000000000000000000000000000000000000..91548a1a17de8bb75aee07d624a411d9df4901c6 GIT binary patch literal 9204 zcmbVy2UJtr)-H$wDn&sl0s%!qkf!t?U_p8j>Am+}LJx>2NDB%g9R#E&^bVmH>CzH< zln$FBCG?ON&pG$pbMJfae`CBccKOz~=UQ1~tu?B-eB4TcG5(1OrzZF8bU3Qh%^B^Lk>iB&U$3LKAB3SLbRMvcPdV*_iZWnwcCN1@x z=rs}kJyAaq5gw19nVG{M5P`*|&(F_ULF_p>c_P9R)z!6OVG+7IhA-7L4Gm0>j*iSs zt=!$cR##VLp39e&RmjOI$G~EJeEh$EA3i-h!(tD*yT4gl*y`&ty1IDq-n|X+^ks$g zZEbBoPJjG4KIxUZPIS}buA)18rlri z6Td|oLb~Md-|Ir&P>(#Cn!+E6_qLOdjEsi73H=1SHb6>x7(zs722u~<=DIC%pS5{n z2O992kN39Y*I8UBkznwUQjXHu=H}qa;0PO=jkUu#FRymO#Jr>9HUi;L<$$cdqAbYF z5XG>ue+mGb1N}pAQ%VFH@stmAvb1zCGO`jt@wz|PSQ3Wau)p)1Ovw6mf=I6c7UNaN3n@#up73m143c=N~dhZz`t zZXS!Ih=jI>erQ;pgj~A);kJ+Ecmk&jIlBP^v&)O&a~82CTeVTe|1_;E-5J$X?x}T^mwbF@J%4? z^QSBw9bK;jLn1%Ex0@#O>j7a{zKCw_Ape?E=J4P}pHPj60-1LGYI zm-pJ+z1(l&ksjMY7p7HIepp#`FLs~q5>0GOyi#Mr_V=4eFm7gN<0CHN2S3BQVT0Xd z_~TdSXPfx7;qPu_yKBVS+WK>PdWC%(DzPZbjA=ywhOhh$qY@(w`l44MW+m)BW^O)Z zFa_JwgP*O%mulVd?&t9BXY=aQN9eyU`#C;9n%%vQU+g+RYff!jtsUL2KwSOaLsmAl z8Ctb4=0Vy=L{!78O>hV{A_bYJnm$t-Qx3|slOUpBI|71`Ufq`gL{hqCvSYg+=8Qm! z2@#RHpsbhoKMJwYJSE?~5xm5BL+9<2i#JH-NrXwYJLT@~ynB;%r?_af7aJL?# z>_v-nm7W#MNmISv&*dsSzK8$rrK)hAxgv@`8xnv1-u1^3_)Uv6F_j|=+5hXThLLpZ z*g(0dm`zjzX23gZ3m%JSj}@dX=1K$}Dn}zMfC+FltjCOS;|L>^5}B)E2n+Y$B<=5K zs!;?|>>+_%==e?kRpBoaLOpyQD|>$hI5yq&?hGYN)P}Tp(+(G({MHt?2Wv}hM59@4 zIM`v*$di5^cTuBPT8npOj0|5+=T!!-l5O*M`I#*p1z$bS*pTC=@%wJ`W9QyfNYnAy!W*!w&CalM`gg$^ueljU!$g#5e~jW+%Xeek!N1dzl1Vw~9<$V^H_8rt-sk@&Ng2oj`YC0Afkgr- z$tKEfKqf+4G1y6OCfOIIid-aT(Yu5HUcasH_4z!5TbV~zzMc()3|@;~%dH=ZGKcnL zjf}id3LVv#Zh8}&;A2g?aZYai%|-~wJSaji@B6C3Gs0zxDUlj64w|t&r?NFtDQPA6 zvBsgx!}aX0Q6mQ4iG0<~Vm3#S=)H}5f`OqSs)5pqpK(vF6}7w&b0k~dVORR$WKNcq z8?q$w3q~AiNbJh?{{F*6>m-zSvU&&Yv|Zi(pU;6&n*l*xdS8yr{uY+~Tg58dIqrRO zWli4)$H$!`Z*Qj~@B5Y{n?a||tfzz3;Uzqj*lIoG(+qE%n*3tcaHP-rgV>n>KTRN$ zX0AT}9?9^DtlSS#M<^u`4UzVmcCw%j@s8)^M5SwyuRE@{e4e46pq05rlzB#8dCvY_ z&!k7MS>BPj;&L0Q{0Pse-<=`U9^%d^pNdX~h9wTf$Ve?cqQ|)wXVxj{E3~PVnD&B< z^PX#tLM2uBX5|w z@8)XMhnOEWTk7d;^Vj`q*mcjwPKJGvxQr>sJneDVKtTt)4_K`e4{_yt4T;2)Z0!_f z&!GwH7T%%{DVWroQ``{wU?`?3|WFwDJ|DZ^I@d%8tcXk9`#V!_+ z-8^*o7Ru?G4^SrQYoWA@?ik&2=!-R)=`nC6E_9Cx!3a0e=$c$;G8ix@iIA;qvb*)6 zaT)F(+4>lBOjD{^Q+J`o>yBp}nH%wY(bcoIkH<1ZrS9``U$9n8BLSHZC^aonhiZp; z>9=S83{CgKH5fCUJ*fgrlh#k0iUdtxkd^9x&s`3bBj8_E4i8Ee6}ImtqAy3T$nEiBt}_|44&+LXhDs zZ!*}GPq9~vC_VfwBx%HRTK)E+IfcMY#+9usMLwly2X+Ok7nHvE=yK;h+L2DMyuve} zzJAW|MJ%tCVldW4G&~BmUBjkt^4Nn^cY_$wK7W?XW*wq8?^6ZKXYLs&6aAEfdIV{&5Isew2@{c7!WmPX+QfJn2Q01 zoK^I9+a?7h{J$K=WgAe(W%m;Y#mHbqerxG1wlh9Dy%qNjIgrI@7`(JtjJE59ug{L_`~^92da%^wmA-)Od| zuIY!>ym7h@KclmstrZ%O$okeKhq=jhDaJGBxfU_f3gsv zhe|TS-CA+Y4H>r;a+DUlFTo6&7X7x)SMzYgEEwxemPl?B2W8;YVN!UV8TPaYAT+Oa z+JfYc4`Abd@PKwawo2=3&?ClfBfUsXW{)|rFA(25+i44>n&6|+b;*BPtr~EZKA(LZ zyfHD0;vt#eM&Bw9FCbDTK4`iqy_<=RH=UF%9e#Ca_Eu@2_n;y?{0j2iUy>g*vVR>n zHQoVc=517taYinJdMPTei0WUt;?psexYaNCN&Cdm+sYnS_vyj$1>o6wR){>V{#S>P z^quM2YzN>lFC80%UH( zvNF$%UK}@KT~#z#+h>{(J@mRYMn9Kv(eVhW?HyYA#d(VF8J;=Zf`z8-BUy!YmvrFg z=cT-yqTXEbYRSz>Jh~0F6!~f8=6&wwXaRByFzX zbtFn&oldeI8@uj9&~@w5bPcv>u5ZJe?Uq|Vip|(bBvNJ=^b~8#idVk6MxvgG7@0ze ziz3BO%I6B7^!U%3B1^K3N2we3f&=xSWSn~KPBn||!&$BtM%&Z8A(5!V4X2;!*(Hd? zoBSqU_<`<>+aDY3c-FU^7z^(Do;>Xwu=K$t7@E}OD;X^>43xeoO@~}}CbrwTHl7Gl9C{{jv&;RTOH3mIE`-!HX%~faRN0ReTi0xv_zzy%67ZXyVNCR}>E1qGFb-Wkb06FmTshxLDzbs* zd7w)4_|l=X9x#MXPPb9bsQ5bO^P!|Kfw;t(6H`9KItLj%@eewicF6DuI6ahd*F_&c zSdlw3F*w}On@xRuvVu-Y0jFMB9}R?i@T8l#NP1xEYEQ3t!8-SVOWkO3(O#)$++Ksl z&e_TIHm8Oa=|2Ghe+Yr-l8OHl{M*bc1dI8S>8ln3 z5z@^Qrs!_!xvr7^MTAp_%{sh2M=4$bbBTOJ#b-nD*mBJfHV)-Q-m> z7L+9Bq>z%2n01E=n{ZyX%49=ou@Ey|gV{7s3+{M=@d=?w%3y{IHDO^C!Hk}|Lar~1 z)ft)QeNp~#=h+|x1m^5grvJcKp#G%6MXIQ=Q;ftRAf)@!eTsg;jQEFhADnQnCB^Aj z=qQ<)3R4PVsCUJHFe6?=W4^Z{V@jZ?yqH39=azs^PNc6mKd4zevAqWL+ZZf}ITxEV zdARd{dFXu7&F^%-J6eC-U+b5kUV_)aop$w8u`tL~1*Q;>y*W$W>c$(e*-#x z;<@zI3@{v#iyc+#p0D#|AEkK9b!5T~fg?`$Qi|lrDmc2owwniQSgfh%?F#`1byFhK z+B!k7RGo43&UA!G(C8~UsVfSQ!$%2sc{Sr`mY%tB;3&p6Z^G3g6YuNd3wx57u*K(> z90dimuFI*ND8Tb{It~4jS$mS11%Ly}ddI6pW2Xj%W7TKefmdg% z`*Rly>+h}K-Q2JgE*l&I!uYSBCH1hcLmIFdv8kn?bF&~}U~F%i-=?%iN`()g0Q1;O zq6HDt4m8u;?yI$O%ZII-SqX+Oi$qgPbU3RVUtUF}7{rc;Q5U^HtZ+)0;kFKlmlO7H z=s6_X4l+sb=(i^x-RfGm6OO{6#$=TawG!SUhI?Wai-+ zy}CARN)KVpT1u8qlCDxgF5sRA50N-R;?)XuYaonAYwx1X))JkUstQxcpLuryHFke(qd zom*o1;tsh|?0uu~m8;a`6WY^$du!nS50F3>>*^_IXpj*LVzo}h4Jev^lta~JB!~&L zN+Bj_SBY_GzX#W_w#Bm#e=T~MC;5-W-tGwjGm@<*GzumOS1^x|yP0L;A1|qfQuufn zK0dwI2}W;3Vdr0XuG0sBLJ6LI=m^Zn^^71yt%_-a1|Jrr|K>b_uVc=tpz%FmK!pV) z!ca;Dxb&K~fZ^@nZ>?Z>2=hO|g?2EUU4X#+4gUG`n{OOMNNC$G5&f{l!uWqylYgnt zZ$0==N#HLJ%z_*q7OGdzO4pbK6T0XMBp8Kk9dYQO@r|eSJt5aWIcRo;e)|yY?7?{2 zuSTVP3*#q8>K-24v_r}WZ;(Xt>2Eth+&F@k(oo*j4)>^J9rK-YrKH~1VW+Jb;Wk!L zqLv2IrfSa7{ImQ$EmEb^qd*q6udu9qFzuyLya>Y{si@*;S@oROaS;Wo0^#P#+UV3z zlGj^FoqjqBBx99#E-Zh0(T$eOvC*RBmw~%9JbeC9;BlIX6zYMUKyJy`p!UkdDs1=c z_#@qnCwZQT9U`FR`nji~ntDJRxb%-U1n1)pmNj4{L#TYsK6~RT&{y&!vHoPqGiL;F zk5bm2M{@mB6oUFOm^%!c2`viIBcsyz)%?i}V_%bp76!U6Hu#GB=2S^8&eXy+_ zAx=p-LV3@G^Y-PH+fx~|5E+>AScY9PZbgTSK%7R8q|WP7+|h|(EGfIdYtU?+88T6P z6LBe(0>ysAW6dt`F3_TJ({2B&O_N#mA3aoUz$Vfcg8Hnrj5n9B*h77lReK^wNXMC* zQ)91~r)8kG12SKwMR2+0quZm~8qbxADqFwBx1Wq|j_>Mba3o-b{CZ7Y{&fD>Mu|n& zvXA}Si^_0O9`=<`{c&cccZ$M}xa1re$O^0-SsT8YGs{ENUf%wC3vCIm``*lQc*pi}f&@VkIlW zS5O|Sjm8?MvDnl|$trfV8FRkJ=Eyp>qxD6Bp5qGk(TH;jE2|YDd^~~`ix-;(YA|z+ zCTIUKQmE@#KeZQxmy%&{{usOalga?r4DgNqs%qkVEM)T*g5VOm$IGj9v}pMG^E=xm zc+yD}PZuC?qmcp-uD z>fXFs6Yv%r9#~1KW4+l>BF_}{{`E^MSMoz^-IZ5ah_1J62aB}?H#p&9K5cPUD{(;8 zdA0h5d@WIW=aMA$acBU_IZ>vDr0?#mFnI;P`d}j#p1{MudCWT0?pg|K0Xe2I#5+rJ z=I&GtiB}shnG&M$6u7_w27w(MV^M;Kl6C?F4)dw?^>3&BpOS@txc9%!_Ba4r+qqEz zf;ep4vTgPT->3h_&ezLRXWP{VwgbGj zMirT(CSJ}eLj$f&Q^0p}rpXv}ZJL1Yu$uSSUt7I4qS65ZKde|ja}q=alg;=5m_aAU zjgVT*{gAZ-S2N06mGY*_&y=4Bt91BHvbQ~M+$~Fh=%(-2TjL_c7N4ubN)nvwiWP$H znB%;MGlt}&nd)`7xmM$a7)EtQuD-T=I7%UNG|I^LV(0QgzYBahAKQw;P4t0z)clMp z0u5(QU^%doX2YW4fNJdyKiT!go`rYDH{pcET~M~4ukmQ$N#YxPj(?3CU9$#L`CQe` zPCGF_Q2KZcGEk4ykKvA(8j*W1$Feb<#dQ)VyH~Q!V-P8n+{PO=r^e5N-akHuR%fLK zl2#YrggaD>iVc3brg*UMZ;6oqUU21nH#_5Q3N~=BePs@1<~u@gz%(ylNli$JS3*eL zz}q$-%ikBN{dh9Am}~!me&%h|u`f>OnBqoL&}^phQ1Ufic-IZWS~b*z=k3tnIfk=B z0}r1j{WVOp#&I$%U&EeT2BLqVMy1(T_N7!Zmkgp!aoeAPyRL0 zmYB7^Pxme1<8zR^M9matX76-y z(OZo#RVj4^!bcBR^Hr)i7wtSbjtn~I0?-~PX$gGmxJhZCqzeu?RFa-$6Letq5!*8P zFu`F%pAA2FTvg3|)Y*~mKi=1C<{aL}r<<|+*%}uUfgQs5 zn;3`n=t*PI&5ih;u)G@py)^DEPIuF$(*c%{kt*qs(W?eDpEOjr{u&p3uS!q&3(6}_ zC9HSl1iP=iY@&uYu=}%zs)2jYn$L0SN1wy<8(q#3b!Rfv9`PykLxFZ>#=2%`OWeA& zH1a5P#f%)zUKWhd$euz3xt`aQKnHhbGRWcW^_hrKspT1d4E7l75p-1dk(2~whSdLk zWkEfqB3u^<>hw4G$UtDi36K5;|6x`f3unI;Py2t*Rqp=QFmr;={SE%NT&3o+OYA#cPG(HvtZ4pJ}$poL%-Al zPHUmE^new=OE?PIFhXsX)`gv@)mbpD6i$?LdP;`50#BMacgOXDAaC-M@q+jd zm90Zz8CGD4-^C84u^xBOrIa=>;-Qe-kZlhgc~z?FRbqQ9>RjZ&o~};&i{1ydT};i? z9hVm?-s`TB`7zktgc>2B*N}xJW{Y)TWMQEWYIhcK*Gb9{lj-sfmWCMbgn`!Hf2a!w zosf(S?%e^1&3-txo?t)aww9tR(C*HIaUM(1w!0E{4T`$_j{6Lfv5DqL zo9D?!m=9TDW71VkV{s8q8~lna!V3?>^%GXG2IzZs-oo0J$e`r=DAp}|rl^NTaO(1Q zfgs@dxHYst5fz_)w|DDRP0iQ)4i5R)F=k0VkOB*^pIFmW2a0PtE6)#ei)^|Bggta( zbywL9GfecL9?f&0UMNWi{O8h|ynyY4A34WE7p(RaE zJ?niEnmV1!vFlHYhgc8ZGHY4>UWxzrcT*#aprj=cl$b!hBiw{(JB8dpE=Wkg#8&`Mrtx7a-t2j{n^2 z%=DDc-P2t{9;ad|;^RaU$6OT`OvSn$o2Nv2U#j2C{bCT->n;95ZGn-6#-rABykl)a zd0EU!26&?viA_F!zg}Q!b2(%fWeTdg#1inJ)Y|;?UR|9|pyk9mEG+LhZo#e9KHSA* z;`Cq|d9{Yp7HVvWGQ~mEBd`S_3rRc)m+BZ;)p(aj+W zTj-P2K?BzEt;ZBe%GoQ3WPu2g|8XY$#c9T(^$$0dZEUKAo-SVUK~JjY$=S ztmV5U+vF8};*3sSyqfW{%9aq*+^r#E7k5KG-SHE&r=s*8)|<3)F4nZY6;6G*CzC|O zV(vuIvX_NQePVw0GvB1&w;QbW4=C>EHEOh-jggmCuuw`cHQpl2ZjMGKzbL+GOSc$T zziF_!r~>P|RCFM4Xg#vV`20YCca9AyX@zofBwerKS%C|-WPg5Y9?xlNKYK5#{8&u> zlg1>d%W-!Y0~!T09QYmR4^jeJu~g*5UZoKC;zqSZ%P`9afAkYO3zZ(7ORsb3@E^r| zr1SGvL^S9!rA_yx>e;Xc6N4iSo{LXF=rSIM_VpIPv9EJraHO@3wJ=~&ubbe_3|e-9 z%JT!ve7d}D;EG>6-B*(;ZzJM3+>-Q7`T|$q4TuBqhb5Wwh-mSN%XL7lLJ-`Q+uLRR zFz!3;K*%t^%e*6%$GQCWXjRzG-nN;TVX6LnlBE5XoWEdK<<=F>Y2!4sUi-ZHo*$@s zdj8uGz^|84d8AE~OvY|$QKEt{eDDETER~s31Np56OHxSpI@78SwPw>2lMTjEaJYeL z^Hj-UU(mz+7QS`#O<=dY;rT{CF8Ooo>R_=r$5FDwxZS|c6N*ydZs9E_k0MnESht#; z$NH>Shift and select the last line number. + - **Markdown anchor**: Hover over a heading to reveal the anchor link ({{< icon name="link" >}}), and select it. +1. Select **Actions** ({{< icon name="ellipsis_v" >}}), then select **Copy Permalink**. + Alternatively, press y. For more shortcuts, see [keyboard shortcuts](../../../shortcuts.md). + ## View open merge requests for a file {{< history >}} diff --git a/qa/qa/page/dashboard/projects.rb b/qa/qa/page/dashboard/projects.rb index 35a40d07058..20d605e5090 100644 --- a/qa/qa/page/dashboard/projects.rb +++ b/qa/qa/page/dashboard/projects.rb @@ -49,7 +49,17 @@ module QA end def click_member_tab - click_link('Member') + # Because project authorization updates are async it is possible that we get to this page before + # project authorizations have been updated and therefore the empty state is shown. + # Retry until project authorizations have been updated. + QA::Support::Retrier.retry_until( + max_duration: 60, + retry_on_exception: true, + reload_page: true, + sleep_interval: 2 + ) do + click_link('Member') + end wait_for_requests end diff --git a/rubocop/rubocop-migrations.yml b/rubocop/rubocop-migrations.yml index a7df2054688..ed852dbf06d 100644 --- a/rubocop/rubocop-migrations.yml +++ b/rubocop/rubocop-migrations.yml @@ -42,6 +42,7 @@ Migration/UpdateLargeTable: - :resource_label_events - :sbom_occurrences - :security_findings + - :security_scans - :sent_notifications - :system_note_metadata - :taggings