diff --git a/.github/scripts/prepare-quarkus-next.sh b/.github/scripts/prepare-quarkus-next.sh
index c34d3e2f7e79..97dc200f2c8f 100755
--- a/.github/scripts/prepare-quarkus-next.sh
+++ b/.github/scripts/prepare-quarkus-next.sh
@@ -1,28 +1,54 @@
#!/bin/bash
set -xeuo pipefail
+add_repository() {
+ local file=$1
+ local element=$2
+
+ local id="sonatype-snapshots"
+ local name="Sonatype Snapshots"
+ local url="https://s01.oss.sonatype.org/content/repositories/snapshots/"
+
+ # Decide the tag based on the element
+ local tag
+ if [ "$element" = "repository" ]; then
+ tag="repositories"
+ elif [ "$element" = "pluginRepository" ]; then
+ tag="pluginRepositories"
+ fi
+
+ # Repository to be inserted
+ local repository="<$element> \
+ $id \
+ $name \
+ $url \
+ \
+ true \
+ daily \
+ \
+ \
+ false \
+ \
+ $element>"
+
+ # Check if the tag exists in the file
+ if grep -q "<$tag>" "$file"; then
+ # Insert the element before the closing tag
+ sed -i "/<\/$tag>/i $repository" "$file"
+ else
+ # If the tag doesn't exist, create it and insert the element
+ sed -i "/<\/project>/i \
+ <$tag> \
+ $repository \
+ $tag>" "$file"
+ fi
+}
+
git checkout -b new-quarkus-next origin/main
-if ! grep -q '' pom.xml; then
- sed -i '/<\/project>/i \
- \
- ' pom.xml
-fi
-
-# Insert the element before the closing tag
-sed -i '/<\/repositories>/i \
- \
- sonatype-snapshots \
- Sonatype Snapshots \
- https://s01.oss.sonatype.org/content/repositories/snapshots/ \
- \
- true \
- daily \
- \
- \
- false \
- \
- ' pom.xml
+add_repository "pom.xml" "repository"
+add_repository "quarkus/pom.xml" "pluginRepository"
+add_repository "operator/pom.xml" "pluginRepository"
./mvnw -B versions:set-property -Dproperty=quarkus.version -DnewVersion=999-SNAPSHOT
./mvnw -B versions:set-property -Dproperty=quarkus.build.version -DnewVersion=999-SNAPSHOT