Skip to content

Releases: pupca/svncli

v1.0.0 — First stable release

Choose a tag to compare

@pupca pupca released this 18 Mar 07:50

svncli 1.0.0

CLI tool and Python library for syncing files with Polarion's SVN repository when direct SVN access is not available (PolarionX, hosted environments).

Features

  • CLI commands: ls, cp, sync, rm, mkdir, login/logout — modeled after aws s3
  • Python API: PolarionSVNClient class mirrors the CLI for programmatic use
  • Multi-server: server:path format for all commands, with per-server cookie management
  • Cross-server sync: copy and sync files between two Polarion servers
  • Smart sync: revision tracking with manifests — only transfers changed files
  • Three auth methods: browser cookie extraction, interactive browser login (Playwright), or manual cookie string
  • Platforms: macOS, Linux, Windows — Python 3.10–3.14

CLI Quick Start

pip install svncli
svncli login https://your-server.com
svncli ls https://your-server.com:Project/trunk
svncli sync ./local-folder https://your-server.com:Project/trunk

Python API

from svncli import PolarionSVNClient

client = PolarionSVNClient()
client.login("https://your-server.com")
items = client.ls("https://your-server.com:Project/trunk")
client.sync("./local", "https://your-server.com:Project/trunk")

Security

  • Zip Slip protection on archive extraction
  • Atomic cookie file writes with restricted permissions (0o600)
  • Symlink-safe local directory scanning
  • Path traversal protection in download sync
  • No environment variable expansion in paths