如何获得 PR (Pull Request) 号

How to get the PR (Pull Request) number

我刚开始使用 Pulumi,我检查了很多文档、很多回购协议,但就是找不到如何获得要使用的 PR(拉取请求)编号。

我知道 Pulumi 生成了一个名为 ci.pr.number 的环境 variable/output/config。

我想使用该数字创建一个 Azure 资源组,例如 rg-{appname}-{environment}-{pr number}。例如,rg-myapp-dev-022.

最后一次尝试是:

var config = new Pulumi.Config();
var prNumber = config.Require("ci.pr.number");

提前致谢!

PS:我正在对 运行 Pulumi 使用 GitHub 操作。

如果您想在运行时在 Pulumi 程序中使用 PR 编号,则需要以某种方式从 GitHub Actions 运行时环境中读取它; Pulumi 不会将其写入您的堆栈配置。 GitHub Actions 公开了一个 Context API 这使得这相当简单,假设您有权对工作流本身进行少量添加。这是一个 PR 工作流的示例,其中包含一个步骤,该步骤将 PR 编号提取到环境变量 (PR_NUMBER) 中,然后在几个脚本中使用它,首先是 Bash,然后是 Node.js:

name: My Workflow
on:
  pull_request:
    branches:
      - master
jobs:
  build:
    name: Do Things
    runs-on: ubuntu-18.04
    steps:
      - name: Install Node
        uses: actions/setup-node@v1
        with:
          node-version: '14.x'

      - name: Check out branch
        uses: actions/checkout@v2

      - name: Read the PR number
        env:
          PR_NUMBER: ${{ github.event.number }}
        run: |
          echo "From Bash: ${PR_NUMBER}"
          node -e "console.log('From Node:', process.env.PR_NUMBER);"

我没有办法方便地验证相关的 C#,但看起来你应该可以用 System.Environment.GetEnvironmentVariable("PR_NUMBER").

https://docs.microsoft.com/en-us/dotnet/api/system.environment.getenvironmentvariable