Skip to content

Migrate personal project MAINTAINER access memberships to OWNER

What does this MR do and why?

In the past, on creation of a project under a personal namespace, a membership was created with MAINTAINER access level.

The MR to remove this behaviour is !78193 (merged).

This MR migrates all personal namespace MAINTAINER access memberships, ONLY for the associated namespace user, to OWNER.

Database

See !80710 (closed) for database pipeline testing.

up

$ be rake db:migrate:up VERSION=20220208080921
== 20220208080921 MigratePersonalNamespaceProjectMaintainerToOwner: migrating ================
== 20220208080921 MigratePersonalNamespaceProjectMaintainerToOwner: migrated (0.0228s) =======

down

$ be rake db:migrate:down VERSION=20220208080921
== 20220208080921 MigratePersonalNamespaceProjectMaintainerToOwner: reverting ================
== 20220208080921 MigratePersonalNamespaceProjectMaintainerToOwner: reverted (0.0069s) =======

batching

SQL:

SELECT "members".* FROM "members" INNER JOIN projects ON members.source_id = projects.id INNER JOIN namespaces ON projects.namespace_id = namespaces.id WHERE "members"."id" BETWEEN 10000 AND 20000 AND "members"."type" = 'ProjectMember' AND (namespaces.type = 'User') AND (members.access_level < 50) AND (namespaces.owner_id = members.user_id)

See 👉 https://gitlab.com/gitlab-org/gitlab/-/issues/351986#note_841542062 for batching details

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #351211 (closed)

Edited by charlie ablett

Merge request reports

Loading