Skip to content

Security workflows: fix DevSkim, replace defunct Xanitizer with Gitleaks#2

Merged
CGFixIT merged 3 commits into
mainfrom
claude/quirky-wozniak-1zohvp
Jun 16, 2026
Merged

Security workflows: fix DevSkim, replace defunct Xanitizer with Gitleaks#2
CGFixIT merged 3 commits into
mainfrom
claude/quirky-wozniak-1zohvp

Conversation

@CGFixIT

@CGFixIT CGFixIT commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Summary

This PR gets the repository's security scanning workflows into a working state. Follow-up to #1 (which fixed the initial expression/glob errors but whose CI run then surfaced two deeper failures).

1. DevSkim — fixed ✅ (now passing)

microsoft/DevSkim-Action@v1 runs in a Docker container with the workspace mounted at /github/workspace. Passing output-directory: ${{ github.workspace }} (the runner's absolute path) made the entrypoint construct an invalid nested path:

Could not find a part of the path '/github/workspace/home/runner/work/.../devskim-results.sarif'

Changed to output-directory: '.', which resolves to /github/workspace/devskim-results.sarif inside the container and maps to $GITHUB_WORKSPACE on the runner where upload-sarif finds it. DevSkim now uploads findings to the Security → Code Scanning tab.

2. Xanitizer — removed (unfixable) ❌ → 🗑️

RIGS-IT/xanitizer-action (last released Jan 2021) downloads the standalone Xanitizer tool before any license check. That download now fails the TLS handshake (SSL alert number 40) because WhiteSource acquired Xanitizer in Feb 2022 and folded it into the Mend.io platform — the standalone product and its download/license servers no longer exist. No YAML change or license can make this complete.

Xanitizer is also a SAST tool for Java/JS application source code, which this Markdown documentation repository doesn't contain — it was never the right fit.

3. Gitleaks — added ✅ (replacement)

Added gitleaks/gitleaks-action@v2 to scan the full git history for committed secrets — appropriate for a docs repo and complementary to DevSkim. No GITLEAKS_LICENSE is required for personal-account repositories (only GitHub Organizations).

Resulting workflows

Workflow Tool Purpose Status
devskim.yml Microsoft DevSkim Security anti-patterns + secrets → Code Scanning passing
gitleaks.yml Gitleaks Secret detection across full git history new
xanitizer.yml Xanitizer removed — tool discontinued (now Mend.io) deleted

Note on branch protection

If xanitizer was configured as a required status check, it should be removed from branch protection now that the workflow is gone, otherwise PRs may wait on a check that never runs.

Test plan

  • devskim completes and uploads SARIF
  • gitleaks completes (no secrets expected in this docs repo → green)

https://claude.ai/code/session_01MtaSEMdzQA4Ttpa7nvtzaX

claude added 2 commits June 16, 2026 19:23
RIGS-IT/xanitizer-action@v1 uses Node.js 20; as of 2026-06-16 GitHub
Actions runners default to Node.js 24, causing an SSL handshake failure
when the action connects to the Xanitizer license server. Set
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true at the job level as a
temporary workaround until an updated action version is available.

https://claude.ai/code/session_01MtaSEMdzQA4Ttpa7nvtzaX
DevSkim-Action@v1 runs in a Docker container where the workspace is
mounted at /github/workspace. Passing output-directory: ${{ github.workspace }}
(the runner's absolute path) causes the entrypoint to construct an invalid
path: /github/workspace + /home/runner/work/... = bad nested path. Using
output-directory: '.' resolves to /github/workspace/devskim-results.sarif
inside the container, which maps correctly to $GITHUB_WORKSPACE on the runner.

Also sets ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true for Node.js 20 compat
on checkout@v4 and upload-sarif@v3 following the 2026-06-16 runner cutover.

https://claude.ai/code/session_01MtaSEMdzQA4Ttpa7nvtzaX
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

The RIGS-IT/xanitizer-action (last released Jan 2021) downloads the
standalone Xanitizer tool from RIGS IT's distribution endpoint before any
license check. That endpoint now fails the TLS handshake (SSL alert 40)
because Xanitizer was acquired by WhiteSource (Feb 2022) and folded into
the Mend.io platform — the standalone product and its download/license
infrastructure no longer exist. No YAML edit or license can make this run.

Xanitizer is also a SAST tool for Java/JS application source code, which
this Markdown documentation repository does not contain. Removing it and
adding Gitleaks, which scans the full git history for committed secrets
and complements the DevSkim workflow. No GITLEAKS_LICENSE is required for
personal-account repositories.

https://claude.ai/code/session_01MtaSEMdzQA4Ttpa7nvtzaX
@CGFixIT CGFixIT changed the title Fix CI failures found after #1 merged: Node.js 20 compat and DevSkim Docker path Security workflows: fix DevSkim, replace defunct Xanitizer with Gitleaks Jun 16, 2026
@CGFixIT

CGFixIT commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

finally

@CGFixIT CGFixIT merged commit 9553d58 into main Jun 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants