diff --git a/cascading-pr.sh b/cascading-pr.sh index e762fee..0609f73 100755 --- a/cascading-pr.sh +++ b/cascading-pr.sh @@ -37,17 +37,23 @@ function upsert_branch() { function upsert_pr() { local repo_api=${options[destination_url]}/api/v1/repos/${options[destination_repo]} local title="cascading-pr from ${options[origin_url]}/${options[origin_repo]}/pulls/${options[origin_pr]}" - repo_curl ${options[destination_repo]} api --get --data state=open --data type=pulls --data-urlencode q="$title" $repo_api/issues | jq --raw-output .[0] > $TMPDIR/pr.json - url=$(jq --raw-output .url < $TMPDIR/pr.json) + repo_curl ${options[destination_repo]} api --get --data state=open --data type=pulls --data-urlencode q="$title" $repo_api/issues | jq --raw-output .[0] > $TMPDIR/destination-pr.json + url=$(jq --raw-output .url < $TMPDIR/destination-pr.json) if test "$url" != "null"; then log_info "PR already exists $url" return fi - repo_curl ${options[destination_repo]} api_json --data-raw '{"title":"'"$title"'","base":"'${options[destination_base]}'","head":"'${options[destination_head]}'"}' $repo_api/pulls > $TMPDIR/pr.json - url=$(jq --raw-output .url < $TMPDIR/pr.json) + repo_curl ${options[destination_repo]} api_json --data-raw '{"title":"'"$title"'","base":"'${options[destination_base]}'","head":"'${options[destination_head]}'"}' $repo_api/pulls > $TMPDIR/destination-pr.json + url=$(jq --raw-output .url < $TMPDIR/destination-pr.json) log_info "PR created $url" } +function origin_pr_head() { + local repo_api=${options[origin_url]}/api/v1/repos/${options[origin_repo]} + repo_curl ${options[origin_repo]} api_json $repo_api/pulls/${options[origin_pr]} > $TMPDIR/origin-pr.json + jq --raw-output .head.ref < $TMPDIR/origin-pr.json +} + function upsert_clone() { local direction=$1 branch=$2 clone=$3 @@ -103,6 +109,7 @@ function finalize_options() { options[origin_scheme]=$(scheme ${options[origin_url]}) options[origin_host_port]=$(host_port ${options[origin_url]}) options[origin_clone]=${options[origin_scheme]}://:${options[origin_token]}@${options[origin_host_port]}/${options[origin_repo]} + options[origin_head]=$(origin_pr_head) options[destination_scheme]=$(scheme ${options[destination_url]}) options[destination_host_port]=$(host_port ${options[destination_url]}) options[destination_clone]=${options[destination_scheme]}://:${options[destination_token]}@${options[destination_host_port]}/${options[destination_repo]} diff --git a/tests/originrepo/upgraded b/tests/originrepo/upgraded old mode 100644 new mode 100755