Using the github webhooks, I would like to be able to pull any changes to a remote development server. At the moment, when in the appropriate directory, git pull
gets any changes that need to be made. However, I can’t figure out how to call that function from within Python. I have tried the following:
import subprocess process = subprocess.Popen("git pull", stdout=subprocess.PIPE) output = process.communicate()[0]
But this results in the following error
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory
Is there a way that I can call this bash command from within Python?
Advertisement
Answer
Have you considered using GitPython? It’s designed to handle all this nonsense for you.
import git g = git.cmd.Git(git_dir) g.pull()