Skip to content

ci(platform): merge-order-guard 를 pull_request_target 으로 옮겨 무관한 워크플로 이름 아래 뜨는 재게시 guard 를 없앤다 #1977

Closed

Description

@1hyok

작업 유형

maintenance — CI·빌드·의존성·저장소 운영 유지보수

주 담당 모듈

platform — Android 앱·CI·빌드·릴리스·저장소 운영

개요

PR 체크 목록에 guard 가 두 줄로 뜬다. 하나는 merge-order-guard / guard (pull_request), 다른 하나는 Android Managed Device Test / guard — merge-order-guard 처럼 전혀 무관한 워크플로 이름 아래 붙는다. 같은 PR 에서 같은 질문(closing 이슈의 열린 blocked_by)을 두 번 판정하고, 두 번째 판정은 이름까지 잘못 붙어 읽는 사람을 헷갈리게 한다.

원인

#1955 가 낡은 브랜치의 inline 가드가 옛 정책으로 판정하는 문제를 두 단계로 풀었다. pull_request 이벤트로 PR 사본 YAML 이 한 번 돌고, refresh-merge-order-policy.yml 이 그 종료를 보고 default branch 의 최신 정책을 workflow_dispatch 로 다시 돌린 뒤 결과를 POST /check-runs 로 PR HEAD 에 게시한다. GITHUB_TOKEN 으로 만든 check-run 은 자기 run 에 속하지 않고 그 SHA 에 이미 있는 github-actions 앱의 check suite 중 하나에 임의로 얹히므로, UI 가 그 suite 의 워크플로 이름을 접두로 붙인다. 열린 PR 전량에서 같은 구조가 확인됐다(예: #1972 HEAD 의 guard 두 건, suite id 가 다르고 title 이 merge-order-guard 인 쪽이 /runs/… 게시본).

변경

  • merge-order-guard.yml 의 트리거를 pull_request 에서 pull_request_target 으로 바꾼다. 워크플로 YAML 과 sparse checkout 이 모두 base 의 것이므로 첫 판정부터 최신 정책이고, PR 이 가드를 고쳐 스스로 통과할 길도 사라진다. 이미 stack-integrity-notify.yml·merge-queue-dequeue.yml 이 같은 경계로 돈다. 권한은 read 그대로, PR 코드는 체크아웃하지 않는다.
  • 재게시가 불필요해진 refresh-merge-order-policy.yml 을 걷어낸다.
  • 선행 이슈 닫힘(issues)과 GITHUB_TOKEN 이 만든 baseline 커밋(screenshot-baseline-apply)의 dispatch 경로는 남긴다. 이벤트가 안 나는 SHA 에 판정을 붙일 다른 수단이 없고, 그 SHA 에는 다른 suite 가 없어 이름 혼동도 생기지 않는다.
  • 정책 테스트(merge-order-guard-policy.test.mjs·remote-dev-workflows-policy.test.mjs)를 새 경계로 고친다.

완료 조건

  1. PR push 뒤 guard 가 merge-order-guard / guard (pull_request_target) 한 줄로만 뜬다.
  2. 가드 정책이 바뀐 뒤 열린 채 남은 PR 도 다음 synchronize·edited 에서 최신 정책으로 판정된다.
  3. 선행 이슈가 닫히면 기다리던 PR 의 guard 가 초록으로 갱신된다(기존 동작 유지).

참고

  • 근본 해법 후보였던 GitHub App 토큰 게시(전용 suite 생성)는 저장소에 App 자격이 없어 쓰지 않았다.

Activity

  1. added
    maintenanceCI·빌드·의존성·저장소 운영 유지보수
    area:platformCI·빌드·릴리스·저장소 운영 영역
    on Sep 11, 2026
  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 11, 2026
  3. added a commit that references this issue on Sep 11, 2026
  4. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:platformCI·빌드·릴리스·저장소 운영 영역maintenanceCI·빌드·의존성·저장소 운영 유지보수

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions