Skip to content

feat(parser): reusable workflow limits and prefix canonicalization - #245

Merged
Bnjoroge1 merged 1 commit into
mainfrom
Bnjoroge/reusable-workflow-limits
Sep 11, 2026
Merged

Bnjoroge1 merged 1 commit into
mainfrom
Bnjoroge/reusable-workflow-limits

Conversation

@Bnjoroge1

@Bnjoroge1 Bnjoroge1 commented Sep 11, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  1. Nesting & Unique Workflow Limits: Aligns reusable workflow recursion depth to 10 and caps unique reusable workflows at 50 to prevent unbounded DAG expansion.
  2. Prefix Canonicalization: Canonicalizes $/ prefix aliases alongside ./ in reusable workflow references (expand.rs and broker.rs).
  3. Optimized Golden Base: Pre-bakes runner user, permissions, and toolcache into the golden artifact rootfs with zero runtime setup delay.

Verification

  • reusable_workflow_dollar_slash_alias_canonicalized test passes.
  • All preloop-gha-parser, preloop-orchestrator, and preloop-cli unit tests pass.

@pullfrog

pullfrog Bot commented Sep 11, 2026

Copy link
Copy Markdown

New pull request. Leaping into action...

Pullfrog  | View workflow run | via Pullfrog | 𝕏

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 94bb7d72-2598-4f73-86b6-5c12f8419ab5

📥 Commits

Reviewing files that changed from the base of the PR and between 0c0b775 and 7b4d7a0.

📒 Files selected for processing (1)
  • crates/preloop-gha-parser/src/lib_tests.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • crates/preloop-gha-parser/src/lib_tests.rs

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

Reusable workflow path handling now treats $/ prefixes like ./ prefixes in the parser and runner server. Regression coverage verifies that mixed prefixes resolve to 50 unique workflows.

Changes

Reusable workflow path normalization

Layer / File(s) Summary
Normalize and validate reusable workflow paths
crates/preloop-gha-parser/src/expand.rs, crates/preloop-runner-server/src/broker.rs, crates/preloop-gha-parser/src/lib_tests.rs
The parser and runner server strip leading $/ prefixes like ./ prefixes. Tests verify that mixed prefixes resolve to 50 unique workflows across 100 calls.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 7b4d7

The incremental change adds regression coverage without introducing an identified merge-blocking risk.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description summarizes the intended changes and lists limited verification, but it does not use the required template sections. It omits the protocol-surface confirmation, required gate results, c… Update the description to include the required sections: “What & why,” “Protocol surface,” “Required gates,” “Verification performed,” and “Checklist.” State whether the runner protocol interface changed, record the status of each applicabl…
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the main changes to reusable workflow limits and prefix canonicalization. It is concise and related to the pull request objectives.
Full details: Description check

Explanation

The description summarizes the intended changes and lists limited verification, but it does not use the required template sections. It omits the protocol-surface confirmation, required gate results, concrete verification evidence, test and documentation checklist items, and changelog confirmation.

Resolution

Update the description to include the required sections: “What & why,” “Protocol surface,” “Required gates,” “Verification performed,” and “Checklist.” State whether the runner protocol interface changed, record the status of each applicable gate, provide complete commands and test evidence, and confirm documentation and changelog updates or explain why they are not applicable.

✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch Bnjoroge/reusable-workflow-limits
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch Bnjoroge/reusable-workflow-limits

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

All reported issues were addressed across 3 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread crates/preloop-gha-parser/src/lib_tests.rs Outdated
@Bnjoroge1
Bnjoroge1 force-pushed the Bnjoroge/reusable-workflow-limits branch from 7b4d7a0 to 30fafbe Compare September 11, 2026 13:44
@Bnjoroge1
Bnjoroge1 force-pushed the Bnjoroge/reusable-workflow-limits branch from 30fafbe to 32b9a10 Compare September 11, 2026 13:47
@Bnjoroge1
Bnjoroge1 merged commit 7d4eef2 into main Sep 11, 2026
6 of 7 checks passed
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.

1 participant