3 个版本

使用旧的 Rust 2015

0.2.2 2018 年 10 月 20 日
0.2.1 2017 年 12 月 21 日
0.2.0 2017 年 12 月 16 日

#1812开发工具

MIT 许可证

41KB
837

Repo Backup

Build Status Build status Crates.io Docs License

一个小工具,可以从各种来源创建您所有项目的本地副本。

目前支持来源

提供者 可用的仓库
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