github / github/vscode-github-actions

Feature Request: Granular control over workflow validation diagnostics

Open
#551 1 comment 1 reaction 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.