3 个版本
0.1.0-prealpha.3 | 2024 年 2 月 24 日 |
---|---|
0.1.0-prealpha.1 | 2024 年 1 月 28 日 |
0.1.0-prealpha.0 | 2024 年 1 月 23 日 |
#848 in 开发工具
87KB
711 行
Autocrate
免责声明:我使用所谓的 AI 工具生成了说明和标志,并在之后进行了修改。
Autocrate 简化了在 Gitea 服务器上托管 Rust 项目的发布创建和维护。通过提供上传工件、发布软件包和管理变更日志等基本功能,Autocrate 优化了发布过程,让开发者能够专注于自己的工作。虽然最初是为 Gitea 构建的,但我们计划扩展对其他平台如 GitHub 和 GitLab 的支持。
查看 scripts 目录!publish.sh 和 release.sh 就是我想摆脱的东西。
功能
- 在您的 Gitea 服务器上创建和更新版本
- 直接从您的 Rust 项目发布软件包到 Cargo.rs 或其他仓库
- 上传工件,包括文档和二进制文件,与您的发布一起
- 生成和维护变更日志和发布说明。
即将推出的功能
我的目标是不断改进 Autocrate,更好地为开发者社区服务。一些计划改进包括支持其他流行的托管平台,提供更大的灵活性和便利性。
入门
在开始使用 Autocrate 之前,请确保您已经满足了必要的先决条件
- Rust 环境:通过官方网站安装最新稳定的 Rust 编译器和相关工具:https://rust-lang.net.cn/
- 访问 Gitea 服务器(例如 git.cscherr.de 和 codeberg.org(严格来说,使用 Gitea 分支)
安装
一旦满足上述先决条件,您可以通过在终端中运行以下命令开始设置 Autocrate
$cargo install autocrate
此命令从 crates.io 下载并编译 Autocrate,使其通过您的命令行界面轻松访问。
配置 Autocrate
在您Git仓库的根目录下创建一个名为.autocrate.yml
(或.yaml
)的YAML文件。该文件应包含以下参数(替换占位符)
父级 | 键 | 值 | 说明 |
---|---|---|---|
(根目录) | 更改日志 |
具有此父级的键列表(如git-log 等) |
关于如何生成更改日志的信息 |
更改日志 |
启用 |
true /false |
如果为false,则不会生成更改日志 |
更改日志 |
git-log |
true /false |
是否应使用git log 生成更改日志? |
(根目录) | 使用 |
具有此父级的键列表(如cargo 等) |
标记Autocrate将使用的功能 |
使用 |
cargo |
具有此父级的键列表(如publish 等) |
告诉我们您的项目使用cargo |
cargo |
发布 |
true /false |
是否应该发布crates? |
cargo |
注册表 |
注册表请参阅此处 | 我们应该发布到的注册表列表。如果为空,则默认为crates.io |
(根目录) | API |
具有相同键的名称列表 | 定义我们与之通信的API |
API.NAME |
类型 |
其中之一:gitea 、github 、gitlab(目前仅支持 |
让我们知道我们在与哪种API类型通信 |
API.NAME |
端点 |
目标服务器的Base URL | 让我们知道我们在与哪种API类型通信 |
API.NAME |
认证 |
具有此父级的键列表(如user 和pass ) |
我们可能在目标服务器上需要认证 |
API.NAME.认证 |
用户 |
一个字符串 | 我们应该尝试认证哪个用户 |
API.NAME.认证 |
密码 |
包含text 、env 或file 之一 |
为与该服务器进行认证设置秘密 |
API.NAME.认证.密码 |
text |
明文认证密码 | 用于服务器认证的秘密,可能是令牌 |
API.NAME.认证.密码 |
env |
包含令牌的环境变量 | 用于服务器认证的秘密,可能是令牌 |
API.NAME.认证.密码 |
file |
包含令牌的文件变量 | 用于服务器认证的秘密,可能是令牌 |
一个示例.autocrate.yaml
可能如下所示
changelog:
enable: true
git-log: true
uses:
cargo:
publish: true
# tokens are loaded from ~/.cargo/config.toml
registries:
- default
- cscherr
api:
github:
type: github
endpoint: https://github.com
auth:
user: PlexSheep
pass:
text: token_superimportantsecret
cscherr:
type: gitea
endpoint: https://git.cscherr.de
auth:
user: PlexSheep
pass:
file: secrettoken.txt
在Autocrate被初始化后,它将与自身一起发布和发布,因此您可以查看此存储库的.autocrate.yaml
:链接。
使用Autocrate
待定
许可
Autocrate是自由软件。
Autocrate项目在GPL-3许可证的条款下分发。有关完整的许可详情,请参阅此处。
项目状态
该项目最近启动,目前处于预alpha阶段。
贡献
我非常乐意接受贡献!虽然主存储库在我的自托管git服务器上,但您可以在GitHub上创建问题、PR等。如果活动足够,迁移到GitHub可能是个好主意。
如果您有任何问题,请使用问题标签或讨论标签,或者给我发电子邮件至[email protected]
依赖项
~25–41MB
~733K SLoC