Skip to content

Fix Claude review steps in ClauDependabot workflow#22

Merged
danielorbach merged 3 commits intomainfrom
fix-claudependabot-tools
Mar 17, 2026
Merged

Fix Claude review steps in ClauDependabot workflow#22
danielorbach merged 3 commits intomainfrom
fix-claudependabot-tools

Conversation

@danielorbach
Copy link
Copy Markdown
Collaborator

The ClauDependabot workflow's Claude review steps were silently failing: Claude ran 13 turns with 11 permission denials and never posted its review comment (run #23004309970).

Two issues, both caused by differences between this workflow and the working one in go-digitaltwin/go-digitaltwin:

Missing file-reading tools. This workflow added actions/checkout so Claude could read local files, but in agent mode claude-code-action does not inject default tools (unlike tag mode which includes Read, Glob, Grep, etc.). The allowedTools whitelist only had Bash(gh ...) patterns, so every attempt to read the checkout was denied.

No workflow summary report. claude-code-action v1.0.65 changed display_report default to false, and v1.0.66 stripped detailed permission_denials from sanitized output (both in PR #992 and PR #993). These changes protect against prompt injection from untrusted input rendered in the Step Summary. Since this workflow only triggers on Dependabot PRs (trusted actor, controlled input), the threat model does not apply; display_report is re-enabled explicitly.

In agent mode, claude-code-action does not include default file-reading
tools; only the tools listed in claude_args are available. Without Read,
Glob, and Grep, Claude spent all turns hitting permission denials and
never posted its review comment.
v1.0.65 of claude-code-action changed the display_report default from
true to false (PR #992), and v1.0.66 stripped detailed permission_denials
from the sanitized output (PR #993). Both changes protect against prompt
injection when Claude is triggered by untrusted input (e.g. public issue
comments) that could produce malicious markdown in the Step Summary.

This workflow only triggers on Dependabot PRs (a trusted actor with
controlled input), so the prompt injection threat model does not apply.
Re-enabling display_report restores the workflow summary report for
reviewing Claude's analysis.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0a19a694-ed68-4622-a4fd-9806d55cd6ad

📥 Commits

Reviewing files that changed from the base of the PR and between 7001f34 and cd5a35e.

📒 Files selected for processing (1)
  • .github/workflows/claudependabot.yml

📝 Walkthrough

Walkthrough

This PR updates .github/workflows/claudependabot.yml: enables display_report: true for Claude review steps, expands Claude CLI --allowedTools to include Read,Glob,Grep for both minor and major reviews, and adds “Before reviewing” pre-review guidance with skip/compare instructions for minor and major review flows.

Changes

Cohort / File(s) Summary
GitHub Actions workflow
.github/workflows/claudependabot.yml
Enabled display_report: true for minor and major Claude review tasks; added --allowedTools "Read,Glob,Grep" to both minor and major claude_args; inserted new “Before reviewing” blocks—minor includes a simple skip condition, major includes a compare-then-skip condition and guidance to only post new reviews when analysis changed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I peeked at workflows late at night,

Read, Glob, Grep now sharpen my sight,
Reports unfurled in tidy array,
I skip what’s same and help convey,
A tiny hop for clearer review delight.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly summarizes the main change: fixing Claude review steps in the ClauDependabot workflow, which matches the core purpose of the PR.
Description check ✅ Passed The description is directly related to the changeset, providing detailed context about the two issues being fixed and explaining the root causes and solutions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-claudependabot-tools
📝 Coding Plan
  • Generate coding plan for human review comments

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

Tip

You can validate your CodeRabbit configuration file in your editor.

If your editor has YAML language server, you can enable auto-completion and validation by adding # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json at the top of your CodeRabbit configuration file.

@danielorbach danielorbach self-assigned this Mar 12, 2026
Dependabot rebases trigger re-runs of the workflow, which would post
duplicate reviews. Instruct Claude to check for prior reviews before
posting: for minor updates, skip if already approved; for major updates,
only post if the analysis has materially changed.

PR review bodies are immutable in the GitHub API, so editing a prior
review is not an option. Posting a new review when the analysis changed
preserves a readable timeline; silently duplicating the same conclusion
does not.
Copy link
Copy Markdown
Contributor

@galactic-king galactic-king left a comment

Choose a reason for hiding this comment

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

@danielorbach danielorbach merged commit 9829784 into main Mar 17, 2026
12 checks passed
@danielorbach danielorbach deleted the fix-claudependabot-tools branch March 17, 2026 17:33
danielorbach added a commit that referenced this pull request Mar 17, 2026
PR #22 unconditionally enabled `display_report` on the Claude review
steps so the workflow summary would always render Claude's analysis.
This is verbose for routine Dependabot runs and, per the upstream
warning on the input, should be reserved for trusted-input contexts.

The Step Summary is now gated on `runner.debug`, making it available
when a workflow is re-run with debug logging enabled but silent
otherwise. The workflow header also gains a comment explaining why the
prompt injection threat model that motivated upstream's default-off
change does not apply here: the review job's actor gate restricts
execution to the `dependabot[bot]` actor, a trusted first-party
automation source.

Relates to #6
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.

2 participants