Skip to content

SVN API Server 的配套客户端工具,通过提示符或易于扩展的命令行操作 SVN Authz 授权。 A supporting client tool for the SVN API Server, which operates SVN Authz authorization via prompts or easily extensible command lines.

Notifications You must be signed in to change notification settings

marswayred/svn-api-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SVN API Client Tool (svntool)

SVN API客户端命令行工具,用于与SVN API服务器交互,管理SVN仓库和权限。

功能特性

  • 仓库管理: 创建、列出、删除SVN仓库
  • 权限管理: 授权、撤销、查询权限,支持过期时间设置
  • 服务器配置: 管理多个SVN服务器,支持别名和默认服务器
  • 备份管理: 手动备份authz文件,查看备份状态,同步到数据库
  • 交互模式: 缺少参数时自动进入向导模式
  • 多格式输出: 支持表格、JSON、YAML格式输出
  • 安全确认: 危险操作需要多重确认

安装

从源代码安装

git clone <repository-url>
cd svn-api-client
pip install -e .

使用pip安装

pip install svn-api-client

快速开始

1. 配置SVN服务器

# 添加服务器配置
svntool config add-server yellow http://svn01:8080 --desc "黄河项目SVN服务器"

# 设置默认服务器
svntool config set-default yellow

# 查看服务器配置
svntool config list-servers

2. 仓库管理

# 创建仓库
svntool repo create myproject --desc "我的项目"

# 列出所有仓库
svntool repo list

# 删除仓库(需要确认)
svntool repo delete myproject --confirm

3. 权限管理

# 授权用户读写权限
svntool perm grant alice myproject --path /trunk --perm rw

# 授权组只读权限,设置过期时间
svntool perm grant developers myproject --group --expires 2024-12-31

# 查询权限
svntool perm query --repo myproject
svntool perm query --user alice

# 撤销权限
svntool perm revoke alice myproject --path /trunk

# 清除用户所有权限
svntool perm clear-user alice --confirm

4. 备份管理

# 手动创建备份
svntool backup create

# 查看备份状态
svntool backup status

# 同步authz到数据库
svntool backup sync

命令结构

svntool
├── repo          # 仓库管理
│   ├── create    # 创建仓库
│   ├── list      # 列出仓库
│   ├── delete    # 删除仓库
│   └── paths     # 列出仓库路径
├── perm          # 权限管理
│   ├── grant     # 授权
│   ├── revoke    # 撤销权限
│   ├── query     # 查询权限
│   └── clear-user # 清除用户权限
├── backup        # 备份管理
│   ├── create    # 创建备份
│   ├── status    # 备份状态
│   └── sync      # 同步数据库
└── config        # 配置管理
    ├── add-server    # 添加服务器
    ├── remove-server # 删除服务器
    ├── list-servers  # 列出服务器
    └── set-default   # 设置默认服务器

交互模式

当缺少必要参数时,工具会自动进入交互模式:

# 不提供参数时进入向导
svntool repo create
svntool perm grant
svntool config add-server

# 或直接进入交互模式
svntool interactive

配置文件

配置文件位置:/etc/svn-api-client/config.yaml~/.svn-api-client/config.yaml

servers:
  default: yellow
  aliases:
    yellow:
      url: "http://svn01:8080"
      description: "黄河项目SVN服务器"
    blue:
      url: "http://svn02:8080"
      description: "蓝海项目SVN服务器"

client:
  timeout: 30
  retry_attempts: 3
  output_format: "table"

高级用法

多服务器环境

# 指定服务器执行命令
svntool repo list --server blue
svntool perm grant alice myproject --server http://svn03:8080

# 使用别名
svntool perm query --server yellow

批量操作

# 查询所有仓库的权限
svntool perm query

# 查询特定用户在所有仓库的权限
svntool perm query --user alice

# 显示包括过期权限
svntool perm query --show-expired

输出格式

# JSON格式输出
svntool repo list --format json

# YAML格式输出
svntool perm query --format yaml

# 表格格式(默认)
svntool config list-servers --format table

错误处理

工具提供详细的错误信息和解决建议:

  • 网络连接错误时显示连接诊断信息
  • API错误时显示状态码和详细消息
  • 配置错误时提供修复建议
  • 输入验证失败时显示正确格式

许可证

MIT License

贡献

欢迎提交Issue和Pull Request。

支持

如有问题请联系 [your-email@example.com]

About

SVN API Server 的配套客户端工具,通过提示符或易于扩展的命令行操作 SVN Authz 授权。 A supporting client tool for the SVN API Server, which operates SVN Authz authorization via prompts or easily extensible command lines.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published