#github-api #维护 #可用 #cargo-auto #rust

构建 cargo_auto_github_lib

用于 GitHub 的功能,用 Rust 语言编写的 cargo-auto 自动化任务的库

12 个版本 (稳定)

1.1.8 2024年4月30日
1.1.6 2024年4月23日
0.1.34 2024年4月16日
0.1.24 2023年5月31日
0.1.5 2021年8月27日

#49构建工具

Download history 957/week @ 2024-04-14 225/week @ 2024-04-21 333/week @ 2024-04-28 10/week @ 2024-05-05 6/week @ 2024-05-19 1/week @ 2024-05-26

每月 1,004 次下载

MIT 许可证

41KB
320

cargo_auto_github_lib

用于 cargo-auto 的库,用 Rust 语言编写的 GitHub 自动化任务
版本:1.1.8 日期:2024-04-30 作者:bestia.dev 仓库:GitHub

maintained ready-for-use rust cargo-auto

Lines in Rust code Lines in Doc comments Lines in Comments Lines in examples Lines in tests

crates.io Documentation crev reviews Lib.rs License Rust Hits

标签:#rustlang #buildtool #developmenttool #github
我的 Github 项目更像教程而不是成品: bestia-dev 教程.

试试看

在你的 rust 项目根目录(Cargo.toml 所在的位置)
首先安装 cargo-auto 并生成一个新的辅助项目

cargo install cargo-auto
cargo auto new

在一个新的编辑器中,将生成的目录 automation_tasks_rs 作为独立的 Rust 项目打开。在 Cargo.toml 中已经存在这个依赖

cargo_auto_github_lib="0.1.*"

预览代码并观察来自 cargo_auto_github_lib 的所有 auto_github_* 函数。
示例

fn task_github_new_release() {
    // ...

    let github_client = crate::github_mod::GitHubClient::new();
    let json_value = github_client.send_to_github_api(cgl::github_api_create_new_release(
        &github_owner,
        &repo_name,
        &tag_name_version,
        &release_name,
        branch,
        &body_md_text,
    ));

    //...

    // upload asset
    cgl::github_api_upload_asset_to_release(
        &github_client,
        &github_owner,
        &repo_name,
        &release_id,
        &tar_name,
    );
}

你需要有一个 GitHub PAT(个人访问令牌)

运行(在你的主 Rust 项目中)

cargo auto release
cargo auto github_new_release

运气好的话,它将在 GitHub 上创建一个新的版本。

函数

所有函数都有详细的帮助/文档来描述它们的工作方式。
如果你使用像 VSCode 这样的具有智能感知的代码编辑器,那就更好了。
以下是一些示例

  • auto_github_create_new_release() - 在 GitHub 上创建新版本
  • auto_github_upload_asset_to_release() - 将资产添加到 GitHub 版本中

GitHub API secret_token

GitHub API secret_token 就像密码一样是秘密的。也许更重要。
有了这个 API secret_token,一个恶意行为者可以基本上更改你 GitHub 账户中的任何内容。你不想这样。

如何保护这个秘密?
好的,有一些基本建议

  • HTTPS是毫无疑问的。永远不要再使用HTTP。它是在线上的纯文本。
  • 频繁使secret_token过期,这样旧的secret_tokens就毫无用处
  • 永远不要以纯文本形式将secret_token存储在文件中
  • 环境变量中的纯文本也可以被恶意软件访问
  • 将API secret_token的权限/授权权限降到最低

但真正的问题出现在你想要使用secret_token的时候。你如何信任你给secret_token的代码呢?
可能最好的情况是,这段代码是由你自己编写的,或者你完全控制它。这使得使用库/crate变得非常繁琐。你无法默认信任它们。然而,避免对底层crate/libraries的信任是不可能的。

开源且免费,就像啤酒一样

我的开源项目免费,就像啤酒一样(MIT许可证)。
我真的很喜欢编程。
但我也需要喝酒。如果你觉得我的项目和教程有帮助,请通过向我的PayPal捐赠来买给我一杯啤酒。PayPal
你知道你当地酒吧啤酒的价格吗?;-)
所以我可以为你喝一杯免费的啤酒,祝你健康!:-)
Na zdravje! Alla salute! Prost! Nazdravlje! 🍻

//bestia.dev
//github.com/bestia-dev
//bestiadev.substack.com
//youtube.com/@bestia-dev-tutorials

依赖关系

~19–36MB
~600K SLoC