3

私のgitローカル作業フォルダーの変更をチェックし、それらをオンラインリポジトリに自動的にプッシュするpythonスクリプトを作成しようとしています。現在、手動で git を使用してのみ実行しています。手動の介入なしでこれを行うには、スクリプトに何が必要かを知りたいです。

シェルに入力するコマンドは次のとおりです。

#for checking the status, and determining if there are untracked files
git status

#if there are untracked files...add them
git add .

#add my commit message
git commit -m "7/8/2012 3:25am"

#push it to my online repo
git push origin master

#check if changes came on remote
git diff origin/master

#merge my repo with origin
git merge origin/master

git push を実行するときは、常にユーザー名とパスワードを入力する必要があります。gitには、sshキーなどを作成することを含むこれを回避する方法があることを知っています。しかし、GitPython がそれを行う何らかの方法があると想定しています。ユーザー名/パスワードをコードで渡すことも、前者を使用することもできます。では、GitPython を使用している場合の認証に関するオプションは何ですか?

編集: github の Windows アプリケーションなど、実際に ssh キーを生成するアプリがあります。Windowsアプリはこれをどのように行っていますか? 私の仮定は、確かにいくつかのgit APIがあるということです...

4

2 に答える 2

2

SSH キーを使用して認証している場合は、 を使用してキーを 1 回ssh-agentロードすると、パスワードを常に入力しなくてもキーを使用し続けることができます。

または、キーのセキュリティを気にしない場合は、パスワードなしでキーを生成することもできます。

于 2012-07-08T12:49:46.707 に答える
0

確認のためにコードを調べましたが、通信用にユーザー名とパスワードの組み合わせを定義できるものはありません。

これは、ssh事前にパスワードを提供する機能を提供しないため、意図的にユーザープロンプトを要求するためです。唯一だったのはssh keys、自動化に使用することです。

ただし、本当に限界を超えたい場合。使用せずに非対話型 ssh 通信用のオープン ソース アプリがありますssh keys: http://sourceforge.net/projects/sshpass/

ssh://これをコンパイルしてインストールし、このアプリのような通信プロトコルを指示すると、動作する可能性があります。ただし、そうすべきではないと思います。キーを使用するだけです。素晴らしいです =)

于 2012-07-07T22:41:44.787 に答える