- 06 Jun, 2017 11 commits
-
-
Rémy Coutable authored
Speed up checking for approvers remaining Closes #1843 and #2448 See merge request !2032
-
Douwe Maan authored
Stop using sidekiq-cron for scheduling all project mirror pull and move to adaptive scheduling Closes gitlab-ce#29218 See merge request !1853
-
Sean McGivern authored
Implement server-wide Audit Logging admin screen Closes #2336 See merge request !1852
-
James Lopez authored
-
Grzegorz Bizon authored
Resolve "Approvers don't appear when MR is created from a fork" Closes #2556 See merge request !2035
-
Sean Packham authored
Remove references to old settings location See merge request !2043
-
Achilleas Pipinellis authored
-
Fatih Acet authored
re-add avatar url to approver avatar Closes #2560 See merge request !2034
-
Grzegorz Bizon authored
-
Sean McGivern authored
The `users_select_tag` helper defaults to using `@project`, which in this case is the source project, not the target project. Explicitly use the target project to get the right list of users.
-
Sean McGivern authored
1. Use the ProjectAuthorization model to find users with developer access to this project. This is dramatically faster than the old version, with the complicated ORs, on staging: ~10ms vs ~800ms. 2. Use `to_a` explicitly when checking `any?` on a relation. Refactoring out the `any?` checks would be painful, but as we often use the results anyway, `to_a` lets us save a query. Adding this up gets us the below (for a MR on the gitlab-ce project in staging). Before: Project Load (2.3ms) SELECT "projects".* FROM "projects" WHERE "projects"."pending_delete" = 'f' AND "projects"."id" = 13083 ORDER BY "projects"."id" DESC LIMIT 1 [["pending_delete", false], ["id", 13083]] Approver Exists (1.2ms) SELECT 1 AS one FROM "approvers" WHERE "approvers"."target_id" = 2294769 AND "approvers"."target_type" = 'MergeRequest' LIMIT 1 [["target_id", 2294769], ["target_type", "MergeRequest"]] ApproverGroup Exists (0.8ms) SELECT 1 AS one FROM "approver_groups" WHERE "approver_groups"."target_id" = 2294769 AND "approver_groups"."target_type" = 'MergeRequest' LIMIT 1 [["target_id", 2294769], ["target_type", "MergeRequest"]] User Load (2.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = 840794 ORDER BY "users"."id" DESC LIMIT 1 [["id", 840794]] Approver Load (0.9ms) SELECT "approvers".* FROM "approvers" WHERE "approvers"."target_id" = 13083 AND "approvers"."target_type" = 'Project' AND ("approvers"."user_id" != 840794) [["target_id", 13083], ["target_type", "Project"], ["user_id", 840794]] Approver Exists (0.6ms) SELECT 1 AS one FROM "approvers" WHERE "approvers"."target_id" = 2294769 AND "approvers"."target_type" = 'MergeRequest' LIMIT 1 [["target_id", 2294769], ["target_type", "MergeRequest"]] ApproverGroup Exists (0.6ms) SELECT 1 AS one FROM "approver_groups" WHERE "approver_groups"."target_id" = 2294769 AND "approver_groups"."target_type" = 'MergeRequest' LIMIT 1 [["target_id", 2294769], ["target_type", "MergeRequest"]] ApproverGroup Load (0.7ms) SELECT "approver_groups".* FROM "approver_groups" WHERE "approver_groups"."target_id" = 13083 AND "approver_groups"."target_type" = 'Project' [["target_id", 13083], ["target_type", "Project"]] Group Load (1.3ms) SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."deleted_at" IS NULL AND "namespaces"."type" IN ('Group') AND "namespaces"."id" = 9970 AND "namespaces"."type" IN ('Group') AND "namespaces"."type" = 'Group' ORDER BY "namespaces"."id" DESC LIMIT 1 [["id", 9970], ["type", "Group"]] (1222.4ms) SELECT COUNT(*) FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."ghost" = 'f' OR "users"."ghost" IS NULL) AND ("users"."support_bot" = 'f' OR "users"."support_bot" IS NULL) AND ((id IN (SELECT "members"."user_id" FROM "members" WHERE "members"."source_type" = 'Project' AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = 13083 AND "members"."source_type" = 'Project' AND "members"."type" IN ('ProjectMember') AND "members"."requested_at" IS NULL AND (access_level > 20) ORDER BY "members"."id" DESC) OR id IN (SELECT "members"."user_id" FROM "members" WHERE "members"."source_type" = 'Namespace' AND "members"."type" IN ('GroupMember') AND "members"."source_id" = 9970 AND "members"."source_type" = 'Namespace' AND "members"."type" IN ('GroupMember') AND "members"."requested_at" IS NULL AND (access_level > 20) ORDER BY "members"."id" DESC)) AND id NOT IN (SELECT "approvals"."user_id" FROM "approvals" WHERE "approvals"."merge_request_id" = 2294769)) AND ("users"."id" != 840794) [["id", 840794]] After: Project Load (2.5ms) SELECT "projects".* FROM "projects" WHERE "projects"."pending_delete" = 'f' AND "projects"."id" = 13083 ORDER BY "projects"."id" DESC LIMIT 1 [["pending_delete", false], ["id", 13083]] Approver Load (1.3ms) SELECT "approvers".* FROM "approvers" WHERE "approvers"."target_id" = 2294769 AND "approvers"."target_type" = 'MergeRequest' [["target_id", 2294769], ["target_type", "MergeRequest"]] ApproverGroup Load (1.5ms) SELECT "approver_groups".* FROM "approver_groups" WHERE "approver_groups"."target_id" = 2294769 AND "approver_groups"."target_type" = 'MergeRequest' [["target_id", 2294769], ["target_type", "MergeRequest"]] User Load (2.9ms) SELECT "users".* FROM "users" WHERE "users"."id" = 840794 ORDER BY "users"."id" DESC LIMIT 1 [["id", 840794]] Approver Load (0.9ms) SELECT "approvers".* FROM "approvers" WHERE "approvers"."target_id" = 13083 AND "approvers"."target_type" = 'Project' AND ("approvers"."user_id" != 840794) [["target_id", 13083], ["target_type", "Project"], ["user_id", 840794]] ApproverGroup Load (0.7ms) SELECT "approver_groups".* FROM "approver_groups" WHERE "approver_groups"."target_id" = 13083 AND "approver_groups"."target_type" = 'Project' [["target_id", 13083], ["target_type", "Project"]] (6.2ms) SELECT COUNT(*) FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."ghost" = 'f' OR "users"."ghost" IS NULL) AND ("users"."support_bot" = 'f' OR "users"."support_bot" IS NULL) AND ((id IN (SELECT "project_authorizations"."user_id" FROM "project_authorizations" WHERE (project_id = 13083 AND access_level > 20))) AND id NOT IN (SELECT "approvals"."user_id" FROM "approvals" WHERE "approvals"."merge_request_id" = 2294769)) AND ("users"."id" != 840794) [["id", 840794]]
-
- 05 Jun, 2017 20 commits
-
-
Tiago Botelho authored
-
Douwe Maan authored
Per user/group access levels for Protected Tags Closes #2132 See merge request !1629
-
Douwe Maan authored
Fix '/unassign' slash command Closes #2470 and #2516 See merge request !1986
-
Robert Speicher authored
[EE] Enable the Style/PreferredHashMethods cop See merge request !2023
-
Tiago Botelho authored
-
Tiago Botelho authored
-
Tiago Botelho authored
-
Tiago Botelho authored
-
Douwe Maan authored
Merge branch '2532-saving-a-mirrored-project-errors-out-if-mirror-user-has-been-deleted' into 'master' Update mirror user for all projects deleted user is mirror_user for Closes #2532 See merge request !2013
-
Athar Hameed authored
-
kushalpandya authored
-
Grzegorz Bizon authored
Add shared_runners_minutes_limit to groups and users API See merge request !1942
-
Simon Knox authored
-
Robert Speicher authored
Geo: use GeoNode#clone_url_prefix for the Geo::RepositorySyncService See merge request !2028
-
kushalpandya authored
-
Lin Jen-Shin authored
-
Sean McGivern authored
Forbid Sidekiq scheduling in transactions [EE] See merge request !2024
-
Douglas Barbosa Alexandre authored
-
Douglas Barbosa Alexandre authored
-
- 04 Jun, 2017 1 commit
-
-
Valery Sizov authored
-
- 03 Jun, 2017 3 commits
-
-
Achilleas Pipinellis authored
Clarify license should be uploaded to the primary Geo node See merge request !1947
-
Stan Hu authored
[ci skip]
-
Douwe Maan authored
-
- 02 Jun, 2017 5 commits
-
-
Douwe Maan authored
-
Douwe Maan authored
-
Douwe Maan authored
-
Yorick Peterse authored
Scheduling jobs in transactions can lead to race conditions where a job runs before a transaction has been committed. The added initializer ensures the various Sidekiq scheduling methods raise an error when called inside a transaction. Fixes #27233
-
Lin Jen-Shin authored
made by the API. TODO: Need to do this for CE and all the API tests as well
-