플랫폼 연동
플랫폼 연결은 연동 탭에서 합니다. 연결된 플랫폼이 없으면 "플랫폼 추가" 화면으로, 하나라도 있으면 "내 연동" 화면으로 들어갑니다.
연결하는 법
연결 방식 선택 다이얼로그
생각보다 간단합니다. 세 단계면 됩니다.
- "플랫폼 추가"에서 연결할 플랫폼을 고릅니다.
- 연결 방식 선택 다이얼로그가 뜨면 OAuth(브라우저 로그인) 또는 토큰 직접 입력 중 하나를 고릅니다.
- OAuth면 로그인 창에서 권한을 허용하면 끝, 토큰 방식이면 발급한 토큰과 필요한 값을 입력합니다.
대부분은 OAuth가 가장 편합니다. 다만 조직 정책으로 OAuth를 못 쓰거나 토큰을 선호하신다면 토큰 방식을 쓰면 됩니다. 참고로 Slack은 OAuth 연결만 지원하므로, "Slack 연결"을 누르면 바로 로그인 창이 뜹니다.
여덟 개 플랫폼 아래에는 Custom Webhook이 따로 한 줄 놓여 있습니다. 이건 BugShot이 준비해 둔 서비스가 아니라 직접 만든 서버로 리포트를 보내는 길이라, 브랜드 목록과 섞이지 않게 구분선 아래에 두었습니다. Custom Webhook 가이드에서 준비와 연결 방법을 안내합니다.
플랫폼별 연결 정보
| 플랫폼 | 연결 방식 | 토큰 입력 시 필요값 | 토큰 발급 |
|---|---|---|---|
| Jira | OAuth / API Token | baseUrl, email, apiToken | id.atlassian.com → API tokens |
| GitHub | OAuth / PAT | PAT | github.com/settings/tokens |
| Linear | OAuth / API Key | apiKey | linear.app 보안 설정 |
| Notion | OAuth / Internal Token | token | notion.so 통합(Integration) |
| GitLab | OAuth / PAT | instanceUrl(self-managed만 — https 주소만 받습니다. localhost는 예외), pat | gitlab.com PAT |
| Asana | OAuth / PAT | pat | app.asana.com my-apps |
| ClickUp | OAuth / API Token | pat | app.clickup.com 설정 > Apps |
| Slack | OAuth 전용 | — (토큰 입력 없음) | — |
| Custom Webhook | 주소 직접 입력 | 받을 서버 주소(https만 — 사내망·localhost는 http도 가능), 시크릿(선택) | — (직접 만든 서버) |
Slack — 채널·DM으로 가볍게 공유
Slack은 이슈 트래커가 아니라 메시지 앱이라, 다른 플랫폼과는 조금 다르게 동작합니다. 정식 이슈로 올리기 전에 "이거 깨졌어요" 하고 팀 채널에 먼저 던지고 싶을 때 딱 맞습니다.
- 본인 계정으로 전송: OAuth로 연결하면 본인 이름으로 메시지를 보냅니다(봇이 아니라요). 그래서 채널에 따로 봇을 초대할 필요가 없습니다.
- 어디로 보낼지: 공개 채널·비공개 채널은 물론 DM까지, 본인이 참여 중인 대화면 어디든 고를 수 있습니다. (참여하지 않은 채널은 목록에 뜨지 않습니다.)
- 제목은 채널에, 상세는 스레드로: 제목이 채널에 메시지로 올라가고, 환경 정보·스타일 변화·로그 요약 같은 상세 내용과 스크린샷·영상·로그 파일은 그 메시지의 스레드 답글로 정리됩니다. 채널 타임라인은 제목 한 줄로 깔끔하게 유지됩니다.
- 멘션: 호명할 멤버를 고르면 메시지에서
@이름으로 불러 알림을 보냅니다.
Slack은 메시지라 "열림/닫힘" 같은 상태가 없습니다. 그래서 이슈 목록에는 "전송됨" 표시만 뜨고, 누르면 해당 메시지로 바로 이동합니다.
나중에 정식 트래커로 승격하기
Slack 카드의 자세히·트래커로 등록 버튼
Slack으로 가볍게 공유했는데 "이건 정식 이슈로도 남겨야겠다" 싶을 때가 있죠. 걱정 마세요. Slack으로 공유한 이슈는 캡처 이미지·영상·로그 같은 원본 데이터를 그대로 보관해 둡니다. 그래서 Jira·GitHub 같은 트래커를 하나라도 연결해 두면, 이슈 목록에서 그 Slack 카드 오른쪽에 자세히·트래커로 등록 두 버튼이 나타납니다.
- 자세히: 보관해 둔 캡처·로그를 다시 열어 확인합니다. 여기서 제목과 본문 섹션 오른쪽의 연필 모양 수정 버튼을 눌러 트래커로 옮기기 전에 문구를 다듬을 수도 있습니다. Slack에는 가볍게 공유하고, 정식 이슈에는 정돈된 내용을 담고 싶을 때 유용하죠. 다만 이렇게 고친 내용은 이미 보낸 Slack 메시지에는 반영되지 않고, 트래커로 등록할 때만 반영됩니다.
- 트래커로 등록: 제출 창이 열립니다(이때 Slack 탭은 빠집니다). 원하는 트래커를 골라 정식 이슈로 옮기면, 그 카드는 일반 이슈로 바뀌고 Slack 이력은 정리됩니다. 이때 원래 Slack 메시지 스레드에도 등록된 트래커 이슈 링크가 댓글로 남아, 그 대화를 함께 보던 팀원도 "이 버그는 여기 정리됐구나"를 바로 알 수 있습니다.
트래커를 아직 연결하지 않았다면 두 버튼은 보이지 않고, 기존처럼 "전송됨" 표시와 메시지 바로가기만 유지됩니다. 나중에 트래커를 연결하면 같은 카드에 버튼이 자연스럽게 나타납니다. 카드 본문을 누르면 언제나 Slack 메시지로 이동하는 동작은 그대로니 안심하세요.
복구 안내가 남아 있으면 트래커로 등록은 잠깁니다. 등록된 Slack 메시지를 확인하고 로컬 사본 삭제로 해당 복구를 마치면 다시 승격할 수 있습니다. 이 동작은 승격용 원본을 지우지 않습니다. 단순히 보존 기한이 지났거나 등록 여부를 모르는 상태에서는 차단이 풀리지 않습니다.
첨부 결과가 다르게 보이는 이유
파일 업로드, 이슈에 연결, 본문 링크 반영은 별도 단계입니다. 파일이 첨부됐어도 본문 링크가 빠지면 그 상태를 구분해 안내합니다. Linear·Notion처럼 이슈 생성 전에 파일을 준비하는 경로에서는 그 단계가 실패하면 이슈가 만들어지지 않고 제출 실패로 남을 수 있습니다. 이미 생성된 이슈의 복구 안내가 보이면 새 이슈를 만들기보다 이슈 트래킹에서 기존 목적지와 보존 파일을 먼저 확인해 주세요.
플랫폼별 재시도 차이
첨부 재시도는 어느 플랫폼에서나 이미 등록된 이슈(또는 메시지)만 갱신하고 새로 만들지 않습니다. 다만 파일이 이슈에 닿는 길이 플랫폼마다 달라서, 이어서 하는 단계도 조금씩 다릅니다. 같은 계정으로 연결돼 있어야 시작합니다.
| 플랫폼 | 다시 시도하면 |
|---|---|
| GitHub·GitLab | 파일을 올린 뒤 이슈 본문의 해당 자리에 링크를 채웁니다. 파일은 본문 링크로만 이슈에 닿기 때문에, 본문 자리가 기록되지 않은 이전 기록은 다운로드만 가능합니다. GitHub에서 업로드가 GitHub에 닿기 전에 끊겼다면(업로드 탭이 다른 페이지로 이동하는 등) 다시 올립니다. |
| Jira | 이슈에 첨부를 올리고 설명을 갱신합니다. 결과를 모르는 업로드는 같은 이름의 첨부가 이미 있는지 먼저 확인하고, 없을 때만 올립니다. |
| Linear | 파일 업로드 → 이슈에 첨부 연결 → 본문 링크 순으로, 끝난 단계는 건너뛰고 이어서 합니다. |
| Asana | Jira처럼 같은 이름의 첨부를 먼저 확인한 뒤 올리고, 이슈 설명에 링크를 채웁니다. |
| ClickUp | 파일을 올리고 본문을 갱신합니다. 결과를 모르는 업로드는 이름으로 대조할 수 없어 다시 보내지 않으니, 이슈를 확인해 주세요. |
| Notion | 본문 100블록 제한으로 잘렸거나 연결되지 않은 파일을 원래 페이지 끝에 이어 붙입니다. 새 페이지는 만들지 않습니다. 올라가지 못했거나 연결 전에 만료된 업로드는 다시 올리지만, 페이지에 붙였는지 확인할 수 없는 경우에는 중복을 피하려고 다시 붙이지 않습니다. |
| Slack | 실패한 파일을 원래 메시지의 스레드에 다시 올립니다. 새 메시지는 보내지 않습니다. 스레드에 붙었는지 확인할 수 없으면 중복을 피하려고 다시 보내지 않습니다. |
| Custom Webhook | 지원하지 않습니다. 파일이 요청 한 번에 함께 나가 일부만 성공했는지 알 수 없으니, 다운로드로 처리해 주세요. |
결과를 확인할 수 없는 업로드는 중복 첨부를 피하려고 대부분 자동으로 다시 보내지 않고 결과 확인 필요로 안내합니다. 예외는 같은 이름을 먼저 확인하는 Jira·Asana, 이슈에 붙기 전에 폐기되거나 만료되는 Notion·Slack의 업로드, GitHub에 닿기 전에 끊긴 GitHub 업로드입니다. 자세한 사용법과 재시도할 수 없는 경우는 이슈 트래킹에 있습니다.
연결 후 기본값
연결 후 기본값 설정
연결하면 그 플랫폼에서 이슈를 만들 위치의 기본값을 골라 둘 수 있습니다(Custom Webhook은 보낼 곳이 주소 하나뿐이라 따로 고를 위치가 없습니다) — Jira·GitLab의 프로젝트, GitHub의 저장소, Linear의 팀, Notion의 데이터베이스, Asana의 프로젝트, ClickUp의 리스트(워크스페이스 → 스페이스 → 리스트 순으로 선택), Slack의 채널처럼요. 한 번만 정해 두면 이슈를 쓸 때마다 다시 고르지 않아도 되니 한결 편합니다.
위치 말고 이슈에 채워질 값도 미리 정해 둘 수 있습니다. 담당자는 Jira·GitHub·GitLab·Linear·Asana·ClickUp에서 지정할 수 있고(Notion·Slack은 담당자 개념이 없습니다), 그 밖에 라벨(GitHub·GitLab·Linear)이나 기본 이슈 타입(Jira)도 함께 골라 둘 수 있습니다. 정해 두면 이슈를 쓸 때 그 값이 미리 채워져 있습니다 — 다만 직전에 제출할 때 고른 값이 있으면 그쪽이 우선입니다. 매번 같은 사람에게 맡기다가 한 번 다른 사람에게 맡기면, 그다음엔 방금 고른 사람이 이어서 채워지는 식이죠.
GitHub 저장소는 본인 것이 아니어도 고를 수 있습니다. 검색창에 이름만 쳐도 되고,
facebook/react처럼 소유자를 함께 적거나 저장소 주소를 그대로 붙여 넣어도 찾아 줍니다(주소 뒤에/issues같은 꼬리가 붙어 있어도 괜찮습니다). 오픈소스 저장소에 제보할 때 쓰시면 됩니다. 다만 이슈를 받지 않는 저장소는 목록에이슈 꺼짐·보관됨배지가 붙고 고를 수 없습니다 — 골라 두었다가 등록할 때 거절당하는 것보다 미리 보이는 편이 나으니까요.
담당자 후보를 불러오려면 위치를 먼저 정해야 합니다(GitHub은 저장소, GitLab은 프로젝트, Linear는 팀, Asana·ClickUp은 워크스페이스). 아직 안 골랐다면 담당자 칸이 "먼저 선택하세요"라고 안내하며 비활성 상태로 기다립니다. Jira만 예외라서, 프로젝트를 고르기 전에도 담당자를 검색할 수 있습니다.
한 가지 알아 두시면 좋은 점이 있습니다. 위치를 바꾸면 그 아래 담당자·라벨 기본값은 자동으로 비워집니다. 저장소나 프로젝트가 달라지면 예전에 골라 둔 담당자는 그쪽 멤버가 아닐 수 있기 때문인데요, 엉뚱한 사람이 남아 있다가 조용히 배정되는 것보다 낫다고 판단했습니다. 새 위치에서 다시 골라 주세요.
Jira는 프로젝트를 제출할 때도 바꿀 수 있습니다. 여기서 고른 프로젝트는 "평소 쓰는 곳"이고, 이슈를 쓰다가 제출 창의 맨 위 프로젝트 칸에서 다른 프로젝트로 옮겨 등록할 수 있습니다. 이때 연결 설정은 그대로 남으니, 여기 정해 둔 기본 프로젝트가 바뀌지는 않습니다. 프로젝트를 옮기면 이슈 타입·담당자·상위 에픽·연결 이슈는 비워집니다(그 프로젝트에 없는 값일 수 있어서요) — 우선순위와 참조는 프로젝트와 상관없는 값이라 그대로 남습니다. 옮긴 직후에는 이슈 타입 목록이 자동으로 열려 바로 고를 수 있고, 고르기 전까지는 등록 버튼이 잠깁니다. 그리고 위의 "직전에 제출할 때 고른 값이 우선" 규칙은 프로젝트에도 똑같이 적용돼서, 다음에 이슈를 쓰면 방금 등록한 프로젝트로 열립니다.
스프린트를 쓰는 프로젝트라면 제출할 때 스프린트도 고를 수 있습니다. 제출 창에서 이슈 타입 바로 아래에 스프린트 칸이 나타나고, 진행 중이거나 앞으로 예정된 스프린트 중에서 고르면 됩니다. 선택 사항이라 비워 둔 채 등록해도 괜찮습니다. 이 칸은 BugShot이 Jira에 "이 프로젝트와 이슈 타입에 스프린트 필드가 있나요?"라고 물어본 뒤 "있다"는 답을 받았을 때만 보입니다 — 그래서 칸반 보드만 쓰거나 아직 보드를 연결하지 않은 프로젝트에서는 아예 나타나지 않습니다. 보드가 여러 개인 프로젝트라면 스프린트 이름 아래에 어느 보드의 스프린트인지도 함께 보여 줍니다. 여기에도 "직전에 고른 값이 우선" 규칙이 이어져서 다음 이슈에 같은 스프린트가 미리 채워지는데, 그 사이 스프린트가 종료됐다면 알아서 비워집니다.
Jira를 OAuth(브라우저 로그인)로 연결해 두셨다면 스프린트 목록이 비어 보일 수 있습니다. 스프린트를 읽으려면 Jira 권한이 하나 더 필요한데, 이미 연결해 둔 계정은 연결하던 시점의 권한만 가지고 있기 때문입니다. 아래 다시 연결하기대로 Jira를 한 번 다시 연결해 주시면 목록이 제대로 뜹니다. API 토큰으로 연결하셨다면 해당되지 않습니다.
다시 연결하기
연결이 끊기거나 권한을 새로 받아야 할 때는 "플랫폼 추가"에서 그 플랫폼을 다시 누르면 됩니다. 이미 연결된 플랫폼은 버튼 문구가 {플랫폼} 다시 연결로 바뀌어 있습니다. 먼저 연결을 끊을 필요는 없습니다.
인증이 만료돼 안내 창이 떴을 때는 더 간단합니다. 그 창의 다시 연결을 누르면 연동 탭으로 옮겨 가면서 해당 플랫폼의 연결 방식 창이 바로 열립니다. 지금 처리하고 싶지 않다면 닫기를 누르면 됩니다.
다시 연결하면 그 플랫폼의 기본값(위치·담당자·라벨 등)이 초기화되니, 연결 후에 한 번 더 정해 주세요. 같은 계정으로 다시 연결한 거라면 직전에 제출할 때 골랐던 값들은 그대로 남습니다 — 다른 계정으로 연결한 경우에만 그 값들도 함께 초기화됩니다. 안내 문구가 창에 함께 표시되니 눌러서 확인하고 진행하시면 됩니다.
연결 해제
"내 연동"에서 플랫폼별로 연결을 끊을 수 있고(플러그 해제 아이콘), 모든 연결을 한 번에 해제하는 것도 가능합니다. 해제해도 이미 제출한 이슈에는 아무 영향이 없으니 안심하세요.