#!/bin/bash # stx-remote-fix.sh Update git remotes for OpenDev rename # # stx-remote-fix.sh [-n|--dry-run] # # Run in the root of a git repo # # Search git remotes for updates due to the OpenDev transition: # # git.openstack.org opendev.org # review.openstack.org review.opendev.org # /openstack-dev/ /openstack/ # /openstack-infra/ /openstack/ # git.starlingx.io opendev.org # /openstack/stx- /starlingx/ # github.com/openstack review.opendev.org/openstack OLD_GIT_HOST="git.openstack.org" NEW_GIT_HOST="opendev.org" OLD_REVIEW_HOST="review.openstack.org" NEW_REVIEW_HOST="review.opendev.org" OLD_OPENSTACK_DEV_NAMESPACE="/openstack-dev/" OLD_OPENSTACK_INFRA_NAMESPACE="/openstack-infra/" NEW_OPENSTACK_NAMESPACE="/openstack/" OLD_STX_HOST="git.starlingx.io" NEW_STX_HOST="opendev.org" OLD_STX_NAMESPACE="/openstack/stx-" NEW_STX_NAMESPACE="/starlingx/" GITHUB_HOST="github.com" GITHUB_OPENSTACK="github.com/openstack" DRY_RUN="" if [[ "$1" == "--dry-run" || "$1" == "-n" ]]; then DRY_RUN=echo fi # Get remotes git remote -v | grep "\(fetch\)" | while read name url _; do update="" # Look for rewrite opportunities # GitHub if [[ "${url}" =~ "${GITHUB_OPENSTACK}" ]]; then # Rewrite these to canonical URLs url=${url/$GITHUB_HOST/$NEW_REVIEW_HOST} echo "github: $url" update=1 fi # review.openstack.org -> review.opendev.org if [[ "${url}" =~ "${OLD_REVIEW_HOST}" ]]; then # Rewrite these to canonical URLs url=${url/$OLD_REVIEW_HOST/$NEW_REVIEW_HOST} echo "review.o.o: $url" update=1 fi # git.openstack.org -> opendev.org if [[ "${url}" =~ "${OLD_GIT_HOST}" ]]; then # Rewrite these to canonical URLs url=${url/$OLD_GIT_HOST/$NEW_GIT_HOST} echo "git.o.o: $url" update=1 fi # /openstack-dev/ -> /openstack/ if [[ "${url}" =~ "${OLD_OPENSTACK_DEV_NAMESPACE}" ]]; then # Rewrite these to canonical URLs url=${url/$OLD_OPENSTACK_DEV_NAMESPACE/$NEW_OPENSTACK_NAMESPACE} echo "openstack-dev: $url" update=1 fi # /openstack-infra/ -> /openstack/ if [[ "${url}" =~ "${OLD_OPENSTACK_INFRA_NAMESPACE}" ]]; then # Rewrite these to canonical URLs url=${url/$OLD_OPENSTACK_INFRA_NAMESPACE/$NEW_OPENSTACK_NAMESPACE} echo "openstack-infra: $url" update=1 fi # StarlingX if [[ "${url}" =~ "git.starlingx.io/stx-" ]]; then # Rewrite new StarlingX repo names url="${url/$OLD_STX_HOST/$NEW_STX_HOST}" echo "stx.io-: $url" update=1 fi # StarlingX if [[ "${url}" =~ "$OLD_STX_NAMESPACE" ]]; then # Rewrite new StarlingX repo names url="${url/$OLD_STX_NAMESPACE/$NEW_STX_NAMESPACE}" echo "stx-: $url" update=1 fi # General Gerrit # Recreate git remotes if [[ -n $update ]]; then $DRY_RUN git remote set-url $name $url fi done