@@ -90,11 +90,10 @@ export GOFLAGS="-ldflags=-s -ldflags=-w"
9090export GITHUB_TOKEN=" "
9191readonly IMAGES_REFS_FILE=" ${IMAGES_REFS_FILE:- $(mktemp -d)/ images_refs.txt} "
9292
93- # Convenience function to run the hub tool.
94- # Parameters: $1..$n - arguments to hub.
95- function hub_tool() {
96- # Pinned to SHA because of https://github.com/github/hub/issues/2517
97- go_run github.com/github/hub/v2@363513a " $@ "
93+ # Convenience function to run the GitHub CLI tool `gh`.
94+ # Parameters: $1..$n - arguments to gh.
95+ function gh_tool() {
96+ go_run github.com/cli/cli/v2/cmd/
[email protected] " $@ " 9897}
9998
10099# Shortcut to "git push" that handles authentication.
@@ -193,7 +192,7 @@ function prepare_dot_release() {
193192 # Support tags in two formats
194193 # - knative-v1.0.0
195194 # - v1.0.0
196- releases=" $( hub_tool release | cut -d ' -' -f2) "
195+ releases=" $( gh_tool release list --json tagName --jq ' .[].tagName ' | cut -d ' -' -f2) "
197196 echo " Current releases are: ${releases} "
198197 [[ $? -eq 0 ]] || abort " cannot list releases"
199198 # If --release-branch passed, restrict to that release
@@ -218,7 +217,7 @@ function prepare_dot_release() {
218217 # Ensure there are new commits in the branch, otherwise we don't create a new release
219218 setup_branch
220219 # Use the original tag (ie. potentially with a knative- prefix) when determining the last version commit sha
221- local github_tag=" $( hub_tool release | grep " ${last_version} " ) "
220+ local github_tag=" $( gh_tool release list --json tagName --jq ' .[].tagName ' | grep " ${last_version} " ) "
222221 local last_release_commit=" $( git rev-list -n 1 " ${github_tag} " ) "
223222 local last_release_commit_filtered=" $( git rev-list --invert-grep --grep " \[skip-dot-release\]" -n 1 " ${github_tag} " ) "
224223 local release_branch_commit=" $( git rev-list -n 1 upstream/" ${RELEASE_BRANCH} " ) "
@@ -239,7 +238,7 @@ function prepare_dot_release() {
239238 # If --release-notes not used, copy from the latest release
240239 if [[ -z " ${RELEASE_NOTES} " ]]; then
241240 RELEASE_NOTES=" $( mktemp) "
242- hub_tool release show -f " %b " " ${github_tag} " > " ${RELEASE_NOTES} "
241+ gh_tool release view " ${github_tag} " --json " body " --jq ' .body ' > " ${RELEASE_NOTES} "
243242 echo " Release notes from ${last_version} copied to ${RELEASE_NOTES} "
244243 fi
245244}
@@ -640,18 +639,12 @@ function set_latest_to_highest_semver() {
640639
641640 local last_version release_id # don't combine with assignment else $? will be 0
642641
643- last_version=" $( hub_tool -p release | cut -d' -' -f2 | grep ' ^v[0-9]\+\.[0-9]\+\.[0-9]\+$' | sort -r -V | head -1) "
642+ last_version=" $( gh_tool release list --json tagName --jq ' .[].tagName ' | cut -d' -' -f2 | grep ' ^v[0-9]\+\.[0-9]\+\.[0-9]\+$' | sort -r -V | head -1) "
644643 if ! [[ $? -eq 0 ]]; then
645644 abort " cannot list releases"
646645 fi
647-
648- release_id=" $( hub_tool api " /repos/${ORG_NAME} /${REPO_NAME} /releases/tags/knative-${last_version} " | jq .id) "
649- if [[ $? -ne 0 ]]; then
650- abort " cannot get relase id from github"
651- fi
652-
653- hub_tool api --method PATCH " /repos/${ORG_NAME} /${REPO_NAME} /releases/$release_id " \
654- -F make_latest=true > /dev/null || abort " error setting $last_version to 'latest'"
646+
647+ gh_tool release edit " knative-${last_version} " --latest > /dev/null || abort " error setting $last_version to 'latest'"
655648 echo " Github release ${last_version} set as 'latest'"
656649}
657650
@@ -742,12 +735,14 @@ function publish_to_github() {
742735 local description=" $( mktemp) "
743736 local attachments_dir=" $( mktemp -d) "
744737 local commitish=" "
738+ local target_branch=" "
745739 local github_tag=" knative-${TAG} "
746740
747741 # Copy files to a separate dir
742+ # shellcheck disable=SC2068
748743 for artifact in $@ ; do
749744 cp ${artifact} " ${attachments_dir} " /
750- attachments+=(" --attach= ${artifact} #$( basename ${artifact} ) " )
745+ attachments+=(" ${artifact} #$( basename ${artifact} ) " )
751746 done
752747 echo -e " ${title} \n" > " ${description} "
753748 if [[ -n " ${RELEASE_NOTES} " ]]; then
@@ -774,13 +769,16 @@ function publish_to_github() {
774769 git tag -a " ${github_tag} " -m " ${title} "
775770 git_push tag " ${github_tag} "
776771
777- [[ -n " ${RELEASE_BRANCH} " ]] && commitish =" --commitish =${RELEASE_BRANCH} "
772+ [[ -n " ${RELEASE_BRANCH} " ]] && target_branch =" --target =${RELEASE_BRANCH} "
778773 for i in {2..0}; do
779- hub_tool release create \
780- ${attachments[@]} \
781- --file=" ${description} " \
782- " ${commitish} " \
783- " ${github_tag} " && return 0
774+ # shellcheck disable=SC2068
775+ gh_tool release create \
776+ " ${github_tag} " \
777+ --title " ${title} " \
778+ --notes-file " ${description} " \
779+ " ${target_branch} " \
780+ ${attachments[@]} && return 0
781+
784782 if [[ " ${i} " -gt 0 ]]; then
785783 echo " Error publishing the release, retrying in 15s..."
786784 sleep 15
0 commit comments