Update to 3.11

- Bump test docker gerrit image to 3.11.0
- Bump bazlets
- Fix default permissions for docker tests
- Fix first login redirects

Impact: events plugin build with Gerrit v3.11
Risk-Scope: events plugin
Change-Id: Id75c73734695b93fe72d12d332815b75bf79580d
diff --git a/WORKSPACE b/WORKSPACE
index 89fc44a..16dce6a 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
 load("//:bazlets.bzl", "load_bazlets")
 
 load_bazlets(
-    commit = "cc68cb5ffdab500e36674cb7558911b180ea61c3",
+    commit = "e3a8273dbfced5c41f6f08f49d063c4366be0278",
 )
 
 load(
diff --git a/test/docker/docker-compose.yaml b/test/docker/docker-compose.yaml
index de23263..8ad9f50 100755
--- a/test/docker/docker-compose.yaml
+++ b/test/docker/docker-compose.yaml
@@ -1,4 +1,3 @@
-version: '3'
 services:
 
   gerrit-01:
diff --git a/test/docker/gerrit/Dockerfile b/test/docker/gerrit/Dockerfile
index f066c70..6b2e320 100755
--- a/test/docker/gerrit/Dockerfile
+++ b/test/docker/gerrit/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.10.0-ubuntu22
+FROM gerritcodereview/gerrit:3.11.0-ubuntu24
 
 ENV GERRIT_SITE /var/gerrit
 COPY artifacts/plugins/ $GERRIT_SITE/plugins/
@@ -7,6 +7,7 @@
 COPY artifacts/bin/ /tmp/
 RUN { [ -e /tmp/gerrit.war ] && cp /tmp/gerrit.war "$GERRIT_SITE/bin/gerrit.war" ; } || true
 COPY start.sh /
+RUN touch "$GERRIT_SITE"/.firstTimeRedirect
 
 USER gerrit
 ENTRYPOINT /start.sh
diff --git a/test/docker/run_tests/Dockerfile b/test/docker/run_tests/Dockerfile
index 286fea2..b6abf39 100755
--- a/test/docker/run_tests/Dockerfile
+++ b/test/docker/run_tests/Dockerfile
@@ -1,12 +1,12 @@
 FROM alpine:3.19
 
-ARG UID=1000
-ARG GID=1000
+ARG UID=1001
+ARG GID=1001
 ENV USER gerrit_admin
 ENV USER_HOME /home/$USER
 ENV WORKSPACE $USER_HOME/workspace
 
-RUN apk --update add --no-cache openssh bash git util-linux openssl shadow curl
+RUN apk --update add --no-cache openssh bash git util-linux openssl shadow curl jq
 RUN echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
 
 RUN groupadd -f -g $GID users2
diff --git a/test/docker/run_tests/add_gerrit_access_permissions.sh b/test/docker/run_tests/add_gerrit_access_permissions.sh
new file mode 100755
index 0000000..a618d69
--- /dev/null
+++ b/test/docker/run_tests/add_gerrit_access_permissions.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+
+GROUP_ID_ADMINISTRATORS=$(curl --no-progress-meter --netrc -X GET \
+    "http://$GERRIT_HOST:8080/a/groups/Administrators" | \
+    sed -e '1!b' -e "/^)]}'$/d" | jq -r '.id')
+
+if [ -z "$GROUP_ID_ADMINISTRATORS" ]; then
+    echo "Error: Failed to get Administrators group ID from Gerrit"
+    exit 1
+fi
+
+curl --no-progress-meter --netrc -X POST \
+    "http://$GERRIT_HOST:8080/a/projects/All-Projects/access" \
+    --header 'Content-Type: application/json' --output /dev/null \
+    --data @<(cat <<EOF
+{
+    "add": {
+        "refs/heads/*": {
+            "permissions": {
+                "push": {
+                    "rules": {
+                        "$GROUP_ID_ADMINISTRATORS": {
+                            "action": "ALLOW"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+EOF
+)
\ No newline at end of file
diff --git a/test/docker/run_tests/start.sh b/test/docker/run_tests/start.sh
index e7bde14..4896758 100755
--- a/test/docker/run_tests/start.sh
+++ b/test/docker/run_tests/start.sh
@@ -26,8 +26,6 @@
   "Gerrit Code Review@$GERRIT_HOST" suexec --as "admin@example.com" -- gerrit create-account \
      --ssh-key - --email "gerrit_admin@localdomain"  --group "Administrators" "gerrit_admin"
 
-setup_test_project
-
 HTTP_PASSWD=$(uuidgen)
 ssh -p 29418 "$GERRIT_HOST" gerrit set-account "$USER" --http-password "$HTTP_PASSWD"
 cat <<EOT >> ~/.netrc
@@ -36,4 +34,7 @@
 password $HTTP_PASSWD
 EOT
 
+./docker/run_tests/add_gerrit_access_permissions.sh
+setup_test_project
+
 ./test_events_plugin.sh --server "$GERRIT_HOST" --project "$TEST_PROJECT"