如何在CircleCI中获得PR前往的分支

时间:2019-03-13 20:28:32

标签: circleci circleci-2.0 circleci-workflows

CircleCI有一个CIRCLE_BRANCH的env变量,它告诉您PR本身的分支的名称。

但是我想反过来,我需要PR的分支名称试图与之合并。

1 个答案:

答案 0 :(得分:0)

没有内置环境变量(请参阅完整列表here)来获取请求请求的基本分支的名称。但是,您可以使用CIRCLE_PR_NUMBER环境变量获取拉取请求编号,并使用Gi​​tHub REST API检索基本分支名称。

您将需要:

  1. Create a GitHub personal access token使用repo范围
  2. Set a project environment variable被称为GITHUB_ACCESS_TOKEN
  3. Retrieve the pull request data in JSON format
  4. 解析JSON以获取基本分支引用-there's a few ways to achieve that

这是一个示例bash脚本,该脚本以JSON格式检索给定的拉取请求的数据,并使用Python 2进行解析:

#!/bin/bash

REPO_OWNER="replace_me"
GITHUB_API_URL="https://api.github.com/repos/$REPO_OWNER/$CIRCLE_PROJECT_REPONAME/pulls/$CIRCLE_PR_NUMBER?access_token=$GITHUB_ACCESS_TOKEN"
export PYTHONIOENCODING=utf8
export PULL_REQUEST_BASE_REF=$(curl -s "$GITHUB_API_URL" | python -c "import sys, json; print json.load(sys.stdin)['base']['ref']")