Skip to content

private repo 会出现 author_association 判定失败 #141

@Terry-Mao

Description

@Terry-Mao

建议改成这个规则:

允许:

  • author_association 是 OWNER / MEMBER / COLLABORATOR
  • 或者 repo 是 private 且 author_association 是 CONTRIBUTOR,并且实时 API 查到该用户对 repo 有 write / maintain / admin 权限

拒绝:

  • private repo 的 CONTRIBUTOR 但只有 read / triage 权限
  • public repo 的普通 CONTRIBUTOR

这样能解决你这次误判,也不会把 /fix 开给所有历史贡献者。

实现点:

  • 在 prepare_pr_comment_context.py 里,当 association 不在允许列表时,调用:
    repos/{owner}/{repo}/collaborators/{user}/permission
  • 同时查 repo private 状态,或者从 PR payload 的 base.repo.private 读。
  • permission in {admin, maintain, write} 就授权。
  • skip reason 改成能说明是 association 失败还是 permission 失败。

这比直接把 CONTRIBUTOR 加进 AUTHORIZED_ASSOCIATIONS 安全得多。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workflowGitHub workflows and Python automation scriptsbugSomething isn't workingrepro:highHigh-confidence or easily reproducible issuetriagedIssue has been reviewed and categorized

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions