github / github/vscode-github-actions

Linter lints old version when comparing diffs

オープン
#281 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る
bug
主要言語
TypeScript
スター
660
フォーク
213
PR マージ指標
30日以内にマージされた PR はありません

説明

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Create & **commit** the following workflow:
```yaml
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Build

on:
pull_request:
branches:
- main

permissions:
contents: read

jobs:
build:
name: Build
runs-on: ubuntu-latest
outputs:
build_id: ${{ steps.build.build_id }}
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
show-progress: false

- name: Build
id: build
shell: bash
run: |
echo "Building"
echo "build_id=12345" >> "$GITHUB_OUTPUT"

```
1. Notice the linting warning on `${{ steps.build.build_id }}`: `Context access might be invalid: build_id`.
1. Delete the following lines, save but do NOT commit:
```yaml
outputs:
build_id: ${{ steps.build.build_id }}
```
1. In the diff window compare the changes
1. (BUG 1) (while diff is open) Notice the LEFT window showing the linting warning, which also shows up under 'PROBLEMS'

![image](https://github.com/github/vscode-github-actions/assets/864376/0999a465-f442-47f3-b4e7-18d45d115e8a)

1. (while diff is open) Double click the warning under problems and notice it opens a locked (denoted the padlock next to the name) version of the previous, unedited version of `build.yaml`.

![image](https://github.com/github/vscode-github-actions/assets/864376/22c71f57-4952-4b89-a2f1-02aa328d24c7)

1. Close the diff & locked old version of `build.yaml`
1. (BUG 2) Notice the linting error is still there under 'PROBLEMS'

![image](https://github.com/github/vscode-github-actions/assets/864376/6e70e611-897e-413a-93f1-a224f2fd8f3e)

1. (BUG 2 related) When double clicking linting warning it opens up the same locked (denoted the padlock next to the name) version of the previous, unedited version of `build.yaml`.
1. (BUG 1) Now when hitting 'CTRL+P' to switch between files there are 2 entries for `build.yaml` which are indistinguishable, yet refer to different versions:

![image](https://github.com/github/vscode-github-actions/assets/864376/387abf74-0a8a-46ab-b8a1-8bac46b6e41b)

**Expected behavior**
Only errors on the new version are reported.

**Screenshots**
See reproduction

**Extension Version**
`v0.26.2`

**Additional context**
Add any other context about the problem here.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

No source files or tests are named. Reproduce the workflow in VS Code with extension v0.26.2, then trace how diagnostics and opened documents are associated while the diff is displayed and after it closes. Done means only the edited version reports errors, warnings do not open a locked old file, and the file switcher has no duplicate entries.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
github-actions, typescript, vscode
領域
devtools, tooling
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。