summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Hart <dvhart@linux.intel.com>2011-05-23 10:21:53 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-25 15:50:54 +0100
commit567f171920080175af2d25378ab51ed2e3904501 (patch)
tree48b9c48251806699cd335b1218e1cd0b291d69c1
parentc2d187065e81b1cef8fd6ce36dbe582866320c11 (diff)
downloadpoky-567f171920080175af2d25378ab51ed2e3904501.tar.gz
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 (From OE-Core rev: 861c288e353e917374de938c4e5e927e116cd56c) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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
97 exit 1 97 exit 1
98 fi 98 fi
99 99
100 # Rewrite known private URLs to public URLs 100 # Rewrite private URLs to public URLs
101 # Determine the repository name for use in the WEB_URL later 101 # Determine the repository name for use in the WEB_URL later
102 case "$REMOTE_URL" in 102 case "$REMOTE_URL" in
103 ssh://git@git.pokylinux.org*) 103 *@*)
104 REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#") 104 USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?"
105 REMOTE_URL=${REMOTE_URL/'ssh://git@'/'git://'} 105 PROTO_RE="[a-z][a-z]*://"
106 GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)"
107 REMOTE_URL=${REMOTE_URL%.git}
108 REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#")
109 REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#")
106 ;; 110 ;;
107 ssh://git@git.yoctoproject.org*) 111 *)
108 REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#") 112 echo "WARNING: Unrecognized remote URL: $REMOTE_URL"
109 REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"} 113 echo " The pull and browse URLs will likely be incorrect"
110 ;;
111 *ssh://git@git.openembedded.org*)
112 REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
113 REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
114 ;;
115 git@github.com:*)
116 REMOTE_REPO=$(echo $REMOTE_URL | sed 's#.*:\(.*\)\(\.git\)$#\1#')
117 REMOTE_URL=${REMOTE_URL/"git@github.com:"/"git://github.com/"}
118 ;; 114 ;;
119 esac 115 esac
120 # The .git suffix is optional in the URL, drop in for the REPO
121 REMOTE_REPO=${REMOTE_REPO%.git}
122 ;; 116 ;;
123 esac 117 esac
124done 118done
@@ -134,6 +128,7 @@ fi
134 128
135 129
136# Set WEB_URL from known remotes 130# Set WEB_URL from known remotes
131WEB_URL=""
137case "$REMOTE_URL" in 132case "$REMOTE_URL" in
138 *git.yoctoproject.org*) 133 *git.yoctoproject.org*)
139 WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH" 134 WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"