-
Notifications
You must be signed in to change notification settings - Fork 8k
Closed
Labels
bugSomething isn't workingSomething isn't workingneeds-investigationCLI team needs to investigateCLI team needs to investigatepriority-3Affects a small number of users or is largely cosmeticAffects a small number of users or is largely cosmetic
Description
Describe the bug
gh repo fork --clone=true ... should not try to clone until it knows that the repo is ready to be cloned (I don't know what the definition of this is, I just have observational experience that it's wrong)
gh version 2.4.0 (2021-12-21)
https://github.com/cli/cli/releases/tag/v2.4.0
Steps to reproduce the behavior
I ran a script gh-empty-clone-code with a single argument rancher/backup-restore-operator.
gh-empty-clone-code
#!/bin/sh
repo="$1"
gh repo fork --clone=false "$repo"
repo="$(echo "$repo" |perl -pne 's{^.*/}{jsoref/}')"
empty-remote "git@github.com:$repo"
gh repo fork --clone=true "$repo" --org check-spelling -- --depth 2
dir=$(basename $repo)
cd $dir && (
rsync -a ~/code/check-spelling/spell-check-this/.github .; git add .github; git checkout -b spell-check-with-spelling; git commit -m 'Add check-spelling'; perl -pi -e 'next unless s{fetch =.*}{fetch = +refs/heads/*:refs/remotes/origin/*\n}' .git/config; git push origin HEAD; open -a Visual\ Studio\ Code .
)empty-remote
#!/bin/sh
if [ -z "$1" ]; then
echo "$0 url-for-remote-git-repository-with-branches-or-tags-to-remove" >&2
exit 1
fi
dispatch() {
xargs -P10 -n25 git push "$1"
}
cd ~/code/empty
git ls-remote "$1" |perl -ne 'next if /HEAD|\{}/;s/^\S+\s+/:/;print'|dispatch "$1"The first time it ran, it created the first repository, emptied it, created the second repository, and then failed to clone the second repository.
Expected vs actual behavior
A clear and concise description of what you expected to happen and what actually happened.
Generally
- cli should create a fork (without cloning)
- my script should empty it
- cli should create a fork and clone it
- my script should fill the repo, create a commit, push it, and open a vscode window
Actually
- cli created a fork (without cloning)
- my script emptied it
- cli claimed it created a fork, and failed when it tried to clone it
- my script couldn't find the repository and thus didn't do the rest of its work
Round 2
Running the script again,
- cli didn't do much of anything (since fork already exists)
- my script didn't do much (since the only branch left can't be deleted, this is intentional, the goal of the script is to leave just that branch)
- cli didn't create a fork (it already exists), but was able to clone it
- my script created its commit, pushed it, and opened vs code
Note: this sequence shouldn't have been necessary
Logs
% gh-empty-clone-code rancher/backup-restore-operator
✓ Created fork jsoref/backup-restore-operator
To github.com:jsoref/backup-restore-operator
- [deleted] v2.0.0-rc2
- [deleted] v2.0.0-rc3
- [deleted] v2.0.0-rc4
- [deleted] v2.0.0-rc5
- [deleted] v2.0.0-rc6
- [deleted] v2.0.0-rc7
- [deleted] v2.0.0-rc8
- [deleted] v2.0.0-rc9
- [deleted] v2.0.1
- [deleted] v2.0.1-rc1
- [deleted] v2.0.1-rc2
- [deleted] v2.1.0
- [deleted] v2.1.0-rc1
To github.com:jsoref/backup-restore-operator
- [deleted] label-all-new-issues
- [deleted] operator
- [deleted] oxr463backport-v1.0-fossa-drone
- [deleted] release/v1.0
- [deleted] restorebugfix
- [deleted] snyk-fix-388414a2e667775d081775e0b0d22674
- [deleted] snyk-fix-3da337c96647a6361bbccaed95563fed
- [deleted] snyk-fix-7f944f25a8306e97ad2714ed2267857a
- [deleted] snyk-fix-db4212e0c39f4589c92007c8a3fb6ad5
- [deleted] snyk-fix-e7793ac6646f9a458df382a7a0ab59e2
- [deleted] v0.0.1
- [deleted] v0.0.1-rc1
- [deleted] v0.0.1-rc10
- [deleted] v0.0.1-rc11
- [deleted] v0.0.1-rc12
- [deleted] v0.0.1-rc13
- [deleted] v0.0.1-rc14
- [deleted] v0.0.1-rc2
- [deleted] v0.0.1-rc3
- [deleted] v0.0.1-rc4
- [deleted] v0.0.1-rc5
- [deleted] v0.0.1-rc6
- [deleted] v0.0.1-rc7
- [deleted] v0.0.1-rc8
! [remote rejected] master (refusing to delete the current branch: refs/heads/master)
error: failed to push some refs to 'github.com:jsoref/backup-restore-operator'
To github.com:jsoref/backup-restore-operator
- [deleted] v0.0.1-rc9
- [deleted] v0.1.0-rc1
- [deleted] v1.0.0
- [deleted] v1.0.1
- [deleted] v1.0.2
- [deleted] v1.0.3
- [deleted] v1.0.3-rc1
- [deleted] v1.0.4-rc1
- [deleted] v1.0.4-rc2
- [deleted] v1.0.4-rc3
- [deleted] v1.0.4-rc4
- [deleted] v1.1.1
- [deleted] v1.2.0
- [deleted] v1.2.0-rc1
- [deleted] v1.2.0-rc2
- [deleted] v1.2.0-rc3
- [deleted] v1.2.0-rc4
- [deleted] v1.2.0-rc5
- [deleted] v1.2.0-rc6
- [deleted] v1.2.1
- [deleted] v1.2.1-rc1
- [deleted] v2.0.0
- [deleted] v2.0.0-rc1
- [deleted] v2.0.0-rc10
- [deleted] v2.0.0-rc11
✓ Created fork check-spelling/backup-restore-operator
Cloning into 'backup-restore-operator'...
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
failed to clone fork: exit status 128
/Users/jsoref/bin/gh-empty-clone-code: line 8: cd: backup-restore-operator: No such file or directory% sh -x `which gh-empty-clone-code` rancher/backup-restore-operator
+ repo=rancher/backup-restore-operator
+ gh repo fork --clone=false rancher/backup-restore-operator
! jsoref/backup-restore-operator already exists
++ echo rancher/backup-restore-operator
++ perl -pne 's{^.*/}{jsoref/}'
+ repo=jsoref/backup-restore-operator
+ empty-remote git@github.com:jsoref/backup-restore-operator
To github.com:jsoref/backup-restore-operator
! [remote rejected] master (refusing to delete the current branch: refs/heads/master)
error: failed to push some refs to 'github.com:jsoref/backup-restore-operator'
+ gh repo fork --clone=true jsoref/backup-restore-operator --org check-spelling -- --depth 2
! check-spelling/backup-restore-operator already exists
Cloning into 'backup-restore-operator'...
remote: Enumerating objects: 130, done.
remote: Counting objects: 100% (130/130), done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 130 (delta 18), reused 57 (delta 4), pack-reused 0
Receiving objects: 100% (130/130), 104.98 KiB | 1.59 MiB/s, done.
Resolving deltas: 100% (18/18), done.
Updating upstream
From github.com:jsoref/backup-restore-operator
* [new branch] master -> upstream/master
✓ Cloned fork
++ basename jsoref/backup-restore-operator
+ dir=backup-restore-operator
+ cd backup-restore-operator
+ rsync -a /Users/jsoref/code/check-spelling/spell-check-this/.github .
+ git add .github
+ git checkout -b spell-check-with-spelling
Switched to a new branch 'spell-check-with-spelling'
+ git commit -m 'Add check-spelling'
[spell-check-with-spelling 2f0897e] Add check-spelling
9 files changed, 197 insertions(+)
create mode 100644 .github/actions/spelling/README.md
create mode 100644 .github/actions/spelling/advice.md
create mode 100644 .github/actions/spelling/allow.txt
create mode 100644 .github/actions/spelling/excludes.txt
create mode 100644 .github/actions/spelling/expect.txt
create mode 100644 .github/actions/spelling/line_forbidden.patterns
create mode 100644 .github/actions/spelling/patterns.txt
create mode 100644 .github/actions/spelling/reject.txt
create mode 100644 .github/workflows/spelling.yml
+ perl -pi -e 'next unless s{fetch =.*}{fetch = +refs/heads/*:refs/remotes/origin/*\n}' .git/config
+ git push origin HEAD
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 8 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (14/14), 3.36 KiB | 1.68 MiB/s, done.
Total 14 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'spell-check-with-spelling' on GitHub by visiting:
remote: https://github.com/check-spelling/backup-restore-operator/pull/new/spell-check-with-spelling
remote:
To github.com:check-spelling/backup-restore-operator.git
* [new branch] HEAD -> spell-check-with-spelling
+ open -a 'Visual Studio Code' .Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingneeds-investigationCLI team needs to investigateCLI team needs to investigatepriority-3Affects a small number of users or is largely cosmeticAffects a small number of users or is largely cosmetic