[Schema Consistency] Conditional Logic & Feature Interaction Consistency Check - 2026-01-23 #11570
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-01-30T23:57:14.787Z. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Quick Stats
Critical Issues
1. Label-Only Exception for Command Triggers NOT DOCUMENTED
Severity: HIGH - Undocumented feature behavior
What We Found:
slash_commandto coexist withissues/pull_requestevents when those events are configured for label-only triggers (onlylabeledorunlabeledtypes)parser.IsLabelOnlyEvent()function inpkg/parser/schema_triggers.go:65labeled/unlabeledtypesCode Evidence (
pkg/workflow/compiler_safe_outputs.go:98):Documentation Says (
docs/src/content/docs/reference/command-triggers.md:79):The Gap: The documentation states an absolute prohibition but the code implements a nuanced exception. Users are unaware that label-only configurations are actually allowed.
Impact:
Recommendation:
command-triggers.mdto document the label-only exceptionslash_command+ label-onlyissuespatternpull_requestwithlabeled/unlabeledtypesModerate Issues
2. Filter Validation Only Covers push/pull_request Events
Severity: MODERATE - Incomplete validation coverage
What We Found:
The filter validation in
pkg/workflow/compiler_filters_validation.goonly validates mutual exclusivity for:pushevent (line 58-64)pull_requestevent (line 67-72)However, GitHub Actions also supports filters for:
workflow_run- supportsbranchesandpathsfilterspull_request_target- supports same filters aspull_requestmerge_group- supports filtersCode Evidence:
Impact: Users could accidentally specify both
branchesandbranches-ignoreforworkflow_runevents and wouldn't get a validation error until GitHub Actions runtime.Recommendation: Extend
ValidateEventFilters()to include validation for all filter-supporting events.3. Sandbox/Firewall Mutual Exclusivity Not in Schema
Severity: MODERATE - Schema documentation gap
What We Found:
pkg/workflow/sandbox_validation.go:133-140Code Evidence (
sandbox_validation.go:133-140):Schema Status: The schema defines both
sandboxandnetwork.firewallfields independently without expressing their mutual exclusivity relationship.Impact:
Recommendation:
$commentin schema explaining the mutual exclusivity orPositive Findings
✅ 1. branches/branches-ignore Mutual Exclusivity - EXCELLENT
Perfect alignment across all layers:
Schema (
main_workflow_schema.json:330-355): Uses sophisticated oneOf with not constraintsRuntime Validation (
compiler_filters_validation.go:86-93): Matches schema perfectlyDocumentation: Clear error messages reference GitHub Actions requirements
Gold Standard: This is exemplary implementation showing perfect schema-code-docs alignment!
✅ 2. paths/paths-ignore Mutual Exclusivity - EXCELLENT
Same perfect pattern as branches/branches-ignore:
validateFilterExclusivity()(lines 95-102)✅ 3. IsLabelOnlyEvent Function - WELL IMPLEMENTED
The label-only detection logic is clean and thorough:
Quality observations:
Recommendations
Priority 1: Document Label-Only Exception
Timeline: Next documentation update
Update
docs/src/content/docs/reference/command-triggers.md:Add to schema description for
slash_commandfieldPriority 2: Extend Filter Validation
Timeline: Next development cycle
Add validation for
workflow_run,pull_request_target, andmerge_groupevents:Priority 3: Schema Mutual Exclusivity Documentation
Timeline: Next schema update
Add to sandbox field description:
Strategy Performance
Strategy Details
Findings
Effectiveness
Key Insights from This Run
Should Reuse This Strategy?
YES - Strategy continues to find valuable conditional logic gaps. Recommended for use every 4-5 analyses to validate feature interaction documentation.
Next Steps
Analysis Date: 2026-01-23
Strategy: Conditional Logic & Feature Flag Analysis (005)
Run Number: 10
Files Analyzed:
pkg/parser/schemas/main_workflow_schema.jsonpkg/workflow/compiler_filters_validation.gopkg/workflow/compiler_safe_outputs.gopkg/workflow/sandbox_validation.gopkg/parser/schema_triggers.godocs/src/content/docs/reference/command-triggers.mdWorkflow Run: §21304988485
Beta Was this translation helpful? Give feedback.
All reactions