Jira アクションが有効になっている場合、エンドユーザーはアシスタントに次の Jira Cloud アクションの実行を依頼できます。
- Jira で作業項目を作成する
- Jira の作業項目を編集する
たとえば、ユーザーがアプリに「プロジェクト ABC で、プロジェクト Y のリリース、という Jira ストーリーを作成して」や「Jira チケット JCD-1 のタイトルを、プロジェクト Y のリリースに更新して」と入力します。アシスタントは必要に応じて追加の詳細情報を求め、作成または編集のリクエストを確認するようユーザーに求めます。
アシスタントは、アクションを通じて次の Jira フィールドを読み取り、編集できます。
| フィールド | 説明 |
|---|---|
| 作業項目 ID | 必須。変更する作業項目の ID。例: KAN-123。 |
| タイトル | 作業項目のタイトル。 |
| 作業項目タイプ | 作業項目のタイプ。 |
| 優先度 | 作業項目の優先度。 |
| ステータス | 作業項目のステータス |
| 説明 | 作業項目の説明(マークダウン形式)。 |
| 構成要素 | 作業項目の構成要素。 |
| 割り当て先 | 作業項目の割り当て先。例: user@google.com。 |
Jira で認証と権限を設定する
Jira アクションを有効にする前に、Jira 管理者は Jira のアクション専用の OAuth 2.0 認証情報を設定する必要があります。これは、Jira 統合を接続し、アクションの読み取りと書き込みの権限を許可するために必要です。
Jira アクションの認可クライアントは、Jira データの取り込みに使用されるクライアントとは異なります。権限とコールバック URL の構成が異なります。データを取り込むための Jira Cloud コネクタの認可クライアントを設定する方法については、Jira Cloud に接続するをご覧ください。
この手順では、Atlassian Developer Console を使用してクライアント ID とクライアント シークレットを作成し、必要な OAuth 2.0 スコープを構成して、ユーザーの権限を設定する方法について説明します。最後に、インスタンスの URL と ID を取得し、ロールを構成して、Jira Cloud と Google の間でデータを読み書きするための認証を行います。
クライアント ID とクライアント シークレットを作成する
- developer.atlassian.com にログインします。
- 右上にあるプロフィール アイコンをクリックし、[Developer Console] を選択します。
- [Create] をクリックし、[OAuth 2.0 Integration] を選択します。
- アプリの名前を入力します。
- 利用規約のチェックボックスをオンにします。
- [Create] をクリックします。
- [Authorization] をクリックします。
- [Authorization type] テーブルで、[OAuth 2.0(3LO)] の [Add] を選択します。
- [Callback URL] フィールドに「
https://vertexaisearch.cloud.google.com/oauth-redirect」と入力し、[Save changes] をクリックします。 [Permissions] をクリックします。
- Jira API に移動し、[Add]、[Configure] の順にクリックします。
[Classic scopes] タブに移動し、[Edit Scopes] をクリックします。次のスコープを選択し、変更を保存します。
従来のスコープ:
- read:jira-work
- read:jira-user
- write:jira-work
詳細なスコープ:
- read:user:jira
[Distribution] をクリックして [Edit] を選択し、次の操作を行います。
- まず [Sharing] ラジオボタンを選択して、他のフィールドの編集を有効にします。
- 残りのフィールドに入力します。
- [Vendor] で [
Google] を選択します。 - [Privacy policy] に「
https://policies.google.com」と入力します。 - [Does your app store personal data?] で、[
Yes] を選択します。 - [I confirm that I've implemented the personal data reporting API] チェックボックスをオンにします。
- [Vendor] で [
- [Save changes] をクリックします。
[Settings] を選択して、クライアント ID とクライアント シークレットをコピーします。
インスタンスの URL と ID を取得する
インスタンスの URL を取得するには:
- atlassian.net に移動し、管理者アカウントでログインします。
- 同期するアプリを選択します。たとえば、最初のアプリを同期します。
- インスタンスの URL(アドレスバーのサブドメイン)を確認します。
インスタンス ID を取得するには:
- 新しいタブを開き、インスタンスの URL をコピーして、インスタンスの URL に
/_edge/tenant_infoを追加します。例:https://YOUR-INSTANCE.atlassian.net/_edge/tenant_info - リンクに移動して
cloudIdの値を見つけます。cloudIdがインスタンス ID です。
権限とロールを設定する
- 管理者アカウントで atlassian.com にログインします。
- 左上のメニュー アイコンをクリックするか、admin.atlassian.com にアクセスします。
- [Admin] ページで [Manage users] をクリックし、[Groups] ページに移動します。
- [Create group] をクリックします。グループの名前を入力して作成します。
- 新しいグループのページの [Group product access] セクションで、[Add products to group] をクリックします。
- Jira のプロダクト ロールとして [User access admin] を選択します。
- [Jira Admin] で、プロダクト ロールとして [Product admin] を選択し、変更を保存します。
- [Groups] ページで、[Add group members] をクリックし、コネクタが認証するユーザーまたはアカウントを追加します。
更新トークンを取得する
Google Cloud コンソールを使用して Jira アクションを構成する場合は、リフレッシュ トークンを取得する必要はありません。
API を使用して Jira アクションを構成する必要がある場合は、更新トークンが必要です。更新トークンを取得するには:
- Google Cloud コンソールでアプリに移動します。
- [認可] を選択します。
- [OAuth 2.0(3LO)] の横にある [構成] を選択します。
- リダイレクト URL には、https://example.com などのプレースホルダを使用します。
- 最初の認可フローで更新トークンを取得するには、認可 URL の scope パラメータに offline_access を追加します。例:
https://auth.atlassian.com/authorize?audience=api.atlassian.com&client_id=your_client_id**&scope=offline_access**%20read%3Ajira-user&redirect_uri=https%3A%2F%2Fyour-redirect-url&state=%24%7BYOUR_USER_BOUND_VALUE%7D&response_type=code&prompt=consent - 認可されると、リダイレクト URL にリダイレクトされます。アドレスバーに「code」というクエリ パラメータが表示されます。この値をメモしておきます。
curl や Postman などのツールを使用して、次のキーを含む JSON オブジェクトを使用し、https://auth.atlassian.com/oauth/token に POST リクエストを送信します。
grant_type: authorization_codeclient_id: クライアント IDclient_secret: クライアント シークレットcode: 手順 6 で取得したコードredirect_uri: リダイレクト URI
レスポンスで refresh_token が返されます。
更新トークンの詳細については、Atlassian のドキュメントで Implementing the refresh token flow をご覧ください。
Jira アクションを構成する
このセクションでは、アクション用の Jira コネクタを作成し、アシスタントで Jira アクションを有効にする方法について説明します。
始める前に
アクションを構成する前に、次の手順が完了していることを確認してください。
- プロジェクトをアシスタント アクションの許可リストに追加する必要があります
- Jira 管理者が Jira で認証と権限を設定するの手順を完了し、次の情報を提供している必要があります。
- クライアント ID
- クライアント シークレット
- インスタンス ID
- 更新トークン。 Google Cloud コンソールではなく API を介して Jira アクションを作成する場合にのみ必要です。Google では、 Google Cloud コンソールからアクションを作成することをおすすめします。
Google Cloud コンソールで Jira アクションを構成する
Google では、 Google Cloud コンソールからアクションを作成することをおすすめします。
コンソールを使用してアプリにアクションを追加する手順は次のとおりです。
- Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
- アプリに移動します。
- ナビゲーション メニューで [アクション] をクリックします。
- Jira の場合は、[接続] をクリックします。
- Jira インスタンスを選択します。
- プロンプトが表示されたら、コネクタの認証情報を入力します。これは、インスタンスがまだアクション用に構成されていない場合にのみ必要です。
- 有効にするアクションを選択します。
- [設定を終了] をクリックします。アクションが [アクション] ページに表示されます。
API を使用して Jira アクションを作成して有効にする
Google では、 Google Cloud コンソールでアクションを作成することをおすすめします。API を使用してアクションを作成する必要がある場合は、次の操作を行います。
Jira コネクタを作成し、検索用に構成します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-GFE-SSL: yes" \ -H "X-Goog-User-Project: PROJECT_NUMBER" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global:setUpDataConnector" \ -d '{ "collectionId": "COLLECTION_ID", "collectionDisplayName": "COLLECTION_DISPLAY_NAME", "dataConnector": { "dataSource": "jira", "params": { "client_id": "{Client ID of your Jira integration}", "client_secret": "{Client Secret of your Jira integration}", "refresh_token": "{Refresh Token of your Jira integration}", "instance_id": "{Your Jira Cloud instance ID}" }, "refreshInterval": "{ >1800 }s", "entities": [ { "entityName" : "project", "params" : { "inclusion_filters" : {} } }, { "entityName": "{attachment/comment/issue/worklog}" // Optional, you can build up to 4 different entities } ], "syncMode": "PERIODIC" } }次のように置き換えます。
PROJECT_NUMBER: Google Cloud プロジェクトの数。COLLECTION_ID: コレクションの ID。COLLECTION_DISPLAY_NAME: コレクションの表示名。
Jira コネクタにアクション構成を含めます。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global/collections/COLLECTION_ID/dataConnector?update_mask=action_config" \ -d '{ "name": "projects/PROJECT_NUMBER/locations/global/collections/COLLECTION_ID/dataConnector", "action_config": { "is_action_configured": true, "action_params": { "client_id": "{Client id from Jira integration}", "client_secret": "{Client secret from Jira integration}", "instance_uri": "{instance URI of your Jira instance}" } } }'アシスタントで Jira アクションを有効にします。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token --project "<var>PROJECT_NUMBER</var>")" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant?update_mask=enabledActions" \ -d '{ "name": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant", "enabledActions": { "projects/PROJECT_NUMBER/locations/global/collections/CONNECTOR_ID/dataConnector": { "actionInfo": [ { "actionName": "create_jira_issue", "actionDisplayName": "Create Jira Issue" } ] } } }'次のように置き換えます。
PROJECT_NUMBER: Google Cloud プロジェクトの数。APP_ID: アプリの ID。CONNECTOR_ID: 前の手順で生成したコネクタのコレクション ID。
アクションを追加すると、アシスタントはアプリ内でエンドユーザーに代わってアクションを実行できるようになります。ユーザーがアシスタントに Jira Cloud アクションの実行を初めてリクエストすると、Atlassian アカウントへのアクセスを承認するよう求められます。