LGTM されたらオフィスの電球をパーティー仕様にする
コロナ禍ということでリモートワークが増えていますが、会社によっては職種によって出社頻度が異なるケースが発生しているのではないでしょうか。
そうなると部署やチームによって人との距離が遠くなったり、場合によっては「エンジニア全然出社してないけどちゃんと仕事してるの?」と疑いをかけられているかもしれません。
そこで今回はオフィスにいる方々がエンジニアが働いていることを身近に感じられるようにする、画期的な装置を作りました。
作ったもの
GitHub の PR が Approve されると SwitchBot スマート電球がパーティー仕様で光り出すというものです。
注意:デモの都合で PR の Approve ではなく、issue のコメントをトリガーにしています。
用意するもの
- SwitchBot アプリ
-
SwitchBot スマート電球
- Bluetooth ではなく Wi-Fi に接続された状態
- 適当な GitHub リポジトリ
手順
1. SwitchBot の API トークンを取得
アプリの「プロフィール > 設定」から「アプリバージョン」の項目を10回タップすると「開発者向けオプション」が表示されるようになります。
ゲームの隠し扉みたいですね。
参照:SwitchBotAPI#Getting Started
2. GitHub リポジトリのシークレットに SwitchBot トークンを設定
トークンが漏れると自由に SwitchBot を操作されてしまうので、直書きはせずに必ずシークレットに置きましょう。
誤って公開してしまった場合はアプリからトークンをリセットしてください。
3. 以下 YAML をコミット
name: Turn on the light
on:
pull_request_review:
types: [submitted]
jobs:
turn-on:
runs-on: ubuntu-latest
steps:
- name: Turn on the light
uses: Doarakko/action-switchbot@main
with:
token: ${{secrets.SWITCHBOT_TOKEN}}
deviceName: light AA
command: turnOn
PR が Approve されたイベントをトリガーに SwitchBot の API にリクエストを送って、電球を明るくします。
4. SwitchBot スマート電球をパーティー仕様に
SwitchBot のアプリから、一度電球をパーティー仕様にした後にオフにします。
色を指定することなく API リクエストを送ると、前の色で電球がオンになります。
API で色を指定して電球を付けることもできるのですが、パーティー仕様の色をどのように指定すればいいのかわからなかったのでこのような対応をしています。
5. Let's party
これで職場も明るくなりますね。
SwitchBot の GitHub Actions を自作しました
GitHub のイベントをトリガーに SwitchBot を操作できます。
デバイスだけではなくシーンを指定して実行することもできます。
あまり使い道が思いつかいのですがお役に立てれば幸いです。
注意:全てのデバイス、API リクエストには対応できていません。
おわりに
オフィスの電球をこっそり SwithBot の電球に差し替えて試してみたのですが、わずか1時間で撤去することになりました。
Discussion