<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="1832" failures="0" errors="0" time="34.557561">
	<testsuite tests="34" failures="0" time="1.522000" name="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" timestamp="2026-10-15T21:19:10Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestRunHealthcheckSucceedsWhenReadyzAnswers200" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestRunHealthcheckFailsWhenReadyzAnswersNon200" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestRunHealthcheckFailsWhenNothingIsListening" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestRunHealthcheckFallsBackToDefaultAddrWhenEnvUnset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestRunHealthcheckProbesReadyzNotHealthz" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestRunHealthcheckSucceedsOnReadyz200EvenIfHealthzIsNot" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestSchemaPinger_MigratedDatabase_Passes" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestSchemaPinger_DatabaseWithoutSchema_Fails" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestSchemaPinger_ClosedDatabase_Fails" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveRefreshInterval_NoEnv_UsesDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveRefreshInterval_ValidEnv_Overrides" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveRefreshInterval_InvalidEnv_FallsBackToDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveCIPollInterval_NoEnv_UsesDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveCIPollInterval_ValidEnv_Overrides" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveCIPollInterval_InvalidEnv_FallsBackToDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveCIPollInterval_ExplicitZero_DisablesRatherThanFallingBack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestOpenDatabase_SurvivesConcurrentWriters" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestConfigureLogging_DebugLevel_EnablesDebugLogging" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestConfigureLogging_NoLevelSet_DebugStaysDisabled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResumeQueuedActions_StartsTheDashboardOfEachUserWithAWaitingAction" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResumeQueuedActions_UserWithNoSavedSettings_IsSkipped" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResumeQueuedActions_StoreFailure_StartsNothingAndDoesNotPanic" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveShutdownDrain_Zero_DisablesTheWait" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestOptionalCapabilities_GitHubOnlyOnesAreNotInTheForgejoClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveShutdownDrain_InvalidOrNegative_UsesDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestResolveShutdownDrain_NoEnv_UsesDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestBuildGitHubSource_InstallationIdSetButNoServerApp_FallsBackToToken" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestDrainThenShutdown_FlipsUnreadyBeforeShutdownAndWaitsTheDelay" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestBuildGitHubSource_AppFailsWithNoFallback_ReportsHealthError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestBuildGitHubSource_BothAppInstallationAndToken_AppWins" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestOptionalCapabilities_CoverEveryOneTheAPIAsksFor" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestBuildGitHubSource_AppConstructionFails_FallsBackToToken" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestForgejoSource_ExposesEveryCapabilityItsClientHas" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/cmd/forge-dashboard" name="TestBuildSourcesForUser_TwoUsers_RecordUnderTwoDistinctAccountIDs" time="0.090000"></testcase>
	</testsuite>
	<testsuite tests="644" failures="0" time="33.338000" name="github.com/alrayyes/forge-dashboard/internal/api" timestamp="2026-10-15T21:19:11Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_UnauthenticatedRequest_LogsMethodPathStatusDuration" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_RejectedRequest_StillLogsAtWarn" time="0.330000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_AuthenticatedRequest_IncludesUsername" time="0.270000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_NeverLogsAuthorizationHeaderOrQueryString" time="0.280000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_Healthz_SuppressedAtDefaultInfoLevel" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_Healthz_StillLoggedAtDebug" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_Readyz_SuppressedAtDefaultInfoLevel" time="0.850000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_Readyz_StillLoggedAtDebug" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAccessLog_5xxStatus_LogsAtError" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_LogsHowTheCallerAuthenticatedAndTheUserAgent" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_EnsureWebhookFails_LogsTheError" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_ClosedDelivery_AFailedScopedRefreshStillRemovesThePullRequestAndLogsIt" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_InvalidSignature_LogsForgeEventAndDeliveryID" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestThemeGet_NothingSavedYet_ReturnsEmptyMeaningSystem" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_AlreadyTicked_IsAlreadyRequested" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_CantMergeCleanly_ClassifiesAs409" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_WithOwnerQuery_UnsharedViewer_Refused" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_Accepted_Returns202NotAFailure" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_ForgeWithNoSupport_Returns400" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_ForgejoDispatchesToTheForgejoSource" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_CallsUpdateBranchWithOwnerNameAndNumber" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_OnForgejo_TheTokenMayNotRerun_Is403" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_OnForgejo_NoFailedJob_Is409InThePlainSentence" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_ARefusedMergeHidesNothing" time="0.220000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_OnForgejo_RefusesAPassingPullRequest_WithoutAskingTheForge" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_Unauthenticated_Returns401" time="0.290000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_ForgeWithNoRerunSupport_Returns400" time="0.290000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_OnForgejo_Reruns_AndAnswers204" time="0.330000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge" time="0.320000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_FailsClosedWithoutAUser" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_MalformedFullName_Returns400" time="0.320000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_Reruns_AndAnswers204" time="0.340000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_Unauthenticated_Returns401" time="0.290000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_ForgejoEmptyRefusalOnMergedPR_AnswersAlreadyMergedFromTheReRead" time="0.280000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_PermissionRefusalOnAMergedPullRequest_AnswersAlreadyMerged" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_LabelingFails_ClassifiesByError" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_ForgejoDispatchesToTheForgejoSource" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_UsesTheConfiguredLabel" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_UncodedFailure_KeepsTheRawTextOutOfTheResponse" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_NoCheckbox_FallsBackToTheLabel" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_ReReadFails_ReturnsTheOriginalErrorWithCodeUnknown" time="0.220000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_UsesDefaultLabelWhenNoneConfigured" time="0.220000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_SourceWithoutStateReader_AnswersUnknownWithTheOriginalStatus" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_RefusedWithAConflict_AnswersConflictFromTheReRead" time="0.240000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_RefusedOnAClosedPR_AnswersAlreadyClosed" time="0.220000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_InvalidFullName_Returns400" time="0.250000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_RefusedOnAnAlreadyMergedPR_AnswersAlreadyMerged" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_AfterAProcessRestart_LazilyRewarmsFromSavedSettings" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_MalformedFullName_Returns400" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_TriggersTheDashboardToReflectTheNewSources" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_Unauthenticated_Returns401" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_WithASessionButNoSettingsSaved_SerializesEmptyArraysNotNull" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_NoCredentialsSavedForThatForge_Returns400" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_NotMergeable_ClassifiesAs409" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_RequiresASession" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_RateLimited_ClassifiesAs429" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_SharedDashboard_DoesNotRevealTheOwnersQueue" time="0.260000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestHealthz_AnswersOK" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_ForgejoDispatchesToTheForgejoSource" time="0.250000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_ForgeWithNoMergeSupport_Returns400" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_CallsMergePullRequestWithOwnerNameAndNumber" time="0.240000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_IsKeptWhileItsForgeIsUnreachable" time="0.460000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringAtItsBoundIsStillAccepted" time="0.950000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUnhide_NotHiddenIsStillA204" time="0.260000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestBody_WebhookRoutesKeepTheirOwnCap" time="0.680000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestBody_AnOrdinaryBodyStillGoesThrough" time="0.330000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUnhide_BringsItBack" time="0.400000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_RepeatWithDifferentScope_ReplacesIt" time="0.520000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_IsForgottenOnceThePullRequestCloses" time="0.500000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_Idempotent_IgnoringTwiceIsNotAnError" time="0.440000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_UntilRestoredHasNoEndTime" time="0.430000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_IncludeHiddenListsItMarkedHidden" time="0.580000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_ANumberOverItsBoundIsRefusedWithAFieldError" time="0.910000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_ForDaysSaysWhenItEnds" time="0.800000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_PRsOnly_ReportsScopeOnRepoStatus" time="0.490000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoUnignore_BringsItsPullRequestsAndIssuesBack" time="1.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_NothingHiddenCountsZero" time="0.340000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_NotIgnored_ReportsIgnoredFalse" time="0.390000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_CountsIt" time="0.390000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_RepoItselfStillListedWithAccurateWebhookStatus" time="0.380000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_IssuesOnly_LeavesPullRequestsOnTheDashboard" time="0.370000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_RequiresASession" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubAutoMerge_Armed_BoardSaysItIsWaiting" time="0.350000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_PRsOnly_LeavesIssuesOnTheDashboard" time="0.390000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_ExcludesItsPullRequestsAndIssuesFromTheDashboard" time="0.280000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_NeitherScope_Returns400" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubAutoMerge_Cancel_NotArmed_IsRefusedWithoutAskingGitHub" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Board_ListsNothingMergedAsAnEmptyArray" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRepoIgnore_RequiresASession" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_NotArmed_HasNoStatus" time="0.240000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubAutoMerge_Cancel_DisablesItOnGitHub" time="0.260000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Armed_FailingChecksStopIt" time="0.260000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_TakesItOffTheBoard" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_WithNoForgejoCredentials_Returns400" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTimezoneGet_RequiresASession" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Cancel_Unauthenticated_Returns401" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Armed_BoardSaysItIsWaitingForChecks" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Cancel_NothingArmed_IsA204" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_PayloadNamesARepo_TriggersOnlyAScopedRefresh" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Cancel_OnGitHub_Returns400" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_PayloadWithNoRepository_FallsBackToFullRefresh" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_RefreshSurvivesTheTriggeringRequestEnding" time="0.430000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoWebhook_WrongSecret_Refused" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Cancel_RemovesTheIntent" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoWebhook_UnknownToken_Returns404" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoWebhook_MissingSignature_Refused" time="0.300000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_UnknownToken_Returns404" time="0.240000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoWebhook_ValidGiteaSignatureHeaderFallback_TriggersRefresh" time="0.250000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_Twice_IsA204Again" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_TamperedBody_Refused" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_WithConflicts_IsRefused" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoWebhook_ValidForgejoSignatureHeader_TriggersRefresh" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_NotArmed_BoardOffersEnable" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_MissingSignature_Refused" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_LiveDetectedWebhook_ReportsHasWebhookTrueWithNoDeliveryRecorded" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_BoardOffersCancelInsteadOfEnable" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_BoardReportsItOn" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_ReopenedDelivery_BringsThePullRequestBack" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_ClosedDelivery_APullRequestGitHubStillListsOpenLeavesTheBoard" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_ValidSignature_TriggersRefreshAndReturns204" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_OnAnEmptyPullRequestSaysThereIsNothingToMerge_WithoutAskingTheForge" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_StoresTheIntentWithoutAskingTheForge" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_Unauthenticated_Returns401" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_NoCredentialsSavedForThatForge_Returns400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_ForgeWithNoWebhookSupport_Returns400" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_StillUpdatesABehindPullRequest" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_StillMergesWhatAllowedActionsOffers" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ThenGet_RoundTripsNonSecretFieldsAndNeverReturnsTheToken" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_RefusesWhatAllowedActionsBlocks_WithoutAskingTheForge" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_ClientErrorPropagatesAsASpecificMessage" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_ForgejoDispatchesToTheForgejoSource" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_CallsEnsureWebhookWithTheAccountsOwnURLAndSecret" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestUsername_PaddingIsTrimmedBeforeTheLookup" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_MalformedFullName_Returns400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_ForgeWithNoSupport_Returns400" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensDelete_StopsItAuthenticating" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_Unauthenticated_Returns401" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokenExpired_RejectedLikeAnInvalidToken" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_AReleasePullRequestCarriesItsReleaseNotes" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensDelete_UnknownID_StillReturns204" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_ReturnsTheDescriptionAndTheConversation" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_PullRequestDetails" time="0.990000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_ExpiresAtMissing_Returns400" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_ExpiresAtInThePast_Returns400" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_CommandsBlocked_Returns409WithReasonAndPostsNothing" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_Unauthenticated_Returns401" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_BlankLabel_Returns400" time="0.710000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensGet_ListsExpiresAtPerToken" time="0.720000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_MalformedFullName_Returns400" time="0.710000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensGet_RequiresASession" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_ReturnsExpiresAt" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_CommentFails_ClassifiesByError" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_UnknownAction_Returns400AndPostsNothing" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensGet_NoneYet_ReturnsEmptyArrayNotNull" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_Recreate_PostsExactCommentText" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTimezonePut_DoesNotDisturbOtherSettings" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_ForgeWithNoSupport_Returns400" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_DoesNotAcceptOrDisturbTimezone" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_Rebase_PostsExactCommentText" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_Unauthenticated_Returns401" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTimezonePut_NotAnIANAName_Rejected" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_MalformedFullName_Returns400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTimezonePut_AcceptsUTCAndEmpty" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_ForgeWithNoCloseSupport_Returns400" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_StackedPullRequestsSaySoInTheResponse" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_ForgeRejects_ClassifiesAsItsOwnStatus" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_PullRequest_SerializesReviewState" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardStream_RequiresASession" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_ForgejoDispatchesToTheForgejoSource" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_NoCredentialsSavedForThatForge_Returns400" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_RepoStatus_SerializesURLAndCanManageWebhooks" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardRefresh_InsideTheCooldown_AnswersWithRetryAfter" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestClose_CallsClosePullRequestWithOwnerNameAndNumber" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardRefresh_NoBackgroundRefreshYet_Returns404" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestChecks_ForgejoViaGenericSource_ReturnsChecks" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_PullRequestsSayWhetherTheirReviewIsRequestedFromMe" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestChecks_FetchFails_ClassifiesByError" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardRefresh_RequiresASession" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestChecks_MalformedFullName_Returns400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardRefresh_ReturnsTheFreshSnapshot" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestChecks_ForgeWithNoSupport_Returns400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_RateLimitsCarryTheirSeverity" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestChecks_ReturnsEveryCheckForThePullRequest" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_AdvisesHowOftenToRead" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_PullRequestsCarryOneStatus" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_NavCountsIgnoreTheShowHiddenToggle" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_NavCountsLeaveOutAnIgnoredRepo" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_Unauthenticated_Returns401" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_PullRequestsCarryTheQuickFilterAnswers" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestChecks_Unauthenticated_Returns401" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_NavCountsAreZeroNotMissingWhenNothingIsTracked" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_MalformedFullName_Returns400" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_EnablingFails_ClassifiesByError" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_NavCountsTotalAndFailedPerPage" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_RefusesBadInput/number_not_integer" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_RefusesBadInput/number_missing" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_FlagsHousekeepingIssuesAndCountsTheRest" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_StillArmsAnEligiblePullRequest" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_RefusesBadInput/unknown_forge" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_RefusesBadInput/malformed_fullName" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_RefusesBadInput" time="0.640000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesAStackedPullRequest" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_EachPullRequestCarriesItsKind" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDependabotAction_BlockedAppAnswersPermissionWithTheReason" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_MissingLabelOnAnOpenPR_AnswersLabelMissing" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_BotRequest_RenovateRebase_ShowsOnThePullRequest" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_ReadBeforeTheFirstRefreshFinishes_WaitsForItInsteadOfAnsweringEmpty" time="0.450000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_BotRequest_DependabotRebase_ShowsOnThePullRequest" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_MergeOnlyStateDoesNotExplainOtherActions" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_BehindReasonSaysWhoUpdatesTheBranch" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_ReleasePullRequestKeepsUpdateBranchWhereAutoUpdateIsOn" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_BotRequest_TriggerRefused_RecordsNothing" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_UpdateBranchIsOfferedWhereAutoUpdateIsOff" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_UpdateBranchIsLeftOutWhereAutoUpdateIsOn" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_PullRequestsCarryTheirAllowedActions" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_ACancelledAutoMergeOnAnEmptyPullRequestSaysWhy" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestCredentialsDelete_UnknownID_StillReturns204" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestCredentialsDelete_LastOne_Returns400" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_RobotsTxtAllowsCrawling" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAddCredential_BlankLabel_Returns400" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAllowedActions_OnlyEmitsValuesTheSpecListsAsKnown" time="0.880000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestCredentialsDelete_WithAnotherRemaining_RemovesIt" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAddCredential_SecondPasskey_BothAuthenticateAfterwards" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestCredentialsGet_RequiresASession" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_ForgeErrorCarriesTheEndpointsMessage" time="0.560000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchEnable_Idempotent_EnablingTwiceIsNotAnError" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_ReturnsTheSameJSONAsTheHTTPEndpoint" time="0.610000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_ListsTheTool" time="0.570000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestCredentialsGet_AfterRegistration_ListsTheInitialPasskey" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchDisable_NeverEnabled_IsANoOp" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_ReturnsTheSameJSONAsTheHTTPEndpoint" time="0.520000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchEnable_NotEnabled_ReportsAutoUpdateBranchFalse" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_AListedReleasePullRequestCarriesReleaseNotes" time="0.540000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchEnable_ThenDashboard_ReportsAutoUpdateBranchTrue" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestDetails_ListsTheTool" time="0.570000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetMainBranches_ReturnsTheSameJSONAsTheHTTPEndpoint" time="0.580000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchEnable_RequiresASession" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetMainBranches_ListsTheTool" time="0.510000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegistrationStatus_AfterOneUserRegisters_IsClosed" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches_NoRepos" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegistrationStatus_NoUsersYet_IsOpen" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetDashboard_UnsharedOwner_ReturnsAToolError" time="0.580000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetMainBranches_LeavesOutARepoIgnoredForPullRequests" time="0.580000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_WithInvite_BlankDisplayName_Succeeds" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches_LeaveOutARepoIgnoredForPullRequests" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches_KeepARepoIgnoredOnlyForIssues" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetDashboard_ListsTheTool" time="0.510000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestHealthz_Draining_StaysLive" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetDashboard_RequiresAuth" time="0.830000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_Draining_Answers503AtOnceDespiteACachedPass" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchEnable_InvalidFullName_Returns400" time="0.870000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_CacheWindowPassed_PingsAgain" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AfterBootstrap_WithValidInvite_Succeeds" time="0.860000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_WithNoChecksWired_Answers200" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AfterBootstrap_WithExpiredOrConsumedOrMismatchedInvite_IsRefused/consumed" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AfterBootstrap_WithExpiredOrConsumedOrMismatchedInvite_IsRefused/mismatched_username" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AfterBootstrap_WithExpiredOrConsumedOrMismatchedInvite_IsRefused/unknown_token" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AfterBootstrap_WithExpiredOrConsumedOrMismatchedInvite_IsRefused" time="0.890000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_DatabaseDoesNotAnswer_Answers503WithinTheProbeTimeout" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_FirstRefreshPending_Answers503WithShortReason_HealthzStays200" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AfterBootstrap_WithNoInvite_IsRefused" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_AbandonedRegistration_CanBeRetried" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_DatabaseFailing_Answers503WithoutLeakingTheDriverError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_ReportsHowManyThreadsAndGoroutinesTheServiceHolds" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestLoginBegin_AbandonedRegistration_ReturnsNotFoundNotServerError" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestLogout_ClearsTheSession" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_DatabaseUpAndFirstRefreshDone_Answers200" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestVersion_NoSessionNeeded_AnswersTheRunningVersion" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRegisterBegin_DuplicateUsername_Conflicts" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPasskeyRegistration_SecondUserIsNotAdmin" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPasskeyRegistration_FirstUserBecomesAdmin" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStateGet_WithAnAPIToken_Returns403" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPasskeyRegistrationAndLogin_RealWebAuthnCeremony/the_session_from_registration_reaches_the_protected_dashboard" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPasskeyRegistrationAndLogin_RealWebAuthnCeremony/the_dashboard_refuses_a_request_with_no_session_at_all" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPasskeyRegistrationAndLogin_RealWebAuthnCeremony/logging_in_again_with_the_same_passkey_issues_a_new_working_session" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPasskeyRegistrationAndLogin_RealWebAuthnCeremony" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_DoesNotDisturbAlreadySavedSettings" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminInvites_NonAdmin_RefusedOnAllThree/create" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminInvites_NonAdmin_RefusedOnAllThree/list" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminInvites_NonAdmin_RefusedOnAllThree/revoke" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminInvites_NonAdmin_RefusedOnAllThree" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStateGet_TwoUsers_EachSeesOnlyTheirOwn" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminDeleteUser_OwnAccount_Refused" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_InvalidJSON_Returns400" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminInvites_Admin_CreateListRevoke" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStateGet_NeverSaved_ReturnsEmptyObject" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_ThenGet_RoundTrips" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_TheErrorPageFilesThemselves_NeverAnswer200" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStateGet_RequiresASession" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminDeleteUser_Admin_RemovesTheAccountEntirely" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminRevokeUser_OwnAccount_Refused" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminDeleteUser_DeletedUsernameCanRegisterAgain" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_TooLarge_Returns400" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRecoverPanics_NoPanic_PassesThrough" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminRevokeUser_UnknownUsername_NotFound" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRecoverPanics_AbortHandler_IsNotSwallowed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestServer_UnknownAPIPath_IsJSONNotThePage" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRecoverPanics_APanickingHandler_AnswersThe500PageWithNoInternals" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminRevokeUser_NonAdmin_Refused" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_HeadOnUnknownPath_Is404WithoutABody" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListUsers_Admin_ListsEveryUser" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_UnknownPath_WithoutAnErrorPageFile_KeepsThePlain404" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminRevokeUser_Admin_SignsTheTargetOutEverywhere" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_MissingHashedAsset_StaysAnUncachedPlain404" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListUsers_NonAdmin_Refused" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRecoverPanics_APanicOnAnAPIPath_AnswersJSON" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminExportRequests_CSVRoundTripsSameFilteredRowsAsList" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListRequests_FilterByAccount_UnknownUsername_MatchesNothing" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_UnknownPath_AnswersTheNotFoundPageWithA404" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminDeleteUser_NonAdmin_Refused" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListRequests_FilterByAccount_Narrows" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListRequests_FilterByForge_Narrows" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListRequests_Admin_ListsEveryEntry" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardStream_ClosesWhenTheClientDisconnects" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardStream_PushesASnapshotWhenAWebhookTriggersARefresh" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListUsers_RequiresASession" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboardStream_NoBackgroundRefreshYet_Returns404" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminExportRequests_RequiresASession" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_ExpiresAtExactly366Days_IsAllowed" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAutoUpdateBranchDisable_RemovesIt" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_ThenGet_ListsItWithoutTheRawValue" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_ForgeWithNoSupport_Returns400" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminExportRequests_NonAdmin_Refused" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranchesPage_OldAddressRedirectsToTheIndex" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListRequests_NonAdmin_Refused" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNavCountsFixture_IsCurrent" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestReadyz_RepeatedProbes_PingTheDatabaseOncePerCacheWindow" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAdminListRequests_RequiresASession" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_UpdateRequest_AcceptedUpdateBranch_ShowsOnThePullRequest" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCPParity_AnExclusionSaysWhy" time="0.410000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_RefusesBadInput/number_missing" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_RefusesBadInput/unknown_forge" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetDashboard_ReturnsTheSameAggregatedDataAsTheHTTPEndpoint" time="0.580000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_RefusesBadInput/malformed_fullName" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_WithAnAPIToken_Returns403AndStoresNothing" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_FailsClosedWithoutAUser" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_RefusesBadInput/number_not_integer" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetMainBranches_FailsClosedWithoutAUser" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCPParity_EveryOperationHasAToolAnExclusionOrAPendingEntry" time="0.420000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCP_GetPullRequestChecks_RefusesBadInput" time="0.720000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokensPost_ExpiresAtBeyond366Days_Returns400" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_UpdateRequest_RefusedUpdateBranch_LeavesNoRequest" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_EnablesAutoMergeOnTheNamedPullRequest" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ForgejoTokenWithoutURL_Rejected" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_MalformedFullName_Returns400" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTokenCreated_AuthenticatesAsBearerAgainstARealEndpoint" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_GzipFallbackDecodesToTheOriginal" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTimezoneGet_NothingSavedYet_ReturnsEmptyMeaningBrowser" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_TextIsCompressed" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingPut_UnknownUsername_NotFound" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_MissingFileIsNeverCached" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_ServerWiring" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_ConditionalRequestGets304" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_PersonalisedPagesArePrivate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingPut_WithSelf_Refused" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_LeavesTheRestAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestFilterStatePut_RequiresASession" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_UnhashedFilesRevalidate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_ConflictIsAnsweredEvenWhenTheReReadFails" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingPut_TheOtherUserSeesItInSharedWithMe" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingPut_ThenGet_ListsTheSharedUser" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_ForgeWithNoSupport_Returns400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_WrongTypeMessageIsPlainWords" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_VerifiedDelivery_MarksRepoAsHavingAWebhookOnTheDashboard" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingGet_NothingSharedYet_ReturnsEmptyArraysNotNull" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingDelete_RemovesTheShare" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestTimezonePut_ThenGet_RoundTrips" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_BlankTokenField_KeepsThePreviouslySavedToken" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ClearingForgejoURLWhileATokenIsAlreadySaved_Rejected" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ThenGet_RoundTripsRenovateAuthors" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ForgejoURLAlongsideTokenOrUsername_Accepted" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_NegativeGitHubAppInstallationId_Rejected" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestGitHubWebhook_WrongSecret_Refused" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestThemePut_InvalidValue_Rejected" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestStatic_HashedAssetsAreImmutable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ThenGet_RoundTripsRenovateRebaseLabel" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMCPParity_TheToolTableMatchesTheServedTools" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_GitHubAppInstallationIdWithServerAppConfigured_RoundTrips" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestThemePut_EmptyString_MeansSystemAndIsAccepted" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_ForgejoUsernameWithoutURL_Rejected" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestThemePut_ThenGet_RoundTrips" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_GitHubAppInstallationIdWithoutServerAppConfigured_Rejected" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_NothingSavedYet_ReturnsAllUnset" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_ReportsGitHubAppConfigured_WhenServerHasOneConfigured" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_DoesNotAcceptOrDisturbTheme" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_GitHubAppInstallationIdWithServerAppConfigured_Accepted" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestThemePut_DoesNotDisturbOtherSettings" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestThemeGet_DoesNotProvisionWebhookCredentialsOrAffectDashboardStream" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_DoesNotDisturbAlreadyGeneratedWebhookCredentials" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_SameActionTwice_ReturnsTheFirstWith200" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_ReportsGitHubAppConfigured_WhenServerHasNoneConfigured" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_SurviveARestart" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_FirstVisit_GeneratesWebhookCredentials" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_SecondVisit_ReturnsTheSameWebhookCredentials" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_AnotherUser_NeitherSeesNorCancelsThem" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_AnotherUser_CannotQueueOnTheOwnersBoard" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_RenovateAuthorsDefaultToAnEmptyList" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSharingGet_RequiresASession" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestForgejoAutoMerge_Arm_AlreadyCleanPullRequest_IsRefusedAndNotStored" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_RequireASession" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_ShowOnThePullRequestAndInTheDashboard" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_PullRequestNotBehind_Answers409AlreadyUpToDate" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_Cancel_RemovesItAndClearsThePullRequest" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_UpdateBranchOnABotPullRequest_IsRefused" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_ForgeNotLimited_Answers409NotRateLimited" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_PullRequestNotOnTheBoard_Answers404" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_BotRebaseOnTheWrongAuthor_IsRefused" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_RejectsAMalformedRenovateAuthorList" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_CancelUnknownID_Answers404" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsGet_RequiresASession" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_ResetAlreadyPassed_Answers409NotRateLimited" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_WithOwnerQuery_SharedViewer_SeesTheOwnersDashboard" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_WithOwnerQuery_UnknownOwner_NotFound" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_NoCredentialsSavedForThatForge_Returns400" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_UpdateBranchOnALimitedForge_IsStoredUntilTheReset" time="0.390000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_ThenList_ReturnsIt" time="0.930000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_Unauthenticated_Returns401" time="0.880000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_BotRebases_AreQueueable" time="0.670000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_MalformedFullName_Returns400" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_ASucceededMergeOrCloseLeavesTheBoardAtOnce/close" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_ASucceededMergeOrCloseLeavesTheBoardAtOnce/merge" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_ASucceededMergeOrCloseLeavesTheBoardAtOnce" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_ForgeRefusals_AreShownInTheirOwnWords/no_failed_Actions_job" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_ForgeRefusals_AreShownInTheirOwnWords/the_token_may_not_rerun" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRerunChecks_ForgeRefusals_AreShownInTheirOwnWords" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_PermissionAndRateLimit_KeepTheirStatus/429" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_PermissionAndRateLimit_KeepTheirStatus/403" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestMerge_PermissionAndRateLimit_KeepTheirStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_TicksTheCheckboxOnEachForge/forgejo" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_TicksTheCheckboxOnEachForge/github" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestRenovateRebase_TicksTheCheckboxOnEachForge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/RegisterBeginRequest" time="0.440000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/PullRequestDependabotActionRequest" time="0.460000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/PullRequestActionRequest" time="0.480000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/RepoIgnoreRequest" time="0.440000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_QueuedActions" time="3.460000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/WebhookEnsureRequest" time="0.480000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/AdminInviteCreateRequest" time="0.460000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/TimezoneRequest" time="0.440000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/APITokenCreateRequest" time="0.450000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestBody_OverTheCapIsRefusedWith413/settings_(session)" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestBody_OverTheCapIsRefusedWith413/login_begin_(public)" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_RejectsABadBody/a_full_name_that_isn&#39;t_owner/repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_RejectsABadBody/days_above_365" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_RejectsABadBody/days_below_1" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_RejectsABadBody/a_number_that_isn&#39;t_positive" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/SettingsRequest" time="0.460000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestHide_RejectsABadBody" time="0.340000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/ThemeRequest" time="0.450000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh/github_issue_comment" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh/forgejo_issue_comment" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh/gitea-named_header" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound/LoginBeginRequest" time="0.380000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestSchemas_EveryFieldCarriesABound" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh/forgejo_pull_request_comment" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh/github_pull_request_review" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh/github_pull_request_review_comment" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhook_CommentDelivery_TriggersOnlyAScopedRefresh" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_Refusals_AnswerWithTheSharedActionError/permission" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_Refusals_AnswerWithTheSharedActionError/repo_not_found" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_Refusals_AnswerWithTheSharedActionError/uncoded_failure_keeps_internal_text_out_of_the_message" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_Refusals_AnswerWithTheSharedActionError/rate_limited,_with_when_it_resets" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestWebhookEnsure_Refusals_AnswerWithTheSharedActionError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestBody_OverTheCapIsRefusedWith413" time="0.810000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/not_behind" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/behind_with_a_conflict" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_FetchFails_ClassifiesByError/unauthorized" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestUsername_ABlankOneIsRefusedByTheServer/login_begin" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_FetchFails_ClassifiesByError/not_found" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestUsername_ABlankOneIsRefusedByTheServer/register_begin" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestUsername_ABlankOneIsRefusedByTheServer/invite_create" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestUsername_ABlankOneIsRefusedByTheServer" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_FetchFails_ClassifiesByError/unreachable" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/invite_username" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/invite_display_name" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/ignore_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/merge_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/auto_update_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/api_token_label" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_FetchFails_ClassifiesByError/rate_limited" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_FetchFails_ClassifiesByError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/dependabot_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/unignore_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/rebase_label" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/github_username" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/forgejo_url" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/timezone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/github_token" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/login_username" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/register_invite_token" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/register_username" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/webhook_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/forgejo_username" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/register_display_name" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError/forgejo_token" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_ListedButNoReleaseNotes/a_listed_pull_request_that_isn&#39;t_a_release" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_ListedButNoReleaseNotes/a_release_pull_request_with_an_empty_description" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestDetails_ListedButNoReleaseNotes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestRequestFields_AStringOverItsBoundIsRefusedWithAFieldError" time="8.780000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_StillRunOnThatBotsPullRequest/dependabot" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_RefuseAPullRequestThatIsNotThatBots_WithoutAskingTheForge/dependabot_recreate_on_a_renovate_PR" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_RefuseAPullRequestThatIsNotThatBots_WithoutAskingTheForge/dependabot_rebase_on_a_human_PR" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_StillRunOnThatBotsPullRequest/renovate" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_StillRunOnThatBotsPullRequest" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_RefuseAPullRequestThatIsNotThatBots_WithoutAskingTheForge/renovate_rebase_on_a_human_PR" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestBotActions_RefuseAPullRequestThatIsNotThatBots_WithoutAskingTheForge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_Drafts/are_left_out_of_the_refresh_response_by_default" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_Drafts/are_included_on_request,_with_none_hidden" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_Drafts/follow_the_includeDrafts_the_stream_was_opened_with" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/clean_already" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_Drafts/are_left_out_by_default_and_counted" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestDashboard_Drafts" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/refused_by_the_forge" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/already_armed" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/empty" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge/conflicting" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_RefusesWhatAllowedActionsDoesNotOffer_WithoutAskingTheForge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_Refusals/github_422_on_conflict_(mapped_to_conflict_by_#702)" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_Refusals/forgejo_409_on_conflict" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/close/403" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_Refusals/github_nothing_to_bring_in" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestUpdateBranch_Refusals" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/auto-merge/429" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/renovate-rebase/reread-fails" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/renovate-rebase/429" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/dependabot-action/open-and-unexplained" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/renovate-rebase/403" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/renovate-rebase/open-and-unexplained" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/dependabot-action/429" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/dependabot-action/403" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/dependabot-action/reread-fails" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/auto-merge/reread-fails" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/update-branch/429" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/auto-merge/open-and-unexplained" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/close/429" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/update-branch/reread-fails" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/auto-merge/403" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/close/open-and-unexplained" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/update-branch/403" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/close/reread-fails" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus/update-branch/open-and-unexplained" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_PermissionAndRateLimit_KeepTheirStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_Refusals/no_protection_rule" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//issues.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//settings.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//admin.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//webhooks.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//pull-requests.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//releases.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//bots.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//insights.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession//" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAllowedActionSpec_ExtensibleEnumsMatchTheGoLists/blocked.code_is_extensible_and_lists_what_the_server_knows" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAllowedActionSpec_ExtensibleEnumsMatchTheGoLists/action_is_extensible_and_lists_what_the_server_knows" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestAllowedActionSpec_ExtensibleEnumsMatchTheGoLists" time="0.430000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPages_RequireASession" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_Refusals/already_clean_(#662)" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_Refusals/unstable_(#621)" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_Refusals/repo_disallows_it" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestAutoMerge_Refusals" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_HealthAndReadiness//healthz" time="0.470000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_HealthAndReadiness//readyz" time="0.470000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_HealthAndReadiness" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_DashboardAndRefresh/GET_/api/dashboard" time="0.450000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/close/github/already_merged" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/renovate-rebase/forgejo/already_merged" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/dependabot-action/github/already_closed" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/dependabot-action/github/already_merged" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/renovate-rebase/github/already_closed" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_MainBranches/without_a_session" time="0.420000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_MainBranches" time="0.560000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_DashboardAndRefresh/POST_/api/dashboard/refresh" time="0.920000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestContract_DashboardAndRefresh" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/auto-merge/github/already_merged" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/update-branch/forgejo/already_closed" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/update-branch/github/already_merged" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//login.html" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//api/dashboard" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//robots.txt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//no-such-page" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//settings.html" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//healthz" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//api/nope" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//style.css" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader//api/version" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches/every_row_is_listed,_newest_commit_first,_undated_last" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches/counts_each_status,_so_the_pills_match_what_they_list" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches/a_row_carried_over_from_an_earlier_refresh_is_stale,_with_the_time" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestNoIndex_EveryResponseCarriesTheHeader" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestMainBranches" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/close/github/already_closed" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/auto-merge/github/already_closed" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode/close/forgejo/already_merged" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestPullRequestActions_RefusedOnAMergedOrClosedPR_AnswerTheStaleCode" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_Rejections_NameTheField/a_Forgejo_token_with_no_URL" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_Rejections_NameTheField/an_installation_ID_that_isn&#39;t_a_number" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_BadBody_Answers400/number_too_big" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_BadBody_Answers400/no_slash" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_BadBody_Answers400/not_json" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_BadBody_Answers400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_dependabot_recreate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_nonsense" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_rerun_checks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_auto_merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_close" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400/action_cancel_auto_merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestQueuedActions_MergeAndCloseAndTheRest_AreRefusedWith400" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_Rejections_NameTheField/a_negative_installation_ID" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_Rejections_NameTheField/an_installation_ID_on_a_server_with_no_GitHub_App" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_Rejections_NameTheField/a_Forgejo_username_with_no_URL" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="TestSettingsPut_Rejections_NameTheField" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#0" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#1" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#2" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#3" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#4" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#5" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#6" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/seed#7" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/duplicate-keys" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload/unicode-name" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzRepoFromPayload" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/seed#0" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/seed#1" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/seed#2" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/seed#3" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/seed#4" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/seed#5" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/empty-secret-short-hex" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature/invalid-hex" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzValidSignature" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#0" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#1" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#2" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#3" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#4" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#5" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#6" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#7" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut/seed#8" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/api" name="FuzzFilterStatePut" time="0.540000"></testcase>
	</testsuite>
	<testsuite tests="78" failures="0" time="3.780000" name="github.com/alrayyes/forge-dashboard/internal/auth" timestamp="2026-10-15T21:19:11Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListCredentials_NoneYet_ReturnsEmpty" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_SecondUser_WithoutInvite_IsRejected" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_HasAnyRegisteredUser_CompletedRegistration_ReportsTrue" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestRequireAuth_SessionCookie_Authenticates" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RevokeInvite_UnknownID_IsNotFoundError" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListOutstandingInvites_ExcludesExpired" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RevokeInvite_ThenConsume_IsRejected" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListOutstandingInvites_ExcludesConsumed" time="0.230000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ConsumeInviteIfValid_UnknownToken_IsRejected" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ConsumeInviteIfValid_UsernameMismatch_LeavesInviteUnconsumed" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ConsumeInviteIfValid_AlreadyConsumed_IsRejected" time="0.210000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_CreateInvite_ThenConsumeIfValid_RoundTrips" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RemoveCredential_ScopedToOwner" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ConsumeInviteIfValid_Expired_IsRejected" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RevokeUser_AlsoClearsCredentialMetadata" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RemoveCredential_LastOne_RefusedWithErrLastCredential" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListCredentials_NoMetadataRow_FallsBackRatherThanVanishing" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListCredentials_TwoUsers_EachSeesOnlyTheirOwn" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_SetCredentialLabel_Twice_ReplacesIt" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RemoveCredential_WithAnotherRemaining_RemovesIt" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_CompletedRegistration_IsRefused" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_SetCredentialLabel_ThenListCredentials_ReturnsIt" time="0.180000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RemoveCredential_UnknownID_IsIdempotent" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_SecondUser_IsNotAdmin" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginLogin_AbandonedRegistration_ReturnsErrNotFound" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_FirstUser_BecomesAdmin" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_AbandonedRegistration_CanBeReclaimed" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListRequests_NoMatches_ReturnsEmptyNotError" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListRequests_FilterByForge_Narrows" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListRequests_FilterByAccount_Narrows" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RecordRequest_NoRateLimitFields_ReadsBackNil" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RecordRequest_PastRetentionCap_DiscardsOldest" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RecordRequest_RoundTripsEveryField" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListRequests_NewestFirst" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestWithAccessLogUsername_RequireAuthFillsTheSlot" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestWithAccessLogUsername_RejectedRequest_SlotStaysEmpty" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestRequireAuth_InvalidBearerToken_Returns401" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestRequireAuth_NoCredentialAtAll_Returns401" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestRequireAuth_SessionCookiePreferredOverBearerWhenBothPresent" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestRequireAuth_BearerToken_AuthenticatesWithNoSessionCookie" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_Ceremony_SaveThenLoad_RoundTrips" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestRequireAuth_RevokedBearerToken_Returns401" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_DeleteUnregisteredUser_RemovesAUserWithNoCredentials" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_UnknownSessionToken_ReturnsErrNotFound" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_Session_Deleted_IsRefused" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_Session_Expired_IsRefused" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_Session_CreateThenResolve_ReturnsTheOwner" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_Ceremony_Expired_ReturnsErrNotFound" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_Ceremony_Delete_MakesItUnloadable" time="0.420000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_AddCredential_ThenUpdateCredential_PersistsSignCountBump" time="0.800000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_WithInviteForDifferentUsername_IsRejected" time="0.790000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestCreateInvite_AlreadyRegisteredUsername_IsRejected" time="0.680000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestCreateInvite_Admin_Succeeds" time="0.480000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestCreateInvite_NonAdminRequester_IsRejected" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_LegacyRowWithNoExpiry_RejectedNotGrandfathered" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_DeleteUser_AlsoRemovesAPITokens" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_List_OrderedOldestFirst" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_ExpiresAt_RoundTrips" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_Delete_UnknownID_IsIdempotent" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_Expired_RejectedLikeAnInvalidToken" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_Delete_ScopedToOwner" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_Use_RecordsLastUsedAt" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_UnknownToken_ReturnsErrNotFound" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_RawValueNeverStored" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_CreateUser_RoundTripsByUsername" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_CreateThenResolve_ReturnsTheOwner" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_SecondUser_WithValidInvite_Succeeds" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_WithConsumedInvite_IsRejected" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_ListUsers_ReturnsEveryRegisteredUser" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestBeginRegistration_WithExpiredInvite_IsRejected" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_DeleteUser_RemovesTheAccountAndItsSessions" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RevokeUser_AlsoRevokesAPITokens" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_GetUserByUsername_UnknownUser_ReturnsErrNotFound" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_DeleteUnregisteredUser_LeavesARegisteredUserAlone" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_HasAnyRegisteredUser_NoUsersYet_ReportsFalse" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_HasAnyRegisteredUser_UnfinishedRegistration_StillReportsFalse" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_APIToken_Delete_StopsItAuthenticating" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/auth" name="TestStore_RevokeUser_ClearsCredentialsAndSessions" time="0.070000"></testcase>
	</testsuite>
	<testsuite tests="518" failures="0" time="3.038000" name="github.com/alrayyes/forge-dashboard/internal/dashboard" timestamp="2026-10-15T21:19:12Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BudgetBecomesExhausted_LogsAWarning" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BudgetRecovers_LogsAnInfo" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_StillExhausted_LogsOnlyOnce" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_FirstEverPollAlreadyExhausted_StillLogs" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_RESTAndGraphQLTrackedIndependently" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_NilReading_NeverCountsAsATransition" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_ForgeExhaustedUntilReset_IsNotCalledAgain" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_ExhaustedForgeDoesNotHoldBackTheOther" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_ForgeResetTimePassed_IsCalledAgain" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay_ExhaustedForgeIsSkippedSoItDoesNotSlowTheLoop" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownKeepsTheForgesOwnReasonWithoutTheDiagnosticPrefix" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_ASlowSubscriberEndsUpWithTheNewestSnapshot" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_RerunFailedChecks_UnsupportedClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_PullRequestGone_AndTheForgeSaysItClosed_RemovesTheIntent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_MergedResultStaysSortedGlobally" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_PullRequestsSortByLastActivityWhateverTheirReadiness" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestTickRebaseCheckbox_CapitalXCountsAsTicked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestTickRebaseCheckbox_TickedBoxIsLeftAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestTickRebaseCheckbox_NoCheckbox" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestTickRebaseCheckbox_UntickedBoxIsTickedAndNothingElseChanges" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_SourceDoesNotSupportScopedRefresh_ReturnsFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_UnrelatedRepoConcurrently_DoesNotWaitOnIt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_NoSourceForForge_ReturnsFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_KeepsTheOldRowWhenTheBranchReadFails" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_RereadsOnlyTheNamedReposDefaultBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_RepoRecovers_ClearsStaleAndTakesFreshRows" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_RepoFailsOnTheFirstRefresh_HasNothingToKeep" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_OnlyRefetchesAndReplacesTheNamedRepo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_ReachableForgeRepoPullRequestsFail_KeepsItsRowsMarkedStale" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_RepoIssuesFail_KeepsIssuesButTakesFreshPullRequests" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_ConcurrentScopedRefreshesOfDifferentReposKeepEachOther" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RefreshRepo_ConcurrentCallsForSameRepo_Coalesce" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_OldFinishedOnesAreForgottenAfterADay" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_TheSchedulerRunsItWithoutBeingAsked" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_TheUserLostTheirCredentials_NothingRunsWithoutThem" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_AnotherUsersAggregator_LeavesTheItemAlone" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_TheForgeRefuses_RecordsTheStructuredCode" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_StillLimitedAtTheReset_WaitForTheNextOne" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_CancelledBeforeTheReset_NothingRuns" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueueableAction_OnlyTheSafeIdempotentOnes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_NothingWhenReadyToMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_SurviveARestart" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_RenovateBranchIsTreatedAsRenovate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_EmptyExplainsWhyThereIsNothingToMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf_ConfiguredRenovateAuthorIsADependency" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestCapLogins_KeepsTheFirstTenAndNeverReturnsNil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDetailsCaps_AreTheDocumentedNumbers" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestCapText_CutsOnACharacterNotAByte" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestCapText_LeavesAShortTextAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequest_ReviewIsOmittedWhenUnknown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_FirstRefreshComplete_AnAggregatorAddedLaterGetsItsOwnGraceButCannotUnreadyAServingProcess" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_UnrecognizedKind_FallsBackRatherThanEmpty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_FirstRefreshComplete_StaysTrueWhenAnotherAggregatorStarts" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_FirstRefreshComplete_UnreachableForgeStillCounts" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_FirstRefreshComplete_FalseUntilTheFirstRefreshFinishes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_NeverMergeOrClose" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_FirstRefreshComplete_NoAggregatorYet_IsTrue" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Ensure_NoCIPollIntervalSet_NeverPolls" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Ensure_NoAutoUpdateBranchListerSet_NeverCallsUpdateBranch" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_SetAutoUpdateBranchLister_ThenEnsure_WiresItIntoTheAggregator" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_FirstRefreshComplete_ReadyAfterTheGraceEvenIfTheRefreshIsStillRunning" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_SetCIPollInterval_ThenEnsure_WiresItIntoTheAggregator" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_TheForgeRateLimitsTheCall_WaitForTheNextReset" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Subscribe_UnknownUser_ReturnsFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Subscribe_KnownUser_ReceivesUpdatesFromRefreshNow" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_RefreshRepo_UnknownUser_ReturnsFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_DedupesArmedAndPendingInTheSameRepo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_RefreshRepo_KnownUser_DelegatesToTheirAggregator" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_RefreshNow_UnknownUser_ReturnsFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_EnsureIfAbsent_ConcurrentCallsForNewUser_OnlyCreateOneAggregator" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Remove_UnknownUser_IsANoOp" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_RefreshNow_KnownUser_RefreshesImmediatelyAndReturnsTrue" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_EnsureIfAbsent_AlreadyRunning_NeverReplaces" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_TwoUsers_HaveIndependentSnapshots" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Ensure_ThenGet_ReturnsThatUsersSnapshot" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Get_UnknownUser_ReturnsEmptySnapshotNotNil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_RefreshNow_IsNotThrottledByTheCooldown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_ForceRefresh_UnknownUser_ReportsNotOK" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Remove_StopsTheRefreshLoopAndEvictsTheSnapshot" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_ForceRefresh_InsideTheCooldown_DoesNotFetch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_ForceRefresh_AfterTheCooldown_FetchesAgain" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedMainBranchReadKeepsThatRepoStale" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_ClosePullRequest_ClientWithoutSupport_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_ClosePullRequest_PropagatesClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_ClosePullRequest_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_ListChecks_PropagatesClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_ListChecks_ClientWithoutSupport_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_EnsureWebhook_ClientWithoutSupport_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_ListChecks_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_EnsureWebhook_PropagatesClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_EnsureWebhook_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_ClientWithWebhookChecker_ReportsPerRepo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_WebhookCheckFails_StillReportsReachableWithHasWebhookFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_ClientWithNoWebhookChecker_LeavesHasWebhookFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_RateLimitCheckFails_StillReportsReachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_ClientWithNoRateLimiter_LeavesRateLimitNil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_ListReposFails_ErrorIsHumanized" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_ClientWithRateLimiter_ReportsIt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_ListReposFails_ReportsUnreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_OneRepoFails_OthersStillReported" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_Fetch_AggregatesAcrossRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_RerunFailedChecks_ReturnsTheClientsErrorUnchanged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRequestRenovateRebase_ThroughAGenericSource_LabelsWhenThereIsNoBox" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_RerunFailedChecks_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRequestRenovateRebase_ThroughAGenericSource_TicksTheBoxWhenThereIsOne" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_ForceRefresh_FirstCall_FetchesWithoutThrottling" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_SetPullRequestBody_ClientWithoutSupport_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_SetPullRequestBody_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_PullRequestBody_ClientWithoutSupport_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_PullRequestBody_PropagatesClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_AddLabel_ClientWithoutSupport_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_AddLabel_PropagatesClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_PullRequestBody_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_AddLabel_ReturnsTheClientsErrorUnchanged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_FetchMainBranch_ARepoNoPollHasSeenIsAnError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_FetchMainBranch_ReadsOneRepoWithItsRef" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_SetPullRequestBody_PropagatesClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_AddLabel_DelegatesToClient" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_PollsAgainOnceTheBudgetHasReset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_LeavesAnExhaustedForgeAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_Ensure_ReplacingAUser_StopsTheOldRefreshLoop" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_RefreshesRepoWithAnArmedGitHubPullRequest" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_FailedMerge_IsTriedAgainOnceThePullRequestChanges" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_SkipsAPullRequestWhoseAutoMergeIsOffOrUnknown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_MakesNoCallsForRepoWithNoPullRequests" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_RefreshesRepoWithPendingCI" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_SkipsRepoWithResolvedCI" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_PollCI_DedupesMultiplePendingPullRequestsInSameRepo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindNonRenovatePR_UnchangedBehavior" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotCommandsBlocked_PostsNothing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindPRFromAConfiguredRenovateAuthor_AddsRebaseLabel" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindRenovatePROnForgejo_AddsRebaseLabelInsteadOfUpdatingBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindRenovatePR_AddsRebaseLabelInsteadOfUpdatingBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindRenovatePR_LabelFailureIsLoggedNotFatal" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_ListerErrors_RefreshStillSucceeds" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotBehindAgainAfterSuccessfulRebase_RebasesAgain" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotPRClosedAfterRebase_StopsWatchingWithoutRecreate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotRefusesRecreate_DoesNotRebaseAgain" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotRebaseSilentlyFails_DoesNotRepostForever" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotRebaseThenCISucceeds_NeverRecreates" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotRebaseStillPending_DoesNotRecreateYet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_DependabotRebaseThenCIFails_PostsRecreateOnce" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindDependabotPR_NeverCallsUpdateBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindDependabotPR_PostsRebaseComment" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_NoAutoUpdateEnabled_NeverCallsLister" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindDraftPR_NeverUpdated" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindDependabotPRRESTAuthorForm_PostsRebaseComment" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_PRNotBehind_LeavesItAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindReleasePleasePR_NeverUpdated" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindPROnRepoNotEnabled_LeavesItAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_BehindPROnEnabledRepo_UpdatesBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_StackedOnAnotherPullRequest_WaitsForTheParent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_NotEnabledOnTheAggregator_IsANoOp" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_StoreFailure_MergesNothing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_PullRequestGone_AndTheForgeCantSay_KeepsTheIntent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/a_request_for_a_pull_request_not_on_the_board_is_ignored" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/stays_queued_while_the_pull_request_is_still_behind" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/is_forgotten_when_the_pull_request_is_gone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/an_expired_request_goes_after_an_hour" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/an_answer_to_a_fetch_that_started_before_the_request_can&#39;t_clear_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/is_cleared_once_a_later_fetch_shows_it_no_longer_behind" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/queued_past_five_minutes_becomes_expired_and_stays" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_RenovateRebaseIsOfferedWhenItsBoxIsNotTicked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_PullRequestGone_AndTheForgeSaysItMerged_RemovesTheIntent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_PullRequestGone_ButStillOpenOnTheForge_KeepsTheIntent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_FailedMerge_IsNotRetriedOnTheNextRefresh" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/tells_subscribers_at_once" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/a_new_request_replaces_an_expired_one" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_FailedMerge_KeepsTheIntent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_AfterTheMerge_TheBoardNoLongerListsIt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest/shows_the_request_on_the_pull_request_at_once,_queued_for_five_minutes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordUpdateRequest" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_AfterTheMerge_TheIntentIsGone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_NotArmed_NeverMerges" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_ArmedPullRequestWithPassingChecks_IsMergedOnce" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_RefusedMerge_IsReportedAsAPermissionStop" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_Merged_IsReportedForTheMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_RefusalOfAnOlderVersion_IsIgnored" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_RateLimitedMerge_Waits" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_StackedOnAParent_WaitsForIt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_RefusedMerge_StopsWithTheRefusal" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_CancelBookkeeping_IsForgottenWhenThePullRequestLeavesTheBoard" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_ForgejoCancel_HappensOnce" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_Merged_IsForgottenAfterTenMinutes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_ForgejoEmptyButNotArmed_IsLeftAlone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WhenTheArmedSetCannotBeRead_ForgejoIsSkippedAndGitHubStillCancelled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_ForgejoPullRequestThatWentEmpty_HasItsIntentDropped" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubCancel_WhenTheCallFails_NothingIsRecordedAndItIsNotHammered" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubPullRequestThatWentEmpty_HasItsAutoMergeCancelled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Subscribe_NotifiedOnRefresh" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_ARebaseRequestOnAPersonsPullRequestOffersNothing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubCancel_IsNotRepeatedOnTheNextRefresh" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_RenovateRebaseIsBlockedWhileItsBoxIsTicked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_StackedMergeNamesTheParent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_RenovateAuthorsComeFromSettings" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeSaysWhatToDoNext" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_ConcurrentRefreshTriggersForSameUser_DoNotEachHitTheRealAPI" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Subscribe_SlowConsumerDoesNotBlockRefresh" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Unsubscribe_StopsDelivery" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Run_RefreshesOnIntervalUntilCanceled" time="0.050000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_OneSourceUnreachable_OthersStillReported" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_GetBeforeRefresh_ReturnsEmptyNotNil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusalFor_UpdateBranchOnWorkflowChange_SaysWhy" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusalFor_UpdateBranchWithoutWorkflowChange_KeepsGenericPermission" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_ForgejoProbableConflictSaysWhatItCannotTellApart" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_NotAClientError_IsUnknownWithAPlainMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_RateLimitedStaysRateLimitedWhateverTheState" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_RateLimitedCarriesResetsAt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Run_CriticallyLowBudget_DelaysNextRefresh" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_SortsByMostRecentlyUpdatedFirst/issues_sorted_newest_first,_across_sources" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_SortsByMostRecentlyUpdatedFirst/pull_requests_sorted_newest_first,_across_sources" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_SortsByMostRecentlyUpdatedFirst" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled/drops_the_pull_request_at_once_and_keeps_the_others" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled/another_repo&#39;s_pull_request_with_the_same_number_stays" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled/tells_subscribers_at_once" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled/forgets_it_once_the_forge_stops_listing_it,_so_a_reopened_one_shows" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled/keeps_it_out_while_the_forge_still_lists_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Stacks/a_scoped_refresh_marks_them_too" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Stacks/a_merged_parent_takes_the_stack_off_the_child_at_once" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Stacks/a_refresh_marks_the_stacked_pull_requests" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Stacks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData/stays_stamped_with_the_original_time_across_several_failures" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFullRefreshThatStartedBeforeAMergeDoesNotRestoreIt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData/a_pull_request_merged_meanwhile_stays_off_the_board" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData/only_the_failed_forge_is_carried_over" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData/its_pull_requests_and_repos_carry_over,_marked_stale" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt/unticked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt/empty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt/no_box" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt/capital" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt/ticked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt/crlf" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom/asked_to_review" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRebaseCheckboxOf_ReadsTheStateWithoutTickingIt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom/no_login_to_match" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom/a_draft_never_counts" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom/nobody_was_asked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom/others_were_asked,_not_me" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom/asked,_but_a_different_case_of_the_same_login" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/two_children_of_one_parent_share_a_stack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/re-running_it_clears_a_stack_that_is_gone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReviewRequestedFrom" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/branch_names_the_forge_didn&#39;t_give_never_stack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/with_several_candidate_parents_the_lowest_number_wins" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData/a_good_refresh_replaces_it_and_clears_the_mark" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/a_loop_of_branches_is_no_stack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/the_same_branch_names_in_another_repo_are_another_stack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/a_fork_is_never_stacked,_nor_a_parent_to_a_stack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData/a_forge_that_never_worked_has_nothing_to_carry_over" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AFailedForgeKeepsItsLastGoodData" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/a_pull_request_in_no_stack_has_none" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks/a_chain_of_three_gets_positions,_parents_and_children" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAnnotateStacks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/plenty_left" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/a_zero_limit_with_requests_left_is_ok,_not_a_division_by_zero" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/spent_with_no_reset_time_is_exceeded,_since_it_can&#39;t_be_said_to_have_reset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/spent_but_already_reset_is_not_exceeded" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/spent_with_the_reset_ahead_is_exceeded" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/just_under_5%_is_low" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/exactly_5%_left_is_a_warning,_not_low_yet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/just_under_20%_is_a_warning" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/one_request_left_is_low" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt/exactly_20%_left_is_still_ok" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimit_SeverityAt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/mergeable,_CI_green,_not_a_draft_is_ready" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/a_draft_never_needs_review" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/changes_requested_is_not_waiting_on_a_reviewer" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/unknown_review_state_is_not_needs_review" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/approved_is_not_waiting_on_a_reviewer" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/unreviewed_with_nobody_asked_is_not_waiting" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/unreviewed_with_a_reviewer_asked_needs_review" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/a_review_the_forge_requires_needs_review" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/CI_failing_is_not_ready" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/no_checks_is_not_ready" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/CI_pending_is_not_ready" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/a_draft_is_never_ready" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview/blocked_is_not_ready" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestReadyAndNeedsReview" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled/brings_it_back_if_it_is_still_open_after_the_settle_window" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MarkSettled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ForgeUnreachableAtTheReset/fails_after_an_hour_of_trying" time="0.070000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ForgeUnreachableAtTheReset/is_tried_again_in_a_few_minutes" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ForgeUnreachableAtTheReset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime/a_pull_request_that_no_longer_offers_the_action_is_skipped" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime/a_pull_request_merged_or_closed_meanwhile_is_skipped" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime/a_bot_that_already_rebased_meanwhile_is_skipped" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActionsFixture_IsCurrent" time="0.570000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime/a_conflict_that_appeared_meanwhile_is_skipped" time="0.600000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestManager_WithAQueueStore_RunsADueQueuedActionAfterAStart" time="1.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime/a_branch_that_caught_up_meanwhile_is_skipped" time="0.740000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime/a_rebase_already_asked_for_is_not_asked_twice" time="0.550000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_ReCheckTheRequestAtRunTime" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_RunAtTheReset/update_branch_runs_once_the_limit_lifts_and_is_recorded_as_done" time="0.260000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_RunAtTheReset/a_Renovate_rebase_adds_the_user&#39;s_rebase_label" time="0.200000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimitedUntil/a_reset_already_passed_is_not_limited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimitedUntil/a_healthy_forge_is_not_limited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimitedUntil/a_budget_with_no_limit_reported_is_not_limited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimitedUntil/two_spent_budgets_answer_the_later_reset,_since_a_re-check_needs_both" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimitedUntil/a_spent_budget_answers_its_reset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestRateLimitedUntil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_WaitingCasesUseTheSamePlace/stacked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_WaitingCasesUseTheSamePlace/conflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_WaitingCasesUseTheSamePlace/draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_WaitingCasesUseTheSamePlace/ci_pending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_human&#39;s_pull_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestPullRequestStatus_WaitingCasesUseTheSamePlace" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_lookalike_author_is_a_person" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_release_label_beats_renovatebot" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_release_label_beats_a_renovate/_branch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_branch_with_renovate/_not_at_the_start" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_human_branch_that_merely_mentions_renovate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_renovate/_branch_on_GitHub" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_renovate/_branch,_unknown_author" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Renovate&#39;s_account_in_another_case" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/an_unrelated_label_changes_nothing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Renovate&#39;s_Forgejo_account,_no_setting_changed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Renovate_on_Forgejo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Renovate_as_REST_names_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/a_release_label_beats_a_bot_author" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Dependabot_as_REST_names_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Renovate_as_GraphQL_names_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/release-please&#39;s_tagged_release" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/release-please&#39;s_pending_release" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/Dependabot_as_GraphQL_names_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf/no_author_at_all" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDeriveReviewDecision/reviewers_requested,_nobody_answered" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestKindOf" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDeriveReviewDecision/changes_requested_beats_approval" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDeriveReviewDecision/an_approval" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDeriveReviewDecision/approval_but_a_reviewer_is_still_requested" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDeriveReviewDecision/nothing_at_all" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestDeriveReviewDecision" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/unreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/unknown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/conflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/rate_limited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/something-new-a-future-kind-might-add" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/not_found" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence/unauthorized" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestMainBranches_CountSortAndShortSHA/a_commit_id_is_cut_to_seven_characters" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestHumanizeForgeError_EveryKindGetsAMappedSentence" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestMainBranches_CountSortAndShortSHA/a_combined_CI_result_maps_onto_a_status" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestMainBranches_CountSortAndShortSHA/newest_commit_first_whatever_the_status,_undated_rows_last" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestMainBranches_CountSortAndShortSHA/counts_add_up_to_the_total" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_MainBranches/a_reader&#39;s_answer_becomes_a_row_of_the_repo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestMainBranches_CountSortAndShortSHA" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_MainBranches/a_failed_read_is_named_as_failed,_not_dropped_from_the_answer" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_MainBranches/a_client_with_no_reader_gives_no_rows" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestIsHousekeepingIssue/__Dependency_Dashboard__" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestGenericSource_MainBranches" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestIsHousekeepingIssue/Add_a_login_page" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestIsHousekeepingIssue/Fix_the_Dependency_Dashboard_link" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestIsHousekeepingIssue/dependency_dashboard" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestIsHousekeepingIssue/Dependency_Dashboard" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestIsHousekeepingIssue" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/an_empty_snapshot_holds_a_list,_not_null" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/a_forge_with_its_budget_spent_is_not_called,_and_its_rows_are_kept_stale" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/only_the_failed_forge&#39;s_rows_are_carried_over" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/a_good_refresh_replaces_the_rows_and_clears_the_mark" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/a_row_carried_over_twice_keeps_the_time_it_was_really_fetched" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/a_scoped_refresh_leaves_them_alone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/an_unreachable_forge_keeps_its_last_rows,_marked_stale" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches/a_refresh_puts_every_forge&#39;s_rows_in_the_snapshot" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_MainBranches" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AutoUpdateBranch_ARefusedUpdateIsNotRetried/a_merge_conflict_is_tried_once_while_the_pull_request_is_unchanged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AutoUpdateBranch_ARefusedUpdateIsNotRetried/a_success_is_not_remembered_as_a_failure" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AutoUpdateBranch_ARefusedUpdateIsNotRetried/a_pull_request_that_stopped_being_behind_is_forgotten,_so_behind_again_is_tried_again" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AutoUpdateBranch_ARefusedUpdateIsNotRetried/any_other_failure_also_waits_instead_of_retrying_on_every_refresh" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AutoUpdateBranch_ARefusedUpdateIsNotRetried/a_pull_request_that_changed_is_tried_again" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_AutoUpdateBranch_ARefusedUpdateIsNotRetried" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/shows_the_request_on_the_pull_request_at_once,_queued_for_ten_minutes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/a_request_for_a_pull_request_not_on_the_board_is_ignored" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/a_failed_fetch_of_the_forge_says_nothing,_so_the_request_stays" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/is_forgotten_when_the_pull_request_is_gone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/a_new_request_replaces_an_expired_one" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_RunAtTheReset/a_Dependabot_rebase_posts_the_documented_comment" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/a_scoped_refresh_of_the_repo_moves_it_along_too" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/rebasing_gives_up_after_two_minutes_for_a_repo_whose_CI_never_restarts" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/rebasing_ends_when_CI_shows_pending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/landed_with_CI_already_pending_is_finished,_no_request_left" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/no_longer_behind_counts_as_landed_even_when_the_head_is_the_same" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/a_changed_head_means_the_bot_pushed:_rebasing_for_two_minutes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/stays_queued_across_a_refresh_that_shows_nothing_changed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/tells_subscribers_at_once" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/an_expired_request_goes_after_an_hour" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/an_answer_to_a_fetch_that_started_before_the_request_can&#39;t_land_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/asks_the_forge_about_the_rebase_comment_posted_since_the_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/a_recreate_or_a_Renovate_request_is_never_looked_up" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/a_thumbs-up_that_arrives_after_it_expired_revives_the_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/no_thumbs-up_in_ten_minutes_is_an_expired_request,_still_linking_the_comment" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/a_forge_error_leaves_the_request_as_it_was" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/a_comment_with_no_reaction_yet_only_gets_its_link_recorded" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/stops_asking_once_it_is_acknowledged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/a_thumbs-up_marks_the_request_acknowledged_and_waits_ten_minutes_from_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest/queued_past_ten_minutes_becomes_expired_and_stays" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_RecordBotRequest" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/github_pull_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/not_yet_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/no_checks_yet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/conflicts" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/checks_pending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/checks_failing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge/draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_WaitsWhileItShouldNotMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_GitHub_NamesGitHubNotForgejo/all_green" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_GitHub_NamesGitHubNotForgejo/pending_CI" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_GitHub_NamesGitHubNotForgejo/not_clean" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_GitHub_NamesGitHubNotForgejo/conflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf_GitHub_NamesGitHubNotForgejo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/no_checks_reported_yet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/ready:_the_next_refresh_merges_it" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/forge_hasn&#39;t_said_it_can_merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/nothing_to_merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/conflicts" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/checks_failing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf/checks_pending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMergeStatusOf" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubCancel_LeavesAPullRequestAloneThatIsNotEmptyOrNotArmed/empty_but_not_armed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubCancel_LeavesAPullRequestAloneThatIsNotEmptyOrNotArmed/armed_but_not_empty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubCancel_LeavesAPullRequestAloneThatIsNotEmptyOrNotArmed/empty_and_explicitly_off" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState/blocked_with_a_failing_check" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAutoMerge_GitHubCancel_LeavesAPullRequestAloneThatIsNotEmptyOrNotArmed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState/merge_status_not_known_yet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState/draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState/conflicting" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState/blocked_with_passing_CI_does_not_invent_a_failing_check" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState/CI_pending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions_BlockedMergeReasonPerState" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay/no_rate_limit_reported" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay/a_far-future_reset_is_capped_rather_than_stalling_indefinitely" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay/reset_already_in_the_past_never_shortens_the_interval" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay/critically_low_budget_delays_until_its_own_reset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay/healthy_budget" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/empty:_only_close,_no_merge_(#1375)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/empty_and_behind:_no_update_branch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/the_bottom_of_a_stack_merges_as_usual" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/empty_beats_stacked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/stacked_beats_CI_pending_as_the_reason" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/stacked_on_an_open_parent:_merge_is_blocked_and_auto-merge_is_gone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/empty_release-please_behind:_only_close,_no_update_branch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/release-please_behind_keeps_update_branch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Renovate_behind_gets_its_rebase_on_either_forge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Dependabot_on_Forgejo_gets_no_bot_commands" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/GitHub_armed_offers_cancelling_too_(#1293)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Dependabot_behind_on_GitHub_gets_its_own_rebase,_not_update_branch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Forgejo_armed_offers_cancelling_instead" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Forgejo_draft_is_not_offered_auto-merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Forgejo_armed_with_conflicts_can_still_be_cancelled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Forgejo_that_is_already_clean_has_nothing_to_wait_for" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/auto-merge_refused_by_the_forge_for_this_PR" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/auto-merge_already_on_is_not_offered_again,_but_can_be_cancelled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/Forgejo_with_CI_pending_offers_the_app&#39;s_own_auto-merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/blocked_otherwise" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/passing_CI_on_Forgejo_has_nothing_to_rerun" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/failing_CI_on_Forgejo_offers_rerunning_the_failed_checks_(#1032)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/merge_status_not_known_yet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/blocked_with_CI_failing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/failing_CI_on_GitHub_offers_rerunning_the_failed_checks_(#698)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/behind_and_not_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/CI_pending_locks_merge_even_when_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/unstable_with_an_optional_check_pending_still_merges_(#956)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/unstable_with_a_failing_optional_check_still_merges_(#955)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/draft_that_GitHub_calls_clean_is_still_blocked_(#957)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/behind_but_mergeable_keeps_merge_(Forgejo)" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/draft_that_is_not_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/conflicting" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/conflicting_and_behind:_update_branch_is_locked_too" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions/clean_and_mergeable:_merge_and_close;_auto-merge_adds_nothing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords/an_API_path_is_not_shown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords/an_unreachable_forge_says_it_didn&#39;t_answer" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAllowedActions" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords/a_forge_sentence_is_kept" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords/JSON_is_not_shown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords/an_empty_answer_says_no_reason" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords/a_URL_is_not_shown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay/the_worse_of_two_budgets_wins" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_MergesAllSources/pull_requests_from_both_sources" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestNextRefreshDelay" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_UnknownMessageIsPlainWords" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_MergesAllSources/generatedAt_is_recent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_MergesAllSources/repos_from_both_sources" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_MergesAllSources/a_health_entry_per_source" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_MergesAllSources/issues_from_both_sources" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_Refresh_MergesAllSources" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_PermissionRefusalOnAFinishedPullRequestSaysSo/still_open:_the_token_really_lacks_permission" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_PermissionRefusalOnAFinishedPullRequestSaysSo/no_re-read:_still_permission" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_PermissionRefusalOnAFinishedPullRequestSaysSo/closed_without_merging" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_PermissionRefusalOnAFinishedPullRequestSaysSo/merged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_PermissionRefusalOnAFinishedPullRequestSaysSo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_ForgejoProtectionReasons/requested_changes" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_ForgejoProtectionReasons/status_checks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_ForgejoProtectionReasons/missing_approvals" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal_ForgejoProtectionReasons" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/already_merged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/unreachable_forge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/rate_limited_needs_no_re-read" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/permission_needs_no_re-read" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/open_and_clean,_409_head_modified" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/re-read_failed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/open_and_clean,_generic_405" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/blocked,_failing_check_text" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/blocked,_pending_check_text" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/blocked,_review_text" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/blocked,_no_hint" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/unstable_checks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/behind" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/conflicting" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/closed_unmerged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal/draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestClassifyActionRefusal" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_RunAtTheReset/nothing_runs_before_the_reset" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_RunAtTheReset/the_pull_request_shows_what_happened_as_a_request,_like_a_click_would" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestQueuedActions_RunAtTheReset" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement/tells_subscribers_when_the_thumbs-up_shows_up" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="TestAggregator_DependabotAcknowledgement" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="ExampleIsHousekeepingIssue" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/dashboard" name="ExampleRateLimit_SeverityAt" time="0.000000"></testcase>
	</testsuite>
	<testsuite tests="131" failures="0" time="10.809000" name="github.com/alrayyes/forge-dashboard/internal/forgejo" timestamp="2026-10-15T21:19:12Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRefresh_ManyReposAndTabs_StaysUnderTheThreadBudget" time="9.570000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_RecorderError_DoesNotChangeResult" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_JobsEndpointReturnsBareArray_StillParses" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestNewClient_NoRecorderGiven_StillWorks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestGetPullRequestDetails_ReadsDescriptionCommentsAndReactions" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_Success_RecordsOneEntry" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_RateLimited_RecordsOneEntryClassifiedRateLimited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_CarriesTheDefaultBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_RerunsOnlyTheFailedRuns" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestClient_SatisfiesGenericSource" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_RealResponse" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestClient_ConcurrentPerRepoFetches_EachRepoGetsItsOwnPulls" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_ReadsWhetherRenovatesRebaseBoxIsTicked" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_ReviewCommentsSurviveTheReviewCache" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestGetPullRequestDetails_StopsAtTheFirstRateLimit" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsTheBranchesAndForkFlag" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsTheRequestedReviewerLogins" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestClosePullRequest_AlreadyMerged_KeepsForgesOwnMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsTheHeadCommitSHA" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_AlreadyMergedWithEmptyMessage_NeverSurfacesRawJSON" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_ForgeFails_ReturnsClassifiedError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_CountsReviewCommentsAndLeavesThreadsUnknown" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_ActionsJobMatchingAPattern_IsRequiredButNonMatchStaysUnknown" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_StatusCheckContextsPatterns_SplitRequiredFromAdvisory" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_BranchWithoutProtectionOrStatusCheck_EverythingIsAdvisory" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_PullRequestLookupFails_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_ProtectionsForbidden_RequiredStaysUnknown" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_ActionsRunsForbidden_ReturnsErrorRatherThanFallingBack" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_NoRunsForHeadSHA_FallsBackToCombinedStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_ReturnsEveryJobAcrossEveryRunForTheHeadSHA" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_DropsCachedReviewsOfPRsThatClosed" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_CachesReviewsUntilUpdatedAtChanges" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestUpdateBranch_CannotMergeCleanly_ClassifiesAsForgeErrorConflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListChecks_ActionsRoutesNotFound_FallsBackToCombinedStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestUpdateBranch_CallsTheUpdateEndpoint" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsReviewState" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_RepoLookupFails_PropagatesTheError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestUpdateBranch_CannotMergeCleanly_SurfacesForgesOwnMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_FallsBackToMergeStyleWhenTheRepoReportsNone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestClosePullRequest_ForgeRejects_ClassifiesTheError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestClosePullRequest_ClosesViaEditEndpoint" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestEnsureWebhook_ForgeErrorPropagates" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_NotMergeable_ClassifiesAsForgeErrorConflict" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_UsesTheRepoSOwnDefaultMergeStyle" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_NotMergeable_SurfacesForgesOwnMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestHasWebhook_NoWebhookPathConfiguredSkipsTheAPICallEntirely" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestHasWebhook_ForgeErrorPropagates" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestHasWebhook_MatchesByURLPath" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestEnsureWebhook_EditsExistingHookInPlace" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestEnsureWebhook_CreatesWhenMissing" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesConnectionFailureAsUnreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestHasWebhook_NoMatchingHook" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_RetryAfterGarbage_HasNoResetsAt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_RateLimitedWithoutRetryAfter_HasNoResetsAt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_RateLimited_ClassifiesAsRateLimitedWithResetsAt" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenIssues_UsesTypeIssuesFilter" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestCIStatus_MapsWarningToPending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_RetryAfterIncludedWhenPresent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_NeitherTokenNorUsername_Errors" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_RateLimitedWithRetryAfterDate_CarriesResetsAt" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestMergePullRequest_RateLimitedWithRetryAfterSeconds_CarriesResetsAt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ErrorIncludesAPIMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_NoToken_FallsBackToUsernamesPublicRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ExcludesMirroredRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_NoToken_ExcludesMirroredRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_NoToken_ExcludesArchivedAndForkedRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ExcludesArchivedAndForkedRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_PullRequestLookupFails_ReturnsTheError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_CanManageWebhooksRequiresAdminNotJustPush" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_FiltersToPushAccessAndPaginates" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_ConflictReadsAsASentence_WithoutAForgePrefix" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_ARefusal_CarriesForgejosOwnWords" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_ARefusal_ComesBackClassified" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_NoRunsAtAll_ForAnExternalCI_IsAConflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_NoFailedRun_IsAConflictAndForgejoIsNeverAsked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestPullRequestBody_ReadsAndWritesTheBodyViaTheEditEndpoint" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/failure" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/waiting" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/running" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/skipped_alone" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/success" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestRerunFailedChecks_LooksRunsUpByTheHeadCommit" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_run_still_going_is_running,_with_no_finish_time" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/skipped_beside_successes" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus/cancelled_alone" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch_EachStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_repo_with_no_default_branch_makes_no_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/an_instance_without_Actions_has_no_pipeline,_not_an_error" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_runs_list_that_fails_is_an_error,_so_the_old_row_is_kept" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/asks_for_the_default_branch,_and_ignores_runs_of_other_branches" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_repo_with_no_run_on_its_default_branch_has_no_pipeline" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/the_commit_comes_from_the_commit_itself" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_failure_wins_over_a_run_still_going" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_commit_that_can&#39;t_be_read_falls_back_to_the_run&#39;s_title_and_actor" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_failed_run_whose_jobs_can&#39;t_be_read_is_named_by_its_workflow" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_finished_pipeline_says_when_it_ended_and_how_long_it_took" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/already_merged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestUpdateBranch_Refusals_KeepForgesOwnMessage/permission" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/open_and_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/open_draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch/a_failed_run_fails_the_branch_and_names_the_failed_job" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestUpdateBranch_Refusals_KeepForgesOwnMessage/conflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadMainBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestUpdateBranch_Refusals_KeepForgesOwnMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/open_and_not_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/open,_not_mergeable_and_nothing_to_merge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/open,_not_mergeable,_diff_size_unreported" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsBehindFromBaseShaVsMergeBase/base_unchanged_since_merge-base:_not_behind" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsEmptyFromDiffstat/all_zero:_empty" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields/closed_unmerged" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestReadPullRequestState_MapsGetPullRequestFields" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsBehindFromBaseShaVsMergeBase/base_has_moved_since_merge-base:_behind,_even_though_mergeable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsBehindFromBaseShaVsMergeBase" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsMergeableToMergeStatus/mergeable_true_maps_to_Mergeable" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsMergeableToMergeStatus/mergeable_false_with_no_merge_base_stays_Blocked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsMergeableToMergeStatus/mergeable_false_on_an_unmoved_base_stays_Blocked" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsEmptyFromDiffstat/real_diff:_not_empty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsMergeableToMergeStatus/mergeable_false_on_a_moved_base_maps_to_Conflicting" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsMergeableToMergeStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesErrorKind/server_error" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsEmptyFromDiffstat/one_nil_(instance_doesn&#39;t_report_it):_not_empty" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsEmptyFromDiffstat" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesErrorKind/not_found" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsFieldsAndResolvesCI/labels_carry_through" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesErrorKind/forbidden" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsFieldsAndResolvesCI/basic_fields" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsFieldsAndResolvesCI/CI_reflects_the_combined_status" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListOpenPullRequests_MapsFieldsAndResolvesCI" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesErrorKind/too_many_requests" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesErrorKind/unauthorized" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/forgejo" name="TestListRepos_ClassifiesErrorKind" time="0.000000"></testcase>
	</testsuite>
	<testsuite tests="315" failures="0" time="1.855000" name="github.com/alrayyes/forge-dashboard/internal/github" timestamp="2026-10-15T21:19:15Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_UnreadableRequiredChecks_WarnOncePerRepo" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredChecksUnreadableAgain_WarnsAgain" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReadableRepoRequiringNothing_DoesNotWarn" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_UnprotectedBranch_DoesNotWarn" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestValidateAppPrivateKey_MalformedKey_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_SameNamedRequiredRunStillQueued_IsPending" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestGetPullRequestDetails_MoreCommentsThanTheCapAreFlagged" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CompareQueryFails_DegradesToMergeStateStatusOnly" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestDisableAutoMerge_GraphQLError_IsReturned" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsTheHeadCommitSHA" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestDisableAutoMerge_SendsTheMutationWithTheNodeID" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsTheBranchesAndForkFlag" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredStatusStillPending_IsPending" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_PartialAnswerServedFromTheCache_StillNeverMarksACommitComplete" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewCommentsAndUnresolvedThreads" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_UnfinishedRequiredCheck_IsNotRememberedAsComplete" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_UnreadableProtection_IsNotAskedAgainOnTheNextPoll" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredCheckOnTheSecondPageOfRuns_CountsAsReported" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsTheRequestedReviewerLogins" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CleanPullRequest_SkipsTheRequiredChecksLookup" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredStatusContextNotYetReported_IsPending" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_ForgeFails_ReturnsClassifiedError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredLookupThatFailed_NeverMarksACommitComplete" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_NoProtectionLookupSucceeds_RequiredIsAbsentFromJSON" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestNewClient_NoRecorderGiven_StillWorks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_EveryRequiredCheckReported_StaysSuccess" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredStatusContextBesideCheckRuns_CountsAsReported" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_ProtectionUnreadable_RequiredStaysUnknownUnlessARuleSaysSo" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CompleteRequiredChecks_AreNotLookedUpAgainForTheSameCommit" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RateLimitedGraphQLFailure_RecordsOneEntryClassifiedRateLimited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_SuccessfulGraphQLFetch_RecordsOneEntryWithRateLimitFields" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_BranchProtectionRequiredChecks_SplitRequiredFromAdvisory" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RecorderError_DoesNotChangeFetchResult" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredCheckNotYetReported_IsPending" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RateLimited_CarriesWhenTheBudgetResets" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RepoDoesNotAllowAutoMerge_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReviewFieldsAbsentMeansUnknown" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestGetPullRequestDetails_GraphQLError_IsReturned" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_Squash_TitlesTheCommitWithThePullRequestTitle" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_RulesetRequiredStatusChecks_CountAsRequired" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestGetPullRequestDetails_NamesAtMostTenLoginsButCountsAll" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestGetPullRequestDetails_AsksOnlyForTheCappedAmount" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RepoDisallowsMergeCommit_FallsBackToSquash" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RepoAllowsOnlyRebase_UsesRebase" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_LookupFails_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoReviewThreadsIsZeroNotUnknown" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RepoAllowsMergeCommit_UsesMerge" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQLErrorsArray_ReportsUnreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_NoCheckRuns_FallsBackToCombinedStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MergeStateStatusBlockedAndNotBehind_StaysFalse" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_NoChecksAtAll_ReturnsEmptySlice" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_BehindMergeStateStatus_IssuesNoCompareQuery" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestUpdateBranch_UnprocessableEntity_ClassifiesAsForgeErrorConflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestGetPullRequestDetails_CutsALongBodyAndSaysSo" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_ReturnsEveryCheckRunForThePullRequestsHeadSHA" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MergeStateStatusBlockedButActuallyBehind_ReportsBehindTrue" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_PullRequestLookupFails_ReturnsError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestUpdateBranch_CallsTheUpdateEndpoint" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_GraphQLError_ReturnsError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClosePullRequest_ClosesViaEditEndpoint" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestUpdateBranch_ScheduledAsBackgroundJob_ReportsAcceptedNotAnError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_RepositoryNotFound_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RepoLookupFails_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClosePullRequest_ForgeRejects_ClassifiesTheError" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_Source" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_ImplementsRepoRefresher" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_NotMergeable_ClassifiesAsForgeErrorConflict" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_QueriesOnlyTheNamedRepo" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_BaseBranchRequiresLinearHistory_SkipsMerge" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_FallsBackToUsernamesPublicRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ExcludesPullRequestsFromIssues" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoTokenNoUsername_ReportsUnreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ExcludesArchivedAndForkedRepos" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_OnlyDefaultBranchRequiresLinearHistory_KeepsMerge" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RulesetRequiresLinearHistory_SkipsMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_ProtectionRequiresLinearHistory_SkipsMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_BaseBranchRequiresLinearHistory_SkipsMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_FailureWithNoRateLimitHeaders_LeavesRateLimitNil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_MapsPullRequestFieldsAndResolvesCIFromCheckRuns" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RateLimitExceeded_StillPopulatesRateLimit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_Squash_PullRequestLookupFails_StillMerges" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RetryAfterIncludedWhenPresent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RateLimitMessageSanitizedEvenWithoutHeaders" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_Squash_TitlesTheCommitWithThePullRequestTitle" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ErrorIncludesAPIMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnsureWebhook_RateLimited_ClassifiesAsDashboardClientError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_MergeCommit_SendsNoCommitTitle" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RepoAllowsMergeCommit_UsesMerge" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RepoDisallowsMergeCommit_FallsBackToSquash" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_TransportFailure_ClassifiesAsUnreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RateLimitExceeded_ShortMessage_NotGitHubsBoilerplate" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnsureWebhook_SendsAuthorizationHeader" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_TransportFailure_ClassifiesAsUnreachable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnsureWebhook_EditsExistingHookInPlace" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnsureWebhook_CreatesWhenMissing" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_RateLimitHeadersOverrideStatusClassification" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnsureWebhook_ForgeErrorPropagates" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_HooksAPIFails_DegradesToFalseWithoutFailingFetch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQLErrorsArray_RateLimitReportedAsHTTP200_StillGetsShortMessageAndRateLimit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoWebhookPathConfigured_SkipsHookCheckEntirely" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_SetWebhookPath_MarksRepoWithMatchingHookAsHasWebhook" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CheckWebhooksSuccess_ReportsRESTRateLimit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CheckWebhooksRateLimited_StillReportsRESTRateLimit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_FollowsPagination" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_SetWebhookPath_NoMatchingHook" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NullAuthor_ReportsGhost" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_AutoMergeFreeButMergeStatusUnknown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchMainBranch_AnUnknownRepositoryIsAnError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestUpdateBranch_CannotMergeCleanly_ClassifiesAsForgeErrorConflict" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestPullRequestBody_ReadsAndWritesTheBodyViaTheEditEndpoint" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestGetPullRequestDetails_ReadsTheThreadInOneQuery" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_ProtectionRequiresLinearHistory_SkipsMerge" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReconcileMismatch_FallsBackToFetchRepo" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReconcileMerge_TotalCountMatches_KeepsUntouchedIssues" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NewRepoOnASinceFilteredPoll_FullyFetchedViaFallback" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_FirstPoll_OmitsSince" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RepoAllowsOnlyRebase_UsesRebase" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch_SkipsCommitsNoCheckRanOn" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_ReadsEachRepoDefaultBranch" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_MapsTheHeadCommitSHA" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestNewUnreachableClient_Fetch_ReportsTheGivenReason" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_PullRequestWithNoStatusCheckRollup_ReportsCINone" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_SecondPoll_PassesSinceFromFirstPoll" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ExcludesArchivedForkedAndReadOnlyRepos" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReportsRateLimit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_MapsTheBranches" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_CommentPullRequest_WithPersonalToken_PostsAsThePersonalToken" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_TokenConfigured_UsesGraphQL" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_QueriesNewestPullRequestsAndIssuesFirst" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_DependabotCommandsBlockedReason_WithPersonalToken_IsEmpty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_RollupOfAnEarlierCommit_IsPendingNotPassed" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_QueriesNewestPullRequestsAndIssuesFirst" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_DependabotCommandsBlockedReason_WithoutPersonalToken_ExplainsWhy" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupOfAnEarlierCommit_DoesNotFlagAwaitingApproval" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupOfTheHeadCommit_IsTrusted" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupOfAnEarlierCommit_IsPendingNotPassed" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_ReadsWhetherRenovatesRebaseBoxIsTicked" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_AsksForTheCommitIdBesideTheRollup" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestPATClient_DependabotCommandsBlockedReason_IsEmpty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_MintsAnInstallationToken" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupWithNoCommitId_IsTrusted" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_UsesGraphQLPath" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RepeatPoll_304OnHooksStillReportsFreshRateLimit" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_ReturnsInstallationRepositoriesPRsAndIssues" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_DoesNotSendTheBrokenEmptyBearerHeader" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchMainBranch_ReadsTheDefaultBranchOfOneRepo" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestAppClient_Fetch_SendsTheRealMintedToken" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestHasWebhook_RepeatCall_SendsIfNoneMatchOnceETagIsKnown" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestNewAppClient_MalformedKey_ReturnsError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_NeverAnswersFromTheETagCache" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_LinearHistoryAndOnlyMergeAllowed_KeepsMerge" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestValidateAppPrivateKey_ValidKey_ReturnsNil" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_TheQueryAsksForThePullRequestBody" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestHasWebhook_ResponseWithoutETag_NeverCached" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetchRepo_ReadsWhetherRenovatesRebaseBoxIsTicked" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ReadsWhetherRenovatesRebaseBoxIsTicked" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_FailureDetail/a_job_GitHub_won&#39;t_show_leaves_the_check_as_it_was,_nothing_invented" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_FailureDetail/a_completed_check_reports_how_long_it_ran" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_FailureDetail/a_passing_check_costs_no_extra_calls_and_has_no_detail" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_FailureDetail/the_excerpt_is_the_tail_of_the_log_as_plain_text" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredCheckQueuedOrRunning_IsPending/queued" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_WebhookChecks_DenialIsRemembered/an_app_that_can&#39;t_read_hooks_costs_no_further_calls" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredCheckQueuedOrRunning_IsPending/in_progress" time="0.040000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RequiredCheckQueuedOrRunning_IsPending" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_FailureDetail/a_failed_check_names_the_step_that_failed" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_FailureDetail" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RefusalKeepsGitHubsOwnMessage/Auto_merge_is_not_allowed_for_this_repository" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RefusalKeepsGitHubsOwnMessage/Pull_request_is_in_clean_status" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RefusalKeepsGitHubsOwnMessage/Pull_request_is_in_unstable_status" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestEnableAutoMerge_RefusalKeepsGitHubsOwnMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/closed_unmerged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/unstable" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_WebhookChecks_DenialIsRemembered/a_repo_the_token_can&#39;t_administer_is_remembered_by_itself" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/blocked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/behind" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/draft" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/conflicting" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/clean" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields/already_merged" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_MapsGetPullRequestFields" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RefusalsKeepTheForgesOwnMessage/409_head_modified" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RefusalsKeepTheForgesOwnMessage/405_not_mergeable" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/approved_counts_approvals" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RefusalsKeepTheForgesOwnMessage/403_no_permission" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestMergePullRequest_RefusalsKeepTheForgesOwnMessage" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/null_decision_derives_changes" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/null_decision_derives_approval" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/null_decision_derives_requested" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/changes_requested" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/null_decision,_nothing_happened" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState/review_required" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsReviewState" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CleanMergeStateStatus_BehindFollowsCompare/behind_by_one" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CleanMergeStateStatus_BehindFollowsCompare/null_compare" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CleanMergeStateStatus_BehindFollowsCompare/not_behind" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_CleanMergeStateStatus_BehindFollowsCompare" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/queued/" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeFromAutoMergeRequest/absent_means_not_enabled" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeFromAutoMergeRequest/present_means_enabled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeFromAutoMergeRequest" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/skipped" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/timed_out" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/cancelled" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/neutral" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/success" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/failure" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/completed/action_required" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState/in_progress/" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestListChecks_MapsEveryStatusAndConclusionToACheckState" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsEmptyFromDiffstat/all_zero:_empty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsEmptyFromDiffstat/real_diff:_not_empty" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsEmptyFromDiffstat" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/CLEAN" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/UNKNOWN" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/BLOCKED" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_WebhookChecks_DenialIsRemembered/the_denial_expires,_so_a_granted_permission_is_noticed" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_WebhookChecks_DenialIsRemembered" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/DIRTY" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/HAS_HOOKS" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/BEHIND" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/UNSTABLE" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus/DRAFT" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsMergeStatusFromMergeStateStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus/CLEAN" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus/BLOCKED" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus/HAS_HOOKS" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ClassifiesErrorKindFromStatus/unauthorized" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus/BEHIND" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ClassifiesErrorKindFromStatus/server_error" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus/UNSTABLE" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ClassifiesErrorKindFromStatus/not_found" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus/DIRTY" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ClassifiesErrorKindFromStatus/too_many_requests" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/absent" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_ClassifiesErrorKindFromStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/insufficient_scopes" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsBehindFromMergeStateStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/rate_limited" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/not_found" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/unrecognized" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/unauthenticated" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType/forbidden" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromExtensionsType" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromStatus/server_error" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromStatus/not_found" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromStatus/unauthorized" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeAllowedFromViewerCanEnableAutoMerge/absent_field_is_unknown" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeAllowedFromViewerCanEnableAutoMerge/protected_base_is_true" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeAllowedFromViewerCanEnableAutoMerge/unprotected_stacked_base_is_false" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsAutoMergeAllowedFromViewerCanEnableAutoMerge" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_ChangesWorkflowFiles/touches_no_workflow" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_ChangesWorkflowFiles/file_list_failed" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_ChangesWorkflowFiles/touches_a_workflow" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/rides_the_repository_query_already_made,_no_query_of_its_own" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_finished_pipeline_says_when_it_ended_and_how_long_it_took" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestReadPullRequestState_ChangesWorkflowFiles" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromStatus/forbidden" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_legacy_commit_status_that_failed_names_its_context" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_GraphQL_ClassifiesErrorKindFromStatus" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_commit_nothing_ran_on_has_no_pipeline_and_links_to_the_commit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_rollup_of_cancelled_runs_next_to_one_still_running_is_running" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/an_empty_repository_has_a_row_with_no_branch_and_no_commit" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/green_checks_pass_the_branch_with_no_failing_job" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_commit_whose_author_has_no_GitHub_login_names_the_author_on_the_commit" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/names_the_repo,_the_branch_and_the_commit" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_pending_rollup_is_running,_with_no_finish_time" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch/a_red_check_fails_the_branch_and_names_the_job" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MainBranch" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_CheckRunCI_CancelledRunWhileOthersRun/real_failure_while_others_queue_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_CheckRunCI_CancelledRunWhileOthersRun/timed_out_while_others_queue_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_CheckRunCI_CancelledRunWhileOthersRun/cancelled_only_with_nothing_running_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsPullRequestFieldsAndCIFromStatusCheckRollup/labels_carry_through" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsPullRequestFieldsAndCIFromStatusCheckRollup/CI_reflects_the_status_check_rollup" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsPullRequestFieldsAndCIFromStatusCheckRollup/basic_fields" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_MapsPullRequestFieldsAndCIFromStatusCheckRollup" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_CheckRunCI_CancelledRunWhileOthersRun/in_progress_alone_is_pending" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_CheckRunCI_CancelledRunWhileOthersRun/Hush-Hush_516:_cancelled,_22_queued,_1_skipped_is_pending" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_NoToken_CheckRunCI_CancelledRunWhileOthersRun" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/Hush-Hush_516:_stale_cancelled_run_beside_queued_checks_is_pending" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/cancelled_only_with_nothing_running_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/rollup_without_counts_keeps_trusting_the_state" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/success_stays_success" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/action_required_while_others_run_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/startup_failure_while_others_run_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/errored_legacy_status_while_checks_run_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/real_failure_while_others_still_run_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/timed_out_while_others_run_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/cancelled_beside_a_pending_legacy_status_is_pending" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/cancelled_beside_in-progress_is_pending" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval/a_real_failure_only" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun/failed_legacy_status_while_checks_run_stays_failure" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupCI_CancelledRunWhileOthersRun" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval/no_rollup" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval/action_required_beside_running_runs" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval/a_zero_count" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval/action_required_beside_a_real_failure" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestRerunFailedChecks/a_refusal_from_GitHub_comes_back_classified,_with_its_own_words" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval/an_action_required_run" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_RollupAwaitingWorkflowApproval" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestRerunFailedChecks/nothing_to_rerun_is_a_conflict,_and_GitHub_is_never_asked" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestRerunFailedChecks/a_failed_check_that_isn&#39;t_an_Actions_job_is_left_alone" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReadsWhetherRenovatesRebaseBoxIsTicked/ticked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReadsWhetherRenovatesRebaseBoxIsTicked/unticked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/a_forge_error_comes_back_as_an_error" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/a_comment_nobody_reacted_to_yet_only_gives_its_link" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReadsWhetherRenovatesRebaseBoxIsTicked/no_box" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestRerunFailedChecks/reruns_each_workflow_run_holding_a_failed_job_once" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestFetch_ReadsWhetherRenovatesRebaseBoxIsTicked" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/an_older_comment_with_the_same_text_is_not_this_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/another_command&#39;s_comment_is_not_this_request" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestRerunFailedChecks" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/a_thumbs-up_from_someone_else,_or_another_reaction_from_Dependabot,_does_not_count" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/with_several_matching_comments_the_newest_one_counts" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck/a_thumbs-up_from_Dependabot_on_the_command_comment_is_an_acknowledgement" time="0.010000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/github" name="TestClient_DependabotAck" time="0.000000"></testcase>
	</testsuite>
	<testsuite tests="7" failures="0" time="1.196000" name="github.com/alrayyes/forge-dashboard/internal/requestlog" timestamp="2026-10-15T21:19:16Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestWriter_FullQueueDropsTheRowAndNeverBlocksTheCaller" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestWriter_CloseDrainsWhatIsQueued" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestNoopRecorder_DiscardsWithNoError" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestSQLiteRecorder_Record_StampsItsOwnAccountID" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestSQLiteRecorder_Record_RoundTripsRateLimitFields" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestSQLiteRecorder_Record_RecordsAFailure" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/requestlog" name="TestSQLiteRecorder_List_FiltersByForge" time="0.090000"></testcase>
	</testsuite>
	<testsuite tests="97" failures="0" time="4.617000" name="github.com/alrayyes/forge-dashboard/internal/settings" timestamp="2026-10-15T21:19:18Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestCredentials_RenovateRebaseLabelOrDefault_EmptyFallsBackToRenovatesOwnDefault" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Get_NeverSaved_TimezoneDefaultsToEmptyMeaningBrowser" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetFilterState_BeforeAnySettingsSaved_StillWorks" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_ArmAutoMerge_Twice_IsANoOp" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Set_NeverOverwritesAlreadySavedFilterState" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetFilterState_Twice_ReplacesIt" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_GetFilterState_NeverSaved_ReturnsEmptyObject" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetFilterState_ThenGetFilterState_RoundTrips" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_RemovesWebhookDeliveries" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_RecordWebhookDelivery_TwoUsers_EachSeesOnlyTheirOwn" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_FindByWebhookToken_TwoUsers_EachResolvesToTheirOwn" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_WebhookDeliveries_NeverRecorded_ReturnsEmpty" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_RecordWebhookDelivery_ThenWebhookDeliveries_ReturnsIt" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_FindByWebhookToken_EmptyToken_ReturnsErrNotFound" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_FindByWebhookToken_ReturnsTheOwningUserAndSecret" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Get_IncludesWebhookCredentialsOnceGenerated" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Set_NeverOverwritesAlreadyGeneratedWebhookCredentials" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnsureWebhookCredentials_TwoUsers_GetDifferentValues" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnsureWebhookCredentials_AfterExistingSettingsSaved_LeavesThemIntact" time="0.170000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnsureWebhookCredentials_SecondCall_ReturnsTheSameValues" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnsureWebhookCredentials_FirstCall_GeneratesNonEmptyValues" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_TokensAreEncryptedAtRest" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_FindByWebhookToken_UnknownToken_ReturnsErrNotFound" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_NeverSaved_IsANoOp" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Set_Twice_ReplacesTheWholeRow" time="0.190000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Get_NeverSaved_ReturnsErrNotFound" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UnignoreRepo_NeverIgnored_IsANoOp" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_ThenGet_ReturnsErrNotFound" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetThenGet_RoundTripsTimezone" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_RenovateRebaseLabel_NeverSaved_ReturnsDefault" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnableAutoUpdateBranch_TwoUsers_EachSeesOnlyTheirOwn" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_RenovateRebaseLabel_ReflectsSavedCredentials" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_RemovesAutoUpdateBranchRepos" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_DisableAutoUpdateBranch_NeverEnabled_IsANoOp" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_DisableAutoUpdateBranch_RemovesIt" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnableAutoUpdateBranch_ThenAutoUpdateBranchRepos_ReturnsIt" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_AutoUpdateBranchRepos_NoneEnabled_ReturnsEmpty" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestCredentials_RenovateRebaseLabelOrDefault_UsesSavedValueWhenSet" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnableAutoUpdateBranch_Twice_IsANoOp" time="0.890000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_RemovesIgnoredRepos" time="0.890000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HiddenPullRequests_AreEachUsersOwn" time="0.900000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Get_NeverSaved_ThemeDefaultsToEmptyMeaningSystem" time="0.870000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_GitHubAppInstallationID_StoredAsPlainInteger" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetThenGet_RoundTripsGitHubAppInstallationID" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetThenGet_RoundTrips" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetThenGet_RoundTripsTheme" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_QueuedActions_SurviveReopeningTheDatabase" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_CancelQueuedAction_UnknownID_ReportsNotFound" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_RemovesQueuedActions" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_CancelQueuedAction_AnotherUsersItem_LeavesItAlone" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_CancelQueuedAction_RemovesIt" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_QueuedActions_TwoUsers_EachSeesOnlyTheirOwn" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_QueuedActions_NoneQueued_ReturnsEmptyNotNil" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnqueueQueuedAction_SameActionTwice_KeepsTheFirst" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UsersWithWaitingQueuedActions" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_EnqueueQueuedAction_ThenQueuedActions_ReturnsItWithAnID" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_PruneQueuedActions_DropsOldFinishedOnesOnly" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UpdateQueuedAction_AFinishedOneStaysFinished" time="0.150000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UpdateQueuedAction_CanMoveTheReset" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UpdateQueuedAction_RecordsTheOutcome" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UpdateQueuedAction_CancelledMeanwhile_DoesNotComeBack" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_ForgetHiddenPullRequests_RemovesOnlyTheOnesNamed" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoreRepo_ThenIgnoredRepos_ReturnsIt" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_RemovesTheUsersHiddenPullRequests" time="0.160000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoreRepo_TwoUsers_EachSeesOnlyTheirOwn" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UnignoreRepo_RemovesIt" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoreRepo_RepeatWithDifferentScope_ReplacesIt" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoreRepo_IssuesOnly_LeavesPRsVisible" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoreRepo_PRsOnly_LeavesIssuesVisible" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoredRepos_NoneIgnored_ReturnsEmpty" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestNewCipher_WrongKeyLength_Errors" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_IgnoreRepo_Twice_IsANoOp" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_FilterState_TwoUsers_EachSeesOnlyTheirOwn" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetFilterState_AfterExistingSettingsSaved_LeavesThemIntact" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HidePullRequest_KeepsTwoPullRequestsOfOneRepoApart" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UnhidePullRequest_NotHidden_IsANoOp" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HidePullRequest_Twice_ReplacesTheEarlierChoice" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HiddenPullRequests_ForgetsAnExpiredOneForGood" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HiddenPullRequests_DropsOneWhoseTimeHasPassed" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_UnhidePullRequest_RemovesIt" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HidePullRequest_ReportsItsEndTime" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestNewCipher_NotBase64_Errors" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HidePullRequest_WithoutAnEndTime_NeverExpires" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestCipher_SameValueEncryptedTwice_ProducesDifferentCiphertext" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestCipher_EmptyPlaintext_RoundTripsToEmpty" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestCipher_TamperedCiphertext_FailsToDecrypt" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HidePullRequest_ThenHiddenPullRequests_ReturnsIt" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestCipher_EncryptThenDecrypt_RoundTrips" time="0.000000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_HiddenPullRequests_NoneHidden_ReturnsEmpty" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_ArmAutoMerge_TwoUsers_EachSeesOnlyTheirOwn" time="0.130000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_ArmAutoMerge_KeepsTwoPullRequestsOfOneRepoApart" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_Delete_RemovesAutoMergeIntents" time="0.140000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_CancelAutoMerge_NeverArmed_IsANoOp" time="0.100000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_CancelAutoMerge_RemovesIt" time="0.110000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_AutoMergeIntents_NoneArmed_ReturnsEmpty" time="0.090000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_ArmAutoMerge_ThenAutoMergeIntents_ReturnsIt" time="0.120000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/settings" name="TestStore_SetThenGet_RoundTripsRenovateRebaseLabel" time="0.110000"></testcase>
	</testsuite>
	<testsuite tests="8" failures="0" time="1.258000" name="github.com/alrayyes/forge-dashboard/internal/sharing" timestamp="2026-10-15T21:19:18Z">
		<properties>
			<property name="go.version" value="go1.27.2 linux/amd64"></property>
		</properties>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_Share_ThenIsSharedWith_ReportsTrue" time="0.060000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_Unshare_MakesIsSharedWithFalse" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_DeleteUser_RemovesEveryShareInvolvingThem" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_SharedWith_ReturnsEveryViewer" time="0.080000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_IsSharedWith_NeverShared_ReportsFalse" time="0.020000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_Share_Twice_IsIdempotent" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_Unshare_NeverShared_IsANoOp" time="0.030000"></testcase>
		<testcase classname="github.com/alrayyes/forge-dashboard/internal/sharing" name="TestStore_SharedWithMe_ReturnsEveryOwner" time="0.030000"></testcase>
	</testsuite>
</testsuites>