2

元の質問

スクリプト内のSeleniumテストに続いて撮影したスクリーンショットをアップロードするためにAmazonS3を使用しているPythonスクリプトがいくつかあります。

現在、S3からGitHubを使用するように移行しているため、GitPythonを見つけましたが、実際にローカルリポジトリにコミットしてサーバーにプッシュするためにGitPythonを使用する方法がわかりません。

私のスクリプトは、ワークスペースと同様のディレクトリ構造を構築し、\images\228M\View_Use_Case\1.pngS3にアップロードするときは単純なプロセスでした。

for root, dirs, files in os.walk(imagesPath):
    for name in files:
        filename = os.path.join(root, name)
        k = bucket.new_key('{0}/{1}/{2}'.format(revisionNumber, images_process, name)) # returns a new key object
        k.set_contents_from_filename(filename, policy='public-read') # opens local file buffers to key on S3
        k.set_metadata('Content-Type', 'image/png')

これに似たものはありますかgit add images、それとも私が完全に見逃したGitPythonのbashタイプコマンドのような単純なものがありますか?

ファブリックで更新

そのため、kracekumarの推奨に従ってFabricをインストールしましたが、(GitHub)ホストを定義する方法に関するドキュメントが見つかりません。私のスクリプトは、アップロードを機能させるのに非常に簡単です。

from __future__ import with_statement
from fabric.api import *
from fabric.contrib.console import confirm
import os

def git_server():
    env.hosts = ['github.com']
    env.user = 'git'
    env.passowrd = 'password'

def test():
    process = 'View Employee'
    os.chdir('\Work\BPTRTI\main\employer_toolkit')
    with cd('\Work\BPTRTI\main\employer_toolkit'):
        result = local('ant viewEmployee_git')
    if result.failed and not confirm("Tests failed. Continue anyway?"):
        abort("Aborting at user request.")

def deploy():
    process = "View Employee"
    os.chdir('\Documents and Settings\markw\GitTest')
    with cd('\Documents and Settings\markw\GitTest'):
        local('git add images')
        local('git commit -m "Latest Selenium screenshots for %s"' % (process))
        local('git push -u origin master')

def viewEmployee():
    #test()
    deploy()

それは\o/フラーで動作します。

4

2 に答える 2

3

ファブリックを調べる必要があります。http://docs.fabfile.org/en/1.4.1/index.html . 自動サーバー展開ツール。私はこれをかなり長い間使用してきましたが、かなりうまく機能します。

これを使用するアプリケーションの 1 つは、https://github.com/kracekumar/sachintweets/blob/master/fabfile.pyです。

于 2012-04-19T11:12:54.837 に答える
1

これができるようです:

index = repo.index
index.add(['images'])
new_commit = index.commit("my commit message")

そして、origin がデフォルトのリモートであると仮定します。

origin = repo.remotes.origin
origin.push()
于 2012-04-19T13:37:57.663 に答える