github / gh-classroom

GitHub Classroom CLI Extension is a powerful and easy-to-use command line tool that enhances the functionality of the GitHub CLI, specifically tailored for educators using GitHub Classroom.
MIT License
83 stars 14 forks source link

Can't pull student repos #77

Open rlalik opened 3 months ago

rlalik commented 3 months ago

Describe the bug

I cannot pull updates in students assignment using gh classroom pull student-repos -a ... command. It says:

failed to run gh: can't sync because there are diverging changes; use `--force` to overwrite the destination branch
. error: exit status 1

however, there are no diverging changes. It also does not work when there are no updates, as shown here:

$ gh classroom clone student-repos
? Select a classroom: XXXX
? Select an assignment: YYYY
Creating directory:  /ZZZZ-submissions
Cloning into: /ZZZZ-submissions/ZZZ-AAA
Cloning into: /ZZZZ-submissions/ZZZ-BBB
Cloned 2 repos.

$ gh classroom pull student-repos
? Select a classroom: XXXX
? Select an assignment: YYYY
Pulling repo: /ZZZZ-submissions/ZZZ-AAA
failed to run gh: can't sync because there are diverging changes; use `--force` to overwrite the destination branch
. error: exit status 1
Pulling repo: /ZZZZ-submissions/ZZZ-BBBB
failed to run gh: can't sync because there are diverging changes; use `--force` to overwrite the destination branch
. error: exit status 1
$ gh --version
gh version 2.52.0 (2024-07-15)
https://github.com/cli/cli/releases/tag/v2.52.0
$ gh extension list
NAME          REPO                 VERSION
gh act        nektos/gh-act        v0.2.55
gh classroom  github/gh-classroom  v0.1.14

Steps to reproduce the behavior

  1. Clone students repositories using gh classroom clone ....
  2. (Optional) Modify the reference repository and request Pull Request, accept it.
  3. Try to pull repository again

Expected vs actual behaviour

I would expect all repositories to be updated. Now I need to update them manually, which works ok (no diverging changes).

Logs

Paste the activity from your command line. Redact if needed.

$GH_DEBUG=true gh classroom pull student-repos -a AAAAAA
* Request at 2024-07-23 13:35:52.177507471 +0200 CEST m=+0.028484741
* Request to https://api.github.com/assignments/AAAAAA
* Request took 414.42728ms
Pulling repo: XXXXXX
failed to run gh: [git remote -v]
[git config --get-regexp ^remote\..*\.gh-resolved$]
[git remote -v]
[git config --get-regexp ^remote\..*\.gh-resolved$]
* Request at 2024-07-23 13:35:52.616066256 +0200 CEST m=+0.020500993
* Request to https://api.github.com/graphql
* Request took 295.087327ms
[git -c credential.helper= -c credential.helper=!"/usr/bin/gh" auth git-credential fetch -q upstream refs/heads/master]
[git rev-parse --verify refs/heads/master]
[git merge-base --is-ancestor master FETCH_HEAD]
can't sync because there are diverging changes; use `--force` to overwrite the destination branch
. error: exit status 1

The command was executed in the same directory where gh classroom clone student-repos --all was executed before.

changspencer commented 1 month ago

Thanks for opening this issue, rlalik. I'm also experiencing the same issues for Github Classroom.

pmcstjean commented 2 weeks ago

same here, same error message ...Easy to reproduce, just clone a repo or an assignment and try to pull :

gh classroom clone student-repos
gh classroom pull student-repos
ascott02 commented 18 hours ago

Ditto. I'm having the same issue.