31
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Webサービスの連携を自動化する Huginn の紹介

Posted at
1 / 14

社内で使っているWebサービス

  • Garoon
  • Redmine
  • Gitlab
  • Chatwork
  • Jenkins
  • etc...

サービスの連携を自動化したい

  • Garoonのワークフローが完了したら
    • → メールでロールアウト連絡
    • → Redmineをクローズ
  • GitlabでMergeRequestをマージしたら
    • → Redmineチケットを閉じる
  • 月次の作業を自動でRedminチケットを作る

etc...


自動化ツールをどう作る? スクリプトを書いてCRON実行?


Huginn


Huginn

  • 単体の機能(Agent)を組み合わせて自動化処理を構築できるWebサービス
  • Webサイトを読み取ったり、イベントを受けて何らかの処理を実行できる
  • 似たものとして、Yahoo! Pipes(閉鎖)、IFTTT
  • Ruby on Rails + MySQL or PostgreSQL

Huginn Agent

入力系
Twitterの投稿を取得 / RSSフィードを読み込む / WebHookを受け取る

変換系
CSVをパース / 条件に応じて継続・停止

出力系
メールを送信 / Webページを更新 / HTTP POSTする / Twitterに投稿


まずはやりたいこと

  • Garoonワークフローが完了したら
    • メールに送信
    • Chatworkに投稿

Garoonから情報を取得するAgentが必要


作りました

Huginn Garoon Agents
https://github.com/namutaka/huginn_garoon_agents

  • Ruby Gemとして作成
  • Huginnにはプラグイン的に組み込む
  • とりあえずは、Garoon ワークフローを取得できるところまで
  • huginn_agent GemをつかってSkeltonを作成できる

参考リンク


デモ


Huginnのメリット

  • Web上の操作で自動化処理を作成・編集できる
  • 各Agentの実行ログの記録ができる
  • Agent間で受け渡しされるイベントを確認したり、再実行させることが簡単
  • Agentを作るのが簡単
    • 実行されたらイベントを生成して出力するだけを作れば良い
    • JSON構造でメモリーを保持しておくことができる

まとめ

  • 作業の自動化をCRON実行するスクリプトよりはHuginnの方がよさそう
  • Agentを用意してしまえば、各自で好きなように工夫できる
  • ただし、
    • Web画面上の操作はちょっと分かり難いところもある
    • やりたいことに対して大袈裟すぎ?
    • 連携したいサービスのAPIが使いやすいのかどうか
31
24
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
31
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?