GH should not require git repository to exist where operation does not affect one
arcivanov opened this issue · 5 comments
Describe the bug
I've attempted to use gh run cancel <id>
from a directory that was not a repository.
While the cancel operation would've proceeded normally due to having GH_TOKEN in the env, gh started balking at not being in a git repository. When I initialized the directory with git init
as a workaround, gh run cancel
further complained there were no remotes in the repository.
Case 1 (empty dir):
https://github.com/karellen/karellen-llvm/actions/runs/9047154513/job/24858809382#step:2:26
Case 2 (git init with no remotes):
https://github.com/karellen/karellen-llvm/actions/runs/9047223038/job/24858879136#step:2:39
Version is 2.49.0.
Steps to reproduce the behavior
The exact code is linked above in the publicly accessible workflows.
Expected vs actual behavior
Expected: GH CLI has no git repository requirements for operations not affecting git repositories.
Actual: GH CLI performs git repository validation for operations not affecting git repositories.
Logs
Linked above in the action runs.
Doing git init
followed by git init add remote <url>
is a workaround for this problem.
Here are the logs of the functional workaround: https://github.com/karellen/karellen-llvm/actions/runs/9047299097/job/24859062533
Unfortunately the REST API does require the repo ID which is why the CLI needs to know the repo to which the run belongs. However, instead of initialising a git repo I would suggest you use gh cancel run -R [HOST/]OWNER/REPO <ID>
which will be used in place of interrogating your filesystem for a git repository.
let me try that, thanks!
While I'm trying it, gh
can also do what I'm going to do is use GITHUB_REPOSITORY
and GITHUB_SERVER_URL
env variables to determine the host/owner/repo.
https://github.com/karellen/karellen-llvm/actions/runs/9049315253/job/24863292405#step:2:25
This worked, thank you!
I still think that in the presence of GITHUB_SERVER_URL
and GITHUB_REPOSITORY
there should be no need to query git. The order should be -R
, env vars, git.