如何在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"
主要调整点:
- 给Firebase部署步骤加上
id: deploy标识,这样可以引用它的输出变量 - 评论步骤里的链接换成
${{ 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
相关产品推荐
相关产品推荐

