Я нашел эту суть, показывающую, как проверять локальный запрос от GitHub.
Я использую bitbucket и ищу похожую функцию.
Вы можете мне помочь? Спасибо
Я нашел эту суть, показывающую, как проверять локальный запрос от GitHub.
Я использую bitbucket и ищу похожую функцию.
Вы можете мне помочь? Спасибо
Можно получить код из запросов на загрузку сервера Bitbucket, используя:
git fetch origin refs/pull-requests/$PR_NO/from:$LOCAL_BRANCH
Я нашел этот ответ и подумал, что на самом деле можно получить ссылки для запроса на получение на bitbucket.
Но это не так.
Ответ на вопрос OP заключается в том, что это НЕ возможно: возникла проблема с запросом открытой функции, которая оставалась без ответа и оставалась без присмотра в течение четырех пяти ШЕСТЫХ СЕМЬ ЛЕТ.
Обходной путь?
Вы можете получить PR в виде загружаемого файла .patch
который вы можете скачать и применить к новой ветке, которую вы создаете вручную. Но вы не сможете легко применить обновления.
Я нашел другой выход, который я реализовал в git-repo, чтобы каждый мог его использовать. То, что я делаю, - это использую API для получения удаленного PR и ветки, и автоматически создаю новый апстрим и ветвь локально. Таким образом, вы можете получать обновления от PR-постера. Недостатком является беспорядок в git пультов.
редактировать: я надеюсь, что это будет сделано, и запрос функции закрыт. Но в течение некоторого времени было решение для этого на выделенных серверах bitbucket, а не на сервисе bitbucket.org. 5 июня один из сотрудников Bitbucket прокомментировал этот билет:
Привет всем - еще раз спасибо за ваш отзыв и терпение по этому вопросу. Эта функция по-прежнему занимает приоритетное место в списке невыполненных работ. Когда у нас будет больше информации об ожидаемой доставке этой функции, мы поделимся ею здесь.
Я последовал за эту статью запрос Толкай Выборка.
Это сработало, но я обнаружил, что мне просто нужно добавить одну строку к текущему репо, а не создавать народное репо и вышестоящее репо. Запустите эту строку
git config --add remote.origin.fetch '+refs/pull-requests/*/from:refs/remotes/origin/pr/*'
Вы также можете добавить его вручную в файл .git/config в вашем проекте.
При следующем запуске git pull
вы должны увидеть список:
Затем вы можете запустить git checkout origin/pr/666
чтобы получить изменения запроса на извлечение.
Это работает для bitbucket. У другого сервера могут быть другие refs:
(refspecs) или вообще нет ссылок refs:
вообще.
Прежде всего, вам нужно добавить запрос на извлечение refs:
из удаленного репозитория. Чтобы сделать это с хранилищем (например, с псевдонимом "upstream"):
git config --add remote.upstream.fetch '+refs/pull-requests/*/from:refs/remotes/upstream/pull-requests/*'
То есть вы добавляете последнюю строку в файл git .config
:
[remote "origin"]
url = ssh://[email protected]/~user/repository.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/pull-requests/*
Затем, если вы выполните удаленную выборку, вы должны увидеть получение (также) всех запросов извлечения:
git fetch upstream
From ssh://git.blablabla.net/somepath/repository
* [new ref] refs/pull-requests/1188/from -> upstream/pull-requests/1188
* [new ref] refs/pull-requests/1741/from -> upstream/pull-requests/1741
* [new ref] refs/pull-requests/2394/from -> upstream/pull-requests/2394
Наконец, вы можете оформить выбранный вами пулл-запрос:
git checkout pull-requests/2723
Успешно протестировано на выделенном сервере Bitbucket 27.02.19.
Кажется, что самый простой способ сделать это - получить патч для запроса на удаление. Исходя из ответа на этот вопрос, комментарий Александра по-прежнему является единственным способом сделать это. Он использует этот вызов API BitBucket.
Я использовал следующий скрипт bash:
USER=username
PASSWORD=password
REPO=repo-name
PULL_NO=42
OUTPUT_FILE=output.patch
# Add -i to include the HTTP-header in the output for debugging
curl -u $USER:$PASSWORD https://bitbucket.org/api/2.0/repositories/$USER/$REPO/pullrequests/$PULL_NO/patch -L -o $OUTPUT_FILE
Сохраните это в файл с именем pull-patch.sh
и заполните переменные среды данными вашей учетной записи. Скрипт требует, чтобы у вас был установлен curl
(например, sudo apt install curl
). Затем запустите:
chmod +x pull-patch.sh
./pull-patch.sh
И файл с именем output.patch
должен быть создан из запроса извлечения.
Когда невозможно получить извлечение запроса, хитрость заключается в том, что вы можете оформить последний коммит этого запроса извлечения
git checkout <hash code of last commit>
В битбакете вы можете
git config remote.origin.fetch "+refs/heads/:refs/remotes/origin/"
а затем
git fetch
после этого вы можете оформить заказ в филиале, который вы хотите
git checkout BRANCH_NAME
П.С.: Надеюсь, битбакет уладит это https://jira.atlassian.com/browse/BCLOUD-5814