# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
+echo "---> gerrit-fetch-dependencies.sh"
# Fetches patches all projects provided by comment trigger
#
# Takes a list of Gerrit patches and fetches all projects and cherry-pick
# patches for projects. The trigger is
# 'recheck: SPACE_SEPERATED_LIST_OF_PATCHES'
+# or
+# 'reverify: SPACE_SEPERATED_LIST_OF_PATCHES'
#
# NOTE: This script assumes the user will provide the correct dependency order
# via the PATCHES list.
REPOS_DIR="$WORKSPACE/.repos"
-IFS=" " read -r -a PATCHES <<< "$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep 'recheck:' | awk -F: '{print $2}')"
+IFS=" " read -r -a PATCHES <<< "$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep -E '(recheck:|reverify:)' | awk -F: '{print $2}')"
+
+# shellcheck disable=SC1090
+source ~/lf-env.sh
+
+lf-activate-venv "git-review==1.28"
-# Workaround for git-review bug in v1.24
-# https://storyboard.openstack.org/#!/story/2001081
-set +u # Allow unbound variables for virtualenv
-virtualenv --quiet "/tmp/v/git-review"
-# shellcheck source=/tmp/v/git-review/bin/activate disable=SC1091
-source "/tmp/v/git-review/bin/activate"
-pip install --quiet --upgrade pip
-pip install --quiet --upgrade git-review
-set -u
-# End git-review workaround
projects=()
-for patch in $(echo "${PATCHES[@]}"); do
+for patch in "${PATCHES[@]}"; do
json=$(curl -s "$GERRIT_URL/changes/$patch" | sed -e "s/)]}'//")
project=$(echo "$json" | jq -r '.project')
branch=$(echo "$json" | jq -r '.branch')
+ if [ "$GERRIT_CHANGE_NUMBER" == "$patch" ]; then
+ echo "WARN: GERRIT_CHANGE and $patch are one and the same. Ignoring patch..."
+ continue
+ fi
+
if [ ! -d "$REPOS_DIR/$project" ]; then
git clone -q --depth 1 -b "$branch" "$GIT_URL/$project" "$REPOS_DIR/$project"