Workflow dispatch defaults to first repository's branch in multi-root workspaces
还没有人认领这个 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
- Create a multi-root workspace containing two or more GitHub repositories.
- Check out different branches in the repositories, for example:
- Repository A:
branch-a - Repository B:
branch-b
- Repository A:
- Open a
workflow_dispatchworkflow from Repository B. - Trigger the workflow using the editor action or GitHub Actions explorer.
- 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 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/vscode-github-actions 的其他 Issue
-
enhancement
难度 2/5 1-3 小时 新手友好度 76/100
github/vscode-github-actions#627 · 2 个 reaction ·
-
难度 4/5 3-5 天 新手友好度 25/100
github/vscode-github-actions#633 ·
-
难度 5/5 一周以上 新手友好度 20/100
github/vscode-github-actions#630 · 3 条评论 · 3 个 reaction ·
-
long work未关闭
难度 4/5 3-5 天 新手友好度 25/100
github/vscode-github-actions#628 ·
-
bug
难度 3/5 1-2 天 新手友好度 55/100
github/vscode-github-actions#625 ·
查看 github/vscode-github-actions 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 90/100
chrisparsons83/flexspotff#215 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
vitest-dev/vitest#11633 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 1 天内回复