You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub PR评论中生成带动态PR编号的预览链接?

解决动态生成Firebase预览链接并评论PR的问题

方法1:利用Firebase部署Action的输出变量(推荐)

FirebaseExtended/action-hosting-deploy这个Action本身会输出部署完成后的预览链接,直接捕获这个输出是最可靠的方式,不用自己拼接链接格式:

修改你的GitHub Actions配置如下:

name: Deploy to Firebase Hosting on PR

on: pull_request

permissions:
  checks: write
  contents: read
  pull-requests: write

jobs:
  build_and_preview:
    if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Flutter
        run: |
          git clone https://github.com/flutter/flutter.git -b stable
          echo "$GITHUB_WORKSPACE/flutter/bin" >> $GITHUB_PATH

      - name: Build the app
        run: npm run build

      # 给部署步骤添加id,方便后续捕获输出
      - name: Deploy to Firebase Hosting
        id: deploy
        uses: FirebaseExtended/action-hosting-deploy@v0.9.0
        with:
          repoToken: ${{ secrets.GITHUB_TOKEN }}
          firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_XXXXXX }}
          projectId: XXXXX-dev

      # 使用Action输出的预览链接评论PR
      - name: Comment on PR with Preview Link
        run: |
          curl -X POST \
            -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            -d "{\"body\": \"Preview link: ${{ steps.deploy.outputs.preview-url }}\"}" \
            "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments"

主要调整点:

  1. 给Firebase部署步骤加上id: deploy标识,这样可以引用它的输出变量
  2. 评论步骤里的链接换成${{ steps.deploy.outputs.preview-url }},同时把单引号改成双引号,确保变量能被正确解析

方法2:手动拼接动态PR编号(仅当你明确链接格式时使用)

如果你确定Firebase预览链接的固定格式,比如前缀和后缀不变,只有PR编号变化,可以直接用GitHub提供的github.event.pull_request.number变量替换硬编码的数字:

修改评论步骤的命令:

curl -X POST \
  -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
  -d "{\"body\": \"Preview link: https://XXXXXX--pr${{ github.event.pull_request.number }}-dev-matt-onboardin-8puvxn3a.web.app\"}" \
  "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments"

注意:这种方法的局限性在于链接中的随机后缀可能会变动,导致链接失效,所以优先用方法1。

内容的提问来源于stack exchange,提问作者M99Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:07:33