- 05 May, 2021 16 commits
-
-
Sam Kerr authored
-
Luke Duncalfe authored
Remove user from rotation if removed from project/group ## What does this MR do? <!-- Describe in detail what your merge request does and why. Are there any risks involved with the proposed change? What additional test coverage is introduced to offset the risk? Please keep this description up-to-date with any discussion that takes place so that reviewers can understand your intent. This is especially important if they didn't participate in the discussion. --> This adds a service to remove a user from an On-call Rotation. We ensure that the rotation is up to date by running the job top persist current shifts. Then, we update the `is_removed` boolean on the Participant model associated to the user/rotation. Deletion from rotations are scoped to the member being removed: - If a member is a project member, only that project's rotations are affected - If a member is a group member, all of the projects within that group are affected **Why don't we use the existing [`EditRotationService`](https://gitlab.com/gitlab-org/gitlab/-/blob/9c35c043a9ce9d70bd30ec6dc0d30991bf15ab29/ee/app/services/incident_management/oncall_rotations/edit_service.rb) service?** The `EditRotationService` requires you to provide all `participant` params for all remaining participants, and in a format which requires the `user`, `color_palette`, `color_weight` etc. Rather than modify the `EditRotationService` to make this easier, I chose to make a specific service for this use case. SQL queries for finder: Single Project: Explain: https://explain.depesz.com/s/QToy SQL: ```sql User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 /*application:console,line:/ee/app/finders/incident_management/member_oncall_rotations_finder.rb:11:in `initialize'*/ Project Load (0.5ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = 4302 LIMIT 1 /*application:console,line:/ee/app/finders/incident_management/member_oncall_rotations_finder.rb:15:in `execute'*/ IncidentManagement::OncallRotation Load (4.5ms) SELECT "incident_management_oncall_rotations".* FROM "incident_management_oncall_rotations" INNER JOIN "incident_management_oncall_participants" ON "incident_management_oncall_rotations"."id" = "incident_management_oncall_participants"."oncall_rotation_id" INNER JOIN "incident_management_oncall_schedules" ON "incident_management_oncall_schedules"."id" = "incident_management_oncall_rotations"."oncall_schedule_id" WHERE "incident_management_oncall_participants"."user_id" = 1 AND "incident_management_oncall_schedules"."project_id" = 4302 ``` Group member, multiple projects: Explain: https://explain.depesz.com/s/3sxa SQL: ```sql User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 Namespace Load (0.5ms) SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 4374 LIMIT 1 IncidentManagement::OncallRotation Load (1.1ms) SELECT "incident_management_oncall_rotations".* FROM "incident_management_oncall_rotations" INNER JOIN "incident_management_oncall_participants" ON "incident_management_oncall_rotations"."id" = "incident_management_oncall_participants"."oncall_rotation_id" INNER JOIN "incident_management_oncall_schedules" ON "incident_management_oncall_schedules"."id" = "incident_management_oncall_rotations"."oncall_schedule_id" WHERE "incident_management_oncall_participants"."user_id" = 1 AND "incident_management_oncall_schedules"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 4374) ``` ## Screenshots (strongly suggested) <!-- Please include any relevant screenshots that will assist reviewers and future readers. If you need help visually verifying the change, please leave a comment and ping a GitLab reviewer, maintainer, or MR coach. --> ## Does this MR meet the acceptance criteria? ### Conformity -
📋 [Does this MR need a changelog?](https://docs.gitlab.com/ee/development/changelog.html#what-warrants-a-changelog-entry) - [x] I have included a changelog entry. - [ ] I have not included a changelog entry because _____. - [ ] [Documentation](https://docs.gitlab.com/ee/development/documentation/workflow.html) ([if required](https://about.gitlab.com/handbook/engineering/ux/technical-writing/workflow/#when-documentation-is-required)) - [x] [Code review guidelines](https://docs.gitlab.com/ee/development/code_review.html) - [ ] [Merge request performance guidelines](https://docs.gitlab.com/ee/development/merge_request_performance_guidelines.html) - [x] [Style guides](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/development/contributing/style_guides.md) - [x] [Database guides](https://docs.gitlab.com/ee/development/database_review.html) - [x] [Separation of EE specific content](https://docs.gitlab.com/ee/development/ee_features.html#separation-of-ee-code) ### Availability and Testing <!-- What risks does this change pose? How might it affect the quality/performance of the product? What additional test coverage or changes to tests will be needed? Will it require cross-browser testing? See the test engineering process for further guidelines: https://about.gitlab.com/handbook/engineering/quality/test-engineering/ --> <!-- If cross-browser testing is not required, please remove the relevant item, or mark it as not needed: [-] --> - [ ] [Review and add/update tests for this feature/bug](https://docs.gitlab.com/ee/development/testing_guide/index.html). Consider [all test levels](https://docs.gitlab.com/ee/development/testing_guide/testing_levels.html). See the [Test Planning Process](https://about.gitlab.com/handbook/engineering/quality/test-engineering). - [ ] [Tested in all supported browsers](https://docs.gitlab.com/ee/install/requirements.html#supported-web-browsers) - [ ] Informed Infrastructure department of a default or new setting change, if applicable per [definition of done](https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#definition-of-done) ### Security If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in [the security review guidelines](https://about.gitlab.com/handbook/engineering/security/#when-to-request-a-security-review): - [ ] Label as ~security and @ mention `@gitlab-com/gl-security/appsec` - [ ] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods - [ ] Security reports checked/validated by a reviewer from the AppSec team Related to #323631 See merge request gitlab-org/gitlab!59427 -
Sean Arnold authored
This adds a service to remove a user from an On-call Rotation. We ensure that the rotation is up to date by running the job top persist current shifts. Then, we update the `is_removed` boolean on the Participant model associated to the user/rotation. Deletion from rotations are scoped to the member being removed: - If a member is a project member, only that project's rotations are affected - If a member is a group member, all of the projects within that group are affected https://gitlab.com/gitlab-org/gitlab/-/issues/323631
-
Jan Provaznik authored
Added award emoji to the epics public API See merge request gitlab-org/gitlab!60410
-
Luke Duncalfe authored
Fix N+1 problem in CustomEmojiFilter See merge request gitlab-org/gitlab!60910
-
Vasilii Iakliushin authored
Contributes to https://gitlab.com/gitlab-org/gitlab/-/issues/271242 **Problem** I discovered repetitive `SELECT 1 AS one FROM "custom_emoji" WHERE "custom_emoji"."namespace_id" = <id> LIMIT 1` queries generated by CustomEmojiFilter. **Solution** - Update test to catch N+1 queries - Add memoization to prevent them
-
charlie ablett authored
Add CI template field to project GraphQL type See merge request gitlab-org/gitlab!60276
-
Russell Dickenson authored
Resolve "Document in GitLab docs how to create HAR files" See merge request gitlab-org/gitlab!47835
-
Michael Eddington authored
-
David Kim authored
Fix incorrect MR popovers See merge request gitlab-org/gitlab!60878
-
Russell Dickenson authored
Update to be clear only applies to default See merge request gitlab-org/gitlab!60865
-
Nicole Schwartz authored
-
Evan Read authored
Documentation: add 'Security considerations' section to token_overview.md See merge request gitlab-org/gitlab!60761
-
Evan Read authored
Docs: Add note on TCP requirement for existing Gitaly See merge request gitlab-org/gitlab!60673
-
Will Chandler authored
-
Dylan Griffith authored
Check duplicate package regex against version as well as name See merge request gitlab-org/gitlab!60760
-
- 04 May, 2021 24 commits
-
-
Evan Read authored
Proposal for Redis slots name for events tracked using Redis HLL See merge request gitlab-org/gitlab!60477
-
Alina Mihaila authored
-
James Fargher authored
Reorganize learn gitlab specs See merge request gitlab-org/gitlab!60729
-
Tiger Watson authored
Validate foreign key on GroupHooks See merge request gitlab-org/gitlab!60527
-
James Fargher authored
Fix not implemented error See merge request gitlab-org/gitlab!60741
-
Stan Hu authored
Fix authorizations for epic boards See merge request gitlab-org/gitlab!60742
-
Stan Hu authored
fix: Propagate tracking feature flag to CI report parsers See merge request gitlab-org/gitlab!60872
-
Lucas Charles authored
-
Mike Greiling authored
Update default branch name in FE specs See merge request gitlab-org/gitlab!60820
-
Tiger Watson authored
Create table user_credit_card_validations See merge request gitlab-org/gitlab!60626
-
Mayra Cabrera authored
Populate timelogs.project_id See merge request gitlab-org/gitlab!60439
-
Mayra Cabrera authored
Enable Semgrep analyzer in Configuration UI See merge request gitlab-org/gitlab!60460
-
David O'Regan authored
Fix group-level "Projects with releases" stats when stat is 0 See merge request gitlab-org/gitlab!60752
-
Jose Ivan Vargas authored
Add pagination spec for jira_connect app See merge request gitlab-org/gitlab!58213
-
Nathan Friend authored
This commit fixes a bug that prevented the "Projects with releases" stat from being rendered when the value of the statistic was 0.
-
David O'Regan authored
Rephrase setting for recovery alerts to match expected behavior See merge request gitlab-org/gitlab!58515
-
Sarah Yasonik authored
-
Dan Davison authored
Resolve "Docs feedback: epics or snippets?" See merge request gitlab-org/gitlab!60835
-
Amy Qualls authored
Start cleanup of "threads" page See merge request gitlab-org/gitlab!60870
-
Amy Qualls authored
-
Robert Speicher authored
Add support for standard method call interface on Auditor See merge request gitlab-org/gitlab!60591
-
Matija Čupić authored
Update API Fuzzing image name to use SECURE_ANALYZERS_PREFIX See merge request gitlab-org/gitlab!60409
-
Adam Hegyi authored
Create partial indexes for pending/running builds See merge request gitlab-org/gitlab!60942
-
Andrew Fontaine authored
Add diff component to report_items See merge request gitlab-org/gitlab!60188
-