Skip to content

feat: enhance CI/CD with linting, security scanning, and testing#116

Open
fumiya-kume wants to merge 2 commits intomasterfrom
feat/ci-cd-enhancements
Open

feat: enhance CI/CD with linting, security scanning, and testing#116
fumiya-kume wants to merge 2 commits intomasterfrom
feat/ci-cd-enhancements

Conversation

@fumiya-kume
Copy link
Copy Markdown
Owner

@fumiya-kume fumiya-kume commented Dec 30, 2025

Summary

  • Add ShellCheck (strict mode) + shfmt (auto-commit) + yamllint in lint.yml
  • Add Gitleaks secret scanning in security.yml with custom allowlist
  • Replace e2e_test.yml with test.yml using Bats test framework
  • Add .pre-commit-config.yaml for local development hooks
  • Fix setup-macos.sh: add shebang and strict mode (set -euo pipefail)

New Workflows

Workflow Purpose
lint.yml ShellCheck, shfmt (auto-commit), yamllint
security.yml Gitleaks secret scanning
test.yml E2E tests with Bats framework

Test plan

  • Verify lint workflow runs ShellCheck on all shell scripts
  • Verify shfmt auto-commits formatting fixes
  • Verify yamllint checks YAML files
  • Verify Gitleaks scans for secrets
  • Verify Bats tests pass for symlink verification
  • Verify pre-commit hooks work locally

🤖 Generated with Claude Code

Summary by CodeRabbit

リリースノート

  • 新機能

    • 開発者向けのプリコミットフック設定を追加
  • バグ修正

    • シンボリックリンク安装の動作を改善
  • テスト

    • 自動テストスイートを追加し、セットアップの検証を強化
  • その他

    • コード品質チェック用のリント検査ワークフローを導入
    • セキュリティスキャン機能を統合

✏️ Tip: You can customize this high-level summary in your review settings.

- Add lint.yml workflow with ShellCheck (strict), shfmt (auto-commit), and yamllint
- Add security.yml workflow with Gitleaks secret scanning
- Add test.yml workflow with Bats test framework (replaces e2e_test.yml)
- Add .gitleaks.toml with allowlist for 1Password/SSH paths
- Add .pre-commit-config.yaml for local development hooks
- Add tests/symlinks.bats with comprehensive symlink verification
- Fix setup-macos.sh: add shebang and strict mode

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Dec 30, 2025

Walkthrough

CI/CDパイプラインと開発ツールの整備。E2Eテストワークフローを削除し、shellcheckとshfmt、yamllint、gitleaksのための新しいGitHub Actionsワークフローを追加。テスト、ビルドスクリプト、zsh設定に対する調整を実施。

Changes

Cohort / File(s) 変更内容
GitHub Actionsワークフロー
.github/workflows/e2e_test.yml, .github/workflows/lint.yml, .github/workflows/security.yml, .github/workflows/test.yml
E2Eテストワークフローを削除。shellcheck、shfmt、yamllintの検査用新ワークフロー、gitleaksセキュリティスキャンワークフロー、batsベースのテスト実行ワークフローを追加。
開発ツール設定
.pre-commit-config.yaml, .gitleaks.toml
pre-commitフックの設定を追加(shellcheck、shfmt、gitleaks、yamllint)。gitleaksのスキャン除外パスを指定。
シェルスクリプト
install.sh, scripts/install-homebrew.sh, scripts/setup-macos.sh
install.shではホワイトリストパターンのスペース展開による動作変化と出力リダイレクション形式の変更。install-homebrew.shではコメント間隔を縮小。setup-macos.shではシェバングと厳密エラーハンドリング(set -euo pipefail)を追加、複数行コマンド形式を整備。
Zsh設定とテスト
home/.zshrc, tests/symlinks.bats
home/.zshrcのh()関数でprintf形式をprint -lに変更、autoload -Uz宣言を削除。シンボリックリンクとインストールスクリプトの動作を検証する新しいbatsテストスイートを追加。

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Poem

