Skip to content

Correct repo-gate-exclude-globs Description: eol Never Reads the Tracked List - #960

Merged
ptr727 merged 1 commit into
developfrom
worktree-fix-eol-exclude-globs-description
Aug 23, 2026
Merged

Correct repo-gate-exclude-globs Description: eol Never Reads the Tracked List#960
ptr727 merged 1 commit into
developfrom
worktree-fix-eol-exclude-globs-description

Conversation

@ptr727

@ptr727 ptr727 commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Real finding from coderabbitai on PR #959 (the develop -> main promotion PR carrying #958's exclude-globs work), reproduced before the fix.

repo-gate-exclude-globs's description claimed it narrows what sha-pin, eol, and eol-coverage scan, but check_eol() never reads its files parameter at all: it only compares .editorconfig and .gitattributes content directly. Only sha-pin (via workflow_files(files)) and the tracked-path portion of eol-coverage (via its shebang scan) actually narrow with the exclude list.

The fix

.github/workflows/validate-task.yml: dropped eol from the description, per CodeRabbit's own proposed wording.

Verified

python3 scripts/repo_gate.py, prose_lint.py --diff origin/develop, and a YAML parse of the edited file all pass clean. The change is a one-line description string; no behavior changed.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Clarified which validation scans are affected when paths are excluded from repository checks.

…ked List

Real finding from coderabbitai on PR #959 (the develop -> main promotion
PR carrying #958's exclude-globs work), reproduced before the fix.

`repo-gate-exclude-globs`'s description claimed it narrows what
`sha-pin`, `eol`, and `eol-coverage` scan, but `check_eol()` never reads
its `files` parameter at all: it only compares `.editorconfig` and
`.gitattributes` content directly. Only `sha-pin` (via
`workflow_files(files)`) and the tracked-path portion of `eol-coverage`
(via its shebang scan) actually narrow with the exclude list.

## The fix

`.github/workflows/validate-task.yml`: dropped `eol` from the
description, per CodeRabbit's own proposed wording.

## Verified

`python3 scripts/repo_gate.py`, `prose_lint.py --diff origin/develop`,
and a YAML parse of the edited file all pass clean. The change is a
one-line description string; no behavior changed.
Copilot AI lite review requested due to automatic review settings August 23, 2026 19:30
@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can turn these tips off under Display preferences

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e3d71726-2348-4261-a55f-1e2b5e1fed00

📥 Commits

Reviewing files that changed from the base of the PR and between 659682c and 3b1c8a4.

📒 Files selected for processing (1)
  • .github/workflows/validate-task.yml

Included review availability: Your plan provides up to 10 included reviews per hour; 5 remain after this review.


📝 Walkthrough

Walkthrough

The workflow input description now explains that repo-gate-exclude-globs narrows the sha-pin and tracked-path eol-coverage scans through repo_gate.py --exclude.

Changes

Repository gate documentation

Layer / File(s) Summary
Clarify exclusion scan scope
.github/workflows/validate-task.yml
The repo-gate-exclude-globs description now identifies the affected sha-pin and tracked-path eol-coverage scans.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 3b1c8

This change corrects the documented scope of the repository gate without changing execution behavior; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The change does not implement issue #39's merge-condition refactor or README documentation updates. Implement the merge-condition and README changes required by issue #39, or link this correction to an issue that covers workflow description accuracy.
Out of Scope Changes check ⚠️ Warning The workflow description correction is outside issue #39's stated merge-condition and README documentation scope. Move this change to a relevant issue or expand issue #39 to include corrections to workflow input descriptions.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the one-line correction to the repo-gate-exclude-globs description.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-fix-eol-exclude-globs-description

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

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Fix validate-task exclude-globs input description (eol not affected)

📝 Documentation ⚙️ Configuration changes 🕐 Less than 5 minutes

Grey Divider

AI Description

• Correct the repo-gate-exclude-globs input description to match actual repo_gate behavior.
• Clarify that excludes apply to sha-pin and tracked-path eol-coverage, not eol.
High-Level Assessment

The PR’s approach is optimal: update the workflow input description to accurately reflect what repo_gate.py --exclude actually narrows, without implying eol uses the tracked file list.

Files changed (1) +1 / -1

Documentation (1) +1 / -1
validate-task.ymlCorrect exclude-globs description to exclude 'eol' from scoped scans +1/-1

Correct exclude-globs description to exclude 'eol' from scoped scans

• Updates the 'repo-gate-exclude-globs' input description to remove the claim that it narrows 'eol' scans, and explicitly states it narrows 'sha-pin' and the tracked-path portion of 'eol-coverage'.

.github/workflows/validate-task.yml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The change is a one-line description correction that aligns documented behavior with the actual repo-gate implementation and does not alter workflow behavior.

Pull request overview

Updates the reusable validation workflow’s repo-gate-exclude-globs input description so it accurately reflects which repo-gate checks are actually narrowed by the exclude list.

Changes:

  • Removes the incorrect claim that eol is narrowed by repo-gate-exclude-globs.
  • Clarifies that narrowing applies to sha-pin and the tracked-path portion of eol-coverage (via repo_gate.py --exclude).
File summaries
File Description
.github/workflows/validate-task.yml Corrects the repo-gate-exclude-globs input description to match repo-gate behavior (exclude affects sha-pin and tracked-file eol-coverage, not eol).
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ptr727
ptr727 merged commit e2c2565 into develop Aug 23, 2026
9 checks passed
@ptr727
ptr727 deleted the worktree-fix-eol-exclude-globs-description branch August 23, 2026 19:33
ptr727 added a commit that referenced this pull request Aug 23, 2026
Real, HIGH-severity finding from qodo-code-review on PR #959 (the
develop -> main promotion PR carrying #958/#960's exclude-globs work).

`tracked()` printed git's own stderr on a nonzero exit but still parsed
and returned `result.stdout` regardless. `main()` only checks `if not
files:`, so a failed `git ls-files` call that happened to emit any
stdout before failing would be read as a successful, complete scan,
letting every check run against a silently incomplete file list.

## The fix

`tracked()` now returns `[]` unconditionally on a nonzero exit, after
printing stderr, never falling through to parse stdout on that path.

## Verified

Added `test_a_failed_call_is_never_trusted_even_with_nonempty_stdout` (a
mocked nonzero exit carrying non-empty stdout, asserting `tracked()`
still returns `[]`). Full test suite (807 tests), ruff check and format,
mypy, `repo_gate.py` against this checkout, and `prose_lint.py --diff
origin/develop` all pass clean.

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

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Improved repository checks to safely handle failures when retrieving
tracked files.
- Prevented partial or invalid file results from being processed after a
command failure.
- Added clearer failure details when command error output is
unavailable.

- **Tests**
- Added regression coverage for failed file-list retrieval, including
cases with partial output and missing error details.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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