forked from baron/baron-sso
54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
# 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`
|