# ADEV Tools
Advanced Development Tools for GitLab, Jira, and CI/CD automation.
## 소개
ADEV Tools는 GitLab, Jira, 그리고 CI/CD 자동화를 위한 종합적인 개발 도구 모음입니다. 개발자들이 일상적인 작업을 자동화하고 효율성을 향상시킬 수 있도록 설계되었습니다.
## 주요 기능
### GitLab 및 Git 관련 도구
- **adev-fork**: GitLab 저장소 포크 관리
- **adev-branch**: Jira 이슈와 연동된 브랜치 생성
- **adev-commit**: AI 기반 커밋 메시지 생성
- **adev-diff2commit**: 코드 변경사항 기반 커밋 메시지 자동 생성
- **adev-cloneupstream**: 업스트림 저장소 클론
### CI/CD 도구
- **adev-ci-copy**: GitLab Runner를 통한 파일 복사
- **adev-ci-stlink**: ST-Link 관련 CI/CD 작업
- **adev-gitlab-runner-status**: GitLab Runner 상태 확인
### Jira 통합
- **adev-issues**: Jira 이슈 관리 및 처리
### Google Drive 연동
- **adev-gdrive-config**: Google Drive 설정 구성
- **adev-gdrive-upload**: Google Drive 파일 업로드
- **adev-gdrive-open-altium**: Altium 파일을 Google Drive에서 열기
### 빌드 도구
- **adev-pre-build**: 빌드 전 작업 실행
- **adev-post-build**: 빌드 후 작업 실행
### 테스트 도구
- **adev-test-branch**: 브랜치 기능 테스트
- **adev-test-gdrive**: Google Drive 연결 테스트
- **adev-test-upload-download**: 업로드/다운로드 기능 테스트
## 설치
### PyPI에서 설치
```bash
pip install adev-tools
```
### 개발 버전 설치
```bash
git clone https://github.com/jltech/adev-tools.git
cd adev-tools
pip install -e .
```
## 사용법
각 도구는 독립적인 CLI 명령어로 사용할 수 있습니다:
```bash
# GitLab 저장소 포크
adev-fork <search-term>
# Jira 이슈 기반 브랜치 생성
adev-branch [branch-name]
# AI 기반 커밋 메시지 생성
adev-commit
# 파일 복사 (CI/CD)
adev-ci-copy <runner-name> --target <target-path>
# Jira 이슈 관리
adev-issues
```
## 설정
대부분의 도구들은 설정 파일을 필요로 합니다. 설정 템플릿을 생성하려면:
```bash
adev-config-example
```
### 필수 설정 항목
- GitLab 토큰
- Jira 인증 정보
- Google Drive API 키 (선택사항)
- OpenAI API 키 (AI 기능 사용시)
## 종속성
- Python 3.8+
- GitPython
- python-gitlab
- jira
- requests
- 기타 (requirements.txt 참조)
## 개발
### 개발 환경 설정
```bash
git clone https://github.com/jltech/adev-tools.git
cd adev-tools
pip install -e ".[dev]"
```
### 테스트 실행
```bash
pytest
```
### 코드 포맷팅
```bash
black .
flake8 .
```
## 기여
1. Fork 프로젝트
2. 기능 브랜치 생성 (`git checkout -b feature/AmazingFeature`)
3. 변경사항 커밋 (`git commit -m 'Add some AmazingFeature'`)
4. 브랜치에 Push (`git push origin feature/AmazingFeature`)
5. Pull Request 생성
## 라이센스
이 프로젝트는 MIT 라이센스를 따릅니다. 자세한 내용은 `LICENSE` 파일을 참조하세요.
## 지원
- 이슈 리포트: [GitHub Issues](https://github.com/jltech/adev-tools/issues)
- 문서: [GitHub Wiki](https://github.com/jltech/adev-tools/wiki)
## 업데이트 로그
### v0.1.0
- 초기 릴리스
- GitLab, Jira, CI/CD 기본 기능 구현
- Google Drive 연동 기능
- AI 기반 커밋 메시지 생성
Raw data
{
"_id": null,
"home_page": null,
"name": "adev-tools",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "gitlab, jira, ci-cd, development-tools, automation",
"author": null,
"author_email": "JLTech <dev@jltech.com>",
"download_url": "https://files.pythonhosted.org/packages/8c/fc/d50e03d4781ac0416a97aea63d43417fa119356cb95671c80eaf774dabc0/adev_tools-0.1.1.tar.gz",
"platform": null,
"description": "# ADEV Tools\r\n\r\nAdvanced Development Tools for GitLab, Jira, and CI/CD automation.\r\n\r\n## \uc18c\uac1c\r\n\r\nADEV Tools\ub294 GitLab, Jira, \uadf8\ub9ac\uace0 CI/CD \uc790\ub3d9\ud654\ub97c \uc704\ud55c \uc885\ud569\uc801\uc778 \uac1c\ubc1c \ub3c4\uad6c \ubaa8\uc74c\uc785\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub4e4\uc774 \uc77c\uc0c1\uc801\uc778 \uc791\uc5c5\uc744 \uc790\ub3d9\ud654\ud558\uace0 \ud6a8\uc728\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0ac \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\r\n\r\n## \uc8fc\uc694 \uae30\ub2a5\r\n\r\n### GitLab \ubc0f Git \uad00\ub828 \ub3c4\uad6c\r\n- **adev-fork**: GitLab \uc800\uc7a5\uc18c \ud3ec\ud06c \uad00\ub9ac\r\n- **adev-branch**: Jira \uc774\uc288\uc640 \uc5f0\ub3d9\ub41c \ube0c\ub79c\uce58 \uc0dd\uc131\r\n- **adev-commit**: AI \uae30\ubc18 \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc0dd\uc131\r\n- **adev-diff2commit**: \ucf54\ub4dc \ubcc0\uacbd\uc0ac\ud56d \uae30\ubc18 \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc790\ub3d9 \uc0dd\uc131\r\n- **adev-cloneupstream**: \uc5c5\uc2a4\ud2b8\ub9bc \uc800\uc7a5\uc18c \ud074\ub860\r\n\r\n### CI/CD \ub3c4\uad6c\r\n- **adev-ci-copy**: GitLab Runner\ub97c \ud1b5\ud55c \ud30c\uc77c \ubcf5\uc0ac\r\n- **adev-ci-stlink**: ST-Link \uad00\ub828 CI/CD \uc791\uc5c5\r\n- **adev-gitlab-runner-status**: GitLab Runner \uc0c1\ud0dc \ud655\uc778\r\n\r\n### Jira \ud1b5\ud569\r\n- **adev-issues**: Jira \uc774\uc288 \uad00\ub9ac \ubc0f \ucc98\ub9ac\r\n\r\n### Google Drive \uc5f0\ub3d9\r\n- **adev-gdrive-config**: Google Drive \uc124\uc815 \uad6c\uc131\r\n- **adev-gdrive-upload**: Google Drive \ud30c\uc77c \uc5c5\ub85c\ub4dc\r\n- **adev-gdrive-open-altium**: Altium \ud30c\uc77c\uc744 Google Drive\uc5d0\uc11c \uc5f4\uae30\r\n\r\n### \ube4c\ub4dc \ub3c4\uad6c\r\n- **adev-pre-build**: \ube4c\ub4dc \uc804 \uc791\uc5c5 \uc2e4\ud589\r\n- **adev-post-build**: \ube4c\ub4dc \ud6c4 \uc791\uc5c5 \uc2e4\ud589\r\n\r\n### \ud14c\uc2a4\ud2b8 \ub3c4\uad6c\r\n- **adev-test-branch**: \ube0c\ub79c\uce58 \uae30\ub2a5 \ud14c\uc2a4\ud2b8\r\n- **adev-test-gdrive**: Google Drive \uc5f0\uacb0 \ud14c\uc2a4\ud2b8\r\n- **adev-test-upload-download**: \uc5c5\ub85c\ub4dc/\ub2e4\uc6b4\ub85c\ub4dc \uae30\ub2a5 \ud14c\uc2a4\ud2b8\r\n\r\n## \uc124\uce58\r\n\r\n### PyPI\uc5d0\uc11c \uc124\uce58\r\n```bash\r\npip install adev-tools\r\n```\r\n\r\n### \uac1c\ubc1c \ubc84\uc804 \uc124\uce58\r\n```bash\r\ngit clone https://github.com/jltech/adev-tools.git\r\ncd adev-tools\r\npip install -e .\r\n```\r\n\r\n## \uc0ac\uc6a9\ubc95\r\n\r\n\uac01 \ub3c4\uad6c\ub294 \ub3c5\ub9bd\uc801\uc778 CLI \uba85\ub839\uc5b4\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:\r\n\r\n```bash\r\n# GitLab \uc800\uc7a5\uc18c \ud3ec\ud06c\r\nadev-fork <search-term>\r\n\r\n# Jira \uc774\uc288 \uae30\ubc18 \ube0c\ub79c\uce58 \uc0dd\uc131\r\nadev-branch [branch-name]\r\n\r\n# AI \uae30\ubc18 \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc0dd\uc131\r\nadev-commit\r\n\r\n# \ud30c\uc77c \ubcf5\uc0ac (CI/CD)\r\nadev-ci-copy <runner-name> --target <target-path>\r\n\r\n# Jira \uc774\uc288 \uad00\ub9ac\r\nadev-issues\r\n```\r\n\r\n## \uc124\uc815\r\n\r\n\ub300\ubd80\ubd84\uc758 \ub3c4\uad6c\ub4e4\uc740 \uc124\uc815 \ud30c\uc77c\uc744 \ud544\uc694\ub85c \ud569\ub2c8\ub2e4. \uc124\uc815 \ud15c\ud50c\ub9bf\uc744 \uc0dd\uc131\ud558\ub824\uba74:\r\n\r\n```bash\r\nadev-config-example\r\n```\r\n\r\n### \ud544\uc218 \uc124\uc815 \ud56d\ubaa9\r\n- GitLab \ud1a0\ud070\r\n- Jira \uc778\uc99d \uc815\ubcf4\r\n- Google Drive API \ud0a4 (\uc120\ud0dd\uc0ac\ud56d)\r\n- OpenAI API \ud0a4 (AI \uae30\ub2a5 \uc0ac\uc6a9\uc2dc)\r\n\r\n## \uc885\uc18d\uc131\r\n\r\n- Python 3.8+\r\n- GitPython\r\n- python-gitlab\r\n- jira\r\n- requests\r\n- \uae30\ud0c0 (requirements.txt \ucc38\uc870)\r\n\r\n## \uac1c\ubc1c\r\n\r\n### \uac1c\ubc1c \ud658\uacbd \uc124\uc815\r\n```bash\r\ngit clone https://github.com/jltech/adev-tools.git\r\ncd adev-tools\r\npip install -e \".[dev]\"\r\n```\r\n\r\n### \ud14c\uc2a4\ud2b8 \uc2e4\ud589\r\n```bash\r\npytest\r\n```\r\n\r\n### \ucf54\ub4dc \ud3ec\ub9f7\ud305\r\n```bash\r\nblack .\r\nflake8 .\r\n```\r\n\r\n## \uae30\uc5ec\r\n\r\n1. Fork \ud504\ub85c\uc81d\ud2b8\r\n2. \uae30\ub2a5 \ube0c\ub79c\uce58 \uc0dd\uc131 (`git checkout -b feature/AmazingFeature`)\r\n3. \ubcc0\uacbd\uc0ac\ud56d \ucee4\ubc0b (`git commit -m 'Add some AmazingFeature'`)\r\n4. \ube0c\ub79c\uce58\uc5d0 Push (`git push origin feature/AmazingFeature`)\r\n5. Pull Request \uc0dd\uc131\r\n\r\n## \ub77c\uc774\uc13c\uc2a4\r\n\r\n\uc774 \ud504\ub85c\uc81d\ud2b8\ub294 MIT \ub77c\uc774\uc13c\uc2a4\ub97c \ub530\ub985\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 `LICENSE` \ud30c\uc77c\uc744 \ucc38\uc870\ud558\uc138\uc694.\r\n\r\n## \uc9c0\uc6d0\r\n\r\n- \uc774\uc288 \ub9ac\ud3ec\ud2b8: [GitHub Issues](https://github.com/jltech/adev-tools/issues)\r\n- \ubb38\uc11c: [GitHub Wiki](https://github.com/jltech/adev-tools/wiki)\r\n\r\n## \uc5c5\ub370\uc774\ud2b8 \ub85c\uadf8\r\n\r\n### v0.1.0\r\n- \ucd08\uae30 \ub9b4\ub9ac\uc2a4\r\n- GitLab, Jira, CI/CD \uae30\ubcf8 \uae30\ub2a5 \uad6c\ud604\r\n- Google Drive \uc5f0\ub3d9 \uae30\ub2a5\r\n- AI \uae30\ubc18 \ucee4\ubc0b \uba54\uc2dc\uc9c0 \uc0dd\uc131\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Advanced Development Tools for GitLab, Jira, and CI/CD automation",
"version": "0.1.1",
"project_urls": {
"Bug Tracker": "https://github.com/jltech/adev-tools/issues",
"Documentation": "https://github.com/jltech/adev-tools/blob/main/README.md",
"Homepage": "https://github.com/jltech/adev-tools",
"Repository": "https://github.com/jltech/adev-tools.git"
},
"split_keywords": [
"gitlab",
" jira",
" ci-cd",
" development-tools",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b696c46325f1d03fc2334afadadbf9beb3d2cfd50e2e7960ab99e2fb7d89f299",
"md5": "41dabb7640996f46f3f7495604778f4d",
"sha256": "e03afae005bf72cf0d07106c673d3914ee4dd09bcb1fbad09a4f49d5c6f3a7b8"
},
"downloads": -1,
"filename": "adev_tools-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "41dabb7640996f46f3f7495604778f4d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 57137,
"upload_time": "2025-09-05T08:32:29",
"upload_time_iso_8601": "2025-09-05T08:32:29.445524Z",
"url": "https://files.pythonhosted.org/packages/b6/96/c46325f1d03fc2334afadadbf9beb3d2cfd50e2e7960ab99e2fb7d89f299/adev_tools-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8cfcd50e03d4781ac0416a97aea63d43417fa119356cb95671c80eaf774dabc0",
"md5": "6acccb199683f481dc959b7cb5c05004",
"sha256": "c364a842697dd56301f549f6c71fab1d94c6cd24580f2df5ca260d029a51ef5f"
},
"downloads": -1,
"filename": "adev_tools-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "6acccb199683f481dc959b7cb5c05004",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 60880,
"upload_time": "2025-09-05T08:32:30",
"upload_time_iso_8601": "2025-09-05T08:32:30.933561Z",
"url": "https://files.pythonhosted.org/packages/8c/fc/d50e03d4781ac0416a97aea63d43417fa119356cb95671c80eaf774dabc0/adev_tools-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-05 08:32:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jltech",
"github_project": "adev-tools",
"github_not_found": true,
"lcname": "adev-tools"
}