1
0
mirror of https://github.com/git/git.git synced 2024-09-28 08:49:45 +02:00

ci (check-whitespace): add links to job output

A message in the step log will refer to the Summary output.

The job summary output is using markdown to improve readability.  The
git commands and commits with errors are now in ordered lists.
Commits and files in error are links to the user's repository.

Signed-off-by: Chris. Webster <chris@webstech.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Chris. Webster 2022-12-20 00:35:46 +00:00 committed by Junio C Hamano
parent 288e3c4e3b
commit b3ecdc780d

View File

@ -20,46 +20,62 @@ jobs:
- name: git log --check
id: check_out
run: |
baseSha=${{github.event.pull_request.base.sha}}
problems=()
commit=
commitText=
lastcommit=
commitTextmd=
goodparent=
while read dash sha etc
do
case "${dash}" in
"---")
if test -z "${commit}"
then
lastcommit=${sha}
goodparent=${sha}
fi
commit="${sha}"
commitText="${sha} ${etc}"
commitTextmd="[${sha}](https://github.com/${{ github.repository }}/commit/${sha}) ${etc}"
;;
"")
;;
*)
if test -n "${commit}"
then
problems+=("" "--- ${commitText}")
problems+=("1) --- ${commitTextmd}")
echo ""
echo "--- ${commitText}"
commit=
fi
problems+=("${dash} ${sha} ${etc}")
echo "${problems[-1]}"
case "${dash}" in
*:[1-9]*:) # contains file and line number information
dashend=${dash#*:}
problems+=("[${dash}](https://github.com/${{ github.repository }}/blob/${{github.event.pull_request.head.ref}}/${dash%%:*}#L${dashend%:}) ${sha} ${etc}")
;;
*)
problems+=("\`${dash} ${sha} ${etc}\`")
;;
esac
echo "${dash} ${sha} ${etc}"
;;
esac
done <<< $(git log --check --pretty=format:"---% h% s" ${{github.event.pull_request.base.sha}}..)
done <<< $(git log --check --pretty=format:"---% h% s" ${baseSha}..)
if test ${#problems[*]} -gt 0
then
if test -z "${commit}"
then
lastcommit=${{github.event.pull_request.base.sha}}
goodparent=${baseSha: 0:7}
fi
echo "A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY
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 "" >>$GITHUB_STEP_SUMMARY
echo "Run \`git rebase --whitespace=fix ${lastcommit}\` and \`git push --force\` 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 push --force\`" >>$GITHUB_STEP_SUMMARY
echo " " >>$GITHUB_STEP_SUMMARY
echo "Errors:" >>$GITHUB_STEP_SUMMARY
for i in "${problems[@]}"
do
echo "${i}" >>$GITHUB_STEP_SUMMARY