summaryrefslogtreecommitdiffstats
path: root/scripts/create-pull-request
diff options
context:
space:
mode:
authorDarren Hart <dvhart@linux.intel.com>2011-05-23 10:21:53 -0700
committerSaul Wold <sgw@linux.intel.com>2011-05-23 23:39:09 -0700
commit861c288e353e917374de938c4e5e927e116cd56c (patch)
treec87af2007698e05c037e82935c74994cb0f6d01d /scripts/create-pull-request
parentdebee5134a2ca505e968a6ddfb5c2f6434e3007a (diff)
downloadopenembedded-core-contrib-861c288e353e917374de938c4e5e927e116cd56c.tar.gz
openembedded-core-contrib-861c288e353e917374de938c4e5e927e116cd56c.tar.bz2
openembedded-core-contrib-861c288e353e917374de938c4e5e927e116cd56c.zip
create-pull-request: generalize the repository URL parsing
The existing REMOTE_URL and REMOTE_REPO parsing made assumptions regarding the git URL format used for the known repository types. In fact, both of these ssh URL formats are valid for all the known repositories. Specifically: ssh://git@server/repository/path git@server:repository/path Generalize the parsing to work with each of these for all push URLs matching *@*. Tested with the following URLs: ssh://git@git.pokylinux.org/poky-contrib ssh://git@git.pokylinux.org/poky-contrib.git git@git.pokylinux.org:poky-contrib git@git.pokylinux.org:poky-contrib.git Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Diffstat (limited to 'scripts/create-pull-request')
-rwxr-xr-xscripts/create-pull-request29
1 files changed, 12 insertions, 17 deletions
diff --git a/scripts/create-pull-request b/scripts/create-pull-request
index b808146391..19b640fdb8 100755
--- a/scripts/create-pull-request
+++ b/scripts/create-pull-request
@@ -97,28 +97,22 @@ while getopts "b:chi:m:o:p:r:s:u:" OPT; do
exit 1
fi
- # Rewrite known private URLs to public URLs
+ # Rewrite private URLs to public URLs
# Determine the repository name for use in the WEB_URL later
case "$REMOTE_URL" in
- ssh://git@git.pokylinux.org*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
- REMOTE_URL=${REMOTE_URL/'ssh://git@'/'git://'}
+ *@*)
+ USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?"
+ PROTO_RE="[a-z][a-z]*://"
+ GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)"
+ REMOTE_URL=${REMOTE_URL%.git}
+ REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#")
+ REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#")
;;
- ssh://git@git.yoctoproject.org*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
- REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
- ;;
- *ssh://git@git.openembedded.org*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
- REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
- ;;
- git@github.com:*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed 's#.*:\(.*\)\(\.git\)$#\1#')
- REMOTE_URL=${REMOTE_URL/"git@github.com:"/"git://github.com/"}
+ *)
+ echo "WARNING: Unrecognized remote URL: $REMOTE_URL"
+ echo " The pull and browse URLs will likely be incorrect"
;;
esac
- # The .git suffix is optional in the URL, drop in for the REPO
- REMOTE_REPO=${REMOTE_REPO%.git}
;;
esac
done
@@ -134,6 +128,7 @@ fi
# Set WEB_URL from known remotes
+WEB_URL=""
case "$REMOTE_URL" in
*git.yoctoproject.org*)
WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"