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

问题描述 投票:0回答:1

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

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

circleci circleci-2.0 circleci-workflows
1个回答
0
投票

没有内置的环境变量(参见完整列表here)来获取拉取请求的基本分支的名称。但是,您可以使用CIRCLE_PR_NUMBER环境变量获取pull请求编号,并使用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以获得基本分支ref - there's a few ways to achieve that

这是一个示例bash脚本,它以JSON格式检索给定的pull请求数据并使用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']")
© www.soinside.com 2019 - 2024. All rights reserved.