CI通知をTelegramと同期します

今日は、継続的インテグレーションサーバー(Bamboo、Jenkins、TeamCityなど)の通知をPavel Durov-Telegramの無料のメッセンジャーと同期する経験を共有したいと思います。



私たちのプロジェクトのプログラマーがメールで送信された通知に応答せず、電報で企業のメッセンジャーがいたため、この問題を解決したかったのです。 件名CIは、これらの同じ通知が送信される企業Bambooです。



この同期を整理するには、電報のBOT API、我々のGmail API、およびDigital Oceanのubuntuサーバーを使用します。



まず、電報で新しいボットを作成する必要があります。 これには、この記事の段落1を使用することをお勧めします: habrahabr.ru/post/262247 登録後、ボットへのアクセスデータを次の形式で取得します: 112714817:AAEwZWoZ6X1Go76gt3_hUz9717ihNboXrnw



このデータを忘れずに忘れないでください-彼らはまだ私たちにとって有用です!







次に、ボットが通知を送信する新しいチャットを作成する必要があります。 ボットと同僚を招待することを忘れないでください。 ここで、このチャットのIDを確認する必要があります。テストメッセージをチャットに送信し、ブラウザーまたはcurl(より便利です)に移動します。

https://api.telegram.org/bot<TOKEN>/getUpdates
      
      









サーバーの応答から、チャットIDが「-35576913」であることがわかります(「-」はIDの一部であり、失うことはできません)。 次に、すべてが正しく機能していることを確認します。 これを行うには、ボットからテストメッセージを送信します。

 https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=-35576913&text=Test_Message
      
      









すばらしい:テストメッセージを受け取りました。つまり、すべてが正常に機能するということです。 Gmail APIにシームレスに移行します。 まず、 console.developers.google.comで新しいプロジェクトを作成する必要があります。 次に、プロジェクトにGmail APIへのアクセス権を付与します。 そして、新しいプロジェクトのクレジットでJSONを取得する必要があります。











素晴らしい、ほぼすべての準備ができました! 次に、Pythonスクリプトを使用することをお勧めします。 こちらで入手できます: github.com/egorvas/ci_to_telegram/blob/master/ci_to_telegram.py



また、2つのサードパーティのPythonモジュールをインストールする必要があります。

 pip install google-api-python-client pip install requests
      
      





client_secret.jsonを含むファイルをスクリプトと同じフォルダーに配置し、実行を開始する必要があります。その後、ブラウザーが開き、Gmailメールへのアクセスを許可します。







プロジェクト用に新しいGmailアカウントを作成しました。このアカウントには、bambooで通知を添付しましたが、作成済みのアカウントを使用できます。 あなたの心が望むように!



CIによる通知がこのメールに届くことを忘れずに確認してください。 これで、client_secret.jsonに加えて、スクリプトを含むフォルダーに、資格情報フォルダーが配置されます。 もしそうなら、あなたはそれを正しくやった。







次に、スクリプトを少し変更する必要があります。そのため、変数TELEGRAM_BOT_CREDENTIALSおよびCHAT_IDを上記で学習した変数に変更します。 ここで、スクリプトを実行しようとします。すべてが正しい場合、未読メッセージはすべてボットとのチャットに分類されます。



スクリプトの機能について簡単に説明します。 最初に、彼はあなたの受信箱ですべての未読の手紙を見つけ、それから彼からテキストを電報であなたに送り、それから彼はこれらの手紙を読んでもらいます。



最後のステップは残ります。このスクリプトを繰り返し起動する必要があります。 私はubuntuサーバーでcronを使用しました。 sshスクリプトを含むフォルダーをサーバーにロードし、cronを構成します。



開始するには、cronをインストールします。

 sudo apt-get update sudo apt-get install cron
      
      





次に、cron設定エディターを起動します。

 crontab -e
      
      





1分ごとにスクリプトの繰り返しを追加します。

 * * * * python /usr/share/telegram/ci_to_telegram.py>
      
      





すべてが正しく保存されたことを確認します。

 crontab -l
      
      





現在、スクリプトは毎分実行されています。 メールに新しい手紙がない場合、彼は何もしません。 それ以外の場合は、電文で手紙のテキストを送信し、手紙を読み上げます。



以上です。 ご清聴ありがとうございました。 質問があれば-書いて、私は喜んで答えます。



All Articles