-
-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathteams.rs
93 lines (81 loc) · 2.26 KB
/
teams.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
use futures::prelude::*;
use hubcaps::teams::{TeamMemberOptions, TeamMemberRole, TeamOptions};
use hubcaps::{Credentials, Github};
use std::env;
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
pretty_env_logger::init();
let token = env::var("GITHUB_TOKEN")?;
let github = Github::new(
concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION")),
Credentials::Token(token),
)?;
let org = "eb6cb83a-cf75-4e88-a11a-ce117467d8ae";
let repo_name = "d18e3679-9830-40a9-8cf5-16602639b43e";
println!("org teams");
github
.org(org)
.teams()
.iter()
.try_for_each(|team| async move {
println!("{:#?}", team);
Ok(())
})
.await?;
println!("repo teams");
github
.repo(org, repo_name)
.teams()
.iter()
.try_for_each(|team| async move {
println!("{:#?}", team);
Ok(())
})
.await?;
let new_team = github
.org(org)
.teams()
.create(&TeamOptions {
name: String::from("hi"),
description: Some(String::from("there")),
permission: None,
privacy: Some(String::from("secret")),
})
.await?;
println!("Created team: {:#?}", new_team);
let team = github.org(org).teams().get(new_team.id);
let updated_team = team
.update(&TeamOptions {
name: String::from("hello"),
description: None,
permission: None,
privacy: None,
})
.await?;
println!("Updated team: {:#?}", updated_team);
println!(
"Adding grahamc to the team: {:#?}",
team.add_user(
"grahamc",
TeamMemberOptions {
role: TeamMemberRole::Member,
}
)
.await?
);
println!("members:");
team.iter_members()
.try_for_each(|member| async move {
println!("{:#?}", member);
Ok(())
})
.await?;
println!(
"Removing grahamc from the team: {:#?}",
team.remove_user("grahamc").await?
);
let deleted_team = team.delete().await?;
println!("Deleted team: {:#?}", deleted_team);
Ok(())
}