Jira Cloud 작업 추가

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 개발자 콘솔을 통해 클라이언트 ID 및 클라이언트 보안 비밀번호를 만들고, 필요한 OAuth 2.0 범위를 구성하고, 사용자 권한을 설정하는 방법을 설명합니다. 마지막으로 인스턴스 URL과 ID를 검색하고, 역할을 구성하고, Jira Cloud와 Google 사이에 데이터를 읽고 쓰기 위해 인증을 수행합니다.

클라이언트 ID와 클라이언트 보안 비밀번호 만들기

  1. developer.atlassian.com에 로그인합니다.
  2. 오른쪽 상단에서 프로필 아이콘을 클릭하고 개발자 콘솔을 선택합니다.
  3. 만들기를 클릭하고 OAuth 2.0 통합을 선택합니다.
  4. 앱 이름을 입력합니다.
    • 이용 약관 체크박스를 선택합니다.
    • 만들기를 클릭합니다.
  5. 승인을 클릭합니다.
  6. 승인 유형 테이블에서 OAuth 2.0(3LO)에 대해 추가를 선택합니다.
  7. 콜백 URL 필드에 https://vertexaisearch.cloud.google.com/oauth-redirect을 입력한 후 변경사항 저장을 클릭합니다.
  8. 권한을 클릭합니다.

    1. Jira API로 이동하고 추가를 클릭한 후 구성을 클릭합니다.
    2. 기존 범위 탭으로 이동하고 범위 수정을 클릭합니다. 다음 범위를 선택한 다음 변경사항을 저장합니다.

      • 기존 범위:

        • read:jira-work
        • read:jira-user
        • write:jira-work
      • 세분화된 범위:

        • read:user:jira
  9. 배포판을 클릭하고 수정을 선택하고, 다음을 수행합니다.

    1. 먼저 공유 라디오 버튼을 선택하여 다른 필드 수정을 사용 설정합니다.
    2. 나머지 필드를 작성합니다.
      1. 공급업체에서 Google를 선택합니다.
      2. 개인정보처리방침https://policies.google.com을 입력합니다.
      3. 앱에서 개인 정보를 저장하나요?Yes를 선택합니다.
      4. 개인 정보 보고 API를 구현했음을 확인합니다 체크박스를 선택합니다.
    3. 변경사항 저장을 클릭합니다.
  10. 설정을 선택하여 클라이언트 ID클라이언트 보안 비밀번호을 복사합니다.

인스턴스 URL 및 인스턴스 ID 검색

인스턴스 URL을 가져오려면 다음 안내를 따르세요.

  1. atlassian.net으로 이동하고 관리자 계정으로 로그인합니다.
  2. 동기화할 앱을 선택합니다. 예를 들어 첫 번째 앱을 동기화합니다.
  3. 주소 표시줄에서 하위 도메인인 인스턴스 URL을 찾습니다.

인스턴스 ID를 가져오려면 다음 안내를 따르세요.

  1. 새 탭을 열고 인스턴스 URL을 복사한 후 /_edge/tenant_info를 인스턴스 URL에 추가합니다. 예를 들면 https://YOUR-INSTANCE.atlassian.net/_edge/tenant_info입니다.
  2. 링크로 이동하여 cloudId 값을 찾습니다. cloudId는 인스턴스 ID입니다.

권한 및 역할 설정

  1. 관리자 계정으로 atlassian.com에 로그인합니다.
  2. 왼쪽 상단에서 메뉴 아이콘을 클릭하거나 admin.atlassian.com으로 이동합니다.
  3. 관리 페이지에서 사용자 관리를 클릭하고 그룹 페이지로 이동합니다.
  4. 그룹 만들기를 클릭합니다. 그룹 이름을 입력하고 만듭니다.
  5. 새 그룹 페이지의 그룹 제품 액세스 섹션에서 그룹에 제품 추가를 클릭합니다.
  6. Jira의 경우 사용자 액세스 관리자를 제품 역할로 선택합니다.
  7. Jira 관리자의 경우 제품 관리자를 제품 역할로 선택하고 변경사항을 저장합니다.
  8. 그룹 페이지에서 그룹 멤버 추가를 클릭하고 커넥터가 인증을 수행할 사용자 또는 계정을 추가합니다.

