MCPcopy Create free account
hub / github.com/CodSpeedHQ/codspeed / resolve_auth_status

Function resolve_auth_status

src/cli/auth.rs:192–227  ·  view source on GitHub ↗

Resolve the session and (when a git remote is detected) the repository overview.

(
    api_client: &CodSpeedAPIClient,
    parsed: Option<ParsedRepository>,
)

Source from the content-addressed store, hash-verified

190
191/// Resolve the session and (when a git remote is detected) the repository overview.
192async 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
229fn print_authentication_section(has_token: bool, session: Option<&SessionPayload>) {
230 let Some(session) = session else {

Callers 1

statusFunction · 0.85

Calls 2

sessionMethod · 0.80

Tested by

no test coverage detected