cargo-lpatch 0.1.0

A cargo plugin to locally patch dependencies by cloning them and setting up local patches
# 系统 Git 配置集成

这个文档说明了 `cargo-lpatch` 如何完全使用系统的 Git 配置。

## 更改说明

本次更新确保所有 Git 操作都完全依赖系统的 Git 配置,而不是使用自定义的认证方式。

### 主要改进

1. **优先使用系统默认凭据**
   - `Cred::default()` - 使用系统配置的默认认证方式
   - 这会自动调用系统配置的 credential helper

2. **系统 SSH 配置集成**
   - 优先使用系统 SSH Agent (`ssh-agent`)
   - 按系统标准顺序查找 SSH 密钥文件 (`~/.ssh/`)
   - 支持所有标准 SSH 密钥类型 (RSA, ECDSA, Ed25519, DSA)

3. **系统 Git Credential Helper 支持**
   - 使用 `git2::Config::open_default()` 读取系统配置
   - 调用 `Cred::credential_helper()` 使用系统配置的 credential helper
   - 支持系统配置的用户名和密码存储

4. **系统 SSL/TLS 配置遵循**
   - 遵循 `http.sslVerify` 系统配置
   - 支持自定义 CA 证书路径
   - 提供清晰的配置指导

5. **调试信息增强**
   - 在每次 Git 操作前显示系统配置信息
   - 包括用户名、邮箱、credential helper 等
   - 帮助用户了解当前使用的配置

## 使用的系统配置

### 认证配置

```bash
# 查看当前配置
git config --list

# 配置 credential helper
git config --global credential.helper store
# 或者
git config --global credential.helper manager-core

# 配置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
```

### SSH 配置

```bash
# 检查 SSH agent
ssh-add -l

# 添加 SSH 密钥到 agent
ssh-add ~/.ssh/id_rsa

# 测试 SSH 连接
ssh -T git@github.com
```

### SSL/TLS 配置

```bash
# 启用 SSL 验证(推荐)
git config --global http.sslVerify true

# 如需禁用 SSL 验证(不推荐)
git config --global http.sslVerify false

# 配置自定义 CA 证书
git config --global http.sslCAInfo /path/to/certificate.pem
```

## 认证优先级

程序按以下优先级尝试认证:

1. **系统默认凭据** (`Cred::default()`)
   - 自动使用系统配置的认证方式

2. **SSH 认证**(用于 SSH URLs)
   - SSH Agent 中的密钥
   - 系统标准路径的 SSH 密钥文件

3. **HTTPS 认证**(用于 HTTPS URLs)
   - 系统配置的 Git credential helper
   - 环境变量(向后兼容)

4. **环境变量**(向后兼容)
   - `GIT_USERNAME` / `GIT_PASSWORD`
   - `GIT_TOKEN` / `GITHUB_TOKEN`

## 故障排除

如果遇到认证问题,程序会提供详细的解决方案提示:

1. **SSH 问题**
   - 检查 SSH 密钥配置
   - 验证 SSH agent 状态
   - 测试 SSH 连接

2. **HTTPS 问题**
   - 配置 Git credential helper
   - 验证系统 Git 配置
   - 检查环境变量设置

3. **证书问题**
   - 检查 SSL 验证设置
   - 配置自定义 CA 证书
   - 根据需要调整 SSL 策略

## 调试输出

程序会显示以下调试信息:

```
🔍 System Git Configuration:
  👤 User name: Your Name
  📧 User email: your.email@example.com
  🔑 Credential helper: store
  🔒 SSL verify: true
```

这有助于验证系统配置是否正确设置。