Как получить ветку, в которую направляется PR в CircleCI

CircleC У меня есть переменная env CIRCLE_BRANCH, которая сообщает вам имя ветви самого PR.

Но я хочу наоборот, мне нужно название ветки, с которой PR пытается объединиться.


person Matheus Lima    schedule 13.03.2019    source источник


Ответы (1)


Нет встроенной переменной среды (см. Полный список здесь), чтобы получить имя базовой ветви запроса на вытягивание. Однако вы можете получить номер запроса на вытягивание с помощью переменной среды CIRCLE_PR_NUMBER и использовать GitHub REST API для получения имени базовой ветки.

Вам понадобится:

  1. Создайте токен личного доступа GitHub с использованием repo области видимости
  2. Установить переменную среды проекта называется GITHUB_ACCESS_TOKEN
  3. Получить данные запроса на вытягивание в формате JSON
  4. Разберите JSON, чтобы получить ссылку на базовую ветку - есть несколько способов добиться этого

Вот пример сценария 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']")
person Francesco Puglisi    schedule 18.03.2019