001 / 만든 이유
oah는 각자에게 맞고 AI가 발전하는 만큼 함께 바뀌는 개발 환경을 만들도록 돕습니다. 가져다 고쳐 쓸 수 있는 참고 구현이자 가이드라인입니다. 코드를 만드는 것만으로 작업이 끝나지는 않습니다. 어디까지 바꿀지 정하고, 결과를 검증하고, 다음 세션이 읽을 기록도 남겨야 합니다. oah는 이 과정들을 연결해 하나의 요청이 작업과 확인, 기록까지 이어지게 합니다.
검증·리뷰v0.3.0에서 사용 가능
oah ci init은 .github/workflows/oah-ci.yml을 먼저 전부 보여 주고 물은 뒤에 쓴다. 고른 운영체제에서 테스트를 돌리고 push와 pull request마다 버전을 고정한 gitleaks로 비밀을 검사하며, action은 모두 전체 커밋 SHA로 고정하고 권한은 읽기 전용이며 비밀이 없다. 검사를 필수로 만드는 일은 사용자가 GitHub에서 직접 설정한다.
CI가 없거나 한 OS에서만 돌면 다른 곳에서 테스트를 깨뜨리거나 키를 흘리는 변경이 모르는 새 기본 브랜치에 들어간다.
oah ci init을 실행하면 테스트 명령(pytest, unittest, npm test, go test, cargo test)을 찾아 그대로 쓸지 묻는다.Write .github/workflows/oah-ci.yml? [y/N]라고 묻는다. y라고 답해야만 쓴다.test(macos-latest, windows-latest, ubuntu-latest)와, 받은 gitleaks를 SHA-256 지문으로 확인한 뒤 --redact --no-banner로 git 이력 전체를 검사하는 secret scan이다.secret scan과 OS마다 test (…) 하나를 요구하는 브랜치 규칙 세트를 더한다.선택을 `.oah/config.toml`에 남긴다. 명령줄 옵션이 우선한다(CI 스타터 문서).
[ci]
os = ["macos", "windows"]
test_command = "make test"npm ci에는 커밋된 package-lock.json이 필요하다.--yes만으로는 거절하고 --force --yes일 때만 묻지 않고 바꾼다.