Voici comment j'ai réussi à le faire fonctionner. Je ne veux pas indiquer que c'est la meilleure façon absolue de mettre en œuvre cela, mais j'espère que cela servira d'exemple pour quelqu'un à l'avenir.
from github import Github
import pygit2
# en utilisant un nom d'utilisateur et un mot de passe, établissez une connexion à github
g = Github(userName, password)
org = g.get_organization('votreNomOrganisation')
# créez le nouveau dépôt
repo = org.create_repo(nomProjet, description = descriptionProjet )
# créez de nouveaux fichiers dans le dépôt
repo.create_file("/README.md", "commit init", texteReadme)
# Clonez le dépôt nouvellement créé
repoClone = pygit2.clone_repository(repo.git_url, '/chemin/vers/clone')
# mettre les fichiers dans le dépôt ici
# Committez
repoClone.remotes.set_url("origin", repo.clone_url)
index = repoClone.index
index.add_all()
index.write()
auteur = pygit2.Signature("votre nom", "votre email")
commiter = pygit2.Signature("votre nom", "votre email")
arbre = index.write_tree()
oid = repoClone.create_commit('refs/heads/master', auteur, commiter, "commit init",arbre,[repoClone.head.get_object().hex])
remote = repoClone.remotes["origin"]
credentials = pygit2.UserPass(userName, password)
remote.credentials = credentials
callbacks=pygit2.RemoteCallbacks(credentials=credentials)
remote.push(['refs/heads/master'],callbacks=callbacks)
J'ai passé deux jours à essayer de travailler à travers le manque d'exemples pour répondre à cette question, donc j'espère que cela aidera quelqu'un à l'avenir.