validateToolConfiguration validates safe-outputs settings, on.needs and safe-job declarations, network configuration, labels, concurrency expressions, sandbox security constraints, GitHub tool-to-toolset alignment, the agentic-workflows permission requirement, and dispatch/call-workflow configuratio
(workflowData *WorkflowData, markdownPath string, workflowPermissions *Permissions)
| 125 | // permission requirement, and dispatch/call-workflow configurations. |
| 126 | // workflowPermissions is the *Permissions value returned by validatePermissions. |
| 127 | func (c *Compiler) validateToolConfiguration(workflowData *WorkflowData, markdownPath string, workflowPermissions *Permissions) error { |
| 128 | workflowLog.Printf("Validating agent file if specified") |
| 129 | if err := c.validateAgentFile(workflowData, markdownPath); err != nil { |
| 130 | return err |
| 131 | } |
| 132 | if err := c.validateCoreToolConfiguration(workflowData, markdownPath); err != nil { |
| 133 | return err |
| 134 | } |
| 135 | if err := c.validateConcurrencyConfiguration(workflowData, markdownPath); err != nil { |
| 136 | return err |
| 137 | } |
| 138 | c.emitGeneralToolWarnings(workflowData, markdownPath) |
| 139 | if err := c.validateThreatDetectionSandboxRequirement(workflowData, markdownPath); err != nil { |
| 140 | return err |
| 141 | } |
| 142 | if err := c.validateGitHubToolsAndPermissions(workflowData, markdownPath, workflowPermissions); err != nil { |
| 143 | return err |
| 144 | } |
| 145 | return c.validateResourcesAndDispatches(workflowData, markdownPath) |
| 146 | } |
| 147 | |
| 148 | func (c *Compiler) validateCoreToolConfiguration(workflowData *WorkflowData, markdownPath string) error { |
| 149 | validations := []struct { |