Программно найти набор изменений из запроса на вытягивание GitHub - PullRequest
0 голосов
/ 02 августа 2020

На основе запроса на вытягивание GitHub, например в этом примере , можно найти исходную (головную) и целевую (базовую) ветвь.

Но я заинтересован в получении набора изменений программно.

Какой рекомендуемый подход?

PS: Я ищу набор изменений между исходной и целевой ветвями.

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Большая часть обсуждаемой здесь информации может быть найдена в документации git diff .

Сначала получите последние SHA фиксации из запроса на вытягивание и целевую ветвь. Затем вы можете получить имена файлов, измененные между ними, и даже фильтровать на основе типа изменения , которое вы ищете.

#get names (filtered only for modified files)
git diff --name-only --diff-filter=M <source.sha> <target.sha> 

# get changes on a specific file
git diff <source.sha> <target.sha> <filename> 

# get differences on all changes
git diff <source.sha> <target.sha>

Это распечатает разницу между ними, при условии, что вы можете создать и выполнить эту команду с помощью base.sha и head.sha, предоставленных из JSON, возвращаемого запросом на перенос. Возможно, вы захотите поэкспериментировать с git флагами различий, чтобы увидеть, можете ли вы выводить информацию определенным c способом.

0 голосов
/ 04 августа 2020

На основании документации Github pull request API поддерживает пользовательский тип мультимедиа.

Чтобы получить различия для данного запроса на вытягивание, можно добавить суффикс ". diff ", чтобы получить URL-адрес запроса. Для сравнения, вам нужно будет добавить ниже в заголовок.

Accept: application/vnd.github.VERSION.diff
...