File tree Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,11 @@ enum Request {
1212 #[ clap( long, env = "GITHUB_ACCESS_TOKEN" , hide_env_values = true ) ]
1313 access_token : SecretString ,
1414 } ,
15+ GetUser {
16+ name : String ,
17+ #[ clap( long, env = "GITHUB_ACCESS_TOKEN" , hide_env_values = true ) ]
18+ access_token : SecretString ,
19+ } ,
1520 OrgByName {
1621 org_name : String ,
1722 #[ clap( long, env = "GITHUB_ACCESS_TOKEN" , hide_env_values = true ) ]
@@ -58,6 +63,11 @@ async fn main() -> Result<()> {
5863 let response = github_client. current_user ( & access_token) . await ?;
5964 println ! ( "{response:#?}" ) ;
6065 }
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+ }
6171 Request :: OrgByName {
6272 org_name,
6373 access_token,
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ type Result<T> = std::result::Result<T, GitHubError>;
2020#[ async_trait]
2121pub trait GitHubClient : Send + Sync {
2222 async fn current_user ( & self , auth : & AccessToken ) -> Result < GitHubUser > ;
23+ async fn get_user ( & self , name : & str , auth : & AccessToken ) -> Result < GitHubUser > ;
2324 async fn org_by_name ( & self , org_name : & str , auth : & AccessToken ) -> Result < GitHubOrganization > ;
2425 async fn team_by_name (
2526 & self ,
@@ -102,6 +103,11 @@ impl GitHubClient for RealGitHubClient {
102103 self . request ( "/user" , auth) . await
103104 }
104105
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+
105111 async fn org_by_name ( & self , org_name : & str , auth : & AccessToken ) -> Result < GitHubOrganization > {
106112 let url = format ! ( "/orgs/{org_name}" ) ;
107113 self . request ( & url, auth) . await
You can’t perform that action at this time.
0 commit comments