File tree 2 files changed +16
-0
lines changed 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,11 @@ enum Request {
12
12
#[ clap( long, env = "GITHUB_ACCESS_TOKEN" , hide_env_values = true ) ]
13
13
access_token : SecretString ,
14
14
} ,
15
+ GetUser {
16
+ name : String ,
17
+ #[ clap( long, env = "GITHUB_ACCESS_TOKEN" , hide_env_values = true ) ]
18
+ access_token : SecretString ,
19
+ } ,
15
20
OrgByName {
16
21
org_name : String ,
17
22
#[ clap( long, env = "GITHUB_ACCESS_TOKEN" , hide_env_values = true ) ]
@@ -58,6 +63,11 @@ async fn main() -> Result<()> {
58
63
let response = github_client. current_user ( & access_token) . await ?;
59
64
println ! ( "{response:#?}" ) ;
60
65
}
66
+ Request :: GetUser { name, access_token } => {
67
+ let access_token = AccessToken :: new ( access_token. expose_secret ( ) . into ( ) ) ;
68
+ let response = github_client. get_user ( & name, & access_token) . await ?;
69
+ println ! ( "{response:#?}" ) ;
70
+ }
61
71
Request :: OrgByName {
62
72
org_name,
63
73
access_token,
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ type Result<T> = std::result::Result<T, GitHubError>;
20
20
#[ async_trait]
21
21
pub trait GitHubClient : Send + Sync {
22
22
async fn current_user ( & self , auth : & AccessToken ) -> Result < GitHubUser > ;
23
+ async fn get_user ( & self , name : & str , auth : & AccessToken ) -> Result < GitHubUser > ;
23
24
async fn org_by_name ( & self , org_name : & str , auth : & AccessToken ) -> Result < GitHubOrganization > ;
24
25
async fn team_by_name (
25
26
& self ,
@@ -102,6 +103,11 @@ impl GitHubClient for RealGitHubClient {
102
103
self . request ( "/user" , auth) . await
103
104
}
104
105
106
+ async fn get_user ( & self , name : & str , auth : & AccessToken ) -> Result < GitHubUser > {
107
+ let url = format ! ( "/users/{name}" ) ;
108
+ self . request ( & url, auth) . await
109
+ }
110
+
105
111
async fn org_by_name ( & self , org_name : & str , auth : & AccessToken ) -> Result < GitHubOrganization > {
106
112
let url = format ! ( "/orgs/{org_name}" ) ;
107
113
self . request ( & url, auth) . await
You can’t perform that action at this time.
0 commit comments