정지용
프로젝트 목록
자동화Shell

코드 비공개 + 문서 공개 자동 배포 도구

로컬 프로젝트를 Claude Code로 익명화 README 생성 후 private 소스/public 문서 레포 쌍으로 자동 배포하는 CLI

publish-project최근 업데이트 2026년 7월 26일

개요

여러 개인/사이드 프로젝트를 GitHub에 정리해 올릴 때 반복되는 수작업을 자동화하는 셸 스크립트다. 로컬 Claude Code CLI를 헤드리스로 호출해 소스 코드를 관찰만 하는 방식으로 한국어 README를 자동 생성하고, 회사명·제품명 등 고유명사가 노출되지 않도록 금지 키워드 셀프체크를 거친다. 이후 gh CLI를 이용해 실제 소스가 담긴 private content 레포와 익명화된 문서만 담긴 public docs 레포를 한 쌍으로 생성·푸시한다. 이미 존재하는 레포는 건너뛰어 반복 실행해도 안전하도록(idempotent) 설계되었고, credential 패턴 러프 탐지 등 안전장치도 포함한다.

담당 역할

1인 개발로 요구사항 정의부터 셸 스크립트 설계·구현, 안전장치(금지어 체크, credential 스니핑) 설계까지 전체를 담당.

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

흐름도

publish-project 처리 흐름

소스 디렉터리 하나를 입력받아 docs 레포와 content 레포를 각각 생성하기까지의 처리 단계를 보여준다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • Shell전체 배포 로직을 구현한 Bash 스크립트 작성

도구

  • Git소스 디렉터리 초기화, 커밋, 원격 저장소 push
  • Claude Code CLI헤드리스 모드(claude -p)로 소스를 읽어 익명화된 한국어 README 자동 생성

DevOps

  • GitHub CLIgh api로 레포 존재 확인, gh repo create로 레포 생성 및 push

핵심 포인트

  • Read/Bash(ls|cat|head|find|grep|wc|file) 외 도구를 차단해 Claude가 소스를 관찰만 하고 수정·네트워크 접근은 못하게 제한
  • 생성된 README에 금지 키워드가 하나라도 있으면 push를 중단하는 self-check 안전장치
  • AWS 키, PEM, Slack 토큰, GitHub PAT 패턴을 러프 탐지해 확인을 요구하는 credential 스니핑
  • 이미 존재하는 레포는 skip하는 idempotent 설계로 반복 실행 안전성 확보
  • content(private)/docs(public) 레포를 옵션으로 분리 제어(--docs-only, --content-only, visibility 지정)

문제와 해결

문제회사/파트너/제품명 등 고유명사가 자동 생성 문서에 노출될 위험

해결내장 및 커스텀 금지 키워드 리스트로 생성된 README를 셀프체크해 hit 시 push 중단

문제소스에 credential이 실수로 포함된 채 push될 위험

해결AWS 액세스 키, PEM, Slack 토큰, GitHub PAT 패턴을 러프 스니핑해 사용자 확인을 요구

문제동일 프로젝트를 재실행할 때 중복 레포 생성 문제

해결gh api로 레포 존재 여부를 먼저 확인해 이미 있으면 skip하는 idempotent 로직 구현

레포지토리 정보

생성
2026년 7월 26일
최근 커밋
2026년 7월 26일
크기
0 KB
라이선스
MIT

언어 구성

  • Shell100.0%

이 문서는 2026년 7월 26일 에 자동 분석으로 생성되었습니다.