cargo_auto_github_lib
Library for cargo-auto automation tasks written in rust language with functions for github.
version: 0.1.7 date: 2021-09-18 author: bestia.dev repository: GitHub
Hashtags: #rustlang #buildtool #developmenttool #github
My projects on Github are more like a tutorial than a finished product: bestia-dev tutorials.
Try it
In your rust project root directory (where the Cargo.toml is)
first install cargo-auto and generate a new helper project:
cargo install cargo-auto
cargo auto new
In a new editor open the generated directory automation_tasks_rs
as an independent rust project. There is already this dependency in Cargo.toml
:
cargo_auto_github_lib="0.1.*"
Preview the code and observe all the auto_github_*
functions from cargo_auto_github_lib
.
Example:
fn task_github_new_release() {
// async block inside sync code with tokio
let rt = tokio::runtime::Runtime::new().unwrap();
rt.block_on(async move {
// ...
let release_id = auto_github_create_new_release(&owner, &repo, &version, &name, branch, body_md_text).await;
println!("New release created, now uploading release asset. This can take some time if the files are big. Wait...");
// upload asset
let path_to_file = format!(
"target/release/{package_name}",
package_name = package_name()
);
auto_github_upload_asset_to_release(&owner, &repo, &release_id, &path_to_file).await;
println!("Asset uploaded.");
});
}
You need to have a github PAT (personal access token) and save it in a environment variable:
export GITHUB_TOKEN=ghp_111111111111111111111
Run (in your main rust project):
cargo auto release
cargo auto github_new_release
With a little luck, it will create a new release in github.
Functions
All the functions have extensive hep/docs to describe how they work.
It is nice when you use a code editor with IntelliSense like VSCode.
Here is a list of some of them:
auto_github_create_new_release()
- creates new release on Githubauto_github_upload_asset_to_release()
- add asset to the github release
TODO
Simpler library for github. This one octocrab with Tokio is too complex. I need just a fraction of functionality. Maybe to write it myself. I just need to call some rest api.
cargo crev reviews and advisory
We leave in times of danger with supply chain attacks.
It is recommended to always use cargo-crev
to verify the trustworthiness of each of your dependencies.
Please, spread this info.
You can also read reviews quickly on the web. Example for the crate num-traits
:
https://web.crev.dev/rust-reviews/crate/num-traits/
open-source free and free as a beer
My open-source projects are free and free as a beer (MIT license).
I just love programming.
But I need also to drink. If you find my projects and tutorials helpful,
please buy me a beer or two donating on my paypal.
You know the price of a beer in your local bar ;-)
So I can drink a free beer for your health :-)
Na zdravje !