1

Django を使用して、ビューを使用して github リポジトリからテスト用の開発サーバーに変更をプルできるようにしたいと考えています。これは ubuntu オペレーティング システム上にあり、Apache Web サーバーを使用しています。

という小さな.shスクリプトを作成しましたgitpull.sh。このファイルの内容は次のとおりです。

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

このファイルの権限は次のとおりです。

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

Python シェルを作成すると、次のコマンドを使用してこれを実行できます。

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

これは正常に機能し、リポジトリは最新の変更をプルします。また、次のことを行う Django ビューも作成しました。

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))

私が抱えている問題は、期待どおりにリポジトリからプルされていないことです。権限の問題だと思いますが、apache/Django はwww-dataグループの一部だと思いました。

また、次の方法でgitPythonを使用しようとしました

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

しかし、接続が終了しているというエラーメッセージが表示されました。.shスクリプトを使用すると、この問題を簡単に解決できると思いました。

4

0 に答える 0