_pygit2.GitError: reference 'refs/heads/master' not found
Offen
Dieses Issue hat noch niemand übernommen.
support
- Vorherrschende Sprache
- Python
- Sterne
- 1.7k
- Forks
- 408
- Ø Merge
- 2 T. 57 Min.
- Gemergte PRs (30 T.)
- 7
Beschreibung
import pygit2
from github import Github
github_username = "user"
github_password = "password"
github_email = "email"
# login to github and
authenticated_github_user = Github(github_username, github_password)
user = authenticated_github_user.get_user()
is_org: bool = False
# create the new repository
if is_org:
org = authenticated_github_user.get_organization('someorg')
repo = org.create_repo('projectname', description='somedescription')
else:
repo = user.create_repo('testrepo_github_api', description='this is a test')
# clone the repository
repoClone = pygit2.clone_repository(repo.git_url, '/tmp/test_clone')
#create some new files in the repo
repo.create_file("README.md", "init commit", 'readmeText')
# Commit it
repoClone.remotes.set_url("origin", repo.clone_url)
index = repoClone.index
index.add_all()
index.write()
author = pygit2.Signature("Jesus Christ", github_email)
commiter = pygit2.Signature("Jesus Christ", github_email)
tree = index.write_tree()
oid = repoClone.create_commit('refs/heads/master', author, commiter, "init commit", tree, [repoClone.head.get_object().hex])
remote = repoClone.remotes["origin"]
credentials = pygit2.UserPass(github_username, github_password)
remote.credentials = credentials
callbacks = pygit2.RemoteCallbacks(credentials=credentials)
remote.push(['refs/heads/master'], callbacks=callbacks)
This results in
oid = repoClone.create_commit('HEAD', author, commiter, "init commit", tree, [repoClone.head.get_object().hex])
_pygit2.GitError: reference 'refs/heads/master' not found
git show-ref is empty, but this is pretty much expected, no?
This commit and push still go through, but the error is nevertheless thrown.
Am I doing something wrong?
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Reproduktion rund um pygit2.clone_repository, repoClone.create_commit und remote.push; untersuche den leeren Zustand von git show-ref und die an create_commit übergebene Referenz. Bestätige, warum Commit und Push trotz der gemeldeten Exception erfolgreich zu sein scheinen, und überprüfe anschließend, dass dasselbe Skript ohne den Fehler abgeschlossen wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- git, python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100