[JIRA] Github - JIRA담당자 자동화

서성원·2025년 6월 2일

jira

목록 보기
2/2
post-thumbnail

Jira 이슈 담당자 자동화

이전 포스팅에서는 깃허브 이슈와 지라 이슈 자동화에 대한 워크플로우를 만들어봤습니다. 하지만 지라 이슈의 담당자를 직접 설정해줘야 하는 문제가 있었습니다. 이 부분을 자동화하지 않으면 워크플로우의 의미가 없다고 생각했어요. 그래서 이번엔 이슈 담당자 자동화를 해 보았습니다.

이슈 템플릿에 Assignee추가

먼저 이슈 템플릿에서 Assignee를 드롭박스에서 선택할 수 있도록 만들었어요. 이슈 템플릿 링크

터미널에서 accountId 찾기

깃허브 Assignee에 나오는 이름은 깃허브 닉네임이에요. 이것은 Jira에서 호환이 안 되겠죠. Jira에서 담당자를 설정하려면 각 담당자의 accountId를 알아야 합니다. 터미널에서 아래 명령어를 입력하면 기본적으로 50명의 사용자의 정보를 반환합니다.

curl -u <email>:<api_token> "https://<your-domain>.atlassian.net/rest/api/3/user/search"

원래는 제일 뒤에 /query=사용자이름으로 찾으려 했지만 잘 안 되었어요. 한글 문제인가 싶어서 영어를 입력했는데도 404가 뜨더군요. 그래서 위 명령어를 입력해서 손수 노가다로 accountId를 찾았습니다.

깃허브 지라 간의 매핑 테이블 만들기

위에서 찾은 accountId와 깃허브 Assignee를 매핑한 테이블을 만들 차례입니다. 이것은 지라 워크플로우에 들어갈 필수적인 요소에요.

{
  "seongwon030": "accountId1",
  "oesnuj": "accountId2",
  "Zepelown": "accountId3",
  "Due-IT": "accountId4",
  "PororoAndFriends": "accountId5",
  "lepitaaar": "accountId6",
}

이렇게 json형식으로 만들어줍니다. accountId부분은 임의로 넣었어요.

accountId 보안 위험

accountId를 깃허브에 노출하면 해당 accountId로 api요청 시 displayName이 노출될 우려가 있습니다. 사용자 실명 유추가 가능한 것이죠. 또한, 조직 내 특정 유저가 존재한다는 사실이 노출되어 피싱 공격이 가능합니다.

repository secret으로 설정

repository -> setting -> Secrets -> Secrets and variables -> Actions 으로 이동한 다음, New repository secret 를 클릭합니다.

기존 워크플로우 수정

common-jira-create.yml

      - name: Map GitHub username to Jira accountId
        id: assignee
        run: |
          echo '${{ secrets.JIRA_USER_MAP }}' > user_map.json
          FORM_ASSIGNEE="${{ steps.issue-parser.outputs.issueparser_assignee }}"
          ACCOUNT_ID=$(jq -r --arg user "$FORM_ASSIGNEE" '.[$user]' user_map.json)
      
          echo "Resolved accountId for $FORM_ASSIGNEE → $ACCOUNT_ID"
          echo "accountId=$ACCOUNT_ID" >> $GITHUB_OUTPUT
  1. secrets.JIRA_USER_MAP이라는 JSON 문자열을 user_map.json으로 저장합니다.
  2. GitHub 이슈 템플릿에서 추출한 assignee 값을 $FORM_ASSIGNEE에 저장합니다.
  3. jq를 사용해서 해당 사용자명의 Jira accountId를 추출합니다.
  4. GITHUB_OUTPUT에 accountId를 저장해서 다음 step에서 사용 가능하게 만듭니다.

중요한 것은 Login 워크플로우 후에 해당 작업이 수행되어야 한다는 것입니다. 로그인을 하지 않는다면 accountId를 식별하지 못 할 것입니다.

워크플로우 테스트

먼저 이슈를 생성합니다.

이제 지라에 이슈가 생성되었는지 확인합니다. 아래처럼 이슈가 잘 생성된 것을 확인할 수 있습니다.

마지막으로 담당자도 잘 할당되는 것을 볼 수 있습니다.

profile
Frontend Developer

2개의 댓글

comment-user-thumbnail
2025년 7월 3일

안녕하세요 성원님, Jira 관련 2개글 보고 프로젝트에 도입 성공했습니다!! 감사합니다

1개의 답글