Files
backup_actions/AGENTS.md
2025-12-15 18:04:38 +09:00

2.4 KiB

AGENTS

목적

  • 외부 SSH Git 저장소(engdev@172.16.42.118:dev_Net8.git)의 특정 브랜치를 Gitea center_dev 조직으로 순차 미러링하는 워크플로우를 관리합니다.
  • 데이터가 크므로 병렬 대신 순차 처리하며, 브랜치별로 대응되는 Gitea 저장소에 강제 푸시합니다.

주요 흐름 (mirror.yml 설계 요약)

  • 트리거: cron 0 2 * * *workflow_dispatch.
  • 기본 데이터 소스: branch_list 파일을 한 줄씩 읽어 순차 처리.
  • 브랜치→저장소 매핑 규칙: Develop_Net8base, Develop_Net8_** 부분을 저장소 이름으로 사용하며, 그 외 브랜치는 브랜치명을 그대로 저장소 이름으로 사용.
  • 실행 단계: 워크플로우 리포지토리 체크아웃 → SSH 키 저장/권한 설정 후 ssh-keyscan 172.16.42.118 → 각 브랜치마다 Gitea API로 center_dev 조직에 저장소 존재 여부 확인(있으면 대상 저장소를 mirror clone 후 source 브랜치를 fetch/pull해 업데이트만, 없으면 저장소 생성 시 기본 브랜치를 main으로 설정) → 소스 브랜치를 대상 저장소 main으로 강제 푸시 → 푸시 후에도 기본 브랜치를 main으로 패치 → 임시 폴더 정리. 오류가 나도 다음 브랜치로 계속 진행하도록 처리.

시크릿/변수

  • 현재 요구: SSH_PRIVATE_KEY(소스 접근), GITEA_TOKEN(Gitea API/푸시), GITEA_URL(Gitea 인스턴스 URL).
  • to-do 예정 변경: Gitea 관련 항목을 BASE_GITEA_ 접두사로 통일(secrets.BASE_GITEA_TOKEN, vars.BASE_GITEA_URL, vars.BASE_GITEA_USER).

남은 작업(to-do.md 기준)

  • mirror.yml: timeout 설정 추가.
  • mirror.yml: workflow_dispatch 입력으로 단일 브랜치 지정 기능 추가.
  • mirror.yml: 입력 브랜치가 있으면 우선 처리, 없으면 branch_list 사용하도록 로직 변경.
  • mirror.yml: Gitea 시크릿/변수 이름 BASE_GITEA_ 접두사로 교체.
  • to-do.md: 작업 완료 후 KST 기준 완료 시간 기록.
  • 참고: to-do 하단에 "모든 작업이 완료되었습니다. (2025-12-15 17:42:52 KST)" 문구가 있으니 실제 완료 여부를 확인 필요.

추가 주의사항

  • 초기 미러링은 시간이 오래 걸릴 수 있음.
  • 보안: Gitea 토큰과 SSH 키는 최소 권한/노출 최소화.
  • 기본 브랜치명이 main과 다를 경우 push 대상 브랜치명 확인 필요.