🐰 ホワイトリストの再整備と
シェルチェックの厳密さ
テストと検査で堅固に
パイプラインは新しく輝く
ドットファイルよ安心せよ ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main changes: adding CI/CD enhancements including linting (ShellCheck, shfmt, yamllint), security scanning (Gitleaks), and testing (Bats framework). The title is concise, specific, and directly reflects the primary objectives.
✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

sh-checker report

To get the full details, please check in the job output.

shellcheck errors

'shellcheck ' returned error 1 finding the following syntactical issues:

----------

In install.sh line 143:
  brew_comp="$(command -v brew >/dev/null 2>&1 && brew --prefix 2>/dev/null || true)/share/zsh/site-functions/_uv"
                                               ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In scripts/setup-macos.sh line 17:
defaults write com.googlecode.iterm2.plist PrefsCustomFolder -string "~/.config/iterm"
                                                                      ^-------------^ SC2088 (warning): Tilde does not expand in quotes. Use $HOME.

For more information:
  https://www.shellcheck.net/wiki/SC2088 -- Tilde does not expand in quotes. ...
  https://www.shellcheck.net/wiki/SC2015 -- Note that A && B || C is not if-t...
----------

You can address the above issues in one of three ways:
1. Manually correct the issue in the offending shell script;
2. Disable specific issues by adding the comment:
  # shellcheck disable=NNNN
above the line that contains the issue, where NNNN is the error code;
3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.



shfmt errors

'shfmt -i 2 -ci' returned error 1 finding the following formatting issues:

----------
diff install.sh.orig install.sh
--- install.sh.orig
+++ install.sh
@@ -30,12 +30,12 @@
 should_skip() {
   local name="$1"
   case "$name" in
-    .|..) return 0 ;;
-    .DS_Store|.localized) return 0 ;;
-    .git|.gitignore|.gitattributes|.gitmodules) return 0 ;;
-    *.swp|*.swo|*~) return 0 ;;
-    .*.bak|.*.backup) return 0 ;;
-    .env|.env.*|*.secret) return 0 ;;
+    . | ..) return 0 ;;
+    .DS_Store | .localized) return 0 ;;
+    .git | .gitignore | .gitattributes | .gitmodules) return 0 ;;
+    *.swp | *.swo | *~) return 0 ;;
+    .*.bak | .*.backup) return 0 ;;
+    .env | .env.* | *.secret) return 0 ;;
     *) return 1 ;;
   esac
 }
@@ -67,7 +67,7 @@
     [[ -e "$f" ]] || continue
     name="$(basename "$f")"
     case "$name" in
-      config|known_hosts|*.pub)
+      config | known_hosts | *.pub)
         chmod 600 "$f"
         link "$f" "$HOME/.ssh/$name"
         ;;
@@ -87,7 +87,7 @@
     [[ -e "$f" ]] || continue
     name="$(basename "$f")"
     case "$name" in
-      gpg-agent.conf|gpg.conf|pubring.kbx|sshcontrol)
+      gpg-agent.conf | gpg.conf | pubring.kbx | sshcontrol)
         link "$f" "$HOME/.gnupg/$name"
         ;;
       *)
@@ -156,7 +156,7 @@
     "uv --generate-completion zsh" \
     "uv completions zsh"; do
     if output=$(eval "$cmd" 2>/dev/null) && [[ -n "$output" ]]; then
-      printf '%s\n' "$output" > "$out"
+      printf '%s\n' "$output" >"$out"
       log "Generated uv zsh completion: $out"
       return 0
     fi
diff scripts/install-homebrew.sh.orig scripts/install-homebrew.sh
--- scripts/install-homebrew.sh.orig
+++ scripts/install-homebrew.sh
@@ -9,5 +9,5 @@
 
 echo "Installing Homebrew..."
 echo "This requires administrator privileges."
-sudo -v  # Prompt for password and cache credentials
+sudo -v # Prompt for password and cache credentials
 NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
