Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Workflow dispatch defaults to first repository's branch in multi-root workspaces

未关闭
#634 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
62/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
git, github-actions, typescript, vscode
领域
devtools

调研方向

Start in src/git/repository.ts, where getGitHead() reads git.repositories[0].state.HEAD, then follow its caller in triggerWorkflowRun.ts, which already has gitHubRepoContext for the selected workflow. Change the lookup so the ref comes from the workflow's own repository, and check that the default falls back to gitHubRepoContext.defaultBranch. Done when the dispatch ref prefills with the branch of the workflow's repository in a multi-root workspace.

由索引模型根据 Issue 内容生成。

描述

Description

When triggering a workflow_dispatch workflow from a multi-root VS Code workspace containing multiple Git repositories, the ref input is prefilled with the current branch of the first Git repository rather than the repository containing the selected workflow.

The workflow itself is dispatched against the correct repository, but the default ref often belongs to another repository. This requires manually correcting the branch on nearly every dispatch and can accidentally trigger a workflow on the wrong ref when branch names overlap.

Steps to reproduce

  1. Create a multi-root workspace containing two or more GitHub repositories.
  2. Check out different branches in the repositories, for example:
    • Repository A: branch-a
    • Repository B: branch-b
  3. Open a workflow_dispatch workflow from Repository B.
  4. Trigger the workflow using the editor action or GitHub Actions explorer.
  5. Observe the value in Enter ref to trigger workflow on.

Expected behavior

The ref defaults to refs/heads/branch-b, the current branch of the repository containing the selected workflow.

Actual behavior

The ref defaults to refs/heads/branch-a, the current branch of the first repository known to VS Code's Git extension.

Probable cause

triggerWorkflowRun.ts correctly resolves gitHubRepoContext from the workflow file's workspace folder, but obtains the default ref through getGitHead():

value: (await getGitHead()) || gitHubRepoContext.defaultBranch

getGitHead() in src/git/repository.ts always reads git.repositories[0]:

const head = git.repositories[0].state.HEAD;

This ignores the workflow's workspace/repository context.

Suggested fix

Resolve HEAD from gitHubRepoContext.repositoryState, or change getGitHead to accept the workflow's workspace URI/repository context and retrieve the corresponding Git repository before reading HEAD.

Environment

  • VS Code: 1.141.0 (2a59476c9bfcb90b3ddc372c36762471b7dfad1c), x64
  • GitHub Actions extension: 0.32.3
  • OS: Windows
  • Workspace: multi-root with multiple local GitHub repositories
主要语言
TypeScript
星标
665
派生
221
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

github/vscode-github-actions 的其他 Issue

查看 github/vscode-github-actions 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。