Если ваши пул-запросы хранятся рядом, вы можете просто проверить, что вторым родителем каждого слияния с мастером является пул-запрос.
Github хранит запросы на извлечение как ссылки, так что вы можете перечислить их с помощью git ls-remote u://r/l refs/pull/*/head
, пытаясь найти эквивалент в обслуживании Атлассиана, который напоминает плавание в сале, так что вы можете сами это выяснить.
Для репозиториев, использующих соглашение Github для публикации запросов на получение, что-то вроде
awk 'ARGIND==1 { prhead[$1]=1; next}
!prhead[$3] { print $0, "was not merged from a pull request" }' \
<(git ls-remote u://r/l refs/pull/*/head)
<(git rev-list --first-parent --merges master --parents)
сделает это.
Вы можете (что неудивительно) подтолкнуть все, что настроено для репо, так что до того, как ваши ограничения вступили в силу, кто-то мог подтолкнуть перемотку вперед. Они будут отображаться как коммиты без слияния на мастере:
git rev-list --first-parent --no-merges master
выведет список всех коммитов, которые были сделаны на мастере и не объединены.