diff scripts/setup-macos.sh.orig scripts/setup-macos.sh
--- scripts/setup-macos.sh.orig
+++ scripts/setup-macos.sh
@@ -9,8 +9,8 @@
 defaults write com.apple.Preview NSQuitAlwaysKeepsWindows -bool false
 defaults write com.apple.dock autohide -bool true
 defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -boolean true
-defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true && \
-defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
+defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true &&
+  defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
 defaults write com.apple.dock static-only -bool true
 defaults write com.apple.TextEdit RichText -int 0
 sudo chflags nohidden /Volumes
@@ -21,9 +21,9 @@
 defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
 
 defaults write com.apple.systemuiserver menuExtras -array \
-    "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" \
-    "/System/Library/CoreServices/Menu Extras/AirPort.menu" \
-    "/System/Library/CoreServices/Menu Extras/Battery.menu" \
-    "/System/Library/CoreServices/Menu Extras/Clock.menu"
+  "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" \
+  "/System/Library/CoreServices/Menu Extras/AirPort.menu" \
+  "/System/Library/CoreServices/Menu Extras/Battery.menu" \
+  "/System/Library/CoreServices/Menu Extras/Clock.menu"
 
 killall Finder
----------

You can reformat the above files to meet shfmt's requirements by typing:

  shfmt -i 2 -ci -w filename


Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🧹 Nitpick comments (3)
.github/workflows/lint.yml (1)

15-15: アクションを master ブランチではなく特定のバージョンに固定してください。

luizm/action-sh-checker@mastermaster ブランチを参照しているため、予期しない破壊的変更が発生する可能性があります。セキュリティと再現性のため、特定のバージョンタグまたはコミットハッシュに固定することを推奨します。

🔎 修正案
-        uses: luizm/action-sh-checker@master
+        uses: luizm/action-sh-checker@v0.9.0
tests/symlinks.bats (2)

7-10: readlink -fの使用を検討してください。

readlinkはシステムによって相対パスまたは絶対パスを返す動作が異なります(特にmacOSとLinuxで挙動が違います)。より移植性の高いテストにするために、readlink -fを使用して絶対パスを取得することを推奨します。

🔎 提案する修正
 @test ".zshrc points to dotfiles" {
-  run readlink "$HOME/.zshrc"
+  run readlink -f "$HOME/.zshrc"
   [[ "$output" == *"dotfiles/home/.zshrc"* ]]
 }

注: macOSではreadlink -fがデフォルトで利用できない場合があります。その場合はgreadlink -fbrew install coreutilsで利用可能)を使用するか、CI環境がLinuxであることを前提としてください。


28-31: 明示的な成功確認を追加することを検討してください。

このテストはinstall.shを2回実行してidempotency(冪等性)を確認していますが、暗黙的にexit codeに依存しています。より明確にするため、runコマンドと[ "$status" -eq 0 ]を使用して両方の実行が成功したことを明示的に確認することを推奨します。

🔎 提案する修正
 @test "install.sh is idempotent" {
-  ./install.sh
-  ./install.sh
+  run ./install.sh
+  [ "$status" -eq 0 ]
+  run ./install.sh
+  [ "$status" -eq 0 ]
 }

この変更により、各実行の成功が明示的に確認され、テストの意図がより明確になります。

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6592ec9 and 951ff14.

📒 Files selected for processing (11)
  • .github/workflows/e2e_test.yml
  • .github/workflows/lint.yml
  • .github/workflows/security.yml
  • .github/workflows/test.yml
  • .gitleaks.toml
  • .pre-commit-config.yaml
  • home/.zshrc
  • install.sh
  • scripts/install-homebrew.sh
  • scripts/setup-macos.sh
  • tests/symlinks.bats
💤 Files with no reviewable changes (1)
  • .github/workflows/e2e_test.yml
🔇 Additional comments (16)
scripts/install-homebrew.sh (1)

1-13: LGTM!

スクリプトは適切に構成されています。厳格モード (set -euo pipefail) の使用、既存インストールのチェック、NONINTERACTIVE=1 による非対話型インストールが正しく実装されています。コメントのフォーマット調整も問題ありません。

