Resolve the session and (when a git remote is detected) the repository overview.
(
api_client: &CodSpeedAPIClient,
parsed: Option<ParsedRepository>,
)
| 190 | |
| 191 | /// Resolve the session and (when a git remote is detected) the repository overview. |
| 192 | async fn resolve_auth_status( |
| 193 | api_client: &CodSpeedAPIClient, |
| 194 | parsed: Option<ParsedRepository>, |
| 195 | ) -> Result<AuthStatus> { |
| 196 | let Some(parsed) = parsed else { |
| 197 | let session = match api_client.session().await { |
| 198 | Ok(payload) => Some(payload), |
| 199 | Err(SessionError::Unauthenticated) => None, |
| 200 | Err(SessionError::Other(err)) => return Err(err), |
| 201 | }; |
| 202 | return Ok(AuthStatus { |
| 203 | session, |
| 204 | detected_repository: None, |
| 205 | }); |
| 206 | }; |
| 207 | |
| 208 | let combined = api_client |
| 209 | .session_and_repository_overview(SessionAndRepositoryOverviewVars { |
| 210 | owner: parsed.owner.clone(), |
| 211 | name: parsed.name.clone(), |
| 212 | provider: Some(parsed.provider.clone()), |
| 213 | }) |
| 214 | .await; |
| 215 | |
| 216 | match combined { |
| 217 | Ok(payload) => Ok(AuthStatus { |
| 218 | session: Some(payload.session), |
| 219 | detected_repository: Some((parsed, payload.repository_overview)), |
| 220 | }), |
| 221 | Err(SessionAndRepositoryOverviewError::Unauthenticated) => Ok(AuthStatus { |
| 222 | session: None, |
| 223 | detected_repository: Some((parsed, None)), |
| 224 | }), |
| 225 | Err(SessionAndRepositoryOverviewError::Other(err)) => Err(err), |
| 226 | } |
| 227 | } |
| 228 | |
| 229 | fn print_authentication_section(has_token: bool, session: Option<&SessionPayload>) { |
| 230 | let Some(session) = session else { |
no test coverage detected