Udemy 新コース: 作って学ぶAI Builder!

Power Platform のGit 統合によるソースコントロール | Git ネイティブ連携

Power Platform のパイプライン が環境間のソリューションの連携に対して、Git 接続はソリューション自体のバージョンコントロールを行うことができます。

Introducing Git Integration in Power Platform (preview) – Microsoft Power Platform Blog

マネージド環境にご興味のある方はこちらの記事をご覧ください。

Power Platform パイプラインにご興味のある方はこちらの記事をご覧ください。

注意
  • これはプレビュー機能です。
  • プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィードバックを得ることができます。
  • この機能は現在、オーストラリア、カナダ、ヨーロッパの早期リリース サイクル用に作成された環境でのみ利用できます。 早期リリース サイクル環境に移動する

前提条件

  • マネージド環境を有効にする必要があります。
  • Azure DevOps サブスクリプションと、ソース管理を操作するユーザーのライセンスが必要です。
  • Azure DevOps コミットやソース ファイルの読み取りにはサービス権限が必要です。 Contributors セキュリティ グループのメンバーには権限があります。
  • Git に接続し、環境またはソリューションと Azure DevOps のプロジェクトの初期バインドを完了するには、Power Platform 環境と Dataverse システム管理者のセキュリティ ロールが必要です。
  • この機能はアンマネージド レイヤーでは動作しますが、マネージド レイヤーでは動作しません。 
  • Git 統合を設定した後に作成したソリューションが対象となります。

Git 統合の他サービスと比べた優位性

標準バージョン管理との比較

Git 連携を行わないPower Appsキャンバスアプリは、保存を行ったタイミングなどでバージョンを保持します。しかし、ボタンを配置したなど、その中の具体的な変更点について詳細を確認すること、バージョン間の違いについて比較することが難しいです。

標準のバージョン管理に対するGit 統合によるソース管理の優位性

  • 具体的な変更点について詳細を確認すること
  • バージョン間の違いについて比較すること
  • 共同開発した際のコンフリクトの確認
  • 共同開発した際のユーザーごとの詳細な変更点の確認 …など

このようにGit 連携を行うことで変更箇所の履歴管理や可視化が容易となるだけでなく、開発の証跡やバージョンの特定や切り戻し作業などを効率化することができます。

Power Apps キャンバスアプリのGitHub 連携

Power Apps キャンバスアプリのGitHub 連携との優位性

これまで、長らく試験段階の機能となっている、キャンバスアプリのGitHub へのソース連携機能がありました。

しかしながら、この機能ではキャンバスアプリしか対応しておらず、一つ一つのキャンバスアプリに毎回設定を行う必要があったり、ソリューションや環境全体のソース管理を行うには適していませんでした。

今回の機能はその問題点を解決する機能が提供されています。

本Git 統合では、

  • 環境全体のソース管理を簡単なプロセスで設定可能
  • キャンバスアプリ以外のソース管理まで含めて実現可能

セットアップ方法

以下のようにセットアップを簡単に行うことができます。

Dataverse Git 統合の設定 – Power Platform | Microsoft Learn

Azure DevOps の作成 / ログイン

Azure DevOps でGit リポジトリを準備します。

こちらからサインインできます。

https://go.microsoft.com/fwlink/?linkid=2255450&clcid=0x409

サインインした後、DevOps の組織を作成します。

組織の配下にプロジェクトを作成します。

初期化をしてmain ブランチを作成しておきます。

main ブランチを作成することができました。

Power Apps でGit に接続

Power Apps のプレビュー環境にて、https://make.preview.powerapps.com/ にアクセスします。

2024/11/15 パブリックプレビューしました。本日時点ではEarly Access 環境にてプレビューのPower Apps に接続する必要があります。

ソリューションにてGit 接続を選択します。

同一テナントに存在するAzure DevOps のGit に連携することができます。そのまま組織等を選択することができます。ソリューションとするか環境とするかは用途によって使い分けることができます。

  • ソリューションとした場合は、この環境の複数のソリューションを、ソース コントロール内で別々の分岐とフォルダーに接続します。この環境のソリューションを別のリポジトリに接続することはできません。
  • 環境とした場合は、この環境のすべてのソリューションを、ソース コントロールの同じリポジトリ、分岐、フォルダーに関連付けます。

今回は環境として進めます。ルートGit フォルダーは選択した GIt リポジトリから既存のフォルダー名を入力するか、新しいフォルダー名を作成してください。

この名前が、環境のすべてのソリューションに対する既定の Git フォルダー パスを作成する際に使用されます。後でソリューションに個別にフォルダー パスを設定することもできます。

完了するとソースコントロールを表示のメッセージが通知されます。

Git のブランチを確認

接続したmainブランチを確認してみます。

接続時に指定したフォルダがブランチ内に作成されていることがわかります。

フォルダ内を確認するとReadme.mdのみがあることがわかります。

Git によるソースコントロールを開始することができました。

テスト

テスト用にソリューションを新規で作成してみます。

新規作成したソリューションにはGit ソース管理のアイコンが表示されています。

誰がいつ実行したかというメタデータが既定で登録されています。ソリューションが作成された段階からソース管理が始まっています。

新規でキャンバスアプリを作成してみます。

保存のみを行ってみます。一旦戻ってソース管理を確認します。

キャンバスアプリが作成されています。

Azure DevOps を確認すると、この段階では変化がありません。

Power Apps に戻り、コミットを実行します。

コミットします。

コミットに成功した旨のメッセージが表示され、直前にAzure DevOps にコミットした内容から変更がないことが表示されています。

Azure DevOps にコミットが反映されているのがわかります。

環境を選択した場合、環境のフォルダ「EA」の配下にcanvasapps, publishers, solutions というフォルダが作成されています。

コンポーネントごとに自動的にフォルダが作成されていることがわかります。

canvasapps を選択します。

更に内部を確認すると、ymlファイルファあることがわかります。

ソースコードが展開されています。

次にPower Apps でソース管理を検証しているキャンバスアプリを開き、変更を加えます。

このようにボタンを配置して保存します。

保存した状態では特にソースコントロールの画面には現れません。

キャンバスアプリで公開を行います。

更新してみます。

すると、行われた変更が反映されます。

先ほど保存だけでソースコントロールに表示されていたのは初回のため自動公開されているためでした。

またコミットしてみます。

コミットします。

Src フォルダ配下にあるScreen1.pa.yamを確認すると、配置されたボタンが追加されていることがわかります。

Compare タブに切り替えて表示することでよくわかります。

データソースの追加

今度はデータを変更して確認してみます。その後、公開します。

Accounts テーブルを追加しました。

ソースコントロールからコミットします。

データソースのjson に変更が確認できます。

また、コメントはこちらに含まれています。

コネクターの追加

今度はSharePoint コネクターを追加してみます。

コミットしてみます。

Dataverse の接続情報に追加して、SharePoint の接続情報が追加されていることがわかります。

canvasapps.yml にも接続参照情報が反映されています。

コミット履歴

Azure DevOps にて、コミットの履歴を確認することができます。

コミットから参照すると、変更点を自動的に表示してくれます。

InlineからSide-by-side に切り替えることができます。

以上、ご参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Index