Merge pull request #276 from H-Chris233/fix/issue-222-pr-agent-hardening
加固 PR-Agent workflow 的 secrets 暴露面
This commit is contained in:
1 file changed
+19
-4
@@ -1,8 +1,9 @@
|
||||
name: PR-Agent
|
||||
|
||||
on:
|
||||
# 使用 pull_request_target,让外部 PR 也能读取仓库 Secrets,并获得声明的写权限。
|
||||
# 本 workflow 不 checkout / 执行 PR 分支代码,只让 PR-Agent 通过 GitHub API 读取 diff。
|
||||
# 使用 pull_request_target 让同仓库与外部 fork PR 都能自动运行 PR-Agent,
|
||||
# 并在 synchronize 事件跟进每次新 commit。
|
||||
# 本 workflow 不 checkout / 执行 PR 分支代码,只让 digest-pinned PR-Agent 镜像通过 GitHub API 读取 diff。
|
||||
pull_request_target:
|
||||
types: [opened, reopened, ready_for_review, synchronize]
|
||||
issue_comment:
|
||||
@@ -10,17 +11,31 @@ on:
|
||||
|
||||
jobs:
|
||||
pr_agent_job:
|
||||
if: ${{ github.event.sender.type != 'Bot' && (github.event_name != 'issue_comment' || github.event.issue.pull_request) }}
|
||||
# PR 与每次新 commit 自动运行;评论触发仍限制为可信成员,避免任意评论滥用 Secrets。
|
||||
if: >-
|
||||
${{
|
||||
github.event.sender.type != 'Bot' &&
|
||||
(
|
||||
github.event_name == 'pull_request_target' ||
|
||||
(
|
||||
github.event_name == 'issue_comment' &&
|
||||
github.event.issue.pull_request &&
|
||||
contains(fromJson('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)
|
||||
)
|
||||
)
|
||||
}}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
# PR-Agent 需要在 PR/issue 上评论,并通过 GitHub API 读取 diff/文件内容。
|
||||
issues: write
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- name: Run PR Agent
|
||||
uses: the-pr-agent/pr-agent@main
|
||||
# Pin the actual PR-Agent container image because this job can access repo Secrets.
|
||||
uses: docker://pragent/pr-agent@sha256:a0b36966ca3a197ca739fa1e65c16703076fc1c744cd423ca203b8c21707d71c
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
||||
Reference in new issue
Block a user