0
0

GitにコードがPushされたら自動的にPullする

Posted at

とあるゲームのサーバー開発に関わっているのですが、gitにコードがプッシュするたびにリモートデスクトップでわざわざプルするのがめんどくさすぎたので自動化したおはなし。

構成

Azure DevOps の Azure Repos にコードがプッシュされる

Azure Repos の機能で自動的にHTTPリクエストを送る

サーバーで動いているFlaskアプリケーションでリクエストをうけとる

subprocess で自動的に git pull origin master する

コード

指定したポートを開けた状態で python autogitpull.py してください。
また、これはベースのコードで、まじでなんのセキュリティ対策もしていません。
flask-httpauth でユーザー名とパスワードを追加したり、Headerにパスワードを入れたりしたほうがいいかも。私の場合はテストサーバーなのでこれでテストしていきます。

Azure Repos側の設定

プロジェクトのSummary画面から、右下のProject Settingsをクリック

image.png

Service Hook を選択

image.png

新規サブスクリプションを追加して、Webhook を選択

image.png

Trigger on this type of event で Code Pushed を選ぶ

image.png

URLを入力
デフォルトのFlaskだとHTTPではないんですが、私の環境だと Accept untrusted SSL certificates を有効にしないと不安定になってました。こちらのサーバー側の問題なのか... そもそもSSL証明書自体ないのに...

image.png

あとはテストしてみてターミナルにPOSTリクエストの履歴がでてきたら完了。
いちいちVSCode開いてこのスクリプトを実行するのがめんどくさすぎるので、batファイル使ってスタートアップに登録する形でさらに自動化。

@echo off
cd C:\your_dict\auto-git-pull

REM Start the Flask application in a new window
start "FlaskApp" cmd /k python autopull.py

これでQOL爆上がりまちがいなし。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0