github / github/vscode-github-actions

Supporting `actions/github-script` step named outputs

Đang mở
#188 2 bình luận 8 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
TypeScript
Star
660
Fork
213
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**Is your feature request related to a problem? Please describe.**

When using https://github.com/actions/github-script with a call to `core.setOutput()`, the VSCode extension is unable to do autocompletion and shows "Context access might be invalid" warnings.

The usual way of setting outputs with `actions/github-script` is to use a `return` statement, which creates a `result` output, accessible with `steps..outputs.result` (https://github.com/actions/github-script#reading-step-results).

But we preferred to use the reference to the `core` API to set **named outputs** instead.

**Example:**
```yaml
- uses: actions/github-script@v6
id: get-versions
with:
script: |
const currentVersion = 'v1.0.0'
const nextVersion = 'v1.1.0'

core.setOutput('CURRENT_VERSION', currentVersion)
core.setOutput('NEXT_VERSION', nextVersion)
- name: Use versions
run: |
echo "Current version: ${{ steps.get-version.outputs.CURRENT_VERSION }}"
echo "Next version: ${{ steps.get-version.outputs.NEXT_VERSION }}"
```

**Describe the solution you'd like**

The VSCode extension should be able to read the inline scripts passed to your official `actions/github-script` action, and detect all the calls to `core.setOutput()` to provide autocompletion.

And realistically, I can understand that https://github.com/actions/github-script#run-a-separate-file would be a limitation. Trying to find all `require` statements, reading those files recursively, etc. would be too much for this VSCode extension. Or you would have to include some kind of bundling to find all the `core.setOutput()` in the import tree.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.