상황
Swarm config.php 에 Jira 관련 정보를 아래와 같이 제대로 입력했지만 Jira 에 링크가 걸리지 않는 경우가 있다.
'jira' => array(
'host' => 'https://xxxxxxxxx.atlassian.net', // 1. Jira Cloud 주소
'user' => 'your_emain@domain', // 2. Jira 로그인 이메일
'password' => 'Jira API Tokken', // 3. Jira API 토큰
'job_field' => 'Job',
'link_to_jobs' => true,
'delay_job_links' => 60,
'relationship' => '',
),
테스트
여러가지 원인이 있을 수 있겠지만 일단 jiratest.php 로 테스트를 해보는 것이 좋다.
Perforce 에서 제공하는 Jira Test php 파일을 받는다.
cd /opt/perforce/swarm
wget https://swarm.workshop.perforce.com/downloads/guest/joel_brown/swarm/jiratest/jiratest2020.php -O jiratest.php
그 후, Swarm의 config.php 파일을 테스트용으로 복제한다.
cd /opt/perforce/swarm
cp data/config.php jiraconfig.php
테스트 파일을 실행.
php jiratest.php
root@ubuntu:/opt/perforce/swarm# php jiratest.php
JIRA host: https://xxxxxxxxxxx.atlassian.net
Making request to https://xxxxxxxxxxx.atlassian.net/rest/api/latest/project
Status code: 200 OK
JIRA Projects returned: 0
200 코드가 반환 되는 것으로 봐서 Jira Cloud 사이트 접속엔 문제가 없다.
즉, Jira URL, Jira Email, API Tokken 이 정상인데, Projects 가 0 으로 나온다.
Jira Cloud Free Plan 에서는 사용자별로 프로젝트 접근 권한을 설정할 수 없기 때문에
무조건 모든 유저가 모든 프로젝트에 접근이 가능한 구조이다. (접근 가능한 프로젝트가 절대 0 이 나올 수가 없다.)
문제 원인
이 경우의 원인은 Swarm - Jira 연동에 사용했던 Jira 계정이 일반적인 이메일로 가입된 계정이 아니라
Google SSO 계정을 사용했기 때문이었다.
Google 이나 MS 계정 대신 일반 이메일로 계정 생성 후, 다시 API Tokken 을 생성해서 연동을 해보니,
정상적으로 프로젝트가 조회 되었다.
root@ubuntu:/opt/perforce/swarm# php jiratest.php
JIRA host: https://xxxxxxxxxx.atlassian.net
Making request to https://xxxxxxxxxx.atlassian.net/rest/api/latest/project
Status code: 200 OK
JIRA Projects returned: 5
AP TEST PROJ TEST2 TEST3
API 사용 시에는 이메일로 가입된 계정만 사용하도록 하자.