갱신 토큰 획득

Google Cloud 콘솔을 사용하여 Jira 작업을 구성할 계획이라면 갱신 토큰을 획득할 필요가 없습니다.

API를 사용하여 Jira 작업을 구성해야 하는 경우 갱신 토큰이 필요합니다. 갱신 토큰을 가져오려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 앱으로 이동합니다.
  2. 승인을 선택합니다.
  3. OAuth 2.0 (3LO) 옆에 있는 구성을 선택합니다.
  4. 리디렉션 URL의 경우 https://example.com과 같은 자리표시자를 사용합니다.
  5. 초기 승인 흐름에서 새로고침 토큰을 가져오려면 승인 URL의 범위 매개변수에 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
  6. 승인이 완료되면 리디렉션 URL로 다시 리디렉션됩니다. 주소 표시줄에 'code'라는 쿼리 매개변수가 표시됩니다. 이 값을 기록해 둡니다.
  7. curl 또는 postman과 같은 도구를 사용하여 다음 키가 있는 JSON 객체와 함께 https://auth.atlassian.com/oauth/token으로 POST 요청을 전송합니다.

    1. grant_type: authorization_code
    2. client_id: 클라이언트 ID
    3. client_secret: 클라이언트 보안 비밀번호
    4. code: 6단계에서 가져온 코드
    5. redirect_uri: 리디렉션 URI
  8. 응답에 refresh_token이 표시됩니다.

새로고침 토큰에 대한 자세한 내용은 Atlassian 문서의 새로고침 토큰 흐름 구현을 참고하세요.

Jira 작업 구성

이 섹션에서는 작업을 위한 Jira 커넥터를 만들고 어시스턴트의 Jira 작업을 사용 설정하는 방법을 설명합니다.

시작하기 전에

작업을 구성하기 전에 다음 단계를 완료해야 합니다.

  • 프로젝트가 어시스턴트 작업의 허용 목록에 추가되어야 합니다.
  • Jira 관리자가 Jira에서 인증 및 권한 설정의 단계를 완료하고 다음 정보를 제공했습니다.
    • 클라이언트 ID
    • 클라이언트 보안 비밀번호
    • 인스턴스 ID
    • 갱신 토큰입니다. Google Cloud 콘솔이 아닌 API를 통해 Jira 작업을 만드는 경우에만 필요합니다. Google에서는 Google Cloud 콘솔을 통해 작업을 만드는 것이 좋습니다.

Google Cloud 콘솔에서 Jira 작업 구성

Google Cloud 콘솔을 통해 작업을 만드는 것이 좋습니다.

콘솔을 사용하여 앱에 작업을 추가하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Gemini Enterprise 페이지로 이동합니다.
  2. 앱으로 이동합니다.
  3. 탐색 메뉴에서 작업을 클릭합니다.
  4. Jira의 경우 연결을 클릭합니다.
  5. Jira 인스턴스를 선택합니다.
  6. 메시지가 표시되면 커넥터의 승인 정보를 입력합니다. 이 단계는 인스턴스가 아직 작업에 대해 구성되지 않은 경우에만 필요합니다.
  7. 사용 설정할 작업을 선택합니다.
  8. 설정 완료를 클릭합니다. 작업이 작업 페이지에 표시됩니다.

API를 사용하여 Jira 작업 만들기 및 사용 설정

Google Cloud 콘솔을 통해 작업을 만드는 것이 좋습니다. API를 사용하여 작업을 만들어야 하는 경우 다음 단계를 따르세요.

  1. 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: 컬렉션의 표시 이름입니다.
  2. 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}"
          }
        }
      }'
    
  3. 어시스턴트에서 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 계정에 대한 액세스 권한을 승인하라는 메시지가 표시됩니다.