# dev 브랜치 충돌 대응 정책 ## 현재 상태 점검 기준 - `git status -sb` 기준으로 `unmerged paths`가 없으면 파일 단위 충돌은 없는 상태입니다. - `non-fast-forward` push 거절은 로컬/원격 히스토리 분기(diverged) 상태로 간주합니다. - 원격 확인 불가(DNS/네트워크 장애) 시, 로컬 기준 상태를 우선 공유하고 원격 fetch 가능 시점에 재확인합니다. ## 기본 원칙 1. `dev` 반영 전 최신 원격 기준선 확보 2. 충돌 해결은 기능 회귀 방지 우선 3. 해결 후 CI 강제 검사 통과 확인 ## CI 강제 검사 정책 - `.gitea/workflows/code_check.yml`는 아래 이벤트에서 항상 실행됩니다. - `push` to `dev` - `pull_request` targeting `dev` - `workflow_dispatch` (수동 실행) - 수동 실행 입력으로 검사 항목을 끄는 방식은 사용하지 않습니다. - `backend-tests`, `userfront-tests`는 `lint` 결과와 무관하게 실행 시도하여 전체 실패 지점을 한 번에 확인합니다. ## 표준 절차 1. 원격 최신화 ```bash git fetch origin dev git status -sb git rev-list --left-right --count origin/dev...dev ``` 2. 분기 상태별 처리 - 로컬만 앞섬 (`0 N`): `git push origin dev` - 원격만 앞섬 (`N 0`): `git rebase origin/dev` 후 push - 상호 분기 (`N M`): `git rebase origin/dev`로 정렬 후 충돌 해결 3. 충돌 해결 후 검증 ```bash make validate-auth-config make verify-auth-config ``` ## 우선순위 정책 (이번 범위 #274 / #276) 1. OIDC 리다이렉트/쿼리 전달 회귀 방지 로직 유지 2. `Makefile` 기반 인증 설정 생성/검증 경로 유지 3. `compose.ory.yaml`의 callback/allowed_return_urls env 연동 유지 4. `.env` 값 형식 안정성 유지 (same-line 주석 금지) ## 주의 사항 - `dev` 공유 브랜치에서는 `force push`를 사용하지 않습니다. - `.env`에서 `KEY=value #comment` 형태는 금지합니다. (URL 끝 공백으로 Hydra/Kratos 기동 실패 가능) - callback URL 끝 `/`는 `make validate-auth-config`에서 실패 처리됩니다. ## 관련 문서 - `docs/oidc_redirect_mapping_validation_policy.md` - `README.md`