Repository navigation
ops 패치를 PR 로 여는 공통 액션 추가 - #143
Merged
Merged
Conversation
- .github/actions/ops-pull 추가
- 사람이 id 와 ops 커밋 sha 를 넣어 실행
- 그 패치 하나를 autofix/<id> PR 로 엶
- 원인: 확인 전의 패치가 PR 목록에 섞이면 헷갈림
- 대안: 매일 예약 실행으로 draft PR 자동 개시
- 기각: extractor 는 공개 repo 라 PR 이 열리는 순간 공개
- 사람이 확인한 ops 커밋을 그대로 받음
- 원인: 확인 뒤 루틴이 같은 id 의 패치를 다시 쓸 수 있음
- 패치를 적용한 뒤 git 이 실제로 바꾼 경로·모드로 판정
- .github 경로·바이너리·심볼릭 링크·서브모듈 변경 거부
- 대안: 패치 글자를 정규식으로 검사
- 기각: 8진 이스케이프 경로·모드 앞 0·NUL 바이트·SIGPIPE 로 우회 재현
- 공개 repo 는 URL·금지어가 든 패치 거부
- 공개 여부는 입력값이 아니라 repo 설정에서 읽음
- 금지어 목록은 시크릿으로 받음. 공개 코드에 단어가 남지 않음
- 봇 PR 의 승인 대기 CI 실행 승인
- push 한 커밋·이 repo·pull_request 이벤트의 실행만 승인
- 원인: 같은 이름의 fork 브랜치 실행까지 승인할 수 있음
- ops 클론은 심볼릭 링크를 일반 파일로 받음
- 원인: 항목 파일이 checkout 의 .git/config 토큰을 가리킬 수 있음
- CI block-test 에 fetch·check·pull 셀프 테스트 추가
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- 사람이 id·sha 를 입력하던 실행을 예약 실행의 항목 찾기로 교체 - 원인: id·sha 입력이 번거로움 - 커밋 하나로 만들어지고 그 뒤 바뀌지 않은 항목만 찾음 - 만든 지 2일이 지난 항목은 보지 않음. 사람이 지운 브랜치가 되살아나지 않음 - renderer 같은 비공개 repo 는 branch 모드 - 검사를 통과한 패치를 autofix/<id> 브랜치로만 올림 - 사람이 PR 작성 화면에서 diff 를 보고 PR 을 만듦 - extractor 같은 공개 repo 는 scan 과 pr 모드 - scan 이 항목 하나를 내고 승인 대기 job 이 받음. 승인 뒤 PR 을 엶 - 원인: 공개 repo 는 브랜치를 올리는 순간 공개 - 한 실행에 한 건. 승인 하나가 그 실행의 job 전부를 풀기 때문 - 속성 파일(.gitattributes·.lfsconfig·.gitmodules)을 바꾸는 패치 거부 - 판정과 ops 체크아웃에서 작업 트리의 속성 파일을 읽지 않음 - 원인: 패치로 바이너리 판정을 끄거나 리뷰 화면의 diff 를 접을 수 있음 - 원인: ops 의 LFS 필터 설정으로 러너가 외부에 요청하고 응답이 공개 로그에 찍힘 - 파일 20개·바뀐 줄 800줄 상한 - 원인: 큰 diff 는 리뷰 화면이 접음 - 미래 날짜 커밋의 항목은 건너뜀 - pull.sh 를 모드를 받는 open.sh 로 교체
- renderer 의 브랜치 링크와 extractor 의 environment 승인을 승인 이슈 하나로 통일
- 원인: 두 repo 의 방식이 달라 헷갈림
- 대안: 둘 다 environment 승인
- 기각: Free 플랜 비공개 repo(renderer)는 required reviewers 불가
- 대안: 둘 다 브랜치와 PR 작성 링크
- 기각: 공개 repo(extractor)는 확인 전 브랜치가 공개
- request 모드 추가
- 아직 요청하지 않은 항목마다 그 repo 에 승인 이슈를 만듦
- 이슈의 링크가 가리키는 커밋이 승인 뒤 PR 이 되는 커밋
- 한 실행에 5건까지. 이슈 조회는 전체 페이지
- approve 모드 추가
- 쓰기 권한이 있는 사람이 체크박스를 체크한 편집만 승인으로 봄
- PR 을 연 뒤 이슈에 결과 댓글을 달고 이슈를 닫음
- 거절은 이슈 닫기. 한 번 이슈가 생긴 항목은 다시 요청하지 않음
- scan·branch·pr 모드와 open.sh 의 브랜치만 올리는 모드 제거
- pr.md 의 HTML 과 항목 폴더의 다른 파일 거부
- 원인: 렌더링된 화면에서 숨은 글이 PR 본문·커밋 메시지로 공개됨
- 승인 이슈는 pr.md 원문 링크를 줌
- 공개 repo 는 이메일 주소가 든 패치도 거부
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
한눈에
사람이 승인한 자동 수정 패치만 PR 로 올리는 공통 액션 추가
Situation
이슈
추가
.gitattributes를 함께 넣으면 바이너리 판정이 풀리고 리뷰 화면의 diff 가 접힘 (재현).gitattributes와 LFS 설정이 체크아웃 때 러너의 외부 요청을 일으킴 (재현)Task
이슈
Action
승인 이슈 체크박스로 통일
ops 패치 <id> 승인이슈를 만듦patchesoutboxgit 이 해석한 결과로 판정
git diff --cached의 경로·모드·바이너리 표시로 판정.gitattributes·.lfsconfig·.gitmodules)을 바꾸는 패치 거부공개 repo 의 노출 검사
/·?·#·:포트가 오는 형태Foo.java)과 구분되지 않음CI 실행 승인
그 밖의 차단
.git/config토큰을 가리킬 수 있음Result
셀프 테스트
위험
후속
연관 이슈