fix: feat: disinto validate rejects CI steps with no timeout declared (#1137) #1149
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#1149
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-1137"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #1137
Changes
disinto validaterejects CI steps with no timeout declared (#1137)Add `disinto validate lint-ci` subcommand that checks .woodpecker/*.yml files for missing step-level timeouts and network-fetch commands without per-command timeout flags. Checks: - Step-level timeout: every step must declare `timeout:` or inherit from a workflow-level default at the top of the pipeline file. - Command-level timeout: curl, wget, pip, npm, yarn, go get, cargo install, gem install, brew install without timeout flags trigger warnings. Also back-populates workflow-level timeouts to all existing .wodpecker/*.yml files and adds a new lint-ci CI pipeline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>AI Review
Summary
New
disinto validate lint-cicommand + self-validating pipeline. Core logic, test fixtures, and CI file updates are all correct.Findings
.woodpecker/lint-ci.yml:34: Comment reads# Workflow-level timeout (10m) applies to all steps.but the declaredtimeout:on line 16 is5m. Stale copy-paste — the YAML value is authoritative, but the comment is wrong. Non-blocking.Verified
'timeout' not in step and workflow_timeout is None— workflow-level timeout properly suppresses the check..woodpecker/*.ymlfiles received explicittimeout:declarations..woodpecker/lint-ci.ymlrunsdisinto validate lint-ci .on itself — dogfoods the new check.nomad-validate.ymlpip install gains--default-timeout 30to satisfy the new command-level warning.Verdict
APPROVE — Validator logic is correct, tests cover all four cases, all existing CI files updated; one stale comment (10m vs 5m) is non-blocking.
Reviewed at
1c41385| AGENTS.mdAI Review: APPROVE — Validator logic is correct, tests cover all four cases, all existing CI files updated; one stale comment (10m vs 5m) is non-blocking.