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 |
|
#49 在 构建工具
每月 1,004 次下载
41KB
320 行
cargo_auto_github_lib
用于 cargo-auto 的库,用 Rust 语言编写的 GitHub 自动化任务
版本:1.1.8 日期:2024-04-30 作者:bestia.dev 仓库:GitHub
标签:#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