add integration repos for A1
[infra/cicd.git] / jjb / opendev / push-upstream-jobs.sh
index 83c858d9901906946dc2bb7e80e3b86703200d3d..ef22aba2faab37c93445a314a6b5be9ce85ed73c 100755 (executable)
@@ -46,13 +46,10 @@ opendev_project=$(echo "$GERRIT_PROJECT" | cut -d/ -f2- )
 # Nordix Gerrit can map the email address of the user pushed the change to
 # the review to the Gerrit username of the accound in Nordix Gerrit. This
 # should match with the Gerrit username in the OpenDev Gerrit.
-# TODO(gibi): parse the json propely if there are tools (e.g. jq) available on
-# the jenkins slave
 username=$(
     curl -s -H 'Accept: application/json' \
         "$nordix_gerrit_rest/accounts/?q=email:$GERRIT_EVENT_ACCOUNT_EMAIL&o=DETAILS" \
-    | tee /dev/stderr \
-    | sed -n 's/^.*"username":"\(\S*\)".*$/\1/p')
+    | tee /dev/stderr | tail -1 | jq -r '.[0].username')
 
 opendev_remote_url="ssh://$username@$opendev_gerrit_base/$opendev_project"
 
@@ -61,9 +58,9 @@ opendev_remote_url="ssh://$username@$opendev_gerrit_base/$opendev_project"
 # GERRIT_TOPIC is the rest of the refspec after GERRIT_BRANCH when the topic
 # is set for the change.
 if [ -z "${GERRIT_TOPIC:-}" ] ; then
-    refspec="$commit_hash:refs/for/$GERRIT_BRANCH"
+    refspec="${commit_hash}:refs/for/${GERRIT_BRANCH}"
 else
-    refspec="$commit_hash:refs/for/$GERRIT_BRANCH/$GERRIT_TOPIC"
+    refspec="${commit_hash}:refs/for/${GERRIT_BRANCH}%topic=${GERRIT_TOPIC}"
 fi
 
 echo >&2 "Pushing to OpenDev"
@@ -71,7 +68,7 @@ echo >&2 "Pushing to OpenDev"
 # do not fail if git push fails as in case of no new changes we want to succeed. See below.
 set +o pipefail
 
-git push "$opendev_remote_url" "$refspec" 2>&1 | tee push_result.txt
+git push --no-thin "$opendev_remote_url" "$refspec" 2>&1 | tee push_result.txt
 push_result=${PIPESTATUS[0]}
 
 # make the job a success if the above git push fails due to no new changes are needed
@@ -81,4 +78,3 @@ push_result=${PIPESTATUS[0]}
 if [ $push_result -ne 0 ]; then
     grep '(no new changes)' push_result.txt
 fi
-