Gitsync
[Cloudwiki에서 읽기](https://wiki.vialinks.xyz/wiki/Gitsync) # 개요 Gitsync는 GIthub에서 작업용 프라이빗 레포지토리와 공개용 퍼블릭 레포지토리의 코드를 안전하게 자동으로 동기화하는 도구입니다. Cloudflare Workers 환경에서 동작하며, 비밀번호로 보호됩니다. 비밀번호 브루트 포스 방지를 위해 Turnstile이 적용되어 있습니다. > https://github.com/eoeoe22/gitsync-public # 설정 방법 [ 깃허브 레포지토리](https://github.com/eoeoe22/gitsync-public) 의 코드를 직접 다운로드하거나 ``` git clone https://github.com/eoeoe22/gitsync-public ``` 명령어를 통해 레포지토리를 받습니다. `wrangler.toml` 파일을 열고, [vars]의 환경 변수를 적절히 수정하세요. GITHUB_TOKEN, TURNSTILE_SECRET_KEY 는 각각 [Github](https://github.com), [Cloudflare Turnstile](https://www.cloudflare.com/ko-kr/application-services/products/turnstile/) 에서 발급하세요. - TURNSTILE_SECRET_KEY = "" - GITHUB_TOKEN = "" - PASSWORD = "" - SESSION_SECRET = "" > 이 환경 변수들은 더미 값으로 설정했다가 추후 Cloudflare Workers 대시보드에서 `비밀` 변수로 직접 주입하는것을 권장합니다. REPO_CONFIGS = """ """ 부분은 https://vialinks.xyz/gitsync-json 에서 설정 후 출력된 JSON 설정을 붙여넣으세요. 설정이 완료되면 자신의 Github 계정으로 프라이빗 레포지토리를 생성하고, 코드 전체를 업로드 후 Cloudflare Workers 대시보드에서 해당 프라이빗 레포지토리를 선택해 Workers로 등록합니다. wrangler가 설치되어 있다면 Github 레포지토리 설정 없이 로컬에서 ``` npx wrangler deploy ``` 명령어를 통해 바로 배포할 수 있습니다. 배포는 보통 1~2분 이내에 완료됩니다. 배포가 완료되면 발급되는 https://gitsync.계정이름.workers.dev 경로로 접속해 설정한 비밀번호를 입력하고 기능을 이용할수 있습니다. # 기능 - 레포지토리 동기화 `REPO_CONFIGS` 설정을 바탕으로, 프라이빗 레포지토리에서 환경변수등 민감 정보 포함 파일을 제외한 소스코드만 퍼블릭 레포지토리에 동일하게 커밋합니다. - 레포지토리 차이 비교 `REPO_CONFIGS` 에 동기화 대상으로 설정된 소스코드 파일들의 차이를 비교합니다. 레포지토리 동기화 작동시에도 이 기능이 먼저 동작하며, 차이가 있는 파일만 효율적으로 업로드합니다. - 롤백 (프라이빗 레포지토리) 프라이빗 레포지토리의 특정 시점을 선택해 해당 지점으로 자동 롤백합니다.