# JIRA Git Helper ![Rust Version][rust-image] ![License][license-image] JIRA Git Helper 是一个 Rust 编写的命令行工具,用于简化 Git 提交过程中与 JIRA 相关的任务。它可以从 Git 分支名称中提取 JIRA ID,获取相关的 JIRA issue 标题,并生成格式化的提交信息。 ## 特性 - 自动从 Git 分支名称中提取 JIRA ID - 与 JIRA API 集成,获取实时 issue 信息 - 安全存储 JIRA 凭证(密码经过加密) - 支持通过配置文件和环境变量进行灵活配置 - 异步操作,提高性能 - 交互式提交信息编辑 ## 安装 ### 从 crates.io 安装 ```bash cargo install jira_git_helper ``` ### 从源代码安装 ```bash git clone https://github.com/YYvanYang/jira_git_helper.git cd jira_git_helper cargo install --path . ``` 确保 `~/.cargo/bin` 在您的 PATH 中。 ## 配置 ### 交互式配置 首次运行时,工具会提示输入必要的配置信息: ```bash jira_git_helper -c ``` 或 ```bash jira_git_helper --config ``` ### 配置文件 配置存储在 `~/.jira_git_helper.toml` 文件中: ```toml jira_url = "https://your-jira-instance.atlassian.net" username = "your_username" encrypted_password = "encrypted_password_string" jira_id_prefix = "PROJ" ``` 注意:不要手动编辑 `encrypted_password` 字段,它由程序自动生成和管理。 ### 环境变量 也可以使用环境变量进行配置: ```bash export JIRA_GIT_JIRA_URL=https://your-jira-instance.atlassian.net export JIRA_GIT_USERNAME=your_username export JIRA_GIT_PASSWORD=your_password export JIRA_GIT_JIRA_ID_PREFIX=PROJ ``` ### 重置配置 要重置所有配置,运行: ```bash jira_git_helper -r ``` 或 ```bash jira_git_helper --reset ``` ## 使用方法 1. 确保您的 Git 分支名称包含 JIRA ID (例如 `feature/PROJ-1234-add-login`)。 2. 在 Git 仓库目录中运行: ``` jira_git_helper ``` 3. 工具会自动提取 JIRA ID,获取 issue 标题,并提示您输入额外的提交信息。 4. 确认生成的提交信息后,工具会执行 `git commit` 命令。 ## 帮助 要查看所有可用的命令和选项,运行: ```bash jira_git_helper -h ``` 或 ```bash jira_git_helper --help ``` ## 本地开发 ### 环境准备 1. 确保已安装 Rust 和 Cargo。 2. 克隆仓库: ```bash git clone https://github.com/YYvanYang/jira_git_helper.git cd jira_git_helper ``` ### 构建和运行 ```bash # 安装依赖并构建 cargo build # 运行开发版本 cargo run # 运行并传递参数 cargo run -- -c # 运行测试 cargo test # 代码检查和格式化 cargo clippy cargo fmt # 构建发布版本 cargo build --release ``` ### 开发配置 创建 `.env` 文件用于开发环境: ``` JIRA_GIT_JIRA_URL=https://your-dev-jira-instance.atlassian.net JIRA_GIT_USERNAME=your_dev_username JIRA_GIT_PASSWORD=your_dev_password JIRA_GIT_JIRA_ID_PREFIX=DEV ``` ### 调试 使用 VS Code 的 `.vscode/launch.json`: ```json { "version": "0.2.0", "configurations": [ { "type": "lldb", "request": "launch", "name": "Debug executable 'jira_git_helper'", "cargo": { "args": ["build", "--bin=jira_git_helper", "--package=jira_git_helper"], "filter": { "name": "jira_git_helper", "kind": "bin" } }, "args": [], "cwd": "${workspaceFolder}" } ] } ``` 启用详细日志: ```bash RUST_LOG=debug cargo run ``` ## 贡献 欢迎贡献!请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解更多信息。 ## 许可证 本项目采用 MIT 许可证。详情请见 [LICENSE](LICENSE) 文件。 [rust-image]: https://img.shields.io/badge/rust-1.70%2B-blue.svg [license-image]: https://img.shields.io/badge/License-MIT-blue.svg