LoginSignup
9
9

More than 5 years have passed since last update.

capistranoでデプロイが終わったらYoを送る

Posted at

Yo APIの取得

http://yoapi.justyo.co/
こちらのページからAPI用のアカウントを作成する。個人用のアカウントを持っている必要がある。
アカウントを作るとtokenが発行される。

APIの仕様

subscriber全員にYo

subscriberに一括でYoする (POST)

$ curl --data "api_token=<api_token>" http://api.justyo.co/yoall/

個人にYo

パラメータで指定したユーザーにYoする (POST)
誰にでも送れちゃうのかな...?

$ curl --data "api_token=<api_token>&username=<username>" http://api.justyo.co/yo/

subscriberの数をカウント

API用のアカウントのsubscriberの総数を取得する (GET)

$ curl "http://api.justyo.co/subscribers_count/?api_token=<api_token>"

Yo受信でwebhook呼び出し

設定したコールバックURLを使用する。
Yoを受信したら、hookを呼び出す。送信したユーザー名がusernameパラメータとして付いてくる

Capistranoのタスクにしてみる

くだらないけどやってみた。

チームの開発メンバーにAPI用のアカウントをsubscribeしておいてもらい、
適当なタイミングで全員にYoできるように。

lib/capistrano/tasks/yo.cap
require 'net/http'

namespace :yo do
  def yo
    uri = URI('http://api.justyo.co/yoall/')
    Net::HTTP.post_form(uri, 'api_token' => ENV['YO_API_TOKEN'])
  rescue => e
    p e
  end

  desc 'Send a YO to developers'
  task :send do
    run_locally do
      yo
    end
  end
end

これでcap yo:sendというタスクができる。
cap deploy:finishedとかcap deploy:failedフックの後に使えば捗りますね。
Yoはコンテキスト

9
9
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
9
9