Refactor tools/actions_local_runner.py to allow custom remote/branch names
Currently this script assumes origin/master as the branch for comparison when --changed-only flag is used.
Although this is reasonable for PyTorch build infrastructure, external contributors that fork PyTorch may have different remotes/branch names, such as upstream/master
Assuming users have a `origin` remote for their PyTorch fork and a `upstream` remote pointing to the original PyTorch repo
For external contributions, by running
```
make quick_checks CHANGED_ONLY=--changed-only
make flake8 CHANGED_ONLY=--changed-only
make mypy CHANGED_ONLY=--changed-only
make cmakelint CHANGED_ONLY=--changed-only
make shellcheck CHANGED_ONLY=--changed-only
make clang-tidy CHANGED_ONLY=--changed-only
make quicklint -j ${CPUS} CHANGED_ONLY=--changed-only
```
would result in an incorrect git diff, forcing users to run a full test as opposed to just test changed files
This PR introduces a --ref_branch argument that allows users to specify an arbitrary branch to detect changes in their own PyTorch forks which may have a remote for the upstream PyTorch repo.
Given the proposed changes, this is how users could compare their changes to an arbitrary remote/branch
```
make quick_checks CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
make flake8 CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
make mypy CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
make cmakelint CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
make shellcheck CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
make clang-tidy CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
make quicklint -j ${CPUS} CHANGED_ONLY=--changed-only REF_BRANCH=--ref_branch=upstream/master
```
This change is BC, as it assigns origin/master as default argument to all existing methods that handle branches
Pull Request resolved: https://github.com/pytorch/pytorch/pull/73387
Approved by: malfet