Update sync PRs

Push updates to the repo sync PRs if there is already a PR open. This
allows for cumulative updates to be synced.

Signed-off-by: SuperQ <superq@gmail.com>
This commit is contained in:
SuperQ 2021-06-26 18:42:37 +02:00
parent 3707619900
commit c843314a9f
No known key found for this signature in database
GPG Key ID: C646B23C9E3245F1
1 changed files with 8 additions and 8 deletions

View File

@ -116,8 +116,10 @@ check_circleci_orb() {
process_repo() { process_repo() {
local org_repo local org_repo
local pr_link
local default_branch local default_branch
org_repo="$1" org_repo="$1"
pr_link="$2"
echo_green "Analyzing '${org_repo}'" echo_green "Analyzing '${org_repo}'"
default_branch="$(get_default_branch "${org_repo}")" default_branch="$(get_default_branch "${org_repo}")"
@ -186,6 +188,10 @@ process_repo() {
git add . git add .
git commit -s -m "${commit_msg}" git commit -s -m "${commit_msg}"
if push_branch "${org_repo}"; then if push_branch "${org_repo}"; then
if [[ "${pr_link}" != "null" ]]; then
echo_yellow "Pull request already opened for branch '${branch}': ${pr_link}"
return 0
fi
if ! post_pull_request "${org_repo}" "${default_branch}"; then if ! post_pull_request "${org_repo}" "${default_branch}"; then
return 1 return 1
fi fi
@ -205,14 +211,8 @@ for org in ${orgs}; do
fetch_repos "${org}" | while read -r repo; do fetch_repos "${org}" | while read -r repo; do
# Check if a PR is already opened for the branch. # Check if a PR is already opened for the branch.
fetch_uri="repos/${org}/${repo}/pulls?state=open&head=${org}:${branch}" fetch_uri="repos/${org}/${repo}/pulls?state=open&head=${org}:${branch}"
prLink="$(github_api "${fetch_uri}" --show-error | jq -r '.[0].html_url')" pr_link="$(github_api "${fetch_uri}" --show-error | jq -r '.[0].html_url')"
if [[ "${prLink}" != "null" ]]; then if ! process_repo "${org}/${repo}" "${pr_link}"; then
echo_green "Pull request already opened for branch '${branch}': ${prLink}"
echo "Either close it or merge it before running this script again!"
continue
fi
if ! process_repo "${org}/${repo}"; then
echo_red "Failed to process '${org}/${repo}'" echo_red "Failed to process '${org}/${repo}'"
exit 1 exit 1
fi fi