Skip to content

Chuseok22/github-issue-helper

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Issue Helper

GitHub Issue가 생성되거나 제목이 수정될 때 자동으로 브랜치명과 커밋 메시지를 생성하여 댓글로 추가하는 GitHub Action입니다.

📦 사용법

.github/workflows/issue-helper.yml 파일을 생성합니다:

name: Issue Helper - Generate Branch & Commit Messages

on:
  issues:
    types: [opened, edited]

permissions:
  issues: write
  contents: write  # 브랜치 자동 생성에 필요

jobs:
  generate-comment:
    if: github.event.action == 'opened' || (github.event.action == 'edited' && github.event.changes.title)
    runs-on: ubuntu-latest
    steps:
      - name: Generate Branch & Commit Comment
        uses: Chuseok22/github-issue-helper@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          branch_prefix: "feat/"
          max_branch_length: 100
          commit_template: "${issueTitle} : feat : {변경 사항에 대한 설명} ${issueUrl}"
          comment_marker: "<!-- Chuseok22 issue helper -->"
          create_branch: "true"   # 브랜치 자동 생성 (기본값: true)
          # base_branch: "develop"  # 선택: 기본값은 저장소 기본 브랜치

🔧 권한 오류 해결

"Resource not accessible by integration" 오류가 발생하는 경우:

1. 워크플로우 파일에 permissions 추가 (필수)

permissions:
  issues: write
  contents: write  # 브랜치 생성을 위해 반드시 write 필요

2. Repository Settings에서 Actions 권한 확인

  • Settings > Actions > General
  • "Workflow permissions"에서 "Read and write permissions" 선택

3. Private Repository의 경우

Personal Access Token을 사용하세요:

  1. GitHub에서 Personal Access Token 생성 (repo 권한 필요)
  2. Repository Settings > Secrets and variables > Actions에 토큰 추가 (예: PERSONAL_TOKEN)
  3. 워크플로우에서 토큰 사용:
- name: Generate Branch & Commit Comment
  uses: Chuseok22/github-issue-helper@v1
  with:
    token: ${{ secrets.PERSONAL_TOKEN }}
    # ...other inputs

특징

  • 🌿 브랜치명 자동 생성: 날짜, 이슈번호, 정규화된 제목으로 브랜치명 생성
  • 💬 커밋 메시지 템플릿: 커스터마이징 가능한 커밋 메시지 템플릿
  • 🔄 댓글 업데이트: 이슈 제목 변경 시 자동으로 댓글 업데이트
  • 🔒 Private Repository 지원: 사용자 토큰으로 Private Repository에서도 사용 가능
  • 🎯 한글/영문 지원: 한글과 영문 이슈 제목 모두 지원
  • 🌿 브랜치 자동 생성: create_branch: "true" 설정 시 이슈 댓글 작성 후 GitHub에 브랜치를 자동으로 생성

입력 옵션

입력값 설명 기본값 필수
token GitHub 토큰 (빈 값이면 GITHUB_TOKEN 자동 사용) ""
comment_marker 댓글 업데이트를 위한 마커 "<!-- Chuseok22 issue helper -->"
branch_prefix 브랜치 접두사 (예: feat/) ""
max_branch_length 브랜치 기본 부분 최대 길이 (prefix 제외) "120"
commit_template 커밋 메시지 템플릿 "${issueTitle} : feat : {변경 사항에 대한 설명} ${issueUrl}"
create_branch 이슈 댓글 작성 후 브랜치 자동 생성 여부 (true/false) "true"
base_branch 브랜치 생성 기준 브랜치명 (비워두면 저장소 기본 브랜치 사용) ""

출력값

출력값 설명
branchName 생성된 브랜치명
commitMessage 생성된 커밋 메시지

템플릿 변수

커밋 메시지 템플릿에서 사용할 수 있는 변수들:

  • ${issueTitle}: 정규화된 이슈 제목
  • ${issueUrl}: 이슈 URL
  • ${issueNumber}: 이슈 번호
  • ${branchName}: 생성된 브랜치명
  • ${date}: 날짜 (YYYYMMDD 형식)

예시

이슈 제목: [Bug] 로그인 페이지에서 비밀번호 입력 오류

생성되는 결과:

  • 브랜치명: feat/20250917_#123_로그인_페이지에서_비밀번호_입력_오류
  • 커밋 메시지: 로그인 페이지에서 비밀번호 입력 오류 : feat : {변경 사항에 대한 설명} https://github.com/owner/repo/issues/123

생성되는 댓글 예시

    <!-- Chuseok22 issue helper -->
    ## Chuseok22 Issue Helper
    ### 브랜치명
    ```
    feat/20250917_#123_로그인_페이지에서_비밀번호_입력_오류
    ```
    
    ### 커밋 메시지
    ```
    로그인 페이지에서 비밀번호 입력 오류 : feat : {변경 사항에 대한 설명} https://github.com/owner/repo/issues/123
    ```

정규화 규칙

  1. 태그 제거: [Bug], [Feature] 등의 태그 제거
  2. 이모지 제거: 이모지와 제어 문자 제거
  3. 특수문자 처리: 한글, 영문, 숫자를 제외한 문자는 _로 변경
  4. 브랜치명 형식: {prefix}{YYYYMMDD}_#{issueNumber}_{normalizedTitle}

라이선스

MIT License

기여하기

이슈나 개선사항이 있으시면 언제든지 Issue를 등록하거나 Pull Request를 보내주세요!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors