3 个版本

0.1.0-prealpha.32024 年 2 月 24 日
0.1.0-prealpha.12024 年 1 月 28 日
0.1.0-prealpha.02024 年 1 月 23 日

#848 in 开发工具

GPL-3.0-or-later

87KB
711

Autocrate

Project badge Crates.io License Gitea Release Gitea language count cargo checks and tests

logo

免责声明:我使用所谓的 AI 工具生成了说明和标志,并在之后进行了修改。

Autocrate 简化了在 Gitea 服务器上托管 Rust 项目的发布创建和维护。通过提供上传工件、发布软件包和管理变更日志等基本功能,Autocrate 优化了发布过程,让开发者能够专注于自己的工作。虽然最初是为 Gitea 构建的,但我们计划扩展对其他平台如 GitHub 和 GitLab 的支持。

查看 scripts 目录!publish.shrelease.sh 就是我想摆脱的东西。

功能

  • 在您的 Gitea 服务器上创建和更新版本
  • 直接从您的 Rust 项目发布软件包到 Cargo.rs 或其他仓库
  • 上传工件,包括文档和二进制文件,与您的发布一起
  • 生成和维护变更日志和发布说明。

即将推出的功能

我的目标是不断改进 Autocrate,更好地为开发者社区服务。一些计划改进包括支持其他流行的托管平台,提供更大的灵活性和便利性。

入门

在开始使用 Autocrate 之前,请确保您已经满足了必要的先决条件

安装

一旦满足上述先决条件,您可以通过在终端中运行以下命令开始设置 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 类型 其中之一:giteagithubgitlab(目前仅支持gitea 让我们知道我们在与哪种API类型通信
API.NAME 端点 目标服务器的Base URL 让我们知道我们在与哪种API类型通信
API.NAME 认证 具有此父级的键列表(如userpass 我们可能在目标服务器上需要认证
API.NAME.认证 用户 一个字符串 我们应该尝试认证哪个用户
API.NAME.认证 密码 包含textenvfile之一 为与该服务器进行认证设置秘密
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