¿Cómo puedo llamar a un script .sh desde Django, teniendo en count los permissions?

Usando, Django Me gustaría poder hacer cambios desde un repository de Github usando una vista a un server de desarrollo para probar. Esto está en el sistema operativo ubuntu, y estoy usando el server web Apache.

Hice un pequeño script .sh llamado gitpull.sh . El contenido de este file es:

 #!/bin/sh cd /home/myrepo env -i /usr/bin/git pull origin master 

Los permissions en este file son:

 -rwxrwxrwx 1 www-data www-data 64 Mar 10 01:19 gitpull.sh 

Si creo un shell de python, puedo ejecutarlo usando el siguiente command:

 import os os.system('/home/myrepo/gitpull.sh') 

Esto funciona bien, y el repository extrae los cambios más recientes. También creé una vista de Django que hace lo siguiente:

 import os def hook(request): os.system('/home/courb/gitpull.sh') template = loader.get_template('git.html') context = RequestContext(request) # Return output objects with template return HttpResponse(template.render(context)) 

El problema que tengo es que no está saliendo del repository como esperaba. Creo que debe ser un problema de permissions, pero pensé que apache / Django formaban parte del grupo www-data .

También intenté usar gitPython de la siguiente manera

 import git g = git.cmd.Git('/home/myrepo/') g.pull() 

pero tuve un post de error sobre la terminación de la connection. Pensé que el script .sh podría ser una forma más fácil de solucionar este problema.