홈 / 기능 / 코드 / GitNest
GitNest — osFoundry에서 클론하고 푸시하는 프라이빗 Git 호스팅
워크스페이스 저장소를 위한 HTTPS 기반의 진짜 Git, 그리고 직접 관리하는 액세스 토큰.
GitNest는 osFoundry에 내장된 Git 호스팅입니다. 워크스페이스의 모든 저장소에는 실제 Git 원격이 있어, 표준 Git 클라이언트로 HTTPS를 통해 그대로 클론하고 푸시할 수 있습니다. 플러그인도, 내보내기 과정도, 별도의 계정도 필요하지 않습니다. 인증에는 직접 발급하고 직접 폐기하는 워크스페이스 액세스 토큰을 사용합니다. 클론한 저장소는 웹 IDE가 편집하고 Maestro가 읽는 저장소와 동일하므로, 내 컴퓨터에서 한 작업과 워크스페이스에서 한 작업이 하나의 히스토리로 이어집니다.
요점
- 표준 Git으로 워크스페이스의 모든 저장소를 HTTPS를 통해 클론하고 푸시합니다.
- 직접 발급하고 범위를 정하고 폐기하는 워크스페이스 액세스 토큰으로 인증합니다.
- 저장소는 기본적으로 해당 워크스페이스 안에서만 접근할 수 있는 비공개 상태입니다.
- 웹 IDE가 같은 저장소를 사용하므로, 푸시한 내용이 워크스페이스에 그대로 나타납니다.
- 명령줄, IDE, CI 작업 등 어떤 Git 클라이언트에서도 동작합니다.
개요
GitNest는 워크스페이스에 속한 Git 원격입니다. 다른 곳에 호스팅된 저장소의 미러가 아니며, 공개 오픈소스 호스팅을 대체하려는 것도 아닙니다. 워크스페이스의 코드가 실제로 놓이는 자리이고, 평소 쓰던 Git으로 내 컴퓨터에서 바로 접근할 수 있습니다. 내보내기가 아니라 진짜 Git이기 때문에 클론, 페치, 브랜치, 푸시를 비롯한 일상적인 명령이 그대로 동작하며, 그 위에 얹힌 도구들도 마찬가지입니다.
주요 기능
- Git 레퍼런스 구현을 사용한 smart-HTTP 클론, 페치, 푸시.
- 만료일을 지정할 수 있고 클릭 한 번으로 폐기되는 사용자별 액세스 토큰.
- 워크스페이스 단위 권한 — 토큰은 자신이 속한 워크스페이스의 저장소에만 도달합니다.
- 읽기와 쓰기 권한을 저장소별로 결정하므로, 특정 토큰의 푸시를 막을 수 있습니다.
- 푸시한 내용이 워크스페이스에 반영되어 웹 IDE와 Maestro가 곧바로 확인합니다.
- 게시된 버전은 보호됩니다. 이를 덮어쓰는 푸시는 조용히 반영되지 않고 거부됩니다.
osFoundry에서 하는 방법
- 액세스 토큰 발급 — 설정 → 저장소 토큰에서 토큰을 발급합니다. 값은 한 번만 표시되므로 그때 복사해 두십시오. 만료일도 함께 지정하십시오. 만료되지 않는 토큰은 영원히 신경 써야 하는 토큰입니다.
- 클론 URL 복사 — 코드 화면에서 저장소를 열고 클론 패널을 사용합니다. URL에는 워크스페이스 정보가 포함됩니다. Git 클라이언트는 사용자 지정 헤더를 보낼 수 없으므로 주소 자체가 모든 정보를 담고 있어야 하기 때문입니다.
- 클론하기 — 복사한 URL로 git clone을 실행합니다. Git이 비밀번호를 물으면 토큰을 입력하고, 사용자 이름은 아무 값이나 넣어도 됩니다. 자격 증명 헬퍼가 값을 기억합니다.
- 평소처럼 커밋하고 푸시 — 쓰던 명령 그대로 브랜치를 만들고 커밋하고 푸시합니다. 이 과정에 osFoundry에만 있는 절차는 없습니다.
- 워크스페이스에서 확인 — 푸시한 내용이 워크스페이스로 반영되어 브랜치와 파일이 웹 IDE에 나타나고 Maestro도 사용할 수 있습니다.
osFoundry 비교
| 항목 | osFoundry | 대부분의 다른 도구 |
|---|
| 코드가 있는 곳 | 내 워크스페이스 안의 실제 Git 원격. | 연동으로 이어 붙인 별도의 호스팅 계정. |
| 코드를 꺼내는 방법 | git clone — 별도 내보내기 없이 표준 명령 그대로. | 압축 파일을 내려받거나, 동기화 플러그인을 설치. |
| 자격 증명 | 만료일을 지정하고 직접 발급·폐기하는 워크스페이스 토큰. | 계정 비밀번호 또는 제3자에게 부여한 OAuth 권한. |
| 에디터와 원격 | 같은 저장소를 함께 사용하므로 서로 어긋나지 않습니다. | 호스팅된 저장소를 에디터로 미러링하고 작업으로 동기화. |
활용 사례
- 로컬 환경을 선호하는 개발자: 워크스페이스 저장소를 클론해 익숙한 에디터와 도구로 작업한 뒤 푸시합니다. 아무도 무언가를 내보내지 않아도 팀은 워크스페이스에서 변경 사항을 확인합니다.
- CI 파이프라인: 빌드 작업이 만료일이 있는 범위 제한 토큰으로 저장소를 클론해 테스트를 실행합니다. 사람 계정이나 개인 자격 증명은 필요하지 않습니다.
- 공개 호스팅을 피하려는 팀: 평범한 Git을 그대로 쓰면서 저장소는 워크스페이스 안에 비공개로 둡니다. 프라이버시를 위해 익숙한 도구를 포기할 필요가 없습니다.
자주 묻는 질문
GitNest는 무엇인가요?
GitNest는 osFoundry에 내장된 Git 호스팅입니다. 워크스페이스의 모든 저장소에 실제 Git 원격을 부여해, 표준 Git 클라이언트로 HTTPS를 통해 클론하고 푸시할 수 있게 합니다.
GitNest는 GitHub를 대체하나요?
아닙니다. 그럴 의도도 없습니다. 공개 오픈소스 호스팅과 그 주변 커뮤니티의 자리는 여전히 GitHub입니다. GitNest는 워크스페이스 자체의 저장소가 놓이는 곳으로, 두 시스템 사이에서 코드를 옮기지 않고도 로컬과 osFoundry 양쪽에서 작업할 수 있게 합니다.
평소 쓰던 Git 명령을 그대로 쓸 수 있나요?
네. GitNest는 Git의 레퍼런스 구현을 사용해 표준 smart-HTTP 프로토콜로 통신하므로, 클론, 페치, 브랜치, 푸시가 다른 곳에서와 똑같이 동작합니다.
GitNest는 SSH를 지원하나요?
현재는 지원하지 않습니다. GitNest는 HTTPS 전용이며, SSH 키가 아니라 워크스페이스 액세스 토큰으로 인증합니다.
인증은 어떻게 하나요?
설정에서 액세스 토큰을 발급하고, Git이 비밀번호를 물을 때 그 토큰을 입력하면 됩니다. 사용자 이름은 확인하지 않습니다. 토큰 값은 한 번만 표시되며, 만료일을 지정할 수 있고 언제든 폐기할 수 있습니다.
토큰을 폐기하면 어떻게 되나요?
다음 요청부터 즉시 동작을 멈춥니다. 이미 어떤 컴퓨터에 클론된 내용은 그 컴퓨터에 그대로 남습니다. 토큰 폐기는 앞으로의 접근을 끊는 것이지, 이미 내려받은 작업 사본을 지우지는 않습니다.
제 저장소는 비공개인가요?
네. 저장소는 기본적으로 해당 워크스페이스에만 공개되며, 토큰은 자신이 속한 워크스페이스의 저장소에만 도달합니다.
푸시한 내용이 워크스페이스에 나타나나요?
네. 푸시가 수락되면 브랜치와 파일이 워크스페이스로 반영되어, 웹 IDE에 푸시한 내용이 표시되고 Maestro도 읽을 수 있습니다.
게시된 버전에 푸시할 수 있나요?
할 수 없으며, 절반만 반영되는 일 없이 처음부터 거부됩니다. 게시된 버전은 고정된 기록입니다. 이를 덮어쓰는 푸시가 들어오면 GitNest는 어느 브랜치가 문제인지 알려 주며 거부하고, 저장소는 그대로 둡니다.
CI에서 GitNest를 쓸 수 있나요?
네. 만료일을 지정한 토큰을 발급해 CI 제공업체의 시크릿 저장소에 넣어 두고, 다른 Git 원격과 똑같이 클론하면 됩니다.
요금
저장소 호스팅은 워크스페이스에 포함됩니다. 저장소 하나하나나 그 개수에 대해 따로 부과되는 요금은 없습니다. 클론과 푸시로 발생한 전송량은 다른 대역폭과 마찬가지로 워크스페이스 사용량에 기록됩니다.
관련 기능