git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/3] ci (check-whitespace): add links to job output

From
CGChris. Webster via GitGitGadget <gitgitgadget@gmail.com>
Date
Dec 20, 2022, 00:35 UTC
Message-ID
<342167ef5bd7f98a7248feea86f4f77b268988bb.1671496548.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.1444.v2.git.1671496548.gitgitgadget@gmail.com>
From: "Chris. Webster" <chris@webstech.net>
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>
---
 .github/workflows/check-whitespace.yml | 34 +++++++++++++++++++-------
 1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/check-whitespace.yml b/.github/workflows/check-whitespace.yml
index a0871489b24..552894f736a 100644
--- a/.github/workflows/check-whitespace.yml
+++ b/.github/workflows/check-whitespace.yml
@@ -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
-- 
gitgitgadget
Previous: Đoàn Trần Công DanhNext: Chris. Webster via GitGitGadget
Message 17 of 18 in “Make check-whitespace failures more helpful”
  1. 0/2 Make check-whitespace failures more helpfulChris. Webster via GitGitGadget, Dec 16, 2022
  2. 2/2 Improve check-whitespace outputChris. Webster via GitGitGadget, Dec 16, 2022
  3. Junio C HamanoDec 16, 2022
  4. Chris WebsterDec 20, 2022
  5. 1/2 Make `check-whitespace` failures more helpfulChris. Webster via GitGitGadget, Dec 16, 2022
  6. Junio C HamanoDec 16, 2022
  7. Chris WebsterDec 20, 2022
  8. Junio C HamanoDec 20, 2022
  9. Chris WebsterDec 20, 2022
  10. 0/3 Make check-whitespace failures more helpfulChris. Webster via GitGitGadget, Dec 20, 2022
  11. 1/3 ci (check-whitespace): suggest fixes for errorsChris. Webster via GitGitGadget, Dec 20, 2022
  12. Đoàn Trần Công DanhDec 20, 2022
  13. Chris WebsterDec 20, 2022
  14. Đoàn Trần Công DanhDec 21, 2022
  15. Chris WebsterDec 21, 2022
  16. Đoàn Trần Công DanhDec 21, 2022
  17. 2/3 ci (check-whitespace): add links to job outputChris. Webster via GitGitGadget, Dec 20, 2022
  18. 3/3 ci (check-whitespace): move to actions/checkout@v3Chris. Webster via GitGitGadget, Dec 20, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.