Refactor ParseWorkflowFile: extract three helper functions to reduce complexity#11592
Merged
Refactor ParseWorkflowFile: extract three helper functions to reduce complexity#11592
Conversation
- Extract file reading and frontmatter parsing into parseFrontmatterSection() - Reduces ParseWorkflowFile from ~807 to 737 lines (70 line reduction) - Creates frontmatterParseResult struct for intermediate data - All existing tests pass Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Extract engine configuration, imports processing, and validation into setupEngineAndImports() - Reduces ParseWorkflowFile from 737 to 553 lines (184 line reduction, 254 total) - Creates engineSetupResult struct for intermediate data - All existing tests pass Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Extract tools, runtimes, and markdown processing into processToolsAndMarkdown() - Reduces ParseWorkflowFile from 553 to 383 lines (170 line reduction, 424 total) - Creates toolsProcessingResult struct for intermediate data - All existing tests pass - Total reduction: 52.5% from original (807 → 383 lines) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Refactor ParseWorkflowFile to reduce complexity
Refactor ParseWorkflowFile: extract three helper functions to reduce complexity
Jan 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ParseWorkflowFilewas 807 lines with ~130 conditional branches, making it difficult to reason about and test. This refactors it into smaller, focused functions.Changes
Extracted three helpers:
parseFrontmatterSection()- File I/O, YAML parsing, workflow type detection (127 lines)setupEngineAndImports()- Engine configuration, imports processing, network/firewall setup (215 lines)processToolsAndMarkdown()- Tools merging, MCP servers, runtimes, markdown expansion (254 lines)Added typed result structs for data passing:
frontmatterParseResultengineSetupResulttoolsProcessingResultMain function reduced from 807 → 383 lines (52.5% reduction)
Example
Before:
After:
Each helper is independently testable and has a single responsibility.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.