name: Update People Data on: issues: types: - opened - edited - labeled permissions: contents: write issues: write pull-requests: write jobs: update-people: if: contains(github.event.issue.labels.*.name, 'people-update') || startsWith(github.event.issue.title, 'people:') runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 - name: Update src/data/people.ts env: ISSUE_BODY: ${{ github.event.issue.body }} ISSUE_NUMBER: ${{ github.event.issue.number }} ISSUE_TITLE: ${{ github.event.issue.title }} run: node scripts/update-people-from-issue.mjs - name: Create pull request id: create-pr uses: peter-evans/create-pull-request@v6 with: commit-message: "chore: update people data from issue #${{ github.event.issue.number }}" title: "更新「如今的我们」:#${{ github.event.issue.number }}" body: | 由 #${{ github.event.issue.number }} 自动生成。 这个 PR 会根据 issue 表单更新 `src/data/people.ts`: - 如果 `slug` 已存在,则修改对应同学资料 - 如果 `slug` 不存在,则新增同学资料 branch: people-update/issue-${{ github.event.issue.number }} delete-branch: true labels: people-update - name: Comment on issue uses: actions/github-script@v7 with: script: | const prUrl = "${{ steps.create-pr.outputs.pull-request-url }}"; const body = prUrl ? `已根据这个 issue 创建更新 PR:${prUrl}\n\n如果内容需要再调整,直接编辑 issue 表单即可更新同一个 PR。` : "这个 issue 没有产生新的文件改动,所以没有创建 PR。"; await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, body });