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可能是个好主意。
如果您有任何问题,请使用问题标签或讨论标签,或者给我发电子邮件至software@cscherr.de
依赖项
~25–41MB
~733K SLoC