[Feature]: 支持 GitLab,以及通过 Git SSH 接入 Gogs 等其它仓库
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- gitlab, go
- Domínio
- developer-experience, devtools
Direção de pesquisa
Start by reading the repository binding and clone URL handling, including the catalog validation that rejects provider gitlab; inspect the existing GitHub clone, push, and pull request paths and the SSRF constraints in issues #85 and #86. The proposal leaves the GitLab API, SSH protocol, and UI entry points for a design phase. Done means the agreed first version binds and delivers changes to GitLab and a Gogs or equivalent SSH repository, handles credentials safely, and documents supported hosting and setup.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
公开版绑定仓库、导入 Issue、发现/合入 PR 目前只接 github.com。文档也写明:GitHub Enterprise 和非 GitHub 托管需要额外适配,默认适配器只针对 github.com。
社区里不少团队代码在 GitLab 或自建 Gogs(以及同类的 Gitea 等)上。现在他们可以把需求跑在对话工作区里,但无法把这些仓库绑进项目、让沙箱按身份检出,也不能把结果以 MR/推送交回去。
代码侧也能对上这个缺口:
- 添加仓库时
provider: gitlab会被拒绝(catalog 用例 400)。 - GitLab clone URL 不会被当成 GitHub 仓库,PR 对比链接为空。
- 遗留的 GitLab 兼容托管(工蜂等)在公开 UI 里是隐藏的,不能当公开 GitLab / Gogs 适配器用。
- 仓库里没有 Gogs / 通用
git@host:pathSSH 绑定与推送路径。
社区反馈与目前的产品判断一致:GitLab 正在支持;其它 Git 托管先考虑用 Git SSH 撑住克隆和推送,不必一开始就做完整 Issue/MR API。
Proposed behavior
分两层,先把「能改到仓库里」打通,再补平台功能。
-
GitLab 仓库(一等公民)
- 个人设置 / 快速接入可绑定 GitLab.com 或自建 GitLab(HTTPS token 或 SSH)。
- 对话工作区和 SOP 沙箱能按当前用户身份 clone / fetch / push。
- 能创建或更新 Merge Request,并回写状态(对齐现有 GitHub PR 发现、合入、状态刷新)。
- 文档写清支持的 GitLab 版本、凭据方式和能力边界(Issue 导入等可后置)。
-
其它 Git 托管:先走 Git SSH(Gogs 及同类)
- 允许绑定
git@host:owner/repo.git(或等价 SSH URL),用于 Gogs、Gitea 以及没有现成 HTTP API 适配器的自建 Git。 - 沙箱或执行机器用部署方配置的 SSH 密钥(或用户提供的 deploy key)完成 clone 与推送到指定分支。
- 首版可以不做 Gogs Issue / PR API;交付可以是推分支,MR 链接能填就展示、不能填就只给 branch 与 SHA。
- SSH 主机密钥、密钥注入与任务结束后擦除,走现有凭证生命周期,避免明文密钥进镜像或日志。
- 允许绑定
-
安全与隔离
- Clone / SSH URL 继续走现有 SSRF 与凭据脱敏约束(#85、#86),内网 Git 只在可信团队部署下由管理员显式允许。
- 不把组织内网域名或内部凭据写进默认镜像和文档示例。
GitLab HTTP API 与通用 SSH 的具体协议、UI 入口在方案阶段确定;本 issue 先记下社区对 GitLab + Gogs/SSH 的需求。
Scope
Platform — UI / integrations
Acceptance criteria
- 明确首版范围:GitLab(含是否覆盖自建实例)与通用 Git SSH(Gogs 至少作为一种验证对象)。
- 能绑定一个 GitLab 仓库,跑通最小改文件 → 推送 → MR(或文档声明的等价交付)。
- 能绑定一个 Gogs(或同类)仓库的 SSH URL,沙箱检出并推送到指定分支;未配置密钥时有明确引导。
- 安装 / 卸载密钥与仓库绑定时,不覆盖无关用户配置,日志中不出现明文密钥。
- README / 部署文档更新支持的托管类型与凭据方式。
Alternatives considered
- 继续只支持 GitHub:自建 GitLab / Gogs 的团队无法用 LoopForge 做真实交付,只能在工作区里改完再手工推。
- 为每个托管写完整 Issue/MR 适配器:长期需要,但对 Gogs 等可先用 SSH clone/push 覆盖「改到仓库里」这条主路径。
- 让用户在沙箱里自己配 git remote:没有项目级绑定、身份注入和交付回写,也无法进快速接入。
Checks
- This proposal does not require organization-specific infrastructure or credentials.
- 已检索现有 issues,无 GitLab / Gogs / 通用 Git SSH 的功能需求;#85 / #86 是 CloneURL 安全约束,实现时应遵守。当前 Discussions 已启用,本条仍作为可跟踪的功能需求。
- Linguagem predominante
- Go
- Estrelas
- 141
- Forks
- 28
- Merge médio
- 2d 15h
- PRs com merge (30d)
- 41
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Tencent/LoopForge
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
MCP/API setup copies force `http://` base URLs that embed personal Bearer tokensTalvez já em andamento @Robert0622 assumiu há 1 dia. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
[Feature]: 使用ssh key 支持所有gitAbertaenhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
Mantenedores costumam responder em até 1 dia
-
[Bug]: SOP 设计器「AI 编排助手」侧栏输入框叠住场景标签,标题按钮换行Talvez já em andamento @Robert0622 assumiu há 1 dia. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
Tencent/LoopForge#134 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de Tencent/LoopForge
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
--info inline-right:PREFIX leaves the first character of the prefix when the info gets shorterAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
-
[BUG] EphemeralJob matches every pod in the namespace when spec.selector is emptyTalvez já em andamento @vishnums2k5 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
openkruise/kruise#2656 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Support kubevirt CRDsAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
rancher/rancher-ai-mcp#206 ·
Mantenedores costumam responder em até 1 dia
-
test: make command and stdio startup tests portableTalvez já em andamento @dajiaohuang assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
mark3labs/mcp-go#1220 · 1 comentário ·
Mantenedores costumam responder em até 1 dia