Some pipeline status icon tooltips were showing
"Commit: ..." which customers found to be
misleading since it was not the commit that was
failing but the pipeline.
We are changing all status icon tooltips to say
"Pipeline: ..." instead of "Commit: ..." now.
Projects that have a pipeline may need to check whether the user has
permission to read the build (`can?(current_user, :read_build,
project)`), which requires checking the `project_features` table.
This would cause an N+1 SQL query for each project.
This change also has a beneficial side effect that may avoid a race
condition. When a user deletes a project, the project is queued for
deletion and the user is redirected back to the dashboard page. However,
the following may happen:
1. The dashboard page may load this deleted project in the list of
20 projects.
2. The view will load the project pipeline status from the cache and
attempt to show each project.
3. When the view encounters the deleted project, it calls
`can?(current_user, :read_build, project)` to determine whether to
display the pipeline status.
4. Sidekiq deletes the project from the database.
5. However, since the deleted project is still loaded in memory, it will
attempt to call `project.project_feature.access_level`.
6. Since `project_feature` was not eager loaded, a lazy `SELECT` call is
made to the database.
7. This `SELECT` call returns nothing, and the user sees a 500 error.
By eager loading `project_feature`, we can ensure that we have a
consistent view and avoid records from being deleted later.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/66482
Un-nest title variable output
Update spec test names
Rename sort_value_most_stars -> sort_value_stars_desc
Rename sorted_by_stars -> sorted_by_stars_desc
Renname sort_value_most_stars_asc -> sort_value_stars_asc
Invert feature check, assign feature condition to a variable
Inline conditional nav bar rendering
Invert conditional label
Added follow up task
Fix filters returning 0 projects show the wrong view
Move click action out of test expectation
Use proper variable name for project in before block
Rename projects_sort_admin_options_hash
Renamed projects_sort_admin_options_has to
old_projects_sort_options_hash as its not only used
on the admin screen
Fix extra whitespace errors
Stub project_list_filter_bar in the projects_helper specs
Added follow up task for `show_projects?`
Removed url test expectations
Add tests to ensure search only executes with a button click or enter,
sort by Name, Last updated, Created date and Stars and tests for
Visibility filter
When a user is a guest user, and the "Public Pipeline" is set to false
inside of "Settings > CI/CD > General" the commit status in the project
dashboard should not be shown.
Use the max of the `last_activity_at` and `last_repository_updated_at`
columns. The latter is updated only when a push happens, but the former is
updated whenever any activity (e.g. issue creation) happens.
Closes#27181
Replaces all the explicit include metadata syntax in the specs (tag:
true) into the implicit one (:tag).
Added a cop to prevent future errors and handle autocorrection.