What options are there for commiting and pushing files to github from python?
Here are three methods I thought should be feasible so attempted in order:
Use pygithub: (Github's python API) to send push requests to my repository. Failed because I can find no push functions in the API. I can see edit files, but that doesn't help when I plan on replacing the file often.
Use
git push
in command line from a python subprocess (HTTPS): This almost works, but I cannot figure out how to fill in the user and password fields required. Attempt:import subprocess from pexpect import popen_spawn user = 'GithubUsername' password = '***********' cmd = "cd C:\\Users\Dropbox\git-test" returned_value = subprocess.call(cmd, shell=True) # returns the exit code in unix cmd = "git add ." subprocess.call(cmd, shell=True) cmd = 'git commit -m "python project update"' subprocess.call(cmd, shell=True) cmd = "git remote set-url origin https://github.com/Tehsurfer/git-test.git" subprocess.call(cmd, shell=True) cmd = "git push " child_process = popen_spawn.PopenSpawn(cmd) child_process.expect('User') child_process.sendline(user) child_process.expect('Password') child_process.sendline(password) print('returned value:', returned_value) print('end of commands')`
Use
git push
in command line from a python subprocess (SSH): The problem I had here is that I cannot find a way to create a ssh agent in the windows command prompt. I have been able to create one in the MINGW64 terminal easily enough via this tutorial , but have no way of interacting with it via Python.
How do I push new files to GitHub?
A very similar question who's code I was able to modify to make multiple file pushes to github via python: