git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] ci: github action - add check for whitespace errors
@ 2020-09-22  7:28 Chris. Webster via GitGitGadget
  2020-09-22 17:07 ` Jeff King
  0 siblings, 1 reply; 17+ messages in thread
From: Chris. Webster via GitGitGadget @ 2020-09-22  7:28 UTC (permalink / raw)
  To: git; +Cc: Chris. Webster, Chris. Webster

From: "Chris. Webster" <chris@webstech.net>

Not all developers are aware of `git diff --check` to warn
about whitespace issues.  Running a check when a pull request is
opened or updated can save time for reviewers and the submitter.

A GitHub workflow will run when a pull request is created or the
contents are updated to check the patch series.  A pull request
provides the necessary information (number of commits) to only
check the patch series.

To ensure the developer is aware of any issues, a comment will be
added to the pull request with the check errors.

Signed-off-by: Chris. Webster <chris@webstech.net>
---
    ci: GitHub Action - add check for whitespace errors
    
    Not all developers are aware of git diff --check to warn about
    whitespace issues. Running a check when a pull request is opened or
    updated can save time for reviewers and the submitter.
    
    A GitHub workflow will run when a pull request is created or the
    contents are updated to check the patch series. A pull request provides
    the necessary information (number of commits) to only check the patch
    series.
    
    To ensure the developer is aware of any issues, a comment will be added
    to the pull request with the check errors.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-709%2Fwebstech%2Fcw%2Fdiffcheck-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-709/webstech/cw/diffcheck-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/709

 .github/workflows/check-whitespace.yml | 69 ++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)
 create mode 100644 .github/workflows/check-whitespace.yml

diff --git a/.github/workflows/check-whitespace.yml b/.github/workflows/check-whitespace.yml
new file mode 100644
index 0000000000..9d070b9cdf
--- /dev/null
+++ b/.github/workflows/check-whitespace.yml
@@ -0,0 +1,69 @@
+name: check-whitespace
+
+# Get the repo with the commits(+1) in the series.
+# Process `git log --check` output to extract just the check errors.
+# Add a comment to the pull request with the check errors.
+
+on:
+  pull_request:
+    types: [opened, synchronize]
+
+jobs:
+  check-whitespace:
+    runs-on: ubuntu-latest
+    steps:
+    - name: Set commit count
+      shell: bash
+      run: echo "::set-env name=COMMIT_DEPTH::$((1+$COMMITS))"
+      env:
+        COMMITS: ${{ github.event.pull_request.commits }}
+
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: ${{ env.COMMIT_DEPTH }}
+
+    - name: git log --check
+      id: check_out
+      run: |
+        log=
+        commit=
+        while read dash etc
+        do
+          case "${dash}" in
+          "---")
+            commit="${etc}"
+            ;;
+          "")
+            ;;
+          *)
+            if test -n "${commit}"
+            then
+              log="${log}\n${commit}"
+              echo ""
+              echo "--- ${commit}"
+            fi
+            commit=
+            log="${log}\n${dash} ${etc}"
+            echo "${dash} ${etc}"
+            ;;
+          esac
+        done <<< $(git log --check --pretty=format:"---% h% s" -${{github.event.pull_request.commits}})
+
+        if test -n "${log}"
+        then
+          echo "::set-output name=checkout::"${log}""
+          exit 2
+        fi
+
+    - name: Add Check Output as Comment
+      uses: actions/github-script@v3
+      id: add-comment
+      with:
+        script: |
+            github.issues.createComment({
+              issue_number: context.issue.number,
+              owner: context.repo.owner,
+              repo: context.repo.repo,
+              body: "Whitespace errors found in workflow ${{ github.workflow }}:\n\n${{ steps.check_out.outputs.checkout }}"
+            })
+      if: ${{ failure() }}

base-commit: 675a4aaf3b226c0089108221b96559e0baae5de9
-- 
gitgitgadget

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-10-10  6:30 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-22  7:28 [PATCH] ci: github action - add check for whitespace errors Chris. Webster via GitGitGadget
2020-09-22 17:07 ` Jeff King
2020-09-22 17:55   ` Junio C Hamano
2020-09-22 22:41     ` Chris Webster
2020-10-09  5:00       ` Chris Webster
2020-10-09 13:20         ` Johannes Schindelin
2020-10-09 16:23           ` Junio C Hamano
2020-10-09 17:59             ` Jeff King
2020-10-09 18:13               ` Junio C Hamano
2020-10-09 18:18                 ` Jeff King
2020-10-09 18:56                   ` Junio C Hamano
2020-10-10  5:26                     ` Chris Webster
2020-10-10  6:29                       ` Junio C Hamano
2020-09-22 22:17   ` Chris Webster
2020-09-24  6:51     ` Jeff King
2020-09-25  5:10       ` Chris Webster
2020-09-25  6:44         ` Jeff King

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).