use octocrab::Octocrab;
#[tokio::main]
async fn main() -> octocrab::Result<()> {
let token = std::env::var("GITHUB_TOKEN").expect("GITHUB_TOKEN env variable is required");
let octocrab = Octocrab::builder().personal_token(token).build()?;
let created = octocrab
.issues("owner", "repo")
.create("Parent")
.labels(vec!["bug".to_string(), "enhancement".to_string()])
.add_sub_issue("Sub-issue A", |sub| {
sub.body("Body for sub-issue A")
.labels(vec!["good-first-issue".to_string()])
.add_sub_issue("Nested under A", |nested| {
nested
.body("Body for the nested sub-issue")
.assignees(vec!["ahmed-mekky".to_string()])
})
})
.add_sub_issue("Sub-issue B", |sub| {
sub.body("Body for sub-issue B")
.assignees(vec!["ahmed-mekky".to_string()])
.replace_parent(true)
})
.body("Parent issue body")
.send()
.await?;
println!("Parent issue: {}", created.html_url);
Ok(())
}