Repository navigation
Conversation
Signed-off-by: Eder Ignatowicz <ignatowicz@gmail.com>
PR Summary by QodoAdd opt-in Jira transitions for code preflight and PR readiness
AI Description
Diagram
High-Level Assessment
Files changed (8)
|
|
🤖 Finished Review · ✅ Success · Started 6:43 PM UTC · Completed 6:53 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $2.42 |
Code Review by Qodo
1.
|
|
Risk Assessment: elevated (3/5) DetailsElevated risk due to extensive modifications across seven protected harness and script paths with high recent churn and multi-author contention in target scripts. Previous runRisk Assessment: elevated (3/5) DetailsElevated risk due to extensive modifications across seven protected harness and script paths with high recent churn and multi-author contention in target scripts. |
ReviewFindingsMedium
Earlier findings
Previous run<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJhY3Rpb24iOiJyZXF1ZXN0LWNoYW5nZXMiLCJmaW5kaW5ncyI6W3sic2V2ZXJpdHkiOiJtZWRpdW0iLCJjYXRlZ29yeSI6InNlY3JldC1leHBvc3VyZSIsImZpbGUiOiJzY3JpcHRzL3Bvc3QtY29kZS5zcmMuc2giLCJpZCI6ImZfN2NhNzIyZDBmYjEyMjI3YyIsImxpbmUiOjYyNCwiYWN0aW9uYWJsZSI6dHJ1ZSwiZGltZW5zaW9uIjoic2VjdXJpdHkifSx7InNldmVyaXR5IjoibWVkaXVtIiwiY2F0ZWdvcnkiOiJtaXNzaW5nLWF1dGhvcml6YXRpb24iLCJmaWxlIjpudWxsLCJpZCI6ImZfMDc0YWFiNDU5NmU0NjQ0NCIsImFjdGlvbmFibGUiOmZhbHNlLCJkaW1lbnNpb24iOiJpbnRlbnQtY29oZXJlbmNlIn0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoiZG9jLXN0eWxlIiwiZmlsZSI6ImRvY3MvY29kZS5tZCIsImlkIjoiZl9kMjZjODk3MTlmNDcwMjc4IiwibGluZSI6NTMsImFjdGlvbmFibGUiOnRydWUsImRpbWVuc2lvbiI6InN0eWxlLWNvbnZlbnRpb25zIn0seyJzZXZlcml0eSI6ImxvdyIsImNhdGVnb3J5IjoicGF0dGVybi1pbmNvbnNpc3RlbmN5IiwiZmlsZSI6InNjcmlwdHMvcG9zdC1jb2RlLnNyYy5zaCIsImlkIjoiZl9lY2M4NDljODcxMTMxZjkwIiwibGluZSI6NDEsImFjdGlvbmFibGUiOnRydWUsImRpbWVuc2lvbiI6InN0eWxlLWNvbnZlbnRpb25zIn1dfQ== --> ReviewFindingsMedium
Low
Next steps:
|
Redact Jira credentials in Bash before external log sanitizers, preserve started-transition diagnostics, and log skipped PR-ready transitions. Cover hostile PATH utilities and literal credential patterns in tests, update environment documentation, and regenerate script bundles. Signed-off-by: Eder Ignatowicz <ignatowicz@gmail.com>
|
🤖 Finished Review · ✅ Success · Started 7:33 PM UTC · Completed 7:43 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5-5 · Effort: high · Cost: $1.72 |
Superseded by updated review
| PR/MR's current state from GitHub or GitLab. Only an explicitly open, | ||
| non-draft PR/MR permits the shared `fullsend issues transition --transition` | ||
| command to run. It uses the same validated source issue and runner-only | ||
| Jira credentials as the comment. Both transition settings require a fullsend |
There was a problem hiding this comment.
[MEDIUM] Depends on an unmerged, unreleased fullsend CLI subcommand; the docs link an issue instead of a release
Both new transitions (maybe_transition_jira_pr_ready in scripts/post-code.src.sh and _jira_transition_started in scripts/pre-code-jira.src.sh) call fullsend issues transition --tracker jira ... --transition NAME. That subcommand only exists in fullsend-ai/fullsend#9437 ("feat(issues): add tracker-neutral issue transitions"), which is still open and unmerged. The latest fullsend release, v0.55.0, does not include it.
These lines say both settings "require a fullsend release containing the shared transition command", but the link points to issue fullsend#6704 and names no version. Both test suites mock the fullsend binary, so nothing checks the real CLI contract. If #9437 renames a flag or changes behaviour before it merges, every opted-in run only logs a generic "Optional Jira ... transition failed" warning.
Suggestion:
- Hold the merge until fullsend#9437 merges and ships in a tagged release.
- Then replace the issue link with the minimum version (for example "requires fullsend >= vX.Y.Z").
- Optionally, when a transition is enabled, probe for the subcommand first (
"$bin" issues transition --help >/dev/null 2>&1) and print a clear "requires fullsend >= vX.Y.Z" warning instead of the generic failure.
There was a problem hiding this comment.
Agree @waynesun09 ! @fullsend-ai/maintainers please hold this PR until fullsend#9437 merges and ships, then I'll update the docs with the minimum supported version. I tested the integration locally against the #9437 build.
Summary
Adds optional named Jira transitions after accepted code preflight and after the code agent produces an open, non-draft PR/MR. Both settings default to
off; Jira controls allowed source states.Release dependency: fullsend-ai/fullsend#9437 merged as
2cf5b8f9953c3cbea391d043ee412b342dc30fdf. Its transition CLI contract matches the implementation tested with this PR. Keep this PR on hold until a tagged Fullsend release includes that commit. The currentv0.56.0tag points to the earlierb2945ba14789828dae7a6b99a192c83f00b90981and does not containissues transition. The minimum supported release will be documented once it is available.This is the code-agent integration for the shared transition work in fullsend#6704, building on fullsend#8920 and agents#1843. Protected harness/script changes remain subject to maintainer approval.
Configuration and behavior
Configure runner settings through a derived code harness (
base:composition), following ADR 0080. The historical smoke test used:The test workflow had no Review state, so we used its Refinement transition instead. This is a test-specific choice, not a product default. Teams configure named transitions available in their workflows.
Later draft-to-ready events and merged-PR transitions remain out of scope.
Validation
Generated bundles match source. Bundled Jira preflight and complete bundled post-code tests pass on macOS with modern Bash, including GitHub/GitLab failed-transition cases with a shadowed
awkand literal-pattern credentials. All-files pre-commit andmake lintpass. All source test recipes passed across the original run and resumed runs. Two unchanged host-specific fixtures needed local tool setup: an isolated pinned gitleaks directory to preserve test mocks, and GNU sed for the existing scribe regexes. This was not one uninterrupted greenmake script-testrun.An isolated regression probe demonstrates that the old failure path exports a synthetic credential to shadowed
awkdespite clean logs; the fixed path emits redacted diagnostics without that exposure.Historical live testing exercised a real local code run and open non-draft GitHub PR, with Jira moving New → In Progress → Refinement. That evidence predates this error-path fix; it is not a new live rerun. GitLab coverage is automated, not a live MR run. Internal identifiers and screenshots are omitted from this public description; detailed evidence remains local.
Upstream functional tests require a writer's
/ok-to-test <latest-head-SHA>approval. A blocked authorization gate is not a functional test result.