github / github/vscode-github-actions
Feature Request: Granular control over workflow validation diagnostics
- Dominant language
- TypeScript
- Stars
- 660
- Forks
- 213
- PR merge metrics
- No merged PRs in 30d
Description
## Problem
The extension currently provides no user-configurable settings to control which validation diagnostics are shown in the Problems panel. Users cannot suppress specific categories of warnings/errors without disabling the extension entirely or changing file associations to plain YAML (losing all GitHub Actions language features).
## Current Behavior
The extension surfaces diagnostics like:
- `Context access might be invalid: ` (severity: hint)
- Expression validation errors
- Schema validation warnings
These are generated for valid workflow patterns (e.g., outputs set via `$GITHUB_OUTPUT` and referenced in subsequent jobs) that the static analyzer cannot fully resolve.
## Example
```yaml
jobs:
build:
outputs:
version: ${{ steps.version.outputs.DF_VERSION }}
steps:
- id: version
run: echo "DF_VERSION=$(cat VERSION)" >> $GITHUB_OUTPUT
deploy:
needs: build
steps:
- run: echo "Deploying ${{ needs.build.outputs.DF_VERSION }}"
# ⚠️ "Context access might be invalid: DF_VERSION"
```
The warning is a false positive—the workflow is correct, but the extension cannot trace the dynamic output.
## Requested Feature
Add granular settings to control validation behavior, for example:
```json
{
"github-actions.validation.enabled": true,
"github-actions.validation.severity": {
"context-access": "ignore", // or "hint" | "warning" | "error"
"unknown-action": "warning",
"deprecated-command": "hint",
"schema": "error",
"expression": "warning"
}
}
```
Alternatively, a simpler approach:
```json
{
"github-actions.validation.suppressedRules": [
"context-access",
"deprecated-command"
]
}
```
## Benefits
- Users can tailor validation to their workflow patterns
- Reduces noise from false positives without losing useful diagnostics
- Aligns with patterns in other linting extensions (ESLint, Pylint, etc.)
## Workaround (Current)
The only workaround is to change file associations:
```json
"files.associations": {
".github/workflows/*.yml": "yaml"
}
```
This disables **all** GitHub Actions features, which is undesirable.
## Environment
- Extension version: 0.29.1
- VS Code version: 1.96.x
- OS: macOS
Contributor guide
Assessment
This issue has not been assessed yet.