Plombir Git
사람과 AI 에이전트 모두가 코드를 작성하는 팀을 위한 경량의 자체 호스팅 Git 포지(forge).
Rust
License: AGPL-3.0-or-later
codeindexer.com으로 구축되었습니다: 두 명의 개발자와 AI 에이전트가 114,400줄 분량의 포크(fork)를 세 달 만에 운영 가능한 포지로 만들었습니다. 모든 유형의 결함을 해결할 때까지 점검했습니다 — how.
Plombir Git은 저장소(repositories), 이슈(issues), 풀 리퀘스트(pull requests), 코드 리뷰(code review), CI(지속적 통합), 위키(wiki), 패키지 레지스트리(package registries)를 호스팅하며, AI 에이전트를 자체 참여자로 취급합니다: 자체 계정, 자체 제한된 토큰(narrowed token), 자체 감사 추적(audit trail)을 가지며, 병합(merge)을 여는 승인은 사람이 담당합니다. Gitea와 Forgejo와 동일한 공간에서 작동하는 단일 서버 프로세스입니다.
<p align="center">
<img src="https://raw.githubusercontent.com/Nettechnologys/plombir-git/HEAD/docs/screenshots/agent-pr-demo.webp" width="880"
alt="An AI agent's pull request in Plombir Git: the agent's bot account opened it and applied a reviewer's suggestion, and a second person approves and merges it">
<br>
<sub>에이전트가 자체 봇 계정으로 풀 리퀘스트를 열고 MCP에 대한 리뷰 제안을 적용합니다. 두 번째 사람이 이를 승인하고 병합합니다.</sub>
</p>
한 명령어만으로 사용해 보기
docker run --rm -p 8080:8080 -p 2222:2222 ghcr.io/nettechnologys/plombir-git:latest plombir-git trial
비밀 키(secrets), 설정 파일(config files) 또는 빌드 과정이 필요 없습니다. 로그에 설정 링크가 출력되므로, 이를 열고 관리자 계정을 생성하면 http://localhost:8080에서 포지를 사용할 수 있습니다. 트라이얼 모드는 모든 페이지에 표시되며 프로덕션 환경용이 아닙니다: --rm을 사용하면 데이터도 컨테이너와 함께 삭제됩니다. 데이터를 유지하려면 -v plombir-git-trial:/data를 추가하고 명령어를 --data-dir /data로 끝내세요.
그런 다음:
- 에이전트 연결하기: 봇 계정과 제한된 토큰을 사용하여 Claude Code, Codex 또는 Cursor를 MCP 위에서 단 2분 만에 연결할 수 있습니다. docs/agents.md.
- 저장소 가져오기: GitHub, GitLab, Gitea 또는 Forgejo에서 저장소를 가져올 수 있습니다. 이슈와 풀 리퀘스트는 번호를 유지하며, 리뷰, 승인, 레이블, 마일스톤 및 릴리스 정보도 함께 보존됩니다. 가져오기 영수증(import receipt)은 무엇이 성공적으로 전송되었고 무엇이 실패했는지 목록으로 보여줍니다. 이는 빈 대시보드에서 가장 먼저 보이는 버튼입니다.
- 실제 환경에 배포하기: Docker Compose, TLS 및 백업을 사용하여 실제로 배포할 수 있습니다: deploy/README.md.
왜 Plombir Git인가?
- 에이전트는 자체 이름으로 작업하며, 사람이 승인합니다. MCP는 서버에 내장되어 있어, 모든 사용자가 봇 계정을 생성할 수 있으며, 해당 토큰은 저장소와 도구로 제한될 수 있습니다. 또한, 봇의 승인은 보호된 병합(protected merge)을 절대로 열지 않습니다. 자세히 알아보기
- 포지 외부에서 검증 가능한 릴리스 에셋: in-toto / DSSE 증명서(attestations)를 인스턴스의 공개 키로 서명합니다. 자세히 알아보기
- 작성한 것을 실행하거나 이름으로 거부하는 CI: Gitea / GitHub Actions의 엄격한 부분집합입니다. 지원되지 않는 키는 무시되는 대신 실패를 반환합니다. 자세히 알아보기 및 Gitea와의 솔직한 비교
개요
<table>
<tr>
<td width="50%"><a href="docs/screenshots/pull-request.webp"><img src="https://raw.githubusercontent.com/Nettechnologys/plombir-git/HEAD/docs/screenshots/pull-request.webp" alt="봇 계정에서 열린 풀 리퀘스트(pull request)로 표시되며, 소유자를 대신하여 'BOT'으로 표시되고 마크다운 설명이 렌더링된 모습"></a><br><sub class="language-yml"><b>에이전트가 생성한 풀 리퀘스트.</b> 봇 계정은 물론 해당 에이전트가 작업하는 사람도 표시됩니다.</sub></td>
<td width="50%"><a href="docs/screenshots/review-suggestion.webp"><img src="https://raw.githubusercontent.com/Nettechnologys/plombir-git/HEAD/docs/screenshots/review-suggestion.webp" alt="에이전트가 적용한 디프(diff) 라인상의 인라인 리뷰 제안과 해당 스레드 내 답변"></a><br><sub class="language-yml"><b>코드 리뷰.</b> 인라인 댓글 및 제안입니다. 에이전트가 하나를 적용하고 스레드에서 답변합니다.</sub></td>
</tr>
<tr>
<td><a href="docs/screenshots/pipeline.webp"><img src="https://raw.githubusercontent.com/Nettechnologys/plombir-git/HEAD/docs/screenshots/pipeline.webp" alt="린트(lint)와 테스트 단계가 포함된 CI 파이프라인으로, 모든 작업이 통과됨"></a><br><sub class="language-yml"><b>CI.</b> <code class="language-yml">.plombir-git-ci.yml</code>, <code class="language-gitea">.gitea/workflows</code> 또는 <code class="language-github">.github/workflows</code>에서 가져온 단계(Stages), 작업(Jobs) 및 로그입니다.</sub></td>
<td><a href="docs/screenshots/audit-log.webp"><img src="https://raw.githubusercontent.com/Nettechnologys/plombir-git/HEAD/docs/screenshots/audit-log.webp" alt="사람의 행동 옆에 봇 계정의 agent.mcp_tool_call 항목을 나열하는 감사 로그(audit log)"></a><br><sub class="language-yml"><b>감사 로그.</b> 에이전트가 수행하는 모든 MCP 도구 호출은 기록됩니다.</sub></td>
</tr>
</table>
이 스크린샷들은 가상의 사용자 및 프로젝트를 사용하는 로컬 데모 인스턴스에서 가져온 것입니다. 전체 에이전트 루프는 통합 테스트이자 터미널 기록 파일입니다, docs/demo/agent-review.cast.
문서화
| |
|---|
| 에이전트 연결 | 봇 계정, 축소된 토큰, Claude Code / Codex / Cursor 설정 |
| ... | |
누가 만들었는가
Plombir Git은 NetTechnologys s.r.o.에서 개발했습니다:
Yahook과 vadiksext가 AI 에이전트와 함께 작업하며 만들었습니다. 저희 팀 자체적으로도 이미 작업을 진행하고 있습니다.
이 프로젝트를 완성하기 위해 여러 측면에서 많은 노력이 투입되었습니다. 3개월간의 재귀적 검토(recursive sweep) 과정은 테스트와 푸시 전에 실행되는 체크를 거치며 한 가지 결함을 또 다른 결함으로 막아냈습니다. 팀 외부에서는 Rinat(hicaru)이 전체 코드 리뷰 및 보안 감사를 작성했으며, Alexey Stupenkov(alexio777)는 주로 보안 강화(security hardening)에 관련된 18개의 풀 리퀘스트(pull requests)를 보냈습니다. 외부에서 발견된 모든 사항은 변경되기 전에 코드와 비교 검토되었습니다 — 어떻게 구축되었는지.
출처(Origin). Plombir Git은 IronForge의 포크(fork)입니다.
출처 및 라이선스 세부 정보는 NOTICE를 참조하십시오.
라이선스
Plombir Git은 GNU Affero General Public License v3.0 또는 그 이후 버전에 따른 자유 소프트웨어이며, © NetTechnologys s.r.o. 소유입니다.
사용, 연구, 수정 및 공유할 수 있습니다. 만약 네트워크를 통해 다른 사람들을 위해 수정된 버전을 실행하는 경우, AGPL은 그들에게 소스 코드를 제공하도록 요구합니다.
AGPL 의무가 없는 상업용 라이선스는 저작권 보유자로부터 구매할 수 있습니다. 기여는 Contributor License Agreement에 따라 받아들여집니다. 포크의 업스트림 출처 및 IronForge에서 가져온 코드의 MIT 약관은 NOTICE를 참조하십시오.