scripts/setup-macos.sh (2)

1-2: LGTM!

shebang と厳格モード (set -euo pipefail) の追加は良い改善です。これによりスクリプトの堅牢性が向上します。


12-13: && による継続は意図通りに動作します。

set -e が有効な状態で && を使用しているため、1つ目のコマンドが失敗した場合、2つ目は実行されません。これは TrackpadThreeFingerDrag の設定において適切な動作です。

install.sh (3)

33-38: LGTM!

case文のパターン区切り (|) 周辺のスペースは、bashでは問題なく動作します。shfmt によるフォーマット調整として適切です。


70-70: LGTM!

ホワイトリストパターンのフォーマット調整です。config | known_hosts | *.pub のスペースは bash の case 文で正しく解釈されます。


159-159: LGTM!

リダイレクション >"$out" は正しく動作します。shfmt によるフォーマット統一です。

.gitleaks.toml (1)

1-5: LGTM - ただし、許可リストの範囲に注意してください。

1Password設定ディレクトリと .ssh/config をスキャン対象外にすることは一般的に妥当です。ただし、これらのパスに誤って秘密情報がコミットされないよう、継続的に注意してください。

特に .config/1Password/ はディレクトリ全体を許可しているため、将来的に意図しないファイルが追加された場合も除外されます。

.github/workflows/security.yml (2)

14-18: LGTM!

fetch-depth: 0 による完全な履歴取得は、gitleaks が過去のコミットもスキャンするために必要です。gitleaks-action@v2 への固定も適切です。


13-13: actions/checkout@v6 を v4 に修正してください。

lint.yml と同様に、存在しないバージョンを参照しています。

🔎 修正案
-      - uses: actions/checkout@v6
+      - uses: actions/checkout@v4

Likely an incorrect or invalid review comment.

home/.zshrc (2)

2-2: LGTM!

autoload -Uz vcs_info add-zsh-hook として複数のオートロードを1行にまとめることで、コードが簡潔になりました。


64-64: LGTM!

print -l は zsh のビルトインコマンドで、各要素を改行区切りで出力します。printf '%s\n' と同等の機能をより zsh らしい形式で実現しています。

.github/workflows/test.yml (1)

14-19: テストワークフローの構成は適切です。

macOS環境でのE2Eテスト実行フローが正しく構成されています。install.shはリポジトリで実行権限(100755)が設定されているため、追加の権限設定は不要です。

.github/workflows/lint.yml (1)

13-13: actions/checkout@v6 は存在する、最新版です。

actions/checkout の最新安定版は v6 (v6.0.1、2025年12月2日リリース) です。このバージョンは正しく、問題ありません。

Likely an incorrect or invalid review comment.

tests/symlinks.bats (3)

1-1: LGTM!

Batsテストファイルの標準的なshebangです。


3-5: LGTM!

シンボリックリンクの存在確認テストとして適切です。


12-26: LGTM!

各dotfileのシンボリックリンク存在確認テストとして適切に実装されています。

Comment on lines +26 to +39
- uses: actions/checkout@v6
with:
ref: ${{ github.head_ref }}
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup shfmt
run: |
curl -sS https://webinstall.dev/shfmt | bash
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Run shfmt
run: shfmt -i 2 -ci -w .
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "style: auto-format shell scripts with shfmt"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

フォークからのPRでは auto-commit が失敗します。

shfmt ジョブは変更を自動コミットしますが、フォークからのPRではリポジトリへの書き込み権限がないため失敗します。また、ref: ${{ github.head_ref }} は push イベントでは空になる可能性があります。

以下の対応を検討してください:

  • フォーマットチェックのみ行い、失敗時はローカルでの修正を促すか、
  • pull_request_target を使用するか、
  • 条件分岐で push イベントのみ auto-commit を有効にする
