jm_p_op

git action - pull_request 와 pull_request_target 본문

코딩/github

git action - pull_request 와 pull_request_target

jm_p_op 2024. 1. 19. 18:28

pull_request를 PR, pull_request_target을 PRT라고 부르자.

PR과 PRT는 모두 pull request을 할때 작동한다.

하지만 PR에서 secrets.key와 함께 작동되는 것에서 차이가 난다.

한 레포지토리 안에서의 PR시에는 secrets.key가 잘 받아서 작동한다.

하지만 fork된 다른 레포지토리 사이에서의 PR은 secrets.key가 빈칸으로 작동하게 된다.(자신의 리포지토리로 돌리며 안되는건가...?)

따라서 만들어진것이 PRT이다(2021년쯤인듯?)

사용 방법은 아래 두줄을 추가하는것이다.

대신 문제는 PR을 보낼때 상대의 리포지토리의 secret을 가지고 깃엑션이 실행됨으로, 보안상 매우 위험하다.

또한, 

위와 같이 제한한다 해도, PRT는 권한 요청 없이 바로 작동한다.

즉 보안이 바로 뚫린다는것이다.


그럼 어떻게 PRT의 작동을 막을수 있을까?

git.labels을 사용하면된다.

을 추가하면 git.lables에 "safe to test" 가 있으면 if문을 통과해 실행된다.

즉, 평소에는 엑션이 실행 안되다가, 라벨을 붙여주면 그때 작동이 된다.

PR보내는 사람이 라벨을 붙일수만 없다면... 악의적인 코드를 찾아서 걸러주기만 하면 된다.


참조자료:https://blog.outsider.ne.kr/1541

 

'코딩 > github' 카테고리의 다른 글

git-action : PRchange, re-run all jobs  (0) 2024.03.26
branch rule - git action/status checks before merge  (0) 2024.01.25
git action 보안과 문제점  (0) 2024.01.19
git-action 권한설정  (0) 2024.01.19
git-action  (1) 2024.01.19