Page MenuHomePhabricator

Fix up Gerrit usernames having upper case character(s)
Closed, ResolvedPublic

Description

In All-Users.git refs/meta/external-ids we have three accounts containing an upper case character. The userame: scheme is used for authentication REST and git endpoints:

8c/6405c1d38c30a039545989ad85e7d6b023739c:[externalId "username:Fran McCrory"]
aa/5f73819965682d225b8cc56df028b2c626ddea:[externalId "username:Kaldari"]
fe/7afe19fdfa31e32735491d9ef035f932e9ad59:[externalId "username:SamanthaNguyen"]
curl 'https://gerrit.wikimedia.org/r/accounts/78?O=DETAILS'|tail -n1|jq .
{
  "_account_id": 78,
  "name": "Kaldari",
  "email": "kaldari@gmail.com",
  "username": "Kaldari"
}
curl 'https://gerrit.wikimedia.org/r/accounts/381?O=DETAILS'|tail -n1|jq .
{
  "_account_id": 381,
  "name": "Fran",
  "email": "fran@dumetella.net",
  "username": "Fran McCrory"
}
curl 'https://gerrit.wikimedia.org/r/accounts/3327?O=DETAILS'|tail -n1|jq .
{
  "_account_id": 3327,
  "name": "SamanthaNguyen",
  "email": "codynguyen1116@gmail.com",
  "username": "SamanthaNguyen"
}

The returned Json is an AccountInfo object:

nameThe full name of the user
usernameThe username of the user.

To rebuild the accounts:

ssh -p 29418 gerrit.wikimedia.org -- gerrit index start accounts --force

Event Timeline

Change 856580 had a related patch set uploaded (by Hashar; author: Hashar):

[All-Users@refs/meta/config] refs/meta/external-ids: allow Forge Committer to Administrators

https://gerrit.wikimedia.org/r/856580

Change 856580 merged by Hashar:

[All-Users@refs/meta/config] refs/meta/external-ids: allow Forge Committer to Administrators

https://gerrit.wikimedia.org/r/856580

I have manually deleted username:Kaldari in All-Users.git:

commit 495ec6989a771ca345d89d6df8055c66dd91e888 (HEAD -> meta/external-ids, origin/meta/external-ids, refs/meta/external-ids)
Author: Antoine Musso <hashar@free.fr>
Date:   Tue Nov 15 14:44:13 2022 +0000

    Remove duplicate user username:Kaldari (78)
    
    We have a duplicate account for Ryan Kaladari (former WMF employee) and
    it shows up when running upstream too to detect duplicate accounts:
    
      $ cd All-Users.git
      $ ~/projects/gerrit/contrib/find-duplicate-usernames.sh username
      kaldari 78
      Kaldari 78
    
    This removes the account having an upper case letter given there is an
    all lower case version:
    
      b3/d4b7a688fcf1202457de9031d4bbe36eeb707d:
      [externalId "gerrit:kaldari"]
            accountId = 78
            email = kaldari@gmail.com
    
    Bug: T323097

diff --git a/aa/5f73819965682d225b8cc56df028b2c626ddea b/aa/5f73819965682d225b8cc56df028b2c626ddea
deleted file mode 100644
index 6cefaa252a..0000000000
--- a/aa/5f73819965682d225b8cc56df028b2c626ddea
+++ /dev/null
@@ -1,2 +0,0 @@
-[externalId "username:Kaldari"]
-       accountId = 78

I have converted username:Fran McCrory to be all lower case:

commit 6c09bae902bfe56bfce222439468d79148d5dc38 (HEAD -> meta/external-ids, origin/meta/external-ids, refs/meta/external-ids)
Author: Antoine Musso <hashar@free.fr>
Date:   Tue Nov 15 15:02:59 2022 +0000

    Convert "username:Fran McCrory" to lower case
    
      $ printf "username:Fran McCrory"|shasum -a 1
      8c6405c1d38c30a039545989ad85e7d6b023739c  -
      $ printf "username:fran mccrory"|shasum -a 1
      e163bd71aed09f83cc75ea621769bfcc71015924  -
    
    I have amended the entry then did `git mv`.
    
    Bug: T323097

