diff --git a/journey/troubleshooting/260307_infra_scripts_원격_미존재_푸시실패_및_조직레포_생성_조치.md b/journey/troubleshooting/260307_infra_scripts_원격_미존재_푸시실패_및_조직레포_생성_조치.md new file mode 100644 index 0000000..6733fa2 --- /dev/null +++ b/journey/troubleshooting/260307_infra_scripts_원격_미존재_푸시실패_및_조직레포_생성_조치.md @@ -0,0 +1,63 @@ +--- +tags: [infra, git, gitea, repository, push, troubleshooting] +--- + +# infra/scripts 원격 미존재 푸시실패 및 조직레포 생성 조치 + +## 상위 원칙 +- [Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) +- [Global Principles](https://github.com/happybell80/0_VALUE/blob/main/00_Principles/global-principles.md) + +## 관련 문서 +- [260307_수정_레포_일괄_푸시_및_infra_scripts_신규_레포_연결.md](../worklog/260307_수정_레포_일괄_푸시_및_infra_scripts_신규_레포_연결.md) +- [journey/README.md](../README.md) + +## 배경 +- 요청사항: 수정된 프로젝트 레포를 모두 원격으로 푸시한다. +- 예외 대상: `/home/admin/infra/scripts`는 Git 초기 상태였고, 원격 레포가 사전 생성되지 않은 상태였다. + +## 사실(Facts) +- 시각: `2026-03-07 17:02~17:06 KST` +- 로컬 상태 + - `git -C /home/admin/infra/scripts status -sb` 결과: `No commits yet on main` + - 추적 파일: `.gitignore`, `README.md`, `bin/companyx_external_nas_sync_probe.sh` +- 1차 푸시 시도 + - 원격: `https://git.ro-being.com/ivada-infra/scripts.git` + - 오류: `Push to create is not enabled for organizations.` + - 오류코드: `HTTP 403` +- API 기반 조직 레포 생성 1차 시도 + - 사용자 토큰 스코프 오류: `required=[write:organization], token scope=write:repository` + - 오류코드: `HTTP 403` +- 서버 로컬 관리자 경로 조치 + - `sudo -u git gitea admin user generate-access-token --username admin --scopes all` + - `POST /api/v1/orgs/ivada-infra/repos`로 `scripts` 생성 + - 생성 응답: `HTTP 201`, `full_name=ivada-infra/scripts` +- 최종 푸시 + - `git -C /home/admin/infra/scripts push -u origin main` + - 결과: `main -> main`, tracking 설정 완료 + +## 해석(Interpretation) +- 실패 원인은 Git 자체 문제가 아니라 조직 정책(`push-to-create` 비활성)과 사용자 토큰 권한 범위 부족이었다. +- 해결의 핵심은 로컬 관리자 권한을 사용해 조직 레포를 먼저 생성한 뒤 동일 원격으로 재푸시하는 절차였다. + +## 조치 내역 +1. `/home/admin/infra/scripts` 초기 커밋 생성 +2. `origin`을 `https://git.ro-being.com/ivada-infra/scripts.git`로 연결 +3. 조직 정책 오류(`403`) 확인 +4. 사용자 토큰 스코프 부족(`403`) 확인 +5. 서버 로컬 `gitea admin`으로 관리자 토큰 생성 +6. Gitea API로 `ivada-infra/scripts` 레포 생성(`201`) +7. 동일 로컬 커밋을 `origin/main`으로 푸시 + +## 검증 +- `git -C /home/admin/infra/scripts status -sb` 결과: `## main...origin/main` +- `git -C /home/admin/infra/scripts log --oneline -1` 결과: 초기 커밋이 원격 추적 브랜치와 동기화됨 + +## 재발 방지 +- 조직 저장소 신규 생성이 필요한 작업은 푸시 전에 아래 항목을 먼저 확인한다. + - 조직 `push-to-create` 정책 상태 + - 작업 토큰의 `write:organization` 스코프 보유 여부 +- 신규 프로젝트 착수 체크리스트에 `원격 레포 선생성 여부` 항목을 추가해 선행 확인한다. + +## 미확정 항목(Unresolved) +- `admin` 계정에 생성된 임시 액세스 토큰 정리 자동화는 이번 범위에 포함하지 않았다. diff --git a/journey/worklog/260307_수정_레포_일괄_푸시_및_infra_scripts_신규_레포_연결.md b/journey/worklog/260307_수정_레포_일괄_푸시_및_infra_scripts_신규_레포_연결.md new file mode 100644 index 0000000..6a56494 --- /dev/null +++ b/journey/worklog/260307_수정_레포_일괄_푸시_및_infra_scripts_신규_레포_연결.md @@ -0,0 +1,38 @@ +--- +tags: [infra, git, gitea, push, worklog] +--- + +# 수정 레포 일괄 푸시 및 infra/scripts 신규 레포 연결 + +## 상위 원칙 +- [Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) +- [Global Principles](https://github.com/happybell80/0_VALUE/blob/main/00_Principles/global-principles.md) + +## 관련 문서 +- [260307_infra_scripts_원격_미존재_푸시실패_및_조직레포_생성_조치.md](../troubleshooting/260307_infra_scripts_원격_미존재_푸시실패_및_조직레포_생성_조치.md) +- [journey/README.md](../README.md) + +## 실행 요약 +- 시각: `2026-03-07 17:00~17:07 KST` +- 수정된 저장소를 순차 점검하고 각 저장소 루트에서 `pull -> commit -> push`를 수행했다. +- `infra/scripts`는 조직 원격 미존재 이슈를 분리 조치한 뒤 신규 레포 연결까지 완료했다. + +## 결과 +- 동기화 완료 저장소 + - `0_VALUE` + - `goosefarminvesting/DOCS` + - `projectStarsAndI/DOCS` + - `robeing/DOCS` + - `robeing/admin-dashboard` + - `robeing/rb8001` + - `robeing/skill-news` + - `infra/DOCS` + - `infra/scripts` +- `infra/scripts` 최종 상태 + - 원격: `ivada-infra/scripts` + - 브랜치: `main` + - 추적 상태: `main...origin/main` + +## 확인 명령 +- `git -C /home/admin/infra/scripts status -sb` +- `git -C /home/admin/infra/DOCS status -sb`