GitHub や Slack の User Status を更新する

VSCode 拡張の User Status を使うと VSCode から複数のサイトのユーザーステータスを更新できます。2020年2月28日現在だと GitHub と Slack がサポートされてます。

ユーザーステータスとはGitHub のプロフィール画像の下Slack メンバー名の右などに表示される絵文字(とテキスト)の事で、「今自分はこんなことしてますよ」と周りに知らせる事ができます。

インストール

Extensions View からnju33.vscode-user-statusと検索すると結果が1件出てきますので、そこからインストールできます。

使い方

うまくインストールが完了するとVSCode 下部に Set status という項目が追加されます。(無い場合は一度 window をリロードしてみてください)

この項目をクリックすると選択リストが表示され、ここで選んだ項目が各サービスで設定されます。現在のステータスは下部の Set status という項目が変わり、ここも現在有効なステータスになります。
ステータス設定中に再度選択リストを出すとClear statusという項目が追加されるので、ここからステータスをリセットできます。

機能は以上ですが、使う前に幾つかの設定を設定ファイルに追記する必要があります。

設定

ユーザーがカスタマイズ可能な設定は以下の5つです。

  1. userStatus.github
  2. userStatus.slack
  3. userStatus.status
  4. userStatus.language
  5. userStatus.priority

userStatus.github

GitHub のユーザーステータスを更新対象にするか設定します。以下のような感じです。

{
  "userStatus.github": {
    "enable": true,
    "username": "GITHUB_USER_NAME",
    "accessToken": "GITHUB_PERSONAL_ACCESS_TOKEN"
  }
}

accessTokenには user にだけチェックを入れて生成したトークンを使います。

userStatus.slack

Slack のユーザーステータスを更新対象にするか設定します。以下のような感じです。

{
  "userStatus.slack": {
    "enable": true,
    "workspaces": [
      {
        "user": "SLACK_MEMBER_ID",
        "accessToken": "SLACK_OAUTH_ACCESS_TOKEN"
      },
      {
        "user": "SLACK_MEMBER_ID(2)",
        "accessToken": "SLACK_OAUTH_ACCESS_TOKEN(2)"
      }
    ]
  }
}

Slack は複数のワークスペースに対応していて、設定した全てのワークスペースのユーザーステータスを更新します。

userはワークスペースのプロフィールから取得した ID を指定します。

accessTokenは Slack アプリを作成しusers.profile:readusers.profile:write権限を持った Oauth Access Token を生成して、それを使います。

userStatus.status

好きな項目を設定できます。例えば以下のように設定すると、

{
  "userStatus.status": {
    "🍿": {
      "github": {
        "emojiName": "popcorn"
      },
      "slack": {
        "emojiName": "popcorn"
      },
      "text": "Watching a movie",
      "priority": 900
    }
  }
}

🍿 Watching a movieという項目を増やすことができます。

userStatus.language

拡張には最初からいくつかのステータスリスト(上記で設定するような)が登録されてますが、この言語を設定できます。それらにはen(英語でデフォルト)とja(日本語)が用意されており、例えば英語では🗓 In a meetingが日本語では🗓 会議中となるような違いがあります。

userStatus.priority

新しく VSCode Window を立ち上げたりした時に、GitHub や Slack どこを一番に優先してステータスを復元するか設定します。デフォルトではgithubで GitHub が優先になってます。

例えば、GitHub 上のステータスが🗓 In a meetingとなっている場合、VSCode 下部のステータスも🗓 In a meetingに復元されます。