diff --git a/8c/6405c1d38c30a039545989ad85e7d6b023739c b/8c/6405c1d38c30a039545989ad85e7d6b023739c
deleted file mode 100644
index 1572307604..0000000000
--- a/8c/6405c1d38c30a039545989ad85e7d6b023739c
+++ /dev/null
@@ -1,2 +0,0 @@
-[externalId "username:Fran McCrory"]
-       accountId = 381
diff --git a/e1/63bd71aed09f83cc75ea621769bfcc71015924 b/e1/63bd71aed09f83cc75ea621769bfcc71015924
new file mode 100644
index 0000000000..af49d12f20
--- /dev/null
+++ b/e1/63bd71aed09f83cc75ea621769bfcc71015924
@@ -0,0 +1,2 @@
+[externalId "username:fran mccrory"]
+       accountId = 381

I have converted SamanthaNguyen to all lower case:

commit f8b7cc2dc1844518cdd92495d8df1cf5b94bc3d5 (HEAD -> meta/external-ids, origin/meta/external-ids, refs/meta/external-ids)
Author: Antoine Musso <hashar@free.fr>
Date:   Tue Nov 15 15:14:12 2022 +0000

    Convert "username:SamanthaNguyen" to lower case
    
      $ printf "username:SamanthaNguyen"|shasum -a 1
      fe7afe19fdfa31e32735491d9ef035f932e9ad59  -
      $ printf "username:samanthanguyen"|shasum -a 1
      cb96d31f8ec56799e56065a3e14e8ab81605e66b  -
    
    I have amended the entry then did `git mv`.
    
    Bug: T323097

diff --git a/cb/96d31f8ec56799e56065a3e14e8ab81605e66b b/cb/96d31f8ec56799e56065a3e14e8ab81605e66b
new file mode 100644
index 0000000000..f38b63de78
--- /dev/null
+++ b/cb/96d31f8ec56799e56065a3e14e8ab81605e66b
@@ -0,0 +1,2 @@
+[externalId "username:samanthanguyen"]
+       accountId = 3327
diff --git a/fe/7afe19fdfa31e32735491d9ef035f932e9ad59 b/fe/7afe19fdfa31e32735491d9ef035f932e9ad59
deleted file mode 100644
index 5524c9da7a..0000000000
--- a/fe/7afe19fdfa31e32735491d9ef035f932e9ad59
+++ /dev/null
@@ -1,2 +0,0 @@
-[externalId "username:SamanthaNguyen"]
-       accountId = 3327

I have reindexed all accounts with ssh -p 29418 gerrit.wikimedia.org -- gerrit index start accounts --force then queried again the three accounts via the REST API and ran a diff:

diff -u99 -r before/78 after/78
--- before/78	2022-11-15 16:17:21.000980424 +0100
+++ after/78	2022-11-15 16:17:55.937418442 +0100
@@ -1,6 +1,6 @@
 {
   "_account_id": 78,
   "name": "Kaldari",
   "email": "kaldari@gmail.com",
-  "username": "Kaldari"
+  "username": "kaldari"
 }
diff -u99 -r before/381 after/381
--- before/381	2022-11-15 16:17:30.761102834 +0100
+++ after/381	2022-11-15 16:18:02.741503701 +0100
@@ -1,6 +1,6 @@
 {
   "_account_id": 381,
   "name": "Fran",
   "email": "fran@dumetella.net",
-  "username": "Fran McCrory"
+  "username": "fran mccrory"
 }
diff -u99 -r before/3327 after/3327
--- before/3327	2022-11-15 16:17:40.485224760 +0100
+++ after/3327	2022-11-15 16:18:10.313598566 +0100
@@ -1,6 +1,6 @@
 {
   "_account_id": 3327,
   "name": "SamanthaNguyen",
   "email": "codynguyen1116@gmail.com",
-  "username": "SamanthaNguyen"
+  "username": "samanthanguyen"
 }
hashar claimed this task.

There is no more any upper case letter in Gerrit accounts (scheme username:):

$ git grep -P 'username:.*[A-Z]' refs/meta/external-ids --
$

Thanks Tyler for P8606

Mentioned in SAL (#wikimedia-releng) [2022-11-15T15:24:15Z] <hashar> gerrit: converted, to all lower case, the Gerrit accounts username:Kaldari, username:Fran McCrory and username:SamanthaNguyen # T323097