Jira 프로젝트 생성
- 프로젝트 이름 - 사용자가 프로젝트 리스트에서 확인할 수 있는 프로젝트의 이름을 입력
- 프로젝트 키 - 이 프로젝트의 발행 키의 접두사로 사용된다.(예: 'TEST-100'). 알기 쉽고 입력하기 쉬운 것을 선택
- 프로젝트 리더 - 프로젝트의 관리자 역할을 수행하는 사용자를 선택
팀원 추가
프로젝트 설정 > Access
Jira & Github 연동
Github 설정
요즘은 안해도 된다고 하는데 일단 그냥 함
Jira Cloud와 연동할 Github OAuth 정보 생성
Organization 의 owner 권한 필요
Organization > Settings > Developer settings > OAuth apps
OAuth 예시
- Application name : OAuth 이름
- Homepage URL : 연결할 Jira Cloud URL 정보 ex) https://aaa.atlassian.net
- Authorization callback URL : callback 받을 URL 정보 ( Homepage URL과 동일 )
표시한 정보 확인 (따로 적어놓기)
Jira 설정
좌측 사이드바 DVSC 계정
연결할 Organization 맞는지 확인. 안맞으면 Select another organization
Configure 로 깃허브 이동해서 아래 사진처럼 뜨면 dvsc 계정 설정 필요 없음
(깃허브 Organization > Settings > Third-party Access > Github Apps 로도 접근 가능)
2024.11 chat-gpt
현재 GitHub의 Third-party Access > GitHub Apps 섹션에서 Jira 앱이 이미 승인된 상태라면, Jira와 GitHub 조직이 OAuth 연동을 통해 자동으로 연결된 것입니다. Jira Cloud는 최신 버전에서 GitHub와의 통합을 위해 이러한 자동 설정 방식을 선호하기 때문에, 수동으로 Client ID와 Secret을 입력하지 않아도 되는 경우가 많습니다.
짜증쓰. 예전 블로그는 다 설정하라길래 엄청 찾아봤네
Jira – Github 연동 확인
Jira 티켓 ID를 커밋 메시지, 이슈 제목, 브랜치 이름에 포함하면 해당 활동이 Jira에서 자동으로 연결되어 확인 가능
Jira 좌측 사이드 메뉴의 백로그, 보드, 이슈 등의 메뉴에서 확인 가능
이슈 메뉴 없으면 필터에서 설정
한번 해주면 계속 뜸
Jira 백로그 생성
시작 눌러서 대충 설정 (테스트니까)
시작하면 보드로 이동해서 생성한 백로그 확인 가능
생성된 이슈 키 포함하여 커밋 or 브랜치 생성 or 이슈 생성 or Pull Request 생성
이슈키
BIT-1
샘플 커밋 메시지
git commit -m "BIT-1 <message>"
샘블 브랜치 생성 메시지
git checkout -b BIT-1-연동-테스트
git checkout -b BIT-1-연동-테스트
브랜치 하나 더 만들어서 풀리퀘 생성 테스트 > Jira '코드' 에서 확인 가능
레포지토리 바로가기 추가
이슈(Issue)나 풀 리퀘스트(Pull Request)를 생성할 때 항상 "BIT-" 를 앞에 붙이도록 설정
현재 프로젝트 티켓 : BIT
GitHub Issue 및 Pull Request 템플릿 사용
템플릿에 "BIT-"를 미리 포함하여 사용자가 작성할 때 앞에 붙여 넣도록 유도
이슈 템플릿 생성:
- 레포지토리의 루트 디렉토리에 .github/ISSUE_TEMPLATE/ 폴더 생성
- 그 안에 issue_template.md 파일을 생성
- 파일 내용에 기본 제목 형식을 포함하여, 예를 들어 다음과 같이 작성
markdown
### 제목 형식: BIT-<이슈 제목>
BIT- 이슈 제목을 입력하세요:
PR 템플릿 생성:
- 레포지토리의 루트 디렉토리에 .github/PULL_REQUEST_TEMPLATE/ 폴더 생
- 그 안에 pull_request_template.md 파일을 생성
- 파일 내용에 기본 제목 형식을 포함하여, 예를 들어 다음과 같이 작성
### 제목 형식: BIT-<PR 제목>
BIT- PR 제목을 입력하세요:
GitHub Actions를 사용한 자동 검토
GitHub Actions를 사용하여 이슈나 PR 제목에 "BIT-"가 포함되지 않은 경우 알림을 주거나 자동으로 닫을 수도 있음
예시로, .github/workflows/title-check.yml 파일을 생성하여 다음과 같이 설정
yaml
# yaml
name: Check Issue and PR Title
on:
issues:
types: [opened, edited]
pull_request:
types: [opened, edited]
jobs:
check-title:
runs-on: ubuntu-latest
steps:
- name: Check title format
if: github.event.issue.title && !startsWith(github.event.issue.title, 'BIT-')
run: |
echo "Title does not start with 'BIT-'. Please update the title."
exit 1
Git Hook - prepare-commit-msg 사용 ; 로컬 commit 에만 적용됨
자동으로 Commit Message 앞에 Ticket Number(BTI-) 추가
- Git Hooks 폴더로 이동
- 프로젝트의 .git/hooks/ 폴더로 이동 (이 폴더에는 Git에서 제공하는 다양한 Hook 템플릿이 있음)
- prepare-commit-msg 파일 생성 또는 수정
- prepare-commit-msg라는 파일을 생성하거나 기존 파일이 있다면 편집
- 이 파일에 Ticket Number를 자동으로 추가하는 스크립트를 작성
- 스크립트 작성
- prepare-commit-msg 파일에 다음 스크립트를 추가
bash
#!/bin/sh
TICKET_NUMBER="BTI-" # Ticket Number 앞부분 설정
# 커밋 메시지 파일 경로
COMMIT_MSG_FILE=$1
# 이미 Ticket Number가 추가된 경우를 방지하기 위해 메시지에 "BTI-"가 없는 경우에만 추가
if ! grep -q "$TICKET_NUMBER" "$COMMIT_MSG_FILE"; then
sed -i.bak -e "1s/^/$TICKET_NUMBER /" "$COMMIT_MSG_FILE"
fi
4. Git Hook 파일에 실행 권한 부여
- prepare-commit-msg 파일에 실행 권한을 부여해야 Git이 이 파일을 자동으로 실행할 수 있음
bash
chmod +x .git/hooks/prepare-commit-msg
GitHub Actions 또는 GitHub App을 사용
GitHub Actions로 이슈 및 PR 제목에 Ticket Number 자동 추가
1. GitHub Actions 워크플로우 생성
- 레포지토리의 .github/workflows/ 폴더에 auto-ticket-number.yml 파일 생성
2. Actions 스크립트 작성
- auto-ticket-number.yml 파일에 다음 스크립트를 추가
yaml
name: Auto-Add Ticket Number to Issues and PRs
on:
issues:
types: [opened, edited]
pull_request:
types: [opened, edited]
jobs:
add-ticket-number:
runs-on: ubuntu-latest
steps:
- name: Check and add ticket number
env:
TICKET_PREFIX: "BTI-"
run: |
TITLE="${{ github.event.issue.title || github.event.pull_request.title }}"
NUMBER="${{ github.event.issue.number || github.event.pull_request.number }}"
FILE=$(mktemp)
# 이슈 또는 PR 제목에 BTI-가 없는 경우 추가
if [[ "$TITLE" != $TICKET_PREFIX* ]]; then
NEW_TITLE="${TICKET_PREFIX}${TITLE}"
echo "Renaming to $NEW_TITLE"
echo "{\"title\": \"$NEW_TITLE\"}" > "$FILE"
curl -s -X PATCH \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$NUMBER \
-d @"$FILE"
else
echo "Ticket prefix already present."
fi
3. 작동 방식
- 이 스크립트는 이슈(issue)나 풀 리퀘스트(PR)가 생성되거나 편집될 때 실행됨
- 제목에 BTI-로 시작하는지 확인하고, 없을 경우 자동으로 BTI- 추가
- TICKET_PREFIX 환경 변수를 사용해 BTI- 대신 원하는 형식으로 변경 가능
4. GitHub Token 사용:
- 이 스크립트는 secrets.GITHUB_TOKEN을 사용해 GitHub API에 접근하며, 이를 통해 제목을 수정
- GITHUB_TOKEN은 GitHub Actions에서 기본으로 제공하므로 별도의 설정이 필요 없음
참고
https://confluence.curvc.com/pages/viewpage.action?pageId=72289149
https://confluence.curvc.com/pages/releaseview.action?pageId=81663611
Github 협업 설정(Github Issue + Jira 연동)
백로그 & 스프린트
애자일(Agile) 프로젝트 관리에 사용되는 개념
백로그(Backlog)
- 프로젝트에서 해야 할 작업 목록
- 프로젝트 목표를 달성하기 위해 필요한 모든 작업이나 기능을 정리해 놓은 목록
- 우선순위가 매겨져 있음
- 해야 할 일, 요구 사항, 사용자 스토리 등이 포함됨
- 제품 소유자(Product Owner)가 주로 관리
- 팀의 피드백을 통해 계속해서 업데이트
- 프로덕트 백로그(Product Backlog)
- 전체 프로젝트의 모든 작업을 포함 프로젝트가 진행됨에 따라 새로운 작업이나 기능이 추가될 수 있음
- 스프린트 백로그(Sprint Backlog)
- 특정 스프린트 기간 동안 수행할 작업을 프로덕트 백로그에서 가져와 만든 목록
스프린트(Sprint)
- 애자일 방식에서 일정한 기간 동안 완료해야 할 작업을 계획하고 수행하는 단위
- 보통 1~4주 정도의 기간
- 목표 : 스프린트가 끝날 때까지 설정된 목표를 달성하는 것
- 스프린트를 통해 반복적으로 작은 목표 설정
- 짧은 주기로 기능을 릴리스
- 스프린트 계획 회의
- 각 스프린트가 시작될 때, 팀은 백로그에서 우선순위가 높은 작업을 선택해 해당 스프린트의 목표로 설정
- 스프린트 기간 동안의 작업
- 팀은 스프린트 백로그에 있는 작업을 수행
- 매일 스탠드업 미팅 등을 통해 진행 상황을 공유하고 장애물을 해결
- 스프린트 리뷰 및 회고
- 스프린트가 끝나면 스프린트 리뷰에서 작업 결과물을 검토
- 스프린트 회고에서 과정의 개선점을 논의
협업,,,
보통 Slack, Notion, Jira, Github 를 많이 사용 (이게 기본 환경)