Callstack Code Inserter
PHP 파일의 변경된 함수에 디버그 코드를 자동으로 삽입하고 Test Scope 보고서를 생성하는 VS Code 확장 프로그램입니다.
주요 기능
- Git diff를 기반으로 변경된 PHP 함수 식별
- 변경된 함수에 callstack 추적 코드 자동 삽입
- 🆕 Git 명령어 기반 유연한 커밋 분석: 사용자 정의 git 명령어를 통한 동적 커밋 추출
- 🆕 Test Scope 보고서 생성: Jira 연동 및 슬랙 알림을 통한 영향범위 보고서 자동 생성
- 🆕 제외 패턴 필터링: 테스트 디렉토리(
12r/program/tests/ ) 자동 제외
- 디버그 코드 제거 기능 제공
- 변경된 파일 자동 저장
사용 방법
SCM 패널에서 접근
VS Code의 소스 제어 패널에서 🤖 아이콘을 클릭하여 모든 명령어에 쉽게 접근할 수 있습니다.
1. Commit 간 변경 함수에 로깅 코드 Insert
- SCM 패널의 🤖 아이콘 클릭 또는 명령 팔레트에서
[solup] Commit 간 변경 함수에 로깅 코드 Insert 실행
- 비교할 커밋 ID 입력 (기본값: master와의 merge base)
- 확장 프로그램이 변경된 PHP 함수를 분석하고 디버그 코드를 자동 삽입
2. 🆕 영향범위 보고서 생성
- SCM 패널의 🤖 아이콘 클릭 또는 명령 팔레트에서
[solup] 영향범위 보고서 생성 실행
- 입력 정보:
- 자동으로 변경사항을 분석하고 Test Scope 보고서를 생성하여 선택한 채널로 전송
3. 선택한 파일의 모든 함수에 로깅 코드 Insert
- 개별 파일 또는 폴더 선택
- 선택한 범위의 모든 PHP 함수에 디버그 코드 삽입
4. 로깅 코드 제거
- 변경된 PHP 파일에서 삽입된 모든 디버그 코드를 자동 제거
🔧 고급 기능
Git 명령어 기반 분석
1.0.0 버전부터 더욱 유연한 커밋 분석이 가능합니다:
# 특정 작성자의 커밋만 분석
git log --author="username" --pretty=format:"%H %s" | grep "JIRA-123"
# 특정 기간의 커밋 분석
git log --since="2024-01-01" --until="2024-12-31" --pretty=format:"%H %s"
# 특정 범위의 커밋에서 키워드 필터링
git log --no-merges --pretty=format:"%H %s" abc123..def456 | grep "hotfix"
제외 패턴
다음 디렉토리는 자동으로 분석에서 제외됩니다:
12r/program/tests/ 하위의 모든 파일
설정
확장 프로그램 설정에서 다음 옵션을 구성할 수 있습니다:
SFTP 설정 (선택사항)
callstack-inserter.sftp.enabled : SFTP 전송 활성화 여부 (기본값: false)
callstack-inserter.sftp.host : SFTP 서버 호스트
callstack-inserter.sftp.port : SFTP 서버 포트 (기본값: 22)
callstack-inserter.sftp.username : SFTP 사용자 이름
callstack-inserter.sftp.password : SFTP 비밀번호
callstack-inserter.sftp.remotePath : SFTP 원격 기본 경로
설치 요구 사항
- Visual Studio Code 1.85.0 이상
- Git이 설치되어 있어야 합니다.
- 프로젝트가 Git 저장소여야 합니다.
- 환경 변수 설정 (Test Scope 보고서 생성 시):
.env 파일에 필요한 API 키 및 설정 정보
삽입되는 디버그 코드
// [CALLSTACK-INSERTER] DEBUG START: Added by code inserter
$backtrace = debug_backtrace(2);
libCallstackWriter::write($backtrace, __FILE__);
// [CALLSTACK-INSERTER] DEBUG END
🚀 버전 1.0.0의 새로운 기능
- Git 명령어 기반 분석: 복잡한 커밋 패턴도 유연하게 분석 가능
- Test Scope 보고서: Jira 연동 및 자동 슬랙 알림
- 제외 패턴 필터링: 테스트 파일 자동 제외로 정확한 분석
- 통합 diff 엔진: 여러 커밋의 변경사항을 종합 분석
- 향상된 UI/UX: 더 직관적인 입력 방식과 검증
개발 및 테스트
개발 환경 설정
저장소 클론
git clone https://github.com/your-username/callstack-code-inserter.git
cd callstack-code-inserter
의존성 설치
npm install
환경 변수 설정
cp .env.example .env
# .env 파일에 필요한 API 키 등을 설정
테스트 실행
테스트는 VS Code의 확장 테스트 프레임워크와 Mocha를 사용합니다.
npm test
테스트는 다음 영역을 다룹니다:
- 확장 프로그램 활성화와 명령 등록
- Git 명령어 상호작용 및 커밋 해시 추출
- PHP 함수 파싱 및 디버그 코드 삽입
- 파일 처리 및 제외 패턴 필터링
- Test Scope 보고서 생성 로직
라이선스
MIT
| |