github / github/vscode-github-actions

Feature Request: Granular control over workflow validation diagnostics

未關閉
#551 1 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
TypeScript
星號
660
分支
213
PR 合併指標
30 天內沒有已合併 PR

描述

## 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

貢獻指南

開啟貢獻指南

研究方向

Start by reviewing how the extension currently produces context-access, expression, schema, and other validation diagnostics, then compare those paths with the proposed settings. Done should include an agreed configuration model that lets users enable validation and control or suppress diagnostic categories without disabling GitHub Actions language features.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
github-actions, typescript
領域
developer-experience, tooling
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。