🤖 Prompt for AI Agents
In .github/workflows/lint.yml around lines 26-39, the workflow auto-commits
shfmt changes which fails for forked PRs (no write permission) and using ref:
${{ github.head_ref }} can be empty on push events; update the job to avoid
automatic commits on forked PRs by either (a) change the workflow to only run
shfmt as a check (fail CI on diffs and instruct contributors to run shfmt
locally), (b) or guard the Commit changes step to run only when the event is
push and a writable token is available (e.g., check github.event_name == 'push'
and secrets.GITHUB_TOKEN present), or (c) switch to pull_request_target with
explicit safety review if you need write access; also make the checkout ref
logic robust by falling back to github.ref when github.head_ref is empty. Ensure
you remove or conditionalize the git-auto-commit step so forked PRs no longer
attempt to push.

Comment on lines +44 to +45
- uses: actions/checkout@v6
- uses: frenck/action-yamllint@v1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

actions/checkout@v6 を修正し、yamllint アクションのバージョンを確認してください。

Line 44 の actions/checkout@v6 も同様に v4 に修正が必要です。

🤖 Prompt for AI Agents
.github/workflows/lint.yml around lines 44 to 45: the workflow uses
actions/checkout@v6 which should be downgraded to actions/checkout@v4 and you
should verify the frenck/action-yamllint@v1 version is correct; update the
checkout step to use actions/checkout@v4 and confirm or pin the yamllint action
to the intended stable version (adjust the version tag if necessary).

e2e:
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

actions/checkout@v6 を v4 に修正してください。

他のワークフローと同様に修正が必要です。

🔎 修正案
-      - uses: actions/checkout@v6
+      - uses: actions/checkout@v4
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/checkout@v6
- uses: actions/checkout@v4
🤖 Prompt for AI Agents
In .github/workflows/test.yml around line 13, the workflow references
actions/checkout@v6 but should be using v4 to match other workflows; update the
checkout action version from v6 to v4 (i.e., replace the version specifier) and
verify the rest of the file and other workflows remain consistent with v4 usage.

Comment thread .pre-commit-config.yaml
Comment on lines +2 to +5
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
- id: shellcheck
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check latest shellcheck-py version from PyPI
pip index versions shellcheck-py 2>/dev/null | head -20 || echo "PyPI check failed, trying alternative methods"

# Also try to find version info from common sources
curl -s "https://api.github.com/repos/shellcheck-py/shellcheck-py/releases" 2>/dev/null | grep -o '"tag_name": "[^"]*"' | head -5 || echo "GitHub API failed"

Repository: fumiya-kume/dotfiles

Length of output: 150


🌐 Web query:

shellcheck-py latest version 2024 2025

💡 Result:

  • Latest in 2024: shellcheck-py 0.10.0.1 — released Mar 17, 2024. [1]
  • Latest in 2025: shellcheck-py 0.11.0.1 — released Aug 9, 2025. [1]

Sources: PyPI release history for shellcheck-py. [1]


ShellCheckのバージョンをv0.11.0.1に更新してください。

現在のv0.10.0.1はバージョンが古くなっています。最新バージョンはv0.11.0.1です(2025年8月9日リリース)。新しいバージョンに更新することで、最新のShell機能チェックと問題検出が可能になります。

🤖 Prompt for AI Agents
In .pre-commit-config.yaml around lines 2 to 5, the shellcheck-py hook is pinned
to rev v0.10.0.1; update the rev value to v0.11.0.1 so the hook uses the latest
ShellCheck release (v0.11.0.1). Save the file and run pre-commit autoupdate or
re-install hooks to ensure the new version is picked up.

Comment thread .pre-commit-config.yaml
Comment on lines +7 to +11
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.8.0-1
hooks:
- id: shfmt
args: [-i, "2", -ci, -w]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check latest version of pre-commit-shfmt from GitHub releases
# Using curl instead of gh API for better compatibility

curl -s https://api.github.com/repos/scop/pre-commit-shfmt/releases/latest | jq -r '.tag_name'

Repository: fumiya-kume/dotfiles

Length of output: 68


🏁 Script executed:

#!/bin/bash
# Try direct GitHub API without jq filtering first to see full response
curl -s https://api.github.com/repos/scop/pre-commit-shfmt/releases/latest | head -20

