Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-10-23 00:16:59 +00:00
parent 57c56a9260
commit 03d68e0c71
25 changed files with 127 additions and 111 deletions

View File

@ -0,0 +1,99 @@
<!-- Title suggestion: [Model] Rollout Plan -->
<!-- Do not remove this confidential declaration and make sure to mark this issue as confidential! -->
_The issue is marked confidential, as we'll share SAFE metrics in the comments._
## Overview
_Add a short statement here about the new model. Make sure your overview includes a reason as to why you are introducing this new model._
<!-- Add relevant links. Example below: -->
| Resource | Links |
| -------------- | - |
| Model | <!-- add relevant link(s) about the model, e.g.: model documentation --> |
| Epic or Issue | <!-- it is recommended to create an epic when introducing a new model --> |
| Feature Flag Rollout Issue | <!-- this is required --> |
| Status updates | <!-- this is optional but recommended --> |
### Rollout success criteria
_Add a list of success criteria here_
### Dashboard References
_This can be the acceptance rate or latency dashboards filtered to the new model. Add as many dashboards as is relevant._
## Legal notes
_Add legal notes here_
## Known issue list
_List of issues identified throughout the evaluation, implementation, and rollout of the model._
## Rollout
### Timeline
_Optional: add a short description here of the expected timeline._
<!-- Add a detailed timeline similar to the example below: -->
| Date | Audience | Status |
|------|----------|--------|
| ??? | Code Creation team members and other stakeholeders | |
| ??? | All GitLab team members | |
| ??? | 50% of all users | |
| ??? | 100% of all users | |
### Feedback from GitLab team members
_Add link to the internal feedback issue._
### Persevere / Continue Criteria
<!-- example criteria: -->
1. Latency remains within observed p50/90/95 ranges below
1. Acceptance rate remains within observed range below, or improves
1. Nothing was raised as a blocker
<!-- example supporting details -->
_Observed latency from May 17 to Aug 21_
* p50: 637ms to 782ms
* p90: 881ms to 1,046ms
* p95: 977ms to 1,212 ms
_Observed acceptance rate from July 4 to Aug 21_
* Acceptance rate: 13.9% to 20.4%
### Pivot / Pause / Rollback Criteria
<!-- example criteria: -->
1. Requests are not using the new model as expected
1. There is an increase or spike in time-to-show for the new model vs the old model
1. There is a decrease in acceptance rate compared to the old model
## Mitigation and Rollback Plan
<!-- Example plan description: -->
We will use a Feature Flag to control the rollout. If there are any concerns (see above), we will disable the feature flag, especially for external users, to investigate any potential issues.
## Release Announcement
_Add details here about where to make announcements when the model is ready for rollout to external users._
/confidential
/label "group::code creation"
/label "devops::create"
/label "section::dev"
/label "type::feature"
/label "feature::maintenance"
/label "Category:Code Suggestions"

View File

