Skip to main content

AI-powered QA automation CLI tool

Project description

QA-Flow

AI 기반 코드 품질 자동화 CLI 툴

개발할 줄 아는 QA 엔지니어를 목표로 제작한 프로젝트입니다. PR이 올라오면 자동으로 AI 코드 리뷰와 컨벤션 체크를 수행하고, 결과를 PR 코멘트와 대시보드로 시각화합니다.

링크


프로젝트 배경

졸업 프로젝트(Q-Match) 팀 개발 중 겪은 실제 불편함에서 시작했습니다.

  • 팀원마다 코딩 컨벤션이 달라 코드 파악에 많은 시간 소요
  • PR 리뷰 없이 GitHub 네트워크 그래프로 직접 코드를 확인해야 하는 비효율
  • 코드가 전체 구조에서 어떤 역할을 하는지 파악하기 어려움

이 불편함을 해결하기 위해 AI가 자동으로 코드를 분석하고 PR에 리뷰를 달아주는 툴을 개발했습니다.


주요 기능

CLI 자동화

qa-flow init                                     # 초기 설정 (AI Provider, API 키)
qa-flow scan --mode ai-only                      # AI 코드 리뷰
qa-flow scan --mode full --report                # 컨벤션 체크 + AI 리뷰 + 리포트 저장
qa-flow scan --file 파일 경로/파일.확장자 --focus 옵션 # 특정 파일 분석
qa-flow scan --file 파일 경로/파일.확장자 --tc           # TC 엑셀 자동 생성 (리포트 X, 결과물 동일)
qa-flow scan --file 파일 경로/파일.확장자 --report --tc  # 리포트 + TC 생성  (리포트 O, 결과물 동일)
qa-flow scan --file 파일 경로/파일.확장자 --tc --jira    # TC 생성 + Jira 등록 (아직 테스트 중 입니다.)
qa-flow chat                                     # AI와 자유 대화

Focus 옵션 (9가지 분석 관점)

옵션 설명
structure 코드 구조 및 의존관계 분석
convention 네이밍 규칙 및 코드 스타일
security 보안 취약점 및 위험 요소
bug 버그 및 예외처리 누락
qa QA 관점의 테스트 가능성
dev 개발자 관점의 코드 품질
performance 성능 문제 및 최적화
test 테스트 케이스 제안
general 종합 리뷰 (기본값)

GitHub Actions CI/CD

  • PR 올라오면 자동으로 qa-flow scan 실행
  • ESLint / Flake8 컨벤션 체크 자동화
  • AI 코드 리뷰 결과를 PR 코멘트로 자동 게시
  • 중복 코멘트 방지 (기존 코멘트 업데이트 방식)

멀티 AI Provider

  • Claude (Anthropic) / Gemini (Google) 선택 가능
  • --provider 옵션으로 실시간 전환

대시보드

  • Supabase에 분석 결과 자동 저장
  • Next.js 대시보드에서 리포트 목록 / 필터 / 검색 / 상세 조회

기술 스택

구분 기술
CLI Python, Click, Rich
AI Claude API, Gemini API
자동화 GitHub Actions
컨벤션 체크 ESLint, Flake8
대시보드 Next.js 15, Tailwind CSS
DB Supabase (PostgreSQL)
배포 Vercel, PyPI

프로젝트 구조

Qa-Flow/
├── cli/
│   ├── commands/
│   │   ├── init.py       # qa-flow init
│   │   ├── scan.py       # qa-flow scan
│   │   └── chat.py       # qa-flow chat
│   ├── core/
│   │   ├── ai_review.py  # AI 리뷰 엔진
│   │   ├── convention.py # 컨벤션 체크
│   │   ├── reporter.py   # 리포트 생성 및 Supabase 저장
│   │   └── providers/
│   │       ├── claude.py # Claude API
│   │       └── gemini.py # Gemini API
│   └── main.py
├── dashboard/             # Next.js 대시보드
│   ├── app/
│   │   ├── page.tsx
│   │   ├── components/
│   │   └── reports/[id]/
│   └── lib/
│       └── supabase.ts
├── assets/                # README 이미지
└── .github/
    └── workflows/
        └── qa.yml         # GitHub Actions

설치 및 사용법

설치

pip install qa-flow

1단계: 초기 설정

qa-flow init

초기 설정 1 초기 설정 2

  • AI Provider 선택 (Claude / Gemini)
  • API 키 입력
  • GitHub Token 및 레포 입력
  • Supabase 연동 여부 선택
  • qa.yml 생성 여부 선택 (y 권장)

2단계: GitHub Actions 설정

GitHub Secrets 등록

레포지토리 → Settings → Secrets and variables → Actions

GitHub Secrets 설정

New repository secret 클릭

New Secret

아래 5가지 Secret 등록 후 완료

Secret 목록

AI_PROVIDER       # claude 또는 gemini
GEMINI_API_KEY    # Gemini API 키
ANTHROPIC_API_KEY # Claude API 키
SUPABASE_URL      # Supabase 프로젝트 URL
SUPABASE_KEY      # Supabase API 키

사용 예시

로컬에서 특정 파일 분석

qa-flow scan --file UserController.java --mode full --report

분석 실행

분석 결과

리포트 요약

Supabase DB 저장 확인

DB 저장

대시보드 확인

대시보드

로컬 리포트 JSON 파일

리포트 JSON


CI/CD 자동화 예시 (GitHub Actions + PR)

PR을 생성하면 자동으로 QA-Flow가 실행됩니다.

1. 다른 프로젝트에 적용

다른 프로젝트 테스트

2. PR 생성

PR

3. Actions 자동 실행 및 PR 코멘트

Actions


추후 계획

  • AI 분석 기반 TC 자동 생성 (v0.1.7 추가)
  • Jira 연동 (버그 발견 시 자동 이슈 생성) (v0.1.7 추가. 아직 테스트 중)
  • 폴더 전체 분석
  • 품질 점수 도입
  • 트렌드 차트
  • Focus별 분포도 파이 차트

개발자 정보

김수길 |

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qa_flow-0.1.7.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qa_flow-0.1.7-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file qa_flow-0.1.7.tar.gz.

File metadata

  • Download URL: qa_flow-0.1.7.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for qa_flow-0.1.7.tar.gz
Algorithm Hash digest
SHA256 cf300235a72f38259639b46caa34ceb1b039244a8a8d82e9079c8ceb63d609e4
MD5 d9880a46ad5590e689d92924cf5fd4ee
BLAKE2b-256 e00f13ba09dfe3847aa8566c46f91b38e02f90e1353e7ea052d900884bf6cbe5

See more details on using hashes here.

File details

Details for the file qa_flow-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: qa_flow-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for qa_flow-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 eb9ca90e04a56bb4b5de1f71a605c84a67a7a043954acaee1b1552fd052623d0
MD5 9adbe8c103d12fb93a2180db45de15b0
BLAKE2b-256 0b47351961ad86546167063e4dd6bc75a12276c8612ddd3b8054f5e8d02a8ba9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page