Repository: fumiya-kume/dotfiles

Length of output: 207


🌐 Web query:

pre-commit-shfmt latest version release github scop

💡 Result:

The latest release/tag for scop/pre-commit-shfmt is v3.12.0-2. (github.com)

Citations:


shfmtのバージョンを更新してください。

現在のバージョン v3.8.0-1 は古くなっており、最新バージョン v3.12.0-2 へ更新することをお勧めします。設定されている引数(2スペースインデント、switch caseのインデント、自動書き込み)は適切です。

🤖 Prompt for AI Agents
In .pre-commit-config.yaml around lines 7 to 11 the shfmt hook rev is pinned to
v3.8.0-1 which is outdated; update the rev field to v3.12.0-2 while keeping the
existing args ([-i, "2", -ci, -w]) unchanged so the hook uses the newer shfmt
release.

Comment thread .pre-commit-config.yaml
Comment on lines +13 to +16
- repo: https://github.com/gitleaks/gitleaks
rev: v8.18.4
hooks:
- id: gitleaks
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

gitleaks latest version 2024 2025

💡 Result:

As of Dec 30, 2025:

  • Latest gitleaks release: v8.30.0 (released Nov 26, 2025). [1]

Latest releases in 2024:

  • Newest gitleaks release in 2024: v8.22.1 (Dec 30, 2024). [2]

Sources:
[1] gitleaks GitHub releases (v8.30.0).
[2] mise-versions gitleaks release timeline (shows v8.22.1 on Dec 30, 2024).


🌐 Web query:

gitleaks v8.18.4 security advisory vulnerability

💡 Result:

Short answer: There is no public security advisory specifically for gitleaks v8.18.4 — that release is a small patch (rule/regex updates) rather than a security-fix release. For vulnerability listings and which versions are affected, see Snyk's gitleaks vulnerability page and the v8.18.4 changelog/merge request. [1][2]

Sources

  • Snyk — gitleaks vulnerability listings (shows CVEs and which versions are affected/fixed). [1]
  • GitLab merge request / changelog for gitleaks v8.18.4 (release notes showing rule/regex changes). [2]

If you want, I can: (a) list the CVEs Snyk attributes to gitleaks and which versions fix them, or (b) check the latest gitleaks release and security advisories and recommend an upgrade path.


Gitleaksのバージョンを更新してください。

現在v8.18.4が使用されていますが、最新バージョンはv8.30.0(2025年11月26日リリース)です。.pre-commit-config.yamlrevをv8.30.0に更新し、セキュリティと機能の改善を適用してください。

🤖 Prompt for AI Agents
.pre-commit-config.yaml around lines 13 to 16: update the gitleaks hook revision
from v8.18.4 to the latest v8.30.0 by changing the rev value to "v8.30.0" so the
pre-commit configuration uses the newer release; save the file and run
pre-commit autoupdate or validate the config to ensure the updated hook resolves
correctly.

Comment thread .pre-commit-config.yaml
Comment on lines +18 to +21
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

yamllint latest release version 2025 github adrienverge

💡 Result:

The latest yamllint release is v1.37.1 (tag v1.37.1), published May 4, 2025. [1][2]

Sources:

  • PyPI release metadata for yamllint 1.37.1 (upload May 4, 2025). [1]
  • adrienverge/yamllint GitHub repository (tags/releases). [2]

yamllintを最新バージョンv1.37.1に更新してください。

現在v1.35.1が設定されていますが、最新バージョンはv1.37.1です。依存関係を最新に保つため、revをv1.37.1に更新することをお勧めします。

🤖 Prompt for AI Agents
In .pre-commit-config.yaml around lines 18 to 21, the yamllint hook is pinned to
rev v1.35.1; update the rev value to v1.37.1 to use the latest yamllint release.
Edit that block replacing rev: v1.35.1 with rev: v1.37.1 and save the file, then
run pre-commit autoupdate or reinstall hooks (pre-commit clean && pre-commit
install) to ensure the new version is applied.

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.

1 participant