3 个版本
使用旧的 Rust 2015
0.2.2 | 2018 年 10 月 20 日 |
---|---|
0.2.1 | 2017 年 12 月 21 日 |
0.2.0 | 2017 年 12 月 16 日 |
#1812 在 开发工具 中
41KB
837 行
Repo Backup
一个小工具,可以从各种来源创建您所有项目的本地副本。
目前支持来源
提供者 | 可用的仓库 |
---|---|
GitHub |
|
GitLab |
|
入门
如果您已经安装了 Rust,您可以直接从 crates.io 安装此程序。
$ cargo install repo-backup
否则,可以从 GitHub 发布 获取预编译的二进制文件。
安装 repo-backup
后,您可以从命令行运行它。
$ repo-backup -v
2017-12-17 02:01:42 [INFO ]: Starting repository backup
2017-12-17 02:01:42 [INFO ]: Fetching repositories from github
2017-12-17 02:01:49 [INFO ]: Found 209 repos from github
2017-12-17 02:01:49 [INFO ]: Updating repositories
2017-12-17 02:05:46 [INFO ]: Finished repository backup
此工具旨在避免冗余输出,并且仅在出现问题时向终端打印消息(有时称为 "沉默规则" 的 Unix 哲学)。但是,您可以通过添加更多的 --v
标志来让它更详细。
生成的树状结构看起来像这样(为了简洁,省略了数百个目录)
$ tree -L 3 /srv/
/srv/
├── github
│ ├── BurntSushi
│ │ └── ripgrep
...
│ ├── Michael-F-Bryan
│ │ ├── rust-ffi-guide
...
│ │ └── repo-backup
...
│ └── yupferris
│ └── rustendo64
└── gitlab
├── Curtin-Motorsport-Team
│ ├── CAN-node
...
│ └── telemetry
└── Michael-F-Bryan
├── dotfiles
...
└── uni-work
配置
配置是通过 repo-backup.toml
文件完成的。默认情况下,repo-backup
程序将在您的家目录中查找此文件(作为 ~/.repo-backup.toml
),但可以通过命令行覆盖。
唯一必需的表是 general
,其他表用于启用和配置相应的 Provider
。
提示:您可以使用
--example-config
标志让工具打印示例配置。$ repo-backup --example-config [general] dest-dir = '/srv' [github] api-key = 'your API key' starred = false owned = true [gitlab] api-key = 'your API key' url = 'https://gitlab.com/' organisations = true owned = true
通常,所有
Provider
特定密钥都是可选的,除了api-key
以外。
大多数提供者都会要求您拥有 API 密钥才能访问其 API 并检索完整的备份目标列表。
对于 GitHub 提供商,您需要创建一个新的个人访问令牌,并授予它公共仓库权限,才能抓取仓库。GitLab 提供商也要求您创建一个个人访问令牌,并授予它 "api" 范围。
依赖项
~28–40MB
~711K SLoC