github-ci: fix link to whitespace error

When the `check-whitespace` CI job detects whitespace errors, a
formatted summary of the issue is generated. This summary contains links
to the commits and blobs responsible for the whitespace errors. The
generated links for blobs do not work and result in a 404.

Instead of using the reference name in the link, use the commit ID
directly. This fixes the broken link and also helps enable future
generalization of the script for other CI providers by removing one of
the GitHub specific CI variables used.

Signed-off-by: Justin Tobler <jltobler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Justin Tobler
2024-05-03 12:21:04 -05:00
committed by Junio C Hamano
parent 7789ea5842
commit ecaacbc7a2

View File

@ -31,14 +31,15 @@ jobs:
commit= commit=
commitText= commitText=
commitTextmd= commitTextmd=
goodparent= goodParent=
while read dash sha etc while read dash sha etc
do do
case "${dash}" in case "${dash}" in
"---") "---") # Line contains commit information.
if test -z "${commit}" if test -z "${goodParent}"
then then
goodparent=${sha} # Assume the commit has no whitespace errors until detected otherwise.
goodParent=${sha}
fi fi
commit="${sha}" commit="${sha}"
commitText="${sha} ${etc}" commitText="${sha} ${etc}"
@ -46,18 +47,18 @@ jobs:
;; ;;
"") "")
;; ;;
*) *) # Line contains whitespace error information for current commit.
if test -n "${commit}" if test -n "${goodParent}"
then then
problems+=("1) --- ${commitTextmd}") problems+=("1) --- ${commitTextmd}")
echo "" echo ""
echo "--- ${commitText}" echo "--- ${commitText}"
commit= goodParent=
fi fi
case "${dash}" in case "${dash}" in
*:[1-9]*:) # contains file and line number information *:[1-9]*:) # contains file and line number information
dashend=${dash#*:} dashend=${dash#*:}
problems+=("[${dash}](https://github.com/${{ github.repository }}/blob/${{github.event.pull_request.head.ref}}/${dash%%:*}#L${dashend%:}) ${sha} ${etc}") problems+=("[${dash}](https://github.com/${{ github.repository }}/blob/${commit}/${dash%%:*}#L${dashend%:}) ${sha} ${etc}")
;; ;;
*) *)
problems+=("\`${dash} ${sha} ${etc}\`") problems+=("\`${dash} ${sha} ${etc}\`")
@ -70,15 +71,15 @@ jobs:
if test ${#problems[*]} -gt 0 if test ${#problems[*]} -gt 0
then then
if test -z "${commit}" if test -z "${goodParent}"
then then
goodparent=${baseSha: 0:7} goodParent=${baseSha: 0:7}
fi fi
echo "🛑 Please review the Summary output for further information." echo "🛑 Please review the Summary output for further information."
echo "### :x: A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY echo "### :x: A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY
echo "" >>$GITHUB_STEP_SUMMARY echo "" >>$GITHUB_STEP_SUMMARY
echo "Run these commands to correct the problem:" >>$GITHUB_STEP_SUMMARY echo "Run these commands to correct the problem:" >>$GITHUB_STEP_SUMMARY
echo "1. \`git rebase --whitespace=fix ${goodparent}\`" >>$GITHUB_STEP_SUMMARY echo "1. \`git rebase --whitespace=fix ${goodParent}\`" >>$GITHUB_STEP_SUMMARY
echo "1. \`git push --force\`" >>$GITHUB_STEP_SUMMARY echo "1. \`git push --force\`" >>$GITHUB_STEP_SUMMARY
echo " " >>$GITHUB_STEP_SUMMARY echo " " >>$GITHUB_STEP_SUMMARY
echo "Errors:" >>$GITHUB_STEP_SUMMARY echo "Errors:" >>$GITHUB_STEP_SUMMARY