
GitHub Actions でワークフローを実行した GitHub アカウントが GitHub Organization のチームに所属しているかどうかを判定できる tspascoal/get-user-teams-membership を試してみた❗️tspascoal/get-user-teams-membership では大きく2種類の値を取得できる.
teams: 所属しているチーム一覧isTeamMember: 指定したチームに所属しているかどうか
今回は isTeamMember を試す \( 'ω')/
準備
検証用の GitHub Organization にチームを2つ(admins と members)作った.そして,members チームに自分自身 (@kakakakakku) を所属させた😀

👾 get-user-teams-membership.yml
ワークフローは以下のように実装した.今回はサンプルとして「admins チームに所属していたら echo」と「members チームに所属していたら echo」という条件付きのステップにした.
tspascoal/get-user-teams-membership に username / organization / team を指定すると if: ${{ steps.checkUserInAdmins.outputs.isTeamMember == 'true' }} という構文で取得できて,次のステップで制御に使える👌
name: Check user is in the team on: workflow_dispatch: jobs: main: runs-on: ubuntu-latest steps: - name: Check user is in the admins team uses: tspascoal/get-user-teams-membership@v3 id: checkUserInAdmins with: username: ${{ github.actor }} organization: xxxxx team: admins GITHUB_TOKEN: ${{ secrets.FINE_GRAINED_PAT }} - name: Echo if user is in the admins team if: ${{ steps.checkUserInAdmins.outputs.isTeamMember == 'true' }} run: echo "${{ github.actor }} is in the admins team" - name: Check user is in the members team uses: tspascoal/get-user-teams-membership@v3 id: checkUserInMembers with: username: ${{ github.actor }} organization: xxxxx team: members GITHUB_TOKEN: ${{ secrets.FINE_GRAINED_PAT }} - name: Echo if user is in the members team if: ${{ steps.checkUserInMembers.outputs.isTeamMember == 'true' }} run: echo "${{ github.actor }} is in the members team"
動作確認
期待通りに Echo if user is in the admins team はスキップされて,Echo if user is in the members team は実行された👏 イイ感じ〜

PAT (Personal access tokens)
ちなみに README に書いてある通り,tspascoal/get-user-teams-membership では GitHub Organization のチーム情報を取得するために PAT (Personal access tokens) が必要になる.実際に試したところ Personal access tokens (classic) でも Fine-grained personal access tokens でも動いた👌
- Personal access tokens (classic) なら
read:org - Fine-grained personal access tokens なら
Organization permissions > Members > Read-only
最近(2025年3月)Fine-grained personal access tokens が GA になったこともあって,今回はこっちを使うことにした😀
そして README に Fine-grained personal access tokens が使えることも書いてあると良いんじゃないかな〜と考えてプルリクエストも出してみた❗️
まとめ
GitHub Actions でワークフローを実行した GitHub アカウントが GitHub Organization のチームに所属しているかどうかを判定する場合に tspascoal/get-user-teams-membership が使える❗️実装も複雑ではなく src/index.js を読めば GraphQL クエリを実行してる流れも確認できて勉強になる👌