Adding agentic marketplace fails when marketplace repo has files with long paths
还没有人认领这个 Issue。
- 主要语言
- Shell
- 星标
- 11.2k
- 派生
- 1.9k
- 平均合并
- 14 小时 16 分钟
- 30 天内合并 PR
- 6
描述
Describe the bug
So, i have seen a couple of times where someone tries to add an agentic marketplace via "/plugin marketplace add" and fails with obscure error, because the marketplace repo happens to have a file path long enough where, together with the location CLI chooses to clone the repo locally, exceeds the default 260 char max limit in windows.
Example error from CLI when this happens (a couple of specific paths obscured for privacy):
`/plugin marketplace add https://dev.azure.com/microsoft/OS.Developer/_git/NAME_OF_REPO_PROJECT_HERE
Failed to add marketplace: Request plugins.marketplaces.add failed with message: Failed to fetch git marketplace from the provided URL. Please verify that the URL and reference are correct. Details: Command failed: git clone --depth 1 --progress https://dev.azure.com/microsoft/OS.ZZZZZZZZZZZ/_git/NAME_OF_REPO_PROJECT_HERE C:\Users\USER_NAME_HERE\AppData\Local\copilot\marketplaces\https---dev-azure-com-XXXXXXXX-YY-ZZZZZZZZZZ--git-NAME_OF_REPO_PROJECT_HERE
Cloning into 'C:\Users\USER_NAME_HERE\AppData\Local\copilot\marketplaces\https---dev-azure-com-XXXXXXX-YY-ZZZZZZZZZZZ--git-NAME_OF_REPO_PROJECT_HERE'...
remote: Azure Repos
remote: remote: Found 5359 objects to send. (148 ms)
(truncated)
Updating files: 100% (3956/3956), done.
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
`
The above error is generally pretty obscure and end user has no idea why adding the marketplace fails.
- Can we detect this scenario and have better error message to explain to the user what happened? (And ideally help them resolve it by turning off windows path limit or something.)
- Can we internally clone the repo to a shorter path so that this is less likely to trip? E.g. hash the repo URI or something, instead of having the entire repro URI as part of the path. The existing install path by default is like 100 char long and uses up half the char length already.
Affected version
GitHub Copilot CLI 1.0.81-1
Steps to reproduce the behavior
- Find a agentic marketplace with some long-ish path inside. (Contact cchui@microsoft.com offline if you need examples.)
- Run /plugin marketplace add INSERT_MARKETPLACE_URI_HERE
- Encounter error desscribed above in the bug description
Expected behavior
Ideally succeed, or at least a helpful error so the user understands what went wrong / how to resolve it (e.g. turn off max path limit.)
Additional context
No response
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 /plugin marketplace add 背后的实现以及 git clone 路径构造入手,然后使用具有长路径的 marketplace 在 Windows 上重现 checkout 失败。完成的标准是:marketplace 能够在更短的克隆位置成功执行,或者报告对 Windows 路径长度限制导致的失败的可操作说明。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- git, shell
- 领域
- cli, operating-systems
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 58/100