백로그에서 웹훅까지 GiitHub에 issue 등록
하고 싶은 일.
백로그를 과제 관리로 하고 Giithub는 엔지니어의 내부 임무 관리를 동시에 사용한다.
백로그 고객이 의뢰할 때 내부용 issue를 수동으로 설정해서 자동화하려고 했습니다.
프로비저닝
도해할 정도는 아니야.
백로그 측
프로젝트 설정 ->Webhook에서 스크립트의 URL 지정
항목에 대한 관리자 권한이 없으면 설정할 수 없습니다.
자동사냥할 스크립트
날아오는 JSON 처리, Curl로 API 두드리기
사건과 창고에 따라 바뀐 곳.
const BACKLOG_PROJECT = "PRJNAME";
const GHE_TOKEN = "xxxxxxxxxxxxx";
const GHE_ORGANIZATION = "xx";
const GHE_REPO = "repository name";
const GHE_URL = 'https://xxxx.xxx';//GitHub EnterpriseのURLを指定
Curl로 GiithubAPI를 두드리는 곳.현재 API의 끝점은 새로 등록된 경우에만 이동하기 때문입니다.
POST /repos/:owner/:repo/issues
https://developer.github.com/v3/issues/#create-an-issue /*
GHEのAPIを叩く
*/
$data = [
'title' => '🔗 backlog - '. $summary,
'body' => 'from https://[xxxx].backlog.jp/view/' . $projectKey . '-' . $key_id . "\n\n" . $description,//backlogの本文プラスURL
// 'assignees' => [ 'onuma' ]
];
$header = [
'Authorization: token '. GHE_TOKEN, // tokenをヘッダに含める
];
//特定のプロジェクトだったら
if( $projectKey === BACKLOG_PROJECT){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, GHE_URL.'/api/v3/repos/'. GHE_ORGANIZATION. '/' . GHE_REPO . '/issues');//apiのエンドポイント
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); // post
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); // jsonデータを送信
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // リクエストにヘッダーを含める
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
$result = json_decode($body, true);
curl_close($curl);
}
GiitHub 측
인증을 위한 액세스 토큰 생성
참조 링크
아래 내용을 참고하게 해 주세요.
https://gist.github.com/hissy/6a114d0d9a85f3338aed
https://qiita.com/re-24/items/bfdd533e5dacecd21a7a
https://developer.github.com/v3/issues/#create-an-issue
향후의 발전
지금 서버가 필요한 것은 불편합니다. Google의 Cloud functions를 사용하십시오.
고쳐 쓰고 싶습니다.
Reference
이 문제에 관하여(백로그에서 웹훅까지 GiitHub에 issue 등록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lilysweet/items/b1faf4b68e188e2b1111텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)