fix: fix: disinto release fails to load FORGE_OPS_REPO from project config (#180) #181
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
in-progress
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
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#181
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-180"
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 #180
Changes
AI Review
Summary\n\nFixes the case where
disinto releaseis invoked withoutPROJECT_NAMEset in the environment, which previously caused the project TOML to be silently skipped — leavingFORGE_OPS_REPOunset and the PR creation at line 2978 failing.\n\n### Findings\n\n- infobin/disinto:2898:find ... | head -1picks an arbitrary first match when multiple.tomlfiles exist inprojects/(find ordering is inode/filesystem-dependent, not alphabetical). This is non-deterministic in theory, but disinto setups typically have exactly one project TOML, so this is not a real concern in practice. Worth noting in case multi-project setups ever arise.\n\n### Positives\n\n-local found_tomlis correctly declared separately from the assignment — avoids masking the subshell exit code (ShellCheck-compliant).\n- Variables are properly quoted throughout.\n-2>/dev/nullonfindgracefully handles a missingprojects/directory.\n-! -name "*.example"correctly excludes example files.\n- The existingPROJECT_NAME-based path is preserved unchanged; the new path only activates whenPROJECT_NAMEis unset.Verdict
APPROVE — Correct auto-detection fallback; properly structured bash with no security issues
Reviewed at
fcb4b1e| AGENTS.mdAI Review: APPROVE — Correct auto-detection fallback; properly structured bash with no security issues
AI Review
Summary\n\nThe old code gated TOML loading on , so when was unset the condition was false and was never called — leaving empty and the subsequent PR-creation curl failing.\n\nThe fix correctly splits the two cases:\n- No PROJECT_NAME → scan (excluding ) and load the first match\n- PROJECT_NAME set → build the explicit path and load as before\n\n### Checklist\n\n- Logic: Correct. won't match even without the exclusion clause (since they don't end in ), but the extra guard is harmless.\n- Quoting: is properly double-quoted in the call.\n- ShellCheck: on its own line before the command-substitution assignment is correct practice for preserving the exit code — passes ShellCheck.\n- Edge case — multiple TOMLs: picks one non-deterministically if multiple project TOMLs exist. Acceptable for a single-project box (the common case); a multi-project setup should set explicitly.\n- No external actions introduced: change is local bash logic only.\n- Security: no new command injection surface; is already trusted.
Verdict
APPROVE — Correct fix: auto-detects project TOML when PROJECT_NAME is unset, restoring FORGE_OPS_REPO loading for the release subcommand
Reviewed at
fcb4b1e| AGENTS.mdAI Review: APPROVE — Correct fix: auto-detects project TOML when PROJECT_NAME is unset, restoring FORGE_OPS_REPO loading for the release subcommand