Files
upstream-zulip/tools/reset-to-pull-request
upstream-mirror 64898b2c79
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
2026-09-15 15:05:30 +05:00

58 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
usage() {
cat >&2 <<EOF
usage: $0 PULL_REQUEST_ID [REMOTE]
Fetch the given GitHub pull request branch, and reset our
current branch to it.
Useful for anyone reading or reviewing a PR, in order to
run the code and to study it with a full local set of tools.
REMOTE defaults to the value of the Git config variable
\`zulip.zulipRemote\` if set, else to \`upstream\`.
If the Git config variable \`zulip.prPseudoRemote\` is set,
e.g. with:
git config zulip.prPseudoRemote pr
then the PR branch is also recorded as a local ref, like a
remote-tracking branch as if the PRs make up a "remote". In
the example, PR #1234 is recorded as \`pr/1234\`, or in full
\`refs/remotes/pr/1234\`. This is useful for keeping track of
the PR branch while comparing with other code, and for using
the reflog to compare with previous versions of the same PR.
See also \`push-to-pull-request\`.
EOF
exit 1
}
remote_default="$(git config zulip.zulipRemote || echo upstream)"
pseudo_remote="$(git config zulip.prPseudoRemote || echo)"
request_id="$1"
remote=${2:-"$remote_default"}
if [ -z "$request_id" ]; then
usage
fi
this_dir=${BASH_SOURCE[0]%/*}
# shellcheck source=lib/git-tools.bash
. "${this_dir}"/lib/git-tools.bash
require_clean_work_tree 'reset to PR'
if [ -z "$pseudo_remote" ]; then
set -x
git fetch "$remote" "pull/$request_id/head"
git reset --hard FETCH_HEAD
else
target_ref=refs/remotes/"$pseudo_remote"/"$request_id"
set -x
git fetch "$remote" +"pull/$request_id/head:$target_ref"
git reset --hard "$target_ref"
fi