
Omniで連携先のGitリポジトリに権限がないユーザーがGit操作を行なった際の挙動を確認してみた
さがらです。
OmniはGitと連携することを強く推奨しているBIツールですが、連携先のGitリポジトリに権限がないユーザーがGit操作を行なった際の挙動が気になりました。
この挙動を確認してみたので、簡素な内容ではありますが記事としてまとめます。
前提条件
Omniで操作するユーザーは、GitHubアカウントを持たないユーザーで試します。(私の会社メールにエイリアスを付けたアドレスでOmniユーザーを作成しました。)

このユーザーには、Workbook上でブランチを作ってPull Requestの発行ボタンも押せるQuerier権限を付与します。

また、Omniで使用するModelは事前にGit連携を行っており、Omniが発行したDeploy keyをコピーして、リポジトリにAllow write accessをつけてDeploy keyを追加しています。


やってみた
まず、GitHubアカウントのないユーザーで、OmniのWorkbookでブランチを作成します。

この時点ではGitHubリポジトリ側ではブランチは生成されていません。

続けて、OmniのWorkbook画面で、編集したフィールドを選択して、Add to branchを押します。

この時点でもまだ、GitHubリポジトリ側ではブランチは生成されていません。

次に、OmniのWorkbook画面で、右上のCreate pull requestを押します。

すると、GitHubアカウントがなくて対象のリポジトリに対して権限がないため、404が表示されます。

この状態で、GitHubリポジトリの権限を持っているユーザーがリポジトリを見ると、Omniで作成したブランチがプッシュされており、かつコミットを行ったのは「Omniのユーザー名」となっていました。観測した限り、Omni側でのCreate pull request操作をトリガーに、Omni側が(Deploy keyの書き込み権限で)ブランチをpushしているように見えました。


どのように対応するか
GitHubのユーザーも組織で使用する際には有料のため、OmniのユーザーにどこまでGitHubアカウントを提供可能かどうかは組織によって分かれると思います。
そのため、提供可否に応じた対応策について、以下のように考えをまとめてみました。
- Omni上でQuerier権限を付与させるユーザーにもGitHubアカウント及び対象リポジトリへの権限を「提供可能」な場合
- 問題なく、各ユーザーからOmniの画面上で
Create pull requestを押して、プルリクエストを発行可能
- 問題なく、各ユーザーからOmniの画面上で
- Omni上でQuerier権限を付与させるユーザーにGitHubアカウント及び対象リポジトリへの権限を「提供不可能」な場合
- 各ユーザーはブランチを作成して連携したいフィールドをブランチにコミットしたら、右上の
Create pull requestを押す(404が表示される) - プルリクエストを発行できる管理者向けの方に、連絡をする ※「Omniで新しいフィールドを追加したので、プルリクエスト発行してマージしてください。」のような連絡をするイメージ。
- もし通知が煩わしくなければ、WebhookあるいはGitHub Actionsなど用いて「何かしらのブランチにプッシュが合った場合に通知を送る」という手もあると思います。
- 各ユーザーはブランチを作成して連携したいフィールドをブランチにコミットしたら、右上の
最後に
Omniで連携先のGitリポジトリに権限がないユーザーがGit操作を行なった際の挙動を確認してみたので、その内容についてまとめてみました。
OmniのユーザーにどこまでGitHubアカウントを付与すれば良いか悩む方の一助になると幸いです。








