atlassian: 읽기 전용 Jira + Confluence
사용 시점
- 사용자가 티켓(
PROJ-123)을 언급하고 실시간 상태, 담당자, 링크 또는 최근 댓글이 필요할 때 - 새 티켓 폴더에 XML이 필요할 때:
data/changes/<ticket-소문자>/<TICKET>.xml - Confluence에도 있는 문서를 편집하기 전: 먼저 diff 비교
도구
프로젝트 저장소 내 data/changes/tools/atlassian/atl.py (코스 사본: ejemplos/metodologia/tools/atlassian/).
Python 3.10+, 표준 라이브러리만 사용 (pip 설치 불필요). 저장소 루트에서 실행. macOS, Linux 또는 WSL에서는 python3 사용; Windows에서는 py 또는 python 사용.
python3 data/changes/tools/atlassian/atl.py jira issue PROJ-123 # 유형, 상태, 요약, 담당자, 링크
python3 data/changes/tools/atlassian/atl.py jira search 'project = PROJ AND assignee = currentUser() AND statusCategory != Done'
python3 data/changes/tools/atlassian/atl.py jira links PROJ-123
python3 data/changes/tools/atlassian/atl.py jira comments PROJ-123 --last 3
python3 data/changes/tools/atlassian/atl.py jira xml PROJ-123 --out data/changes/proj-123/
python3 data/changes/tools/atlassian/atl.py confluence search 'title ~ "authoring" AND type = page'
python3 data/changes/tools/atlassian/atl.py confluence page <PAGE_ID> --body
python3 data/changes/tools/atlassian/atl.py confluence diff <로컬 .md/.html> <PAGE_ID>
종료 코드:
| 코드 | 의미 |
|---|---|
| 0 | 정상 |
| 2 | 인증 정보 누락 또는 잘못됨 (설정 참조) |
| 3 | HTTP 오류 |
| 4 | 찾을 수 없음 |
--json은 원시 JSON을 반환합니다. 스크립트 내부에서만 사용하고, 채팅에서는 간결한 기본 출력이 컨텍스트를 절약합니다.
설정 (머신당 한 번, 사람이 수행)
~/.config/<조직>/jira.env (Windows: %USERPROFILE%\.config\<조직>\jira.env; ATLASSIAN_ENV_FILE로 경로 재정의 가능) 파일을 생성하고 세 줄을 추가합니다:
JIRA_BASE_URL=https://<your-site>.atlassian.net
JIRA_EMAIL=<Atlassian 로그인 이메일>
JIRA_API_TOKEN=<id.atlassian.com → Security → API tokens에서 생성한 토큰>
파일 권한을 사용자만 읽을 수 있도록 제한합니다 (macOS/Linux에서 chmod 600). 자신의 터미널에서 직접 작성하고, 절대 토큰을 채팅이나 data/ 아래 파일에 붙여넣지 마십시오. 같은 토큰으로 Confluence도 읽을 수 있습니다. 확인 명령어: … atl.py jira issue PROJ-123. 종료 코드 0이면 정상, 2이면 파일이 없거나 잘못된 것입니다.
엄격한 규칙
- 읽기 전용.
atl.py는 GET 요청만 보냅니다 (네트워크 함수 하나; 테스트에서 검증).- Jira 티켓 생성, 수정, 상태 변경, 댓글 작성은 사용자의 몫입니다. 텍스트를 작성하면 사용자가 직접 게시합니다.
- 기존 Confluence 페이지 업데이트는
confluence_write.py를 사용합니다:pull→plan(백업 + 가시 텍스트 diff + 확인 토큰) → 사용자가 diff를 읽고 해당 페이지를 확인 →apply --confirm <토큰>. 사용자가 명시적으로 해당 페이지 업데이트를 요청할 때만 실행합니다.apply는 토큰, 본문 파일 또는 라이브 페이지 버전이 plan 이후 변경되면 거부하며, 페이지를 다시 읽어옵니다.
- 절대 토큰을 출력, 붙여넣기 또는 로그에 기록하지 마십시오.
jira.env의 내용도 마찬가지입니다. - 티켓은 키로 인용합니다. 외부 텍스트는 대소문자 태그와 티켓 키를 인용하고, 로컬 파일 경로는 사용하지 않습니다.