@ -230,6 +230,26 @@ To temporarily change the statement timeout:
(for example the backup or the Rails command).
1. Revert the edit in `/var/opt/gitlab/gitlab-rails/etc/database.yml`.
### Observe (RE)INDEX progress report
In some situations, you might want to observe the progress of a `CREATE INDEX` or `REINDEX` operation. For example, you can do this to confirm whether the `CREATE INDEX` or `REINDEX` operation is active, or to check which phase the operation is in.
Prerequisites:
- You must use PostgreSQL version 12 or later.
To observe a `CREATE INDEX` or `REINDEX` operation:
- Use the built-in [`pg_stat_progress_create_index` view](https://www.postgresql.org/docs/current/progress-reporting.html#CREATE-INDEX-PROGRESS-REPORTING).
For example, from a database console session, run the following command:
```sql
SELECT * FROM pg_stat_progress_create_index \watch 0.2
```
To learn more about producing human-friendly output and writing data to log files, see [this snippet](https://gitlab.com/-/snippets/3750940).
## Troubleshooting
### Database is not accepting commands to avoid wraparound data loss

View File

@ -1116,6 +1116,13 @@ For example:
1. Recommended. Enter a description for the job.
```
### Documenting keyboard shortcuts and commands
Write UI instructions instead of keyboard commands when both options exist.
This guideline applies to GitLab and third-party applications, like VS Code.
Keyboard commands for GitLab are documented in [GitLab keyboard shortcuts](../../../user/shortcuts.md).
### Documenting multiple fields at once
If the UI text sufficiently explains the fields in a section, do not include a task step for every field.

View File

@ -57,10 +57,6 @@ module QA
wait_until_project_is_ready(different_project)
end
after do
different_project.remove_via_api!
end
it 'cannot be used to create a file via the project API', :smoke,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347860' do
expect do

View File

@ -9,10 +9,6 @@ module QA
let(:api_client) { Runtime::API::Client.new(:gitlab, user: rate_limited_user) }
let!(:request) { Runtime::API::Request.new(api_client, '/users') }
after do
rate_limited_user.remove_via_api!
end
it 'throttles authenticated api requests by user',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347881' do
with_application_settings(

View File

@ -12,9 +12,8 @@ module QA
let(:project) { create(:project, :with_readme, name: 'merge-request-push-options') }
let!(:runner) { create(:project_runner, project: project, name: "runner-for-#{project.name}", tags: ["runner-for-#{project.name}"]) }
after do |example|
after do
runner.remove_via_api!
project.remove_via_api! unless example.exception
end
it 'sets merge when pipeline succeeds', :blocking, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347843' do

View File

@ -8,10 +8,6 @@ module QA
let(:project) { create(:project, :with_readme, name: 'push-postreceive-idempotent') }
after do
project&.remove_via_api!
end
it 'pushes and creates a single push event three times', :blocking, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347680' do
verify_single_event_per_push(repeat: 3)
end

View File

@ -25,11 +25,6 @@ module QA
Support::Waiter.wait_until { !pipeline_schedule[:id].nil? && pipeline_schedule[:active] == true }
end
after do
user.remove_via_api!
project.remove_via_api!
end
it 'pipeline schedule is canceled', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347999' do
user.block!

View File

@ -30,10 +30,6 @@ module QA
parent_group.add_member(parent_group_user)
end
after do
parent_group_user.remove_via_api!
end
it(
'is allowed to push code to sub-group project via the CLI',
:blocking,
@ -109,10 +105,6 @@ module QA
sub_group.add_member(sub_group_user)
end
after do
sub_group_user.remove_via_api!
end
it(
'is not allowed to push code to parent group project via the CLI',
:blocking,

View File

@ -33,14 +33,6 @@ module QA
group.add_member(developer_user, Resource::Members::AccessLevel::DEVELOPER)
end
after do
group.set_require_two_factor_authentication(value: 'false')
group.remove_via_api! do |resource|
resource.api_client = admin_api_client
end
developer_user.remove_via_api!
end
it(
'allows enforcing 2FA via UI and logging in with 2FA', :blocking,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347931'

View File

@ -80,13 +80,6 @@ module QA
Support::Waiter.wait_until(max_duration: 120, sleep_interval: 3) { !user.exists? }
end
after do
if recreated_user
recreated_user.api_client = admin_api_client
recreated_user.remove_via_api!
end
end
it 'allows recreating with same credentials', :blocking, :external_api_calls,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347868' do
expect(Page::Main::Menu.perform(&:signed_in?)).to be_falsy

View File

@ -5,10 +5,6 @@ module QA
describe 'Project access tokens', :smoke, :health_check, product_group: :authentication do
let(:project_access_token) { QA::Resource::ProjectAccessToken.fabricate_via_browser_ui! }
after do
project_access_token.project.remove_via_api!
end
it(
'can be created and revoked via the UI',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347688'

View File

@ -25,10 +25,6 @@ module QA
@project = create(:project, :with_readme, name: 'project-for-user-group-access-termination', group: group)
end
after(:all) do
@sandbox.remove_via_api!
end
context 'when parent group membership is terminated' do
before do
@sandbox.remove_member(@user)

View File

@ -32,10 +32,6 @@ module QA
end
end
after do
project.remove_via_api!
end
it 'creates an issue', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/377890' do
with_slack_tab do
Vendor::Slack::Page::Chat.perform do |chat_page|
@ -92,10 +88,6 @@ module QA
context 'with target project' do
let(:target) { create(:project, :with_readme, name: 'target_slack_project') }
after do
target.remove_via_api!
end
it 'moves an issue', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/377894' do
with_slack_tab do
Vendor::Slack::Page::Chat.perform do |chat_page|

View File

@ -20,10 +20,6 @@ module QA
create(:issue, project: project).visit!
end
after do
user&.remove_via_api!
end
it 'mentions a user in a comment', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347949' do
Page::Project::Issue::Show.perform do |show|
show.select_all_activities_filter

View File

@ -12,10 +12,6 @@ module QA
Flow::Login.sign_in
end
after do
initial_wiki.project.remove_via_api!
end
it 'by creating a formatted page with an image uploaded',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347640' do
initial_wiki.visit!

View File

@ -16,10 +16,6 @@ module QA
commit.visit!
end
after do
project.remove_via_api!
end
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347716' do
Page::Project::Commit::Show.perform(&:revert_commit)
Page::MergeRequest::New.perform(&:create_merge_request)

View File

@ -3,10 +3,6 @@
module QA
RSpec.describe 'Create' do
describe 'Repository License Detection', product_group: :source_code do
after do
project.remove_via_api!
end
let(:project) { create(:project) }
shared_examples 'project license detection' do

View File

@ -16,7 +16,6 @@ module QA
after do
runner.remove_via_api!
project.remove_via_api!
end
it 'creates 2 trigger jobs and passes corresponding matrix variables', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348000' do

View File

@ -16,7 +16,6 @@ module QA
after do
runner.remove_via_api!
project.remove_via_api!
end
keys = [

View File

@ -25,10 +25,6 @@ module QA
end
end
after do
user&.remove_via_api!
end
it 'generates a todo item for the group owner', :blocking,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/370132' do
Page::Dashboard::Todos.perform do |todos|

View File

@ -4,13 +4,8 @@ module QA
RSpec.describe 'Data Stores', product_group: :tenant_scale do
shared_examples 'loads all images' do |admin|
let(:api_client) { Runtime::API::Client.as_admin }
let(:user) { create(:user, admin: admin, api_client: api_client) }
after do
user.remove_via_api!
end
it do
Flow::Login.sign_in(as: user)

View File

@ -52,24 +52,13 @@ module QA
personal_namespace: Runtime::User.username)
end
after do
project.remove_via_api!
group.remove_via_api!
end
it_behaves_like 'invites group to project'
end
context 'with a group project', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/349340' do
let(:group) { create(:group, path: "group-for-group-project-#{SecureRandom.hex(8)}") }
let(:project) { create(:project, :private, name: 'group-project', description: 'test group project') }
after do
project.remove_via_api!
group.remove_via_api!
end
it_behaves_like 'invites group to project'
end
end

View File

@ -43,13 +43,6 @@ module QA
followed_user_api_client.personal_access_token
end
after do
project&.api_client = admin_api_client
project&.remove_via_api!
followed_user&.remove_via_api!
following_user&.remove_via_api!
end
it 'can be followed and their activity seen', :blocking,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347678' do
Flow::Login.sign_in(as: following_user)

View File

@ -28,10 +28,6 @@ module QA
parent_group.add_member(parent_group_user)
end
after do
parent_group_user.remove_via_api!
end
it(
'is allowed to edit the sub-group project files', :blocking,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/363467'
@ -66,10 +62,6 @@ module QA
sub_group.add_member(sub_group_user)
end
after do
sub_group_user.remove_via_api!
end
it(
'is not allowed to edit the parent group project files', :blocking,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/363466'