@skyramp/testbot-core 0.13.0-v3.155 → 0.13.0-v3.156

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/post.js CHANGED
@@ -143,8 +143,8 @@ If the error persists, please check whether Actions and API requests are operati
143
143
  The generated tests for this run were delivered to the configured test repo;
144
144
  this change only records the workspace/service configuration (including any
145
145
  additional repositories analyzed in a multi-repo run).`,devPrMergedBreadcrumb:(e,t,r)=>`Dev PR merged \u2014 Testbot PR [#${e}](${t}) is still open, now targeting \`${r}\`.`,devPrClosedBreadcrumb:(e,t)=>`Dev PR closed \u2014 Testbot PR [#${e}](${t}) has been closed automatically.`,testbotPrMergeHint:"Merging this PR adds the generated/maintained tests to the feature branch. Close it if you want to discard them.",testbotPrBacklink:e=>`Generated by Skyramp Testbot for ${e}.`,testbotPrDispatchBacklink:e=>`Generated by Skyramp Testbot from a manual run against \`${e}\`.`,testbotPrMergedBacklink:e=>`Generated by Skyramp Testbot for ${e}, which has since merged; these tests target the base branch.`,staleBannerNoChanges:e=>`> \u26A0\uFE0F The latest push on ${e} did not require any new test changes.`,staleBannerStillOpen:"> This PR still reflects testbot's analysis from an earlier push; consider regenerating via `@skyramp-testbot` or merging as-is if still relevant.",testbotPrNoBaseBranchError:"Skyramp Testbot could not open a Testbot PR because no base branch could be determined (no pull_request context and no checked-out branch). This usually means the workflow ran outside a `pull_request` event and `actions/checkout` left a detached HEAD. Set `generatedTestsMode: same-branch` to commit directly to the feature branch instead.",commitFailureGeneric:(e,t)=>t?`Failed to commit generated tests to the Testbot PR branch: \`${e}\`.`:`Failed to commit generated tests: \`${e}\`.`,commitFailureHookWhereTestbotPr:"so no Testbot PR was created",commitFailureHookWhereSameBranch:"so no changes were committed to the branch",commitFailureHook:(e,t)=>`Your repository's pre-commit hook rejected the generated-test commit, ${t}. Hook error: \`${e}\`.`,gitVerificationBypassed:(e,t,r)=>`Git verification issues: your repository's hooks rejected the \`git ${e}\` of the generated tests, and Testbot tried repairing them first, but ${t}, so they were delivered with \`--no-verify\`. Hook error: \`${r}\`.`,repairTimedOut:e=>`the ${e}-minute repair time ran out`,repairSessionFailed:e=>`the repair session failed (${e})`,gitVerificationBypassedNextStep:"Testbot delivered the generated tests without passing your repository's git hooks. Fix the issues the hooks reported in those tests before merging.",commitFailureHookNextStep:"A pre-commit hook rejected Testbot's generated tests. Fix the issue it reported in the generated tests, or configure the hook/linter to skip Testbot's generated test files. (Both delivery modes run `git commit`, so switching `generatedTestsMode` will not skip the hook.)",testbotPrCreationFailure:(e,t)=>`Could not open the Testbot PR for the generated tests. Error: \`${e}\`. The tests were committed and pushed to \`${t}\` \u2014 open a pull request from that branch to review them.`,sameBranchTestRepoConflictError:"`generatedTestsMode: same-branch` is incompatible with a configured `testRepoPath`: tests were generated into the test repo checkout, but same-branch mode only commits to the primary repo checkout. Use `generatedTestsMode: separate-branch` (the default) with `testRepoPath`, or remove `testRepoPath` to commit generated tests to the same branch.",noNewTestChangesBreadcrumb:e=>`This push produced no new test changes. The prior [testbot PR](${e}) from an earlier push is still open for review.`,testbotPrLabel:(e,t)=>`Testbot PR : [${e}](${t})`,sutAppCrashDetected:e=>`**Application crash detected:** Services (${e}) failed to start due to a code error.`,sutErrorLine:e=>`
146
- **Error:** \`${e}\``,sutFixPrefix:"**Fix:** ",sutServiceNotReachable:e=>`**Service not reachable:** Service at ${e} did not respond before the health-check timeout. The service may still be starting, or the startup command may not have brought it up at all.`,sutServiceNotReachableFix:"**Fix:** Check that `targetSetupCommand` actually starts this service and listens on the expected port. If the command is correct but the service is slow to start, increase `targetReadyCheckTimeout`. For a more reliable readiness signal, configure `targetReadyCheckCommand` to probe a specific health endpoint.",staged:{requestedByPerson:e=>`Requested by ${e}`,requestedByPolicy:e=>`Started by the Validation Policy ${e}`,noLiveApp:e=>`> \u26A0\uFE0F **No live app (SUT) was available this run** \u2014 the ${e} test(s) below were **not executed** (there was no app to run them against). Run them against a running app to confirm they pass (and that any repro test fails as intended).`,unitTestsInFile:(e,t,r)=>`**${e}**: ${t} unit test${t===1?"":"s"}${r?` for ${r}`:""}`,addedToExistingFile:"added to an existing test file",testPackagesHeader:"### \u{1F4E6} Running these tests",testPackageLine:(e,t)=>`\`${e}/\` is a self-contained test package Skyramp Testbot owns and maintains, with its own manifest, lockfile and runner config. Run it with \`${t}\`; to run it on every pull request, add that one command to CI.`,appManifestsUntouched:"The application's own manifests and lockfiles were not changed.",dependencyChangesHeader:"### \u{1F4E6} Changes to the application's dependencies",dependencyChangeLine:(e,t,r)=>`Added \`${e}\` to \`${t}\` (and its lockfile)${r?`: ${r}`:""}`,testMaintenanceHeader:"\u2705 Test Maintenance",keptNot:"kept, not ",declinedPlanned:"(declined the planned ",declinedMaintenanceHeader:"\u21A9\uFE0F Declined Maintenance",existingEvidenceHeader:"\u2705 Existing Evidence",trustedCheckPassed:(e,t)=>`Trusted CI check ${e} passed${t?` on ${t}`:""}, establishing:`,testResultsHeader:"\u{1F9EA} Test Results",resultsTableHeader:"| Test ID | Test Type | Endpoint | Status | Details |",unitResultsTableHeader:"| Test ID | Test Type | Code under test | Test | Cases | Status | Details |",casesPassed:(e,t,r)=>`${e}/${t} passed${r?`, ${r} skipped`:""}`,behaviourCoverageHeader:"\u{1F517} Behaviour Coverage",coverageCaption:(e,t,r,n)=>` (${e} generated \xB7 ${t} modified \xB7 ${r} verified \xB7 ${n} executed)`,coverageTableHeader:"| Behaviour | Source | Tested By | Maintained By |",writtenNotRun:"written, not run",issuesFoundHeader:"\u26A0\uFE0F Issues Found",caveatsHeader:"### \u26A0\uFE0F What This Run Could Not Prove",commentHeader:"### Skyramp Testbot",timedOut:"> \u26A0\uFE0F Run timed out \u2014 the results below are partial.",stopReasons:{},publishFailures:{},maintenanceActions:{},stoppedEarly:(e,t)=>`> \u26A0\uFE0F Run stopped early \u2014 ${e}. The results below are partial.${t}`,viewInSkyramp:e=>` [View in Skyramp](${e})`,setupRunEnds:{finished:"Setup run finished. Skyramp is checking the result.",failed:"Setup run failed.",timedOut:"Setup run ran out of time.",cancelledInSkyramp:"Setup run was cancelled in Skyramp.",stoppedToResume:"Setup run stopped. Resume it in Skyramp."},appUnreachable:e=>`Unable to contact the mothership ${e}. Please try again later.`,couldNotStart:e=>`Skyramp Testbot could not start: ${e}`,assembledAfterFailedChecks:e=>`> \u26A0\uFE0F This report was assembled automatically after the write-up step failed its checks; ${e} check(s) remain unmet \u2014 see the run log for details.`,testbotPrLine:(e,t,r)=>`Testbot PR${e?` (${e})`:""} : [${t}](${r})`,viewRun:e=>`_[View run](${e})_`,testsPrNotOpened:(e,t)=>`The tests PR could not be opened (${e}); the tests were pushed to branch \`${t}\`.`,testsNotPushed:(e,t)=>`The tests could not be pushed (${e}); they remain on the local branch \`${t}\`.`,testsPrRetargeted:e=>`The dev PR merged while tests were being generated \u2014 the tests PR targets its base branch${e?` (\`${e}\`)`:""} instead.`,testsPrUnchanged:"This push required no new test changes; the tests PR below is from an earlier run and was left as is.",committedNoPr:e=>`The tests were committed but no PR was opened: ${e}.`}};var GRe={defaultProgressHeadline:"\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u78BA\u8A8D\u3057\u3066\u30C6\u30B9\u30C8\u3092\u63A8\u5968\u3057\u3066\u3044\u307E\u3059\u3002",stepSettingUpEnvironment:"\u74B0\u5883\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7",stepAnalyzingUserRequest:"\u30E6\u30FC\u30B6\u30FC\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u5206\u6790",stepAnalyzingCodeChanges:"\u30B3\u30FC\u30C9\u5909\u66F4\u306E\u5206\u6790",stepRecommendingTests:"\u30C6\u30B9\u30C8\u306E\u63A8\u5968",stepGeneratingTests:"\u30C6\u30B9\u30C8\u306E\u751F\u6210",stepExecutingTests:"\u30C6\u30B9\u30C8\u306E\u5B9F\u884C",stepGeneratingReport:"\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3068\u30EC\u30DD\u30FC\u30C8\u306E\u751F\u6210",workflowRunLinkLabel:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u5B9F\u884C",noReportAvailable:"\u30EC\u30DD\u30FC\u30C8\u306F\u3042\u308A\u307E\u305B\u3093\u3002",cancelledHeader:"### Skyramp Testbot \u2014 \u30AD\u30E3\u30F3\u30BB\u30EB",cancelledBody:"\u3053\u306E\u5B9F\u884C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",cancelledStepSuffix:"\u30AD\u30E3\u30F3\u30BB\u30EB",abandonedHeader:"### Skyramp Testbot \u2014 \u505C\u6B62",abandonedBody:"\u3053\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30DE\u30FC\u30B8\u3055\u308C\u305A\u306B\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u305F\u305F\u3081\u3001\u30C6\u30B9\u30C8\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u306F\u5B8C\u4E86\u524D\u306B\u505C\u6B62\u3055\u308C\u307E\u3057\u305F\u3002",abandonedStepSuffix:"\u505C\u6B62",followingUserInstruction:e=>`> \u30E6\u30FC\u30B6\u30FC\u6307\u793A\u306B\u5F93\u3063\u3066\u3044\u307E\u3059: *${e}*`,minimalReportHeader:"### \u26A0\uFE0F Skyramp Testbot",testRecommendationsImplementedHeader:e=>`\u{1F4A1} \u5B9F\u88C5\u3057\u305F\u30C6\u30B9\u30C8\u63A8\u5968\uFF08${e}\u4EF6\uFF09`,additionalRecommendationsHeader:e=>`\u{1F4CC} \u8FFD\u52A0\u306E\u30C6\u30B9\u30C8\u63A8\u5968\uFF08${e}\u4EF6\uFF09`,additionalRecommendationsCta:"\u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u3092\u751F\u6210\u3059\u308B\u306B\u306F\u3001\u30B3\u30E1\u30F3\u30C8\u3067 `@skyramp-testbot` \u3092\u30E1\u30F3\u30B7\u30E7\u30F3\u3057\u3066\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: `@skyramp-testbot /products \u306E\u30B3\u30F3\u30C8\u30E9\u30AF\u30C8\u30C6\u30B9\u30C8\u3092\u8FFD\u52A0\u3057\u3066`\uFF09\u3002",testTypeLabels:{contract:"\u{1F4CB} \u30B3\u30F3\u30C8\u30E9\u30AF\u30C8",integration:"\u{1F517} \u7D71\u5408",e2e:"\u{1F310} E2E",ui:"\u{1F5A5}\uFE0F UI"},testTypeCellLabels:{smoke:"\u30B9\u30E2\u30FC\u30AF",fuzz:"\u30D5\u30A1\u30BA",contract:"\u30B3\u30F3\u30C8\u30E9\u30AF\u30C8",load:"\u8CA0\u8377",integration:"\u7D71\u5408",e2e:"E2E",ui:"UI",unit:"\u30E6\u30CB\u30C3\u30C8"},statusLabels:{Pass:"\u5408\u683C",Fail:"\u4E0D\u5408\u683C",Error:"\u30A8\u30E9\u30FC",Skipped:"\u30B9\u30AD\u30C3\u30D7"},severityLabels:{critical:"\u91CD\u5927",high:"\u9AD8",medium:"\u4E2D",low:"\u4F4E"},reuse:{label:"POM \u518D\u5229\u7528",noPomLayer:"\u30B9\u30AD\u30C3\u30D7 \u2014 \u3053\u306E\u30C6\u30B9\u30C8\u306B\u518D\u5229\u7528\u3067\u304D\u308B\u30DA\u30FC\u30B8\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u5C64\u306F\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",reusedAndVerified:e=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u518D\u5229\u7528\u30FB\u691C\u8A3C\u6E08\u307F`,reusedThenVerified:(e,t)=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u518D\u5229\u7528\uFF08\u3046\u3061 ${t} \u4EF6\u3092\u691C\u8A3C\u6E08\u307F\uFF09`,reused:e=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u518D\u5229\u7528`,verified:e=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u691C\u8A3C\u6E08\u307F`,unresolved:e=>`${e} \u4EF6\u306F POM \u30BD\u30FC\u30B9\u307E\u3067\u89E3\u6C7A\u3067\u304D\u305A\uFF08\u53C2\u8003\u60C5\u5831\u3067\u3042\u308A\u3001\u9664\u5916\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09`,candidates:e=>`\u5019\u88DC\u3068\u306A\u308B POM \u30D5\u30A1\u30A4\u30EB ${e} \u4EF6\u3092\u691C\u51FA`,verificationPassed:"\u691C\u8A3C\u306B\u5408\u683C",verificationFailed:"\u26A0\uFE0F \u691C\u8A3C\u306B\u5408\u683C\u3057\u307E\u305B\u3093\u3067\u3057\u305F",keptInline:e=>`\u30A4\u30F3\u30E9\u30A4\u30F3\u306E\u307E\u307E: ${e}`,gate:{"not-mapped":"\u30DE\u30C3\u30D4\u30F3\u30B0\u5BFE\u8C61\u5916","demoted-by-verify":"\u691C\u8A3C\u3067\u5DEE\u3057\u623B\u3057"}},testMaintenanceHeader:e=>`\u2705 \u30C6\u30B9\u30C8\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\uFF08${e}\u4EF6\uFF09`,maintenanceTableHeader:"| \u30C6\u30B9\u30C8\u7A2E\u5225 | \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8 | \u30D5\u30A1\u30A4\u30EB | \u5909\u66F4\u5185\u5BB9 | \u5909\u66F4\u524D | \u5909\u66F4\u5F8C |",testResultsHeader:e=>`\u{1F9EA} \u30C6\u30B9\u30C8\u7D50\u679C\uFF08${e}\u4EF6\uFF09`,columnTestType:"\u30C6\u30B9\u30C8\u7A2E\u5225",columnEndpoint:"\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8",columnStatus:"\u30B9\u30C6\u30FC\u30BF\u30B9",columnDetails:"\u8A73\u7D30",columnRepo:"\u30EA\u30DD\u30B8\u30C8\u30EA",repoColumnPrimary:"\u30D7\u30E9\u30A4\u30DE\u30EA",columnVideo:"\u30D3\u30C7\u30AA",videoDownloadLink:e=>`[\u{1F4F9} \u30C0\u30A6\u30F3\u30ED\u30FC\u30C9](${e})`,videosArtifactFallback:e=>`\u{1F4F9} \u9332\u753B\u3055\u308C\u305F UI \u30C6\u30B9\u30C8\u30D3\u30C7\u30AA: [\u5B9F\u884C\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u304B\u3089\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9](${e})`,issuesFoundHeader:e=>`\u26A0\uFE0F \u691C\u51FA\u3055\u308C\u305F\u554F\u984C\uFF08${e}\u4EF6\uFF09`,configErrorsHeader:"\u2699\uFE0F \u8A2D\u5B9A\u30A8\u30E9\u30FC",nextStepsHeader:"### \u{1F4A1} \u6B21\u306E\u30B9\u30C6\u30C3\u30D7",caveatsHeader:"### \u26A0\uFE0F \u3053\u306E\u5B9F\u884C\u3067\u78BA\u8A8D\u3067\u304D\u306A\u304B\u3063\u305F\u3053\u3068",rows:{passed:e=>e?"\u8D77\u52D5\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u6210\u529F\u3057\u307E\u3057\u305F":"\u6210\u529F\u3057\u307E\u3057\u305F",notRun:e=>e?"\u3053\u306E\u5B9F\u884C\u3067\u306F\u30E9\u30A4\u30D6\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F":"\u3053\u306E\u5B9F\u884C\u3067\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",failedBug:e=>e?"\u8D77\u52D5\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5931\u6557\u3057\u307E\u3057\u305F":"\u5931\u6557\u3057\u307E\u3057\u305F",executedOf:(e,t)=>t?`\u3001\u305D\u306E\u3046\u3061 ${e} \u4EF6\u3092\u8D77\u52D5\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3057\u307E\u3057\u305F\u3002`:`\u3001\u305D\u306E\u3046\u3061 ${e} \u4EF6\u3092\u5B9F\u884C\u3057\u307E\u3057\u305F\u3002`,noneExecuted:e=>e?"\u3002\u3053\u306E\u5B9F\u884C\u3067\u306F\u30E9\u30A4\u30D6\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3055\u308C\u305F\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\u3002":"\u3002\u3053\u306E\u5B9F\u884C\u3067\u306F\u5B9F\u884C\u3055\u308C\u305F\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\u3002"},caveats:{deployFailed:"\u30A2\u30D7\u30EA\u3092\u8D77\u52D5\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u3053\u3053\u306B\u793A\u3059\u5185\u5BB9\u306F\u7A3C\u50CD\u4E2D\u306E\u30B7\u30B9\u30C6\u30E0\u306B\u5BFE\u3057\u3066\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",changeBrokeBringup:"\u3053\u306E\u5909\u66F4\u306B\u3088\u308A\u30A2\u30D7\u30EA\u306E\u8D77\u52D5\u304C\u58CA\u308C\u305F\u3068\u601D\u308F\u308C\u307E\u3059\u3002PR \u3092\u9069\u7528\u3057\u305F\u72B6\u614B\u3067\u8D77\u52D5\u3067\u304D\u305A\u3001\u30C6\u30B9\u30C8\u306F\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",bringupFailed:"\u3053\u306E PR \u3068\u306F\u7121\u95A2\u4FC2\u306E\u7406\u7531\u3067\u30A2\u30D7\u30EA\u3092\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3059\u308B\u30C6\u30B9\u30C8\u306F\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",testsNotExecuted:"\u3053\u306E\u5B9F\u884C\u3067\u306F\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u30C6\u30B9\u30C8\u304C\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u672A\u5B9F\u884C\u306E\u30C6\u30B9\u30C8\u306F\u5909\u66F4\u304C\u6B63\u3057\u304F\u52D5\u4F5C\u3059\u308B\u8A3C\u62E0\u306B\u306A\u308A\u307E\u305B\u3093\u3002",recipeDrift:"\u8A18\u9332\u3055\u308C\u3066\u3044\u305F\u30A2\u30D7\u30EA\u306E\u8D77\u52D5\u624B\u9806\u304C\u53E4\u304F\u306A\u3063\u3066\u304A\u308A\u3001\u8D77\u52D5\u524D\u306B\u4FEE\u6B63\u304C\u5FC5\u8981\u3067\u3057\u305F\u3002",mockedDependency:e=>`${e} \u306F\u5B9F\u969B\u306B\u30C7\u30D7\u30ED\u30A4\u3055\u308C\u305A\u30E2\u30C3\u30AF\u5316\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u308C\u306B\u5BFE\u3059\u308B\u6210\u529F\u7D50\u679C\u306F\u8A3C\u660E\u306B\u306F\u306A\u308A\u307E\u305B\u3093\u3002`,finalizeNotReady:e=>`\u30C6\u30B9\u30C8\u306F\u73FE\u72B6\u3067\u306F\u30DE\u30FC\u30B8\u53EF\u80FD\u306A\u72B6\u614B\u3067\u306F\u3042\u308A\u307E\u305B\u3093${e?`: ${e}`:"\u3002"}`,ciNotCovered:"\u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u3092\u5B9F\u884C\u3059\u308B CI \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u306A\u3044\u305F\u3081\u3001\u4ECA\u5F8C\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002",sutNotRequired:"\u30A2\u30D7\u30EA\u306F\u8D77\u52D5\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u8A3C\u30C8\u30EA\u30A2\u30FC\u30B8\u306B\u3088\u308A\u3001\u3053\u306E\u5909\u66F4\u3067\u691C\u8A3C\u304C\u5FC5\u8981\u306A\u30C7\u30D7\u30ED\u30A4\u5F8C\u306E\u632F\u308B\u821E\u3044\u306F\u306A\u3044\u3068\u5224\u65AD\u3055\u308C\u307E\u3057\u305F\u3002",lintNotCovered:e=>`\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30EA\u30F3\u30BF\u30FC\u306F ${e} \u3092\u30C1\u30A7\u30C3\u30AF\u3057\u307E\u305B\u3093\u3002\u30B9\u30BF\u30A4\u30EB\u3084\u578B\u306E\u554F\u984C\u304C\u81EA\u52D5\u7684\u306B\u306F\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3002`,analysisUnverified:e=>`\u5909\u66F4\u306E\u5206\u6790\u306E\u4E00\u90E8\u3092\u691C\u8A3C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u672A\u89E3\u6C7A\u306E\u30C1\u30A7\u30C3\u30AF ${e} \u4EF6\uFF09\u3002\u8A72\u5F53\u3059\u308B\u4E3B\u5F35\u306F\u672A\u78BA\u8A8D\u3068\u3057\u3066\u6271\u3044\u3001\u30C6\u30B9\u30C8\u3092\u8A08\u753B\u3057\u307E\u3057\u305F\u3002`,unitTestsNotRun:e=>`Testbot \u306F\u9078\u629E\u3057\u305F\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u3053\u3053\u306B\u3042\u308B\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8\u306E\u7D50\u679C\u306F Testbot \u81EA\u8EAB\u306E\u518D\u5B9F\u884C\u306B\u3088\u308B\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${e}`,testsCouldNotRunHere:(e,t)=>`\u3053\u306E\u5909\u66F4\u306B\u306F ${e} \u4EF6\u306E\u30C6\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u3053\u306E\u74B0\u5883\u3067\u306F\u5B9F\u884C\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u7D50\u679C\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30C3\u30D7\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09: ${t}`},autoCommitHint:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067 `autoCommit: true` \u3092\u6709\u52B9\u306B\u3059\u308B\u3068\u3001Skyramp Testbot \u304C\u751F\u6210\u3057\u305F\u30C6\u30B9\u30C8\u3092\u81EA\u52D5\u7684\u306B\u30B3\u30DF\u30C3\u30C8\u3057\u307E\u3059\u3002",implementRecommendationsCta:"\u8FFD\u52A0\u306E\u30C6\u30B9\u30C8\u63A8\u5968\u3092\u5B9F\u88C5\u3059\u308B\u306B\u306F `@skyramp-testbot` \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5DEE\u5206\u306E\u5206\u6790\u306B\u57FA\u3065\u304D\u3001\u4EE5\u4E0B\u3092\u63A8\u5968\u3057\u307E\u3059:",sutServiceErrorsHeadline:":warning: **\u30B5\u30FC\u30D3\u30B9\u304C\u30A8\u30E9\u30FC\u3092\u8FD4\u3057\u3066\u3044\u307E\u3059**",sutCheckedEndpoints:"Testbot \u306F\u30C6\u30B9\u30C8\u5B9F\u884C\u524D\u306B\u30B5\u30FC\u30D3\u30B9\u306E\u8D77\u52D5\u3092\u5F85\u6A5F\u3057\u307E\u3057\u305F\u304C\u3001\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u304C\u901A\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",sutCheckCodeChanges:"**\u3053\u306E PR \u306E\u30B3\u30FC\u30C9\u5909\u66F4\u304C\u30B5\u30FC\u30D3\u30B9\u969C\u5BB3\u306E\u539F\u56E0\u306B\u306A\u3063\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044** \u2014 \u65B0\u305F\u306B\u6DF7\u5165\u3057\u305F\u30D0\u30B0\u3001\u4F9D\u5B58\u95A2\u4FC2\u306E\u4E0D\u8DB3\u3001\u8A2D\u5B9A\u30DF\u30B9\u306B\u3088\u308A\u3001\u30B5\u30FC\u30D3\u30B9\u304C\u8D77\u52D5\u3067\u304D\u306A\u3044\u30FB\u6B63\u3057\u304F\u5FDC\u7B54\u3067\u304D\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002",viewWorkflowLogs:e=>`[\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30ED\u30B0\u5168\u6587\u3092\u898B\u308B \u2197](${e})`,sutFixAndRetry:"_\u554F\u984C\u3092\u4FEE\u6B63\u3057\u3066\u518D\u5EA6\u30D7\u30C3\u30B7\u30E5\u3059\u308B\u304B\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002_",internalErrorHeader:"### \u5185\u90E8\u30A8\u30E9\u30FC",internalErrorRenderFailed:"Testbot \u306F\u5B9F\u884C\u3092\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001\u30EC\u30DD\u30FC\u30C8\u306E\u751F\u6210\u4E2D\u306B\u4E88\u671F\u3057\u306A\u3044\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002",internalErrorNoReport:"Testbot \u3067\u4E88\u671F\u3057\u306A\u3044\u5185\u90E8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306F\u6B63\u5E38\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001\u30EC\u30DD\u30FC\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",internalErrorAgentStopped:"Testbot \u306F\u30EC\u30DD\u30FC\u30C8\u3092\u751F\u6210\u3059\u308B\u524D\u306B\u505C\u6B62\u3057\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30ED\u30B0\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002",internalErrorRawReportAvailable:"\u751F\u6210\u3055\u308C\u305F `report.json` \u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\uFF08\u3042\u308C\u3070\uFF09\u306F\u901A\u5E38\u3069\u304A\u308A\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u3066\u3044\u307E\u3059\u3002",internalErrorRetriedTimes:e=>`${e} \u56DE\u30EA\u30C8\u30E9\u30A4\u3057\u307E\u3057\u305F\u304C\u6210\u529F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002`,internalErrorFileIssue:"\u554F\u984C\u304C\u89E3\u6C7A\u3057\u306A\u3044\u5834\u5408\u306F https://github.com/skyramp/testbot/issues \u306B\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u5B9F\u884C\u3078\u306E\u30EA\u30F3\u30AF\u3092\u6DFB\u3048\u3066 issue \u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerNotYourCode:"\u3053\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u5909\u66F4\u304C\u539F\u56E0\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30B9\u30C8\u306F\u751F\u6210\u3082\u5B9F\u884C\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",providerOutageHeadline:(e,t)=>`${e} \u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002Testbot \u306F ${t} \u56DE\u8A66\u884C\u3057\u307E\u3057\u305F\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,providerOutageActionStatusPage:e=>`${e} \u3067\u72B6\u6CC1\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B5\u30FC\u30D3\u30B9\u304C\u5FA9\u65E7\u3057\u305F\u3089\u3001Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,providerRateLimitHeadline:e=>`${e} \u306E\u30EC\u30FC\u30C8\u5236\u9650\u306B\u3088\u308A\u5B9F\u884C\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F (HTTP 429)\u3002`,providerRateLimitAction:"\u5236\u9650\u304C\u89E3\u9664\u3055\u308C\u308B\u307E\u3067\u5F85\u3063\u3066\u304B\u3089\u3001Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u7E70\u308A\u8FD4\u3059\u5834\u5408\u306F\u3001\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u4F7F\u7528\u3059\u308B\u8A8D\u8A3C\u60C5\u5831\u306E\u30EC\u30FC\u30C8\u5236\u9650\u3092\u5F15\u304D\u4E0A\u3052\u308B\u304B\u3001\u540C\u6642\u306B\u5B9F\u884C\u3059\u308B PR \u306E\u6570\u3092\u6E1B\u3089\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerUsageLimitHeadline:e=>`${e} \u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u5229\u7528\u4E0A\u9650\u306B\u9054\u3057\u307E\u3057\u305F\u3002`,providerUsageLimitAction:"\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u8A8D\u8A3C\u60C5\u5831\u306B\u7D10\u3065\u304F\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u5229\u7528\u4E0A\u9650\u3092\u5F15\u304D\u4E0A\u3052\u3066\u304B\u3089\u3001Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerAuthExpiredHeadline:e=>`\u5B9F\u884C\u4E2D\u306B\u3001Testbot \u304C ${e} \u3078\u63A5\u7D9A\u3059\u308B\u305F\u3081\u306E\u8A8D\u8A3C\u60C5\u5831\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u307E\u3057\u305F\u3002`,providerAuthExpiredAction:"\u8A8D\u8A3C\u60C5\u5831\u306E\u6709\u52B9\u671F\u9593\u306F\u56FA\u5B9A\u306E\u305F\u3081\u3001\u5B9F\u884C\u6642\u9593\u304C\u9577\u3044\u3068\u305D\u306E\u671F\u9593\u3092\u8D85\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3053\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u5B9F\u884C\u304C\u6709\u52B9\u671F\u9593\u3092\u5E38\u306B\u8D85\u3048\u308B\u5834\u5408\u306F\u3001\u30B8\u30E7\u30D6\u3054\u3068\u306B\u8A8D\u8A3C\u60C5\u5831\u3092\u767A\u884C\u3059\u308B\u304B\u3001\u5404\u30B8\u30E7\u30D6\u304C\u6709\u52B9\u671F\u9593\u5185\u306B\u53CE\u307E\u308B\u3088\u3046\u5B9F\u884C\u3092\u5206\u5272\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerTimeoutHeadline:e=>`Testbot \u306F\u5236\u9650\u6642\u9593 ${e} \u5206\u3092\u8D85\u3048\u305F\u305F\u3081\u505C\u6B62\u3055\u308C\u307E\u3057\u305F\u3002`,providerTimeoutAction:"\u3053\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u5B9F\u884C\u306B\u672C\u5F53\u306B\u6642\u9593\u304C\u5FC5\u8981\u306A\u5834\u5408\u306F\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E `testbotTimeout` \u5165\u529B\u5024\u3092\u5927\u304D\u304F\u3057\u3066\u304F\u3060\u3055\u3044\u3002",workspaceTestbotPrTitle:"Skyramp Testbot: \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u8A2D\u5B9A\u306E\u66F4\u65B0",workspaceTestbotPrHeader:"### Skyramp Testbot \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u8A2D\u5B9A\u306E\u66F4\u65B0",workspaceTestbotPrBody:"\u3053\u306E PR \u306F\u3053\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u7D71\u5408 `.skyramp/workspace.yml` \u3092\u66F4\u65B0\u3057\u307E\u3059\u3002\n\u4ECA\u56DE\u306E\u5B9F\u884C\u3067\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306F\u3001\u8A2D\u5B9A\u3055\u308C\u305F\u30C6\u30B9\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u306B\u914D\u7F6E\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u306E\u5909\u66F4\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\uFF0F\u30B5\u30FC\u30D3\u30B9\u8A2D\u5B9A\uFF08\u30DE\u30EB\u30C1\u30EA\u30DD\u30B8\u30C8\u30EA\u5B9F\u884C\u3067\u5206\u6790\u3055\u308C\u305F\u8FFD\u52A0\u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u542B\u3080\uFF09\u306E\u307F\u3092\u8A18\u9332\u3057\u307E\u3059\u3002",devPrMergedBreadcrumb:(e,t,r)=>`\u958B\u767A PR \u304C\u30DE\u30FC\u30B8\u3055\u308C\u307E\u3057\u305F \u2014 Testbot PR [#${e}](${t}) \u306F\u5F15\u304D\u7D9A\u304D\u30AA\u30FC\u30D7\u30F3\u3067\u3001\u73FE\u5728\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306F \`${r}\` \u3067\u3059\u3002`,devPrClosedBreadcrumb:(e,t)=>`\u958B\u767A PR \u304C\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u307E\u3057\u305F \u2014 Testbot PR [#${e}](${t}) \u306F\u81EA\u52D5\u7684\u306B\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u307E\u3057\u305F\u3002`,testbotPrMergeHint:"\u3053\u306E PR \u3092\u30DE\u30FC\u30B8\u3059\u308B\u3068\u3001\u751F\u6210/\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u3055\u308C\u305F\u30C6\u30B9\u30C8\u304C\u30D5\u30A3\u30FC\u30C1\u30E3\u30FC\u30D6\u30E9\u30F3\u30C1\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002\u7834\u68C4\u3057\u305F\u3044\u5834\u5408\u306F\u30AF\u30ED\u30FC\u30BA\u3057\u3066\u304F\u3060\u3055\u3044\u3002",testbotPrBacklink:e=>`${e} \u7528\u306B Skyramp Testbot \u304C\u751F\u6210\u3057\u307E\u3057\u305F\u3002`,testbotPrDispatchBacklink:e=>`\`${e}\` \u306B\u5BFE\u3059\u308B\u624B\u52D5\u5B9F\u884C\u306B\u3088\u308A Skyramp Testbot \u304C\u751F\u6210\u3057\u307E\u3057\u305F\u3002`,testbotPrMergedBacklink:e=>`${e} \u7528\u306B Skyramp Testbot \u304C\u751F\u6210\u3057\u307E\u3057\u305F\u3002\u5143\u306E PR \u306F\u3059\u3067\u306B\u30DE\u30FC\u30B8\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u306F\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1\u3092\u5BFE\u8C61\u3068\u3057\u3066\u3044\u307E\u3059\u3002`,staleBannerNoChanges:e=>`> \u26A0\uFE0F ${e} \u3078\u306E\u6700\u65B0\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u306F\u3001\u65B0\u3057\u3044\u30C6\u30B9\u30C8\u5909\u66F4\u306F\u5FC5\u8981\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002`,staleBannerStillOpen:"> \u3053\u306E PR \u306F\u4EE5\u524D\u306E\u30D7\u30C3\u30B7\u30E5\u6642\u70B9\u306E testbot \u306E\u5206\u6790\u7D50\u679C\u306E\u307E\u307E\u3067\u3059\u3002`@skyramp-testbot` \u3067\u518D\u751F\u6210\u3059\u308B\u304B\u3001\u5185\u5BB9\u304C\u4ECA\u3082\u6709\u52B9\u3067\u3042\u308C\u3070\u305D\u306E\u307E\u307E\u30DE\u30FC\u30B8\u3059\u308B\u3053\u3068\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",testbotPrNoBaseBranchError:"\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1\u3092\u7279\u5B9A\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001Skyramp Testbot \u306F Testbot PR \u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08pull_request \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3082\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u3082\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u901A\u5E38\u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C `pull_request` \u30A4\u30D9\u30F3\u30C8\u4EE5\u5916\u3067\u5B9F\u884C\u3055\u308C\u3001`actions/checkout` \u304C detached HEAD \u306E\u72B6\u614B\u3092\u6B8B\u3057\u305F\u3053\u3068\u304C\u539F\u56E0\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B\u30D5\u30A3\u30FC\u30C1\u30E3\u30FC\u30D6\u30E9\u30F3\u30C1\u3078\u76F4\u63A5\u30B3\u30DF\u30C3\u30C8\u3059\u308B\u306B\u306F `generatedTestsMode: same-branch` \u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",commitFailureGeneric:(e,t)=>t?`\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E Testbot PR \u30D6\u30E9\u30F3\u30C1\u3078\u306E\u30B3\u30DF\u30C3\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F: \`${e}\`\u3002`:`\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E\u30B3\u30DF\u30C3\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F: \`${e}\`\u3002`,commitFailureHookWhereTestbotPr:"\u305D\u306E\u305F\u3081 Testbot PR \u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",commitFailureHookWhereSameBranch:"\u305D\u306E\u305F\u3081\u5909\u66F4\u306F\u30D6\u30E9\u30F3\u30C1\u306B\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",commitFailureHook:(e,t)=>`\u30EA\u30DD\u30B8\u30C8\u30EA\u306E pre-commit \u30D5\u30C3\u30AF\u304C\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E\u30B3\u30DF\u30C3\u30C8\u3092\u62D2\u5426\u3057\u305F\u305F\u3081\u3001${t}\u3002\u30D5\u30C3\u30AF\u306E\u30A8\u30E9\u30FC: \`${e}\`\u3002`,gitVerificationBypassed:(e,t,r)=>`Git \u306E\u691C\u8A3C\u306E\u554F\u984C: \u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30D5\u30C3\u30AF\u304C\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E \`git ${e}\` \u3092\u62D2\u5426\u3057\u305F\u305F\u3081 Testbot \u306F\u307E\u305A\u4FEE\u6B63\u3092\u8A66\u307F\u307E\u3057\u305F\u304C\u3001${t}\u305F\u3081\u3001\`--no-verify\` \u3067\u914D\u4FE1\u3057\u307E\u3057\u305F\u3002\u30D5\u30C3\u30AF\u306E\u30A8\u30E9\u30FC: \`${r}\`\u3002`,repairTimedOut:e=>`${e} \u5206\u306E\u4FEE\u6B63\u6642\u9593\u3092\u4F7F\u3044\u5207\u3063\u305F`,repairSessionFailed:e=>`\u4FEE\u6B63\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u5931\u6557\u3057\u305F\uFF08${e}\uFF09`,gitVerificationBypassedNextStep:"Testbot \u306F\u30EA\u30DD\u30B8\u30C8\u30EA\u306E git \u30D5\u30C3\u30AF\u3092\u901A\u904E\u3057\u306A\u3044\u307E\u307E\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u3092\u914D\u4FE1\u3057\u307E\u3057\u305F\u3002\u30DE\u30FC\u30B8\u3059\u308B\u524D\u306B\u3001\u30D5\u30C3\u30AF\u304C\u5831\u544A\u3057\u305F\u554F\u984C\u3092\u305D\u308C\u3089\u306E\u30C6\u30B9\u30C8\u3067\u4FEE\u6B63\u3057\u3066\u304F\u3060\u3055\u3044\u3002",commitFailureHookNextStep:"pre-commit \u30D5\u30C3\u30AF\u304C Testbot \u306E\u751F\u6210\u3057\u305F\u30C6\u30B9\u30C8\u3092\u62D2\u5426\u3057\u307E\u3057\u305F\u3002\u30D5\u30C3\u30AF\u304C\u5831\u544A\u3057\u305F\u554F\u984C\u3092\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u5185\u3067\u4FEE\u6B63\u3059\u308B\u304B\u3001Testbot \u306E\u751F\u6210\u3057\u305F\u30C6\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u30B9\u30AD\u30C3\u30D7\u3059\u308B\u3088\u3046\u30D5\u30C3\u30AF\uFF0F\u30EA\u30F3\u30BF\u30FC\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\uFF08\u3069\u3061\u3089\u306E\u914D\u4FE1\u30E2\u30FC\u30C9\u3067\u3082 `git commit` \u3092\u5B9F\u884C\u3059\u308B\u305F\u3081\u3001`generatedTestsMode` \u3092\u5207\u308A\u66FF\u3048\u3066\u3082\u30D5\u30C3\u30AF\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u305B\u3093\u3002\uFF09",testbotPrCreationFailure:(e,t)=>`\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E Testbot PR \u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30A8\u30E9\u30FC: \`${e}\`\u3002\u30C6\u30B9\u30C8\u306F \`${t}\` \u306B\u30B3\u30DF\u30C3\u30C8\u30FB\u30D7\u30C3\u30B7\u30E5\u6E08\u307F\u3067\u3059\u3002\u3053\u306E\u30D6\u30E9\u30F3\u30C1\u304B\u3089\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u4F5C\u6210\u3057\u3066\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,sameBranchTestRepoConflictError:"`generatedTestsMode: same-branch` \u306F `testRepoPath` \u306E\u8A2D\u5B9A\u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30C6\u30B9\u30C8\u306F\u30C6\u30B9\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u5074\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\u304C\u3001same-branch \u30E2\u30FC\u30C9\u306F\u30D7\u30E9\u30A4\u30DE\u30EA\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u306B\u306E\u307F\u30B3\u30DF\u30C3\u30C8\u3057\u307E\u3059\u3002`testRepoPath` \u3092\u4F7F\u3046\u5834\u5408\u306F `generatedTestsMode: separate-branch`\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09\u3092\u4F7F\u7528\u3059\u308B\u304B\u3001`testRepoPath` \u3092\u524A\u9664\u3057\u3066\u540C\u3058\u30D6\u30E9\u30F3\u30C1\u306B\u30C6\u30B9\u30C8\u3092\u30B3\u30DF\u30C3\u30C8\u3057\u3066\u304F\u3060\u3055\u3044\u3002",noNewTestChangesBreadcrumb:e=>`\u3053\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u306F\u65B0\u3057\u3044\u30C6\u30B9\u30C8\u5909\u66F4\u306F\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4EE5\u524D\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u4F5C\u6210\u3055\u308C\u305F [testbot PR](${e}) \u306F\u5F15\u304D\u7D9A\u304D\u30EC\u30D3\u30E5\u30FC\u5F85\u3061\u3067\u30AA\u30FC\u30D7\u30F3\u3067\u3059\u3002`,testbotPrLabel:(e,t)=>`Testbot PR: [${e}](${t})`,sutAppCrashDetected:e=>`**\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30AF\u30E9\u30C3\u30B7\u30E5\u3092\u691C\u51FA:** \u30B5\u30FC\u30D3\u30B9\uFF08${e}\uFF09\u304C\u30B3\u30FC\u30C9\u30A8\u30E9\u30FC\u306B\u3088\u308A\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`,sutErrorLine:e=>`
147
- **\u30A8\u30E9\u30FC:** \`${e}\``,sutFixPrefix:"**\u4FEE\u6B63\u65B9\u6CD5:** ",sutServiceNotReachable:e=>`**\u30B5\u30FC\u30D3\u30B9\u306B\u5230\u9054\u3067\u304D\u307E\u305B\u3093:** ${e} \u306E\u30B5\u30FC\u30D3\u30B9\u304C\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u307E\u3067\u306B\u5FDC\u7B54\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B5\u30FC\u30D3\u30B9\u304C\u307E\u3060\u8D77\u52D5\u4E2D\u3067\u3042\u308B\u304B\u3001\u8D77\u52D5\u30B3\u30DE\u30F3\u30C9\u304C\u30B5\u30FC\u30D3\u30B9\u3092\u7ACB\u3061\u4E0A\u3052\u3089\u308C\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`,sutServiceNotReachableFix:"**\u4FEE\u6B63\u65B9\u6CD5:** `targetSetupCommand` \u304C\u3053\u306E\u30B5\u30FC\u30D3\u30B9\u3092\u5B9F\u969B\u306B\u8D77\u52D5\u3057\u3001\u60F3\u5B9A\u3057\u305F\u30DD\u30FC\u30C8\u3067\u5F85\u3061\u53D7\u3051\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B3\u30DE\u30F3\u30C9\u81EA\u4F53\u306F\u6B63\u3057\u3044\u304C\u30B5\u30FC\u30D3\u30B9\u306E\u8D77\u52D5\u304C\u9045\u3044\u5834\u5408\u306F\u3001`targetReadyCheckTimeout` \u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3088\u308A\u78BA\u5B9F\u306A\u8D77\u52D5\u5224\u5B9A\u3092\u884C\u3046\u306B\u306F\u3001`targetReadyCheckCommand` \u3067\u7279\u5B9A\u306E\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3092\u30D7\u30ED\u30FC\u30D6\u3059\u308B\u3088\u3046\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",staged:{requestedByPerson:e=>`${e} \u3055\u3093\u306E\u4F9D\u983C\u3067\u5B9F\u884C`,requestedByPolicy:e=>`\u691C\u8A3C\u30DD\u30EA\u30B7\u30FC ${e} \u306B\u3088\u308A\u5B9F\u884C`,noLiveApp:e=>`> \u26A0\uFE0F **\u3053\u306E\u5B9F\u884C\u3067\u306F\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\uFF08SUT\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F** \u2014 \u4EE5\u4E0B\u306E ${e} \u4EF6\u306E\u30C6\u30B9\u30C8\u306F**\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093**\uFF08\u5B9F\u884C\u5BFE\u8C61\u306E\u30A2\u30D7\u30EA\u304C\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF09\u3002\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3057\u3001\u5408\u683C\u3059\u308B\u3053\u3068\uFF08\u304A\u3088\u3073\u518D\u73FE\u30C6\u30B9\u30C8\u304C\u610F\u56F3\u3069\u304A\u308A\u5931\u6557\u3059\u308B\u3053\u3068\uFF09\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,unitTestsInFile:(e,t,r)=>`**${e}**: ${r?`${r} \u306E`:""}\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8 ${t} \u4EF6`,addedToExistingFile:"\u65E2\u5B58\u306E\u30C6\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB\u306B\u8FFD\u52A0",testPackagesHeader:"### \u{1F4E6} \u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u306E\u5B9F\u884C\u65B9\u6CD5",testPackageLine:(e,t)=>`\`${e}/\` \u306F Skyramp Testbot \u304C\u6240\u6709\u30FB\u4FDD\u5B88\u3059\u308B\u72EC\u7ACB\u3057\u305F\u30C6\u30B9\u30C8\u30D1\u30C3\u30B1\u30FC\u30B8\u3067\u3001\u72EC\u81EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3001\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\u3001\u30E9\u30F3\u30CA\u30FC\u8A2D\u5B9A\u3092\u6301\u3061\u307E\u3059\u3002\`${t}\` \u3067\u5B9F\u884C\u3067\u304D\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u5B9F\u884C\u3059\u308B\u306B\u306F\u3001\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092 CI \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,appManifestsUntouched:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u81EA\u8EAB\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3068\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\u306F\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093\u3002",dependencyChangesHeader:"### \u{1F4E6} \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u4F9D\u5B58\u95A2\u4FC2\u306E\u5909\u66F4",dependencyChangeLine:(e,t,r)=>`\`${t}\`\uFF08\u304A\u3088\u3073\u305D\u306E\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\uFF09\u306B \`${e}\` \u3092\u8FFD\u52A0${r?`: ${r}`:""}`,testMaintenanceHeader:"\u2705 \u30C6\u30B9\u30C8\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9",keptNot:"\u5909\u66F4\u305B\u305A\u7DAD\u6301 \u2014 \u898B\u9001\u3063\u305F\u64CD\u4F5C: ",declinedPlanned:"(\u4E88\u5B9A\u3057\u3066\u3044\u305F\u64CD\u4F5C\u3092\u898B\u9001\u308A: ",declinedMaintenanceHeader:"\u21A9\uFE0F \u898B\u9001\u3063\u305F\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9",existingEvidenceHeader:"\u2705 \u65E2\u5B58\u306E\u30A8\u30D3\u30C7\u30F3\u30B9",trustedCheckPassed:(e,t)=>`\u4FE1\u983C\u6E08\u307F\u306E CI \u30C1\u30A7\u30C3\u30AF ${e} \u304C${t?` ${t} \u3067`:""}\u5408\u683C\u3057\u3001\u6B21\u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F:`,testResultsHeader:"\u{1F9EA} \u30C6\u30B9\u30C8\u7D50\u679C",resultsTableHeader:"| \u30C6\u30B9\u30C8 ID | \u30C6\u30B9\u30C8\u7A2E\u5225 | \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8 | \u30B9\u30C6\u30FC\u30BF\u30B9 | \u8A73\u7D30 |",unitResultsTableHeader:"| \u30C6\u30B9\u30C8 ID | \u30C6\u30B9\u30C8\u7A2E\u5225 | \u30C6\u30B9\u30C8\u5BFE\u8C61\u306E\u30B3\u30FC\u30C9 | \u30C6\u30B9\u30C8 | \u30B1\u30FC\u30B9\u6570 | \u30B9\u30C6\u30FC\u30BF\u30B9 | \u8A73\u7D30 |",casesPassed:(e,t,r)=>`${t} \u4EF6\u4E2D ${e} \u4EF6\u5408\u683C${r?`\u3001${r} \u4EF6\u30B9\u30AD\u30C3\u30D7`:""}`,behaviourCoverageHeader:"\u{1F517} \u632F\u308B\u821E\u3044\u306E\u30AB\u30D0\u30EC\u30C3\u30B8",coverageCaption:(e,t,r,n)=>`\uFF08\u751F\u6210 ${e} \xB7 \u5909\u66F4 ${t} \xB7 \u691C\u8A3C ${r} \xB7 \u5B9F\u884C ${n}\uFF09`,coverageTableHeader:"| \u632F\u308B\u821E\u3044 | \u30BD\u30FC\u30B9 | \u30C6\u30B9\u30C8 | \u30E1\u30F3\u30C6\u30CA\u30F3\u30B9 |",writtenNotRun:"\u4F5C\u6210\u6E08\u307F\u30FB\u672A\u5B9F\u884C",issuesFoundHeader:"\u26A0\uFE0F \u691C\u51FA\u3055\u308C\u305F\u554F\u984C",caveatsHeader:"### \u26A0\uFE0F \u3053\u306E\u5B9F\u884C\u3067\u78BA\u8A8D\u3067\u304D\u306A\u304B\u3063\u305F\u3053\u3068",commentHeader:"### Skyramp Testbot",timedOut:"> \u26A0\uFE0F \u5B9F\u884C\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F \u2014 \u4EE5\u4E0B\u306E\u7D50\u679C\u306F\u4E00\u90E8\u306E\u307F\u3067\u3059\u3002",stopReasons:{"pr-closed":"\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30DE\u30FC\u30B8\u3055\u308C\u305A\u306B\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u307E\u3057\u305F",cancelled:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u305F\u304B\u3001\u30E9\u30F3\u30CA\u30FC\u304C\u505C\u6B62\u3057\u307E\u3057\u305F","attempt-cancelled":"Skyramp \u3067\u3053\u306E\u5B9F\u884C\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F","attempt-closed":"Skyramp \u304C\u3053\u306E\u5B9F\u884C\u3092\u7D42\u4E86\u3057\u307E\u3057\u305F"},maintenanceActions:{update:"\u66F4\u65B0",regenerate:"\u518D\u751F\u6210",delete:"\u524A\u9664",verify:"\u691C\u8A3C",updated:"\u66F4\u65B0",regenerated:"\u518D\u751F\u6210",deleted:"\u524A\u9664",verified:"\u691C\u8A3C"},publishFailures:{push:"\u30D7\u30C3\u30B7\u30E5\u306B\u5931\u6557",auth:"\u8A8D\u8A3C\u30A8\u30E9\u30FC",conflict:"\u7AF6\u5408",unknown:"\u4E0D\u660E\u306A\u30A8\u30E9\u30FC"},stoppedEarly:(e,t)=>`> \u26A0\uFE0F \u5B9F\u884C\u304C\u9014\u4E2D\u3067\u505C\u6B62\u3057\u307E\u3057\u305F \u2014 ${e}\u3002\u4EE5\u4E0B\u306E\u7D50\u679C\u306F\u4E00\u90E8\u306E\u307F\u3067\u3059\u3002${t}`,viewInSkyramp:e=>` [Skyramp \u3067\u8868\u793A](${e})`,setupRunEnds:{finished:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002Skyramp \u304C\u7D50\u679C\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059\u3002",failed:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",timedOut:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u304C\u6642\u9593\u5207\u308C\u306B\u306A\u308A\u307E\u3057\u305F\u3002",cancelledInSkyramp:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u306F Skyramp \u3067\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",stoppedToResume:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u3092\u505C\u6B62\u3057\u307E\u3057\u305F\u3002Skyramp \u3067\u518D\u958B\u3067\u304D\u307E\u3059\u3002"},appUnreachable:e=>`Skyramp\uFF08${e}\uFF09\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,couldNotStart:e=>`Skyramp Testbot \u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${e}`,assembledAfterFailedChecks:e=>`> \u26A0\uFE0F \u4F5C\u6210\u30B9\u30C6\u30C3\u30D7\u304C\u30C1\u30A7\u30C3\u30AF\u306B\u5408\u683C\u3057\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u3053\u306E\u30EC\u30DD\u30FC\u30C8\u306F\u81EA\u52D5\u3067\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u3057\u305F\u3002${e} \u4EF6\u306E\u30C1\u30A7\u30C3\u30AF\u304C\u672A\u9054\u6210\u3067\u3059 \u2014 \u8A73\u7D30\u306F\u5B9F\u884C\u30ED\u30B0\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,testbotPrLine:(e,t,r)=>`Testbot PR${e?`\uFF08${e}\uFF09`:""}: [${t}](${r})`,viewRun:e=>`_[\u5B9F\u884C\u3092\u8868\u793A](${e})_`,testsPrNotOpened:(e,t)=>`\u30C6\u30B9\u30C8 PR \u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${e}\uFF09\u3002\u30C6\u30B9\u30C8\u306F\u30D6\u30E9\u30F3\u30C1 \`${t}\` \u306B\u30D7\u30C3\u30B7\u30E5\u3055\u308C\u3066\u3044\u307E\u3059\u3002`,testsNotPushed:(e,t)=>`\u30C6\u30B9\u30C8\u3092\u30D7\u30C3\u30B7\u30E5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${e}\uFF09\u3002\u30C6\u30B9\u30C8\u306F\u30ED\u30FC\u30AB\u30EB\u30D6\u30E9\u30F3\u30C1 \`${t}\` \u306B\u6B8B\u3063\u3066\u3044\u307E\u3059\u3002`,testsPrRetargeted:e=>`\u30C6\u30B9\u30C8\u306E\u751F\u6210\u4E2D\u306B\u958B\u767A PR \u304C\u30DE\u30FC\u30B8\u3055\u308C\u307E\u3057\u305F \u2014 \u30C6\u30B9\u30C8 PR \u306F\u4EE3\u308F\u308A\u306B\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1${e?`\uFF08\`${e}\`\uFF09`:""}\u3092\u5BFE\u8C61\u306B\u3057\u3066\u3044\u307E\u3059\u3002`,testsPrUnchanged:"\u3053\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u306F\u65B0\u3057\u3044\u30C6\u30B9\u30C8\u306E\u5909\u66F4\u306F\u4E0D\u8981\u3067\u3057\u305F\u3002\u4EE5\u4E0B\u306E\u30C6\u30B9\u30C8 PR \u306F\u4EE5\u524D\u306E\u5B9F\u884C\u306E\u3082\u306E\u3067\u3001\u305D\u306E\u307E\u307E\u306B\u3057\u3066\u3044\u307E\u3059\u3002",committedNoPr:e=>`\u30C6\u30B9\u30C8\u306F\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u307E\u3057\u305F\u304C\u3001PR \u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F: ${e}\u3002`}};var $P=(r=>(r.En="en",r.Ja="ja",r))($P||{}),LEt={en:mr,ja:GRe},HRe="en";function HI(e){let t=e.trim().toLowerCase();if(t==="")return"en";let r=Object.values($P);return r.includes(t)?t:(Oe(`Invalid language '${e}'. Supported: ${r.join(", ")}. Falling back to 'en'.`),"en")}function g3(e){HRe=e}function jI(e,t){return(Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0)??t}function ve(){return LEt[HRe]}var qP=(a=>(a.ProviderOutage="provider_outage",a.ProviderRateLimit="provider_rate_limit",a.ProviderUsageLimit="provider_usage_limit",a.ProviderAuthExpired="provider_auth_expired",a.Timeout="timeout",a.NoReport="no_report",a.RenderFailure="render_failure",a))(qP||{});(t=>{function e(r,n){switch(r){case"provider_outage":return{headline:ve().providerOutageHeadline(n.provider.name,n.maxRetries),action:ve().providerOutageActionStatusPage(n.provider.statusUrl)};case"provider_rate_limit":return{headline:ve().providerRateLimitHeadline(n.provider.name),action:ve().providerRateLimitAction};case"provider_usage_limit":return{headline:ve().providerUsageLimitHeadline(n.provider.name),action:ve().providerUsageLimitAction};case"provider_auth_expired":return{headline:ve().providerAuthExpiredHeadline(n.provider.name),action:ve().providerAuthExpiredAction};case"timeout":return{headline:ve().providerTimeoutHeadline(n.timeoutMinutes),action:ve().providerTimeoutAction};case"no_report":case"render_failure":return}}t.buildNotice=e})(qP||={});var GP=(r=>(r.SameBranch="same-branch",r.SeparateBranch="separate-branch",r))(GP||{});var zRe=(r=>(r.Sonnet="sonnet",r.Opus="opus",r))(zRe||{}),VRe="opus",UEt={sonnet:"claude-sonnet-5[1m]",opus:"claude-opus-5-5[1m]"},msr=UEt[VRe];function A3(e){return Object.values(zRe).includes(e)}function WRe(e){let t=(e??"").trim();if(t==="")return VRe;let r=t.toLowerCase();return A3(r)?r:t}var HP=(i=>(i.Low="low",i.Medium="medium",i.High="high",i.XHigh="xhigh",i.Max="max",i))(HP||{}),jP="high";function YRe(e){return Object.values(HP).includes(e)}var JRe=5;function $Et(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(Boolean);if(t.length>JRe)throw new Error(`relatedRepoPaths supports at most ${JRe} entries (got ${t.length}); the cap limits how much cross-repo context is loaded to avoid overflowing Testbot's context window.`);return t}function qEt(e){let t=e.trim().toLowerCase();return t===""?"separate-branch":Object.values(GP).includes(t)?t:(Oe(`Invalid generatedTestsMode '${e}'. Falling back to 'separate-branch'.`),"separate-branch")}function GEt(e){let t=(e??"").trim();if(t!==""){if(/^(?:[1-9]|10)$/.test(t))return Number(t);Oe(`Ignoring perTestMaxFixAttempts="${e}": expected a whole number from 1 to 10; the Skyramp MCP default applies`)}}function HEt(e){let t=(e??"").trim().toLowerCase();return t===""?jP:YRe(t)?t:(Oe(`Ignoring effort="${e}": expected one of ${Object.values(HP).join(", ")}; using "${jP}"`),jP)}function KRe(){let e=WRe(qe("model"));return A3(e)||Oe(`model '${e}' is not a tested alias (sonnet, opus); passing it to the agent verbatim as a raw model id.`),{skyrampLicenseFile:qe("skyrampLicenseFile"),cursorApiKey:qe("cursorApiKey"),copilotApiKey:qe("copilotApiKey"),anthropicApiKey:qe("anthropicApiKey"),useBedrock:lu("useBedrock"),awsRegion:qe("awsRegion"),useLocalAuth:qe("useLocalAuth").toLowerCase()==="true",model:e,effort:HEt(qe("effort")),targetSetupCommand:qe("targetSetupCommand"),authTokenCommand:qe("authTokenCommand"),uiCredentials:qe("uiCredentials"),targetTeardownCommand:qe("targetTeardownCommand"),skipTargetTeardown:lu("skipTargetTeardown"),skyrampExecutorVersion:qe("skyrampExecutorVersion"),skyrampMcpVersion:qe("skyrampMcpVersion"),skyrampMcpSource:qe("skyrampMcpSource"),skyrampMcpGithubToken:qe("skyrampMcpGithubToken"),skyrampMcpGithubRef:qe("skyrampMcpGithubRef"),nodeVersion:qe("nodeVersion"),skipTargetSetup:lu("skipTargetSetup"),targetReadyCheckCommand:qe("targetReadyCheckCommand"),targetReadyCheckTimeout:(()=>{let r=parseInt(qe("targetReadyCheckTimeout"),10)||1800;return r<1?(Oe(`targetReadyCheckTimeout must be at least 1 second, got ${r}. Using 1s.`),1):r})(),targetReadyCheckInterval:(()=>{let r=parseInt(qe("targetReadyCheckInterval"),10),n=isNaN(r)?30:r;return n<1?(Oe(`targetReadyCheckInterval must be at least 1 second, got ${n}. Using 1s.`),1):n})(),targetReadyCheckDiagnosticsCommand:(()=>{let r=qe("targetReadyCheckDiagnosticsCommand");return r.trim().toLowerCase()==="none"?"":r})(),workingDirectory:qe("workingDirectory"),autoCommit:lu("autoCommit"),commitMessage:qe("commitMessage"),generatedTestsMode:qEt(qe("generatedTestsMode")),postPrComment:lu("postPrComment"),testExecutionTimeout:parseInt(qe("testExecutionTimeout"),10)||300,maxRecommendations:(()=>{let r=parseInt(qe("maxRecommendations"),10);return isNaN(r)?void 0:Math.max(0,r)})(),maxGenerate:(()=>{let r=parseInt(qe("maxGenerate"),10);return isNaN(r)?void 0:Math.max(0,r)})(),perTestMaxFixAttempts:GEt(qe("perTestMaxFixAttempts")),testbotMaxRetries:parseInt(qe("testbotMaxRetries"),10)||3,testbotRetryDelay:parseInt(qe("testbotRetryDelay"),10)||10,testbotTimeout:parseInt(qe("testbotTimeout"),10)||60,targetSetupRetries:parseInt(qe("targetSetupRetries"),10)||3,targetSetupRetryDelay:parseInt(qe("targetSetupRetryDelay"),10)||10,authTokenRetries:(()=>{let r=parseInt(qe("authTokenRetries"),10);return Number.isFinite(r)&&r>=1?r:6})(),authTokenRetryDelay:(()=>{let r=parseInt(qe("authTokenRetryDelay"),10);return Number.isFinite(r)&&r>=0?r:10})(),reportCollapsed:lu("reportCollapsed"),language:HI(qe("language")),enableDebug:lu("enableDebug"),testRepoPath:qe("testRepoPath")||void 0,relatedRepoPaths:$Et(qe("relatedRepoPaths")),allowedAuthors:qe("allowedAuthors").split(/\r?\n/).map(r=>r.trim()).filter(Boolean)}}var jEt={useBedrock:"false",skipTargetTeardown:"false",skyrampMcpSource:"npm",skyrampMcpGithubRef:"main",nodeVersion:"lts/*",skipTargetSetup:"false",targetReadyCheckTimeout:"1800",targetReadyCheckInterval:"30",targetReadyCheckDiagnosticsCommand:`docker ps -a --format 'table {{.Names}} {{.Status}} {{.Ports}}' && docker ps -a --format '{{.Names}}' | while read name; do [ -n "$name" ] && echo "--- logs $name (last 30) ---" && docker logs --tail 30 "$name"; done`,workingDirectory:".",autoCommit:"true",commitMessage:"Skyramp Testbot: test maintenance suggestions",generatedTestsMode:"separate-branch",pipeline:"classic",postPrComment:"true",testbotMaxRetries:"3",testbotRetryDelay:"10",testExecutionTimeout:"300",testbotTimeout:"60",targetSetupRetries:"3",targetSetupRetryDelay:"10",authTokenRetries:"6",authTokenRetryDelay:"10",reportCollapsed:"true",language:"en",enableDebug:"true",sutSetupMode:"none"};function XRe(e=process.env){for(let[t,r]of Object.entries(jEt)){let n=`INPUT_${t.replace(/ /g,"_").toUpperCase()}`;(e[n]??"").trim()===""&&(e[n]=r)}}ft();var $0e=j(require("path"));var hb=require("fs"),Ju=j(require("path"),1),jke=require("child_process"),zke=require("util");function zEt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Es={},zP={},Vp={},ZRe;function zI(){if(ZRe)return Vp;ZRe=1;function e(o){return typeof o>"u"||o===null}function t(o){return typeof o=="object"&&o!==null}function r(o){return Array.isArray(o)?o:e(o)?[]:[o]}function n(o,a){if(a){let c=Object.keys(a);for(let l=0,u=c.length;l<u;l+=1){let d=c[l];o[d]=a[d]}}return o}function s(o,a){let c="";for(let l=0;l<a;l+=1)c+=o;return c}function i(o){return o===0&&Number.NEGATIVE_INFINITY===1/o}return Vp.isNothing=e,Vp.isObject=t,Vp.toArray=r,Vp.repeat=s,Vp.isNegativeZero=i,Vp.extend=n,Vp}var y3,eke;function VI(){if(eke)return y3;eke=1;function e(r,n){let s="",i=r.reason||"(unknown reason)";return r.mark?(r.mark.name&&(s+='in "'+r.mark.name+'" '),s+="("+(r.mark.line+1)+":"+(r.mark.column+1)+")",!n&&r.mark.snippet&&(s+=`
146
+ **Error:** \`${e}\``,sutFixPrefix:"**Fix:** ",sutServiceNotReachable:e=>`**Service not reachable:** Service at ${e} did not respond before the health-check timeout. The service may still be starting, or the startup command may not have brought it up at all.`,sutServiceNotReachableFix:"**Fix:** Check that `targetSetupCommand` actually starts this service and listens on the expected port. If the command is correct but the service is slow to start, increase `targetReadyCheckTimeout`. For a more reliable readiness signal, configure `targetReadyCheckCommand` to probe a specific health endpoint.",staged:{requestedByPerson:e=>`Requested by ${e}`,requestedByPolicy:e=>`Started by the Validation Policy ${e}`,noLiveApp:e=>`> \u26A0\uFE0F **No live app (SUT) was available this run** \u2014 the ${e} test(s) below were **not executed** (there was no app to run them against). Run them against a running app to confirm they pass (and that any repro test fails as intended).`,unitTestsInFile:(e,t,r)=>`**${e}**: ${t} unit test${t===1?"":"s"}${r?` for ${r}`:""}`,addedToExistingFile:"added to an existing test file",testPackagesHeader:"### \u{1F4E6} Running these tests",testPackageLine:(e,t)=>`\`${e}/\` is a self-contained test package Skyramp Testbot owns and maintains, with its own manifest, lockfile and runner config. Run it with \`${t}\`; to run it on every pull request, add that one command to CI.`,appManifestsUntouched:"The application's own manifests and lockfiles were not changed.",dependencyChangesHeader:"### \u{1F4E6} Changes to the application's dependencies",dependencyChangeLine:(e,t,r)=>`Added \`${e}\` to \`${t}\` (and its lockfile)${r?`: ${r}`:""}`,testMaintenanceHeader:"\u2705 Test Maintenance",keptNot:"kept, not ",declinedPlanned:"(declined the planned ",declinedMaintenanceHeader:"\u21A9\uFE0F Declined Maintenance",existingEvidenceHeader:"\u2705 Existing Evidence",trustedCheckPassed:(e,t)=>`Trusted CI check ${e} passed${t?` on ${t}`:""}, establishing:`,testResultsHeader:"\u{1F9EA} Test Results",resultsTableHeader:"| Test ID | Test Type | Endpoint | Status | Details |",unitResultsTableHeader:"| Test ID | Test Type | Code under test | Test | Cases | Status | Details |",casesPassed:(e,t,r)=>`${e}/${t} passed${r?`, ${r} skipped`:""}`,behaviourCoverageHeader:"\u{1F517} Behaviour Coverage",coverageCaption:(e,t,r,n)=>` (${e} generated \xB7 ${t} modified \xB7 ${r} verified \xB7 ${n} executed)`,coverageTableHeader:"| Behaviour | Source | Tested By | Maintained By |",writtenNotRun:"written, not run",issuesFoundHeader:"\u26A0\uFE0F Issues Found",caveatsHeader:"### \u26A0\uFE0F What This Run Could Not Prove",commentHeader:"### Skyramp Testbot",timedOut:"> \u26A0\uFE0F Run timed out \u2014 the results below are partial.",stopReasons:{},publishFailures:{},maintenanceActions:{},stoppedEarly:(e,t)=>`> \u26A0\uFE0F Run stopped early \u2014 ${e}. The results below are partial.${t}`,viewInSkyramp:e=>` [View in Skyramp](${e})`,descriptionCut:(e,t,r)=>`_\u2026 The rest is left out${t===void 0?", with more test results":t?`, with ${t} more test result${t===1?"":"s"}`:""}: Azure DevOps takes at most ${e} characters.${r?` [Full report](${r})`:""}_`,setupRunEnds:{finished:"Setup run finished. Skyramp is checking the result.",failed:"Setup run failed.",timedOut:"Setup run ran out of time.",cancelledInSkyramp:"Setup run was cancelled in Skyramp.",stoppedToResume:"Setup run stopped. Resume it in Skyramp."},appUnreachable:e=>`Unable to contact the mothership ${e}. Please try again later.`,couldNotStart:e=>`Skyramp Testbot could not start: ${e}`,assembledAfterFailedChecks:e=>`> \u26A0\uFE0F This report was assembled automatically after the write-up step failed its checks; ${e} check(s) remain unmet \u2014 see the run log for details.`,testbotPrLine:(e,t,r)=>`Testbot PR${e?` (${e})`:""} : [${t}](${r})`,viewRun:e=>`_[View run](${e})_`,testsPrNotOpened:(e,t)=>`The tests PR could not be opened (${e}); the tests were pushed to branch \`${t}\`.`,testsNotPushed:(e,t)=>`The tests could not be pushed (${e}); they remain on the local branch \`${t}\`.`,testsPrRetargeted:e=>`The dev PR merged while tests were being generated \u2014 the tests PR targets its base branch${e?` (\`${e}\`)`:""} instead.`,testsPrUnchanged:"This push required no new test changes; the tests PR below is from an earlier run and was left as is.",committedNoPr:e=>`The tests were committed but no PR was opened: ${e}.`}};var GRe={defaultProgressHeadline:"\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u78BA\u8A8D\u3057\u3066\u30C6\u30B9\u30C8\u3092\u63A8\u5968\u3057\u3066\u3044\u307E\u3059\u3002",stepSettingUpEnvironment:"\u74B0\u5883\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7",stepAnalyzingUserRequest:"\u30E6\u30FC\u30B6\u30FC\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u5206\u6790",stepAnalyzingCodeChanges:"\u30B3\u30FC\u30C9\u5909\u66F4\u306E\u5206\u6790",stepRecommendingTests:"\u30C6\u30B9\u30C8\u306E\u63A8\u5968",stepGeneratingTests:"\u30C6\u30B9\u30C8\u306E\u751F\u6210",stepExecutingTests:"\u30C6\u30B9\u30C8\u306E\u5B9F\u884C",stepGeneratingReport:"\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3068\u30EC\u30DD\u30FC\u30C8\u306E\u751F\u6210",workflowRunLinkLabel:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u5B9F\u884C",noReportAvailable:"\u30EC\u30DD\u30FC\u30C8\u306F\u3042\u308A\u307E\u305B\u3093\u3002",cancelledHeader:"### Skyramp Testbot \u2014 \u30AD\u30E3\u30F3\u30BB\u30EB",cancelledBody:"\u3053\u306E\u5B9F\u884C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",cancelledStepSuffix:"\u30AD\u30E3\u30F3\u30BB\u30EB",abandonedHeader:"### Skyramp Testbot \u2014 \u505C\u6B62",abandonedBody:"\u3053\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30DE\u30FC\u30B8\u3055\u308C\u305A\u306B\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u305F\u305F\u3081\u3001\u30C6\u30B9\u30C8\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u306F\u5B8C\u4E86\u524D\u306B\u505C\u6B62\u3055\u308C\u307E\u3057\u305F\u3002",abandonedStepSuffix:"\u505C\u6B62",followingUserInstruction:e=>`> \u30E6\u30FC\u30B6\u30FC\u6307\u793A\u306B\u5F93\u3063\u3066\u3044\u307E\u3059: *${e}*`,minimalReportHeader:"### \u26A0\uFE0F Skyramp Testbot",testRecommendationsImplementedHeader:e=>`\u{1F4A1} \u5B9F\u88C5\u3057\u305F\u30C6\u30B9\u30C8\u63A8\u5968\uFF08${e}\u4EF6\uFF09`,additionalRecommendationsHeader:e=>`\u{1F4CC} \u8FFD\u52A0\u306E\u30C6\u30B9\u30C8\u63A8\u5968\uFF08${e}\u4EF6\uFF09`,additionalRecommendationsCta:"\u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u3092\u751F\u6210\u3059\u308B\u306B\u306F\u3001\u30B3\u30E1\u30F3\u30C8\u3067 `@skyramp-testbot` \u3092\u30E1\u30F3\u30B7\u30E7\u30F3\u3057\u3066\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: `@skyramp-testbot /products \u306E\u30B3\u30F3\u30C8\u30E9\u30AF\u30C8\u30C6\u30B9\u30C8\u3092\u8FFD\u52A0\u3057\u3066`\uFF09\u3002",testTypeLabels:{contract:"\u{1F4CB} \u30B3\u30F3\u30C8\u30E9\u30AF\u30C8",integration:"\u{1F517} \u7D71\u5408",e2e:"\u{1F310} E2E",ui:"\u{1F5A5}\uFE0F UI"},testTypeCellLabels:{smoke:"\u30B9\u30E2\u30FC\u30AF",fuzz:"\u30D5\u30A1\u30BA",contract:"\u30B3\u30F3\u30C8\u30E9\u30AF\u30C8",load:"\u8CA0\u8377",integration:"\u7D71\u5408",e2e:"E2E",ui:"UI",unit:"\u30E6\u30CB\u30C3\u30C8"},statusLabels:{Pass:"\u5408\u683C",Fail:"\u4E0D\u5408\u683C",Error:"\u30A8\u30E9\u30FC",Skipped:"\u30B9\u30AD\u30C3\u30D7"},severityLabels:{critical:"\u91CD\u5927",high:"\u9AD8",medium:"\u4E2D",low:"\u4F4E"},reuse:{label:"POM \u518D\u5229\u7528",noPomLayer:"\u30B9\u30AD\u30C3\u30D7 \u2014 \u3053\u306E\u30C6\u30B9\u30C8\u306B\u518D\u5229\u7528\u3067\u304D\u308B\u30DA\u30FC\u30B8\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u5C64\u306F\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",reusedAndVerified:e=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u518D\u5229\u7528\u30FB\u691C\u8A3C\u6E08\u307F`,reusedThenVerified:(e,t)=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u518D\u5229\u7528\uFF08\u3046\u3061 ${t} \u4EF6\u3092\u691C\u8A3C\u6E08\u307F\uFF09`,reused:e=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u518D\u5229\u7528`,verified:e=>`POM \u547C\u3073\u51FA\u3057 ${e} \u4EF6\u3092\u691C\u8A3C\u6E08\u307F`,unresolved:e=>`${e} \u4EF6\u306F POM \u30BD\u30FC\u30B9\u307E\u3067\u89E3\u6C7A\u3067\u304D\u305A\uFF08\u53C2\u8003\u60C5\u5831\u3067\u3042\u308A\u3001\u9664\u5916\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09`,candidates:e=>`\u5019\u88DC\u3068\u306A\u308B POM \u30D5\u30A1\u30A4\u30EB ${e} \u4EF6\u3092\u691C\u51FA`,verificationPassed:"\u691C\u8A3C\u306B\u5408\u683C",verificationFailed:"\u26A0\uFE0F \u691C\u8A3C\u306B\u5408\u683C\u3057\u307E\u305B\u3093\u3067\u3057\u305F",keptInline:e=>`\u30A4\u30F3\u30E9\u30A4\u30F3\u306E\u307E\u307E: ${e}`,gate:{"not-mapped":"\u30DE\u30C3\u30D4\u30F3\u30B0\u5BFE\u8C61\u5916","demoted-by-verify":"\u691C\u8A3C\u3067\u5DEE\u3057\u623B\u3057"}},testMaintenanceHeader:e=>`\u2705 \u30C6\u30B9\u30C8\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\uFF08${e}\u4EF6\uFF09`,maintenanceTableHeader:"| \u30C6\u30B9\u30C8\u7A2E\u5225 | \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8 | \u30D5\u30A1\u30A4\u30EB | \u5909\u66F4\u5185\u5BB9 | \u5909\u66F4\u524D | \u5909\u66F4\u5F8C |",testResultsHeader:e=>`\u{1F9EA} \u30C6\u30B9\u30C8\u7D50\u679C\uFF08${e}\u4EF6\uFF09`,columnTestType:"\u30C6\u30B9\u30C8\u7A2E\u5225",columnEndpoint:"\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8",columnStatus:"\u30B9\u30C6\u30FC\u30BF\u30B9",columnDetails:"\u8A73\u7D30",columnRepo:"\u30EA\u30DD\u30B8\u30C8\u30EA",repoColumnPrimary:"\u30D7\u30E9\u30A4\u30DE\u30EA",columnVideo:"\u30D3\u30C7\u30AA",videoDownloadLink:e=>`[\u{1F4F9} \u30C0\u30A6\u30F3\u30ED\u30FC\u30C9](${e})`,videosArtifactFallback:e=>`\u{1F4F9} \u9332\u753B\u3055\u308C\u305F UI \u30C6\u30B9\u30C8\u30D3\u30C7\u30AA: [\u5B9F\u884C\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u304B\u3089\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9](${e})`,issuesFoundHeader:e=>`\u26A0\uFE0F \u691C\u51FA\u3055\u308C\u305F\u554F\u984C\uFF08${e}\u4EF6\uFF09`,configErrorsHeader:"\u2699\uFE0F \u8A2D\u5B9A\u30A8\u30E9\u30FC",nextStepsHeader:"### \u{1F4A1} \u6B21\u306E\u30B9\u30C6\u30C3\u30D7",caveatsHeader:"### \u26A0\uFE0F \u3053\u306E\u5B9F\u884C\u3067\u78BA\u8A8D\u3067\u304D\u306A\u304B\u3063\u305F\u3053\u3068",rows:{passed:e=>e?"\u8D77\u52D5\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u6210\u529F\u3057\u307E\u3057\u305F":"\u6210\u529F\u3057\u307E\u3057\u305F",notRun:e=>e?"\u3053\u306E\u5B9F\u884C\u3067\u306F\u30E9\u30A4\u30D6\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F":"\u3053\u306E\u5B9F\u884C\u3067\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",failedBug:e=>e?"\u8D77\u52D5\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5931\u6557\u3057\u307E\u3057\u305F":"\u5931\u6557\u3057\u307E\u3057\u305F",executedOf:(e,t)=>t?`\u3001\u305D\u306E\u3046\u3061 ${e} \u4EF6\u3092\u8D77\u52D5\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3057\u307E\u3057\u305F\u3002`:`\u3001\u305D\u306E\u3046\u3061 ${e} \u4EF6\u3092\u5B9F\u884C\u3057\u307E\u3057\u305F\u3002`,noneExecuted:e=>e?"\u3002\u3053\u306E\u5B9F\u884C\u3067\u306F\u30E9\u30A4\u30D6\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3055\u308C\u305F\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\u3002":"\u3002\u3053\u306E\u5B9F\u884C\u3067\u306F\u5B9F\u884C\u3055\u308C\u305F\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\u3002"},caveats:{deployFailed:"\u30A2\u30D7\u30EA\u3092\u8D77\u52D5\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u3053\u3053\u306B\u793A\u3059\u5185\u5BB9\u306F\u7A3C\u50CD\u4E2D\u306E\u30B7\u30B9\u30C6\u30E0\u306B\u5BFE\u3057\u3066\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",changeBrokeBringup:"\u3053\u306E\u5909\u66F4\u306B\u3088\u308A\u30A2\u30D7\u30EA\u306E\u8D77\u52D5\u304C\u58CA\u308C\u305F\u3068\u601D\u308F\u308C\u307E\u3059\u3002PR \u3092\u9069\u7528\u3057\u305F\u72B6\u614B\u3067\u8D77\u52D5\u3067\u304D\u305A\u3001\u30C6\u30B9\u30C8\u306F\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",bringupFailed:"\u3053\u306E PR \u3068\u306F\u7121\u95A2\u4FC2\u306E\u7406\u7531\u3067\u30A2\u30D7\u30EA\u3092\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3059\u308B\u30C6\u30B9\u30C8\u306F\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",testsNotExecuted:"\u3053\u306E\u5B9F\u884C\u3067\u306F\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u30C6\u30B9\u30C8\u304C\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u672A\u5B9F\u884C\u306E\u30C6\u30B9\u30C8\u306F\u5909\u66F4\u304C\u6B63\u3057\u304F\u52D5\u4F5C\u3059\u308B\u8A3C\u62E0\u306B\u306A\u308A\u307E\u305B\u3093\u3002",recipeDrift:"\u8A18\u9332\u3055\u308C\u3066\u3044\u305F\u30A2\u30D7\u30EA\u306E\u8D77\u52D5\u624B\u9806\u304C\u53E4\u304F\u306A\u3063\u3066\u304A\u308A\u3001\u8D77\u52D5\u524D\u306B\u4FEE\u6B63\u304C\u5FC5\u8981\u3067\u3057\u305F\u3002",mockedDependency:e=>`${e} \u306F\u5B9F\u969B\u306B\u30C7\u30D7\u30ED\u30A4\u3055\u308C\u305A\u30E2\u30C3\u30AF\u5316\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u308C\u306B\u5BFE\u3059\u308B\u6210\u529F\u7D50\u679C\u306F\u8A3C\u660E\u306B\u306F\u306A\u308A\u307E\u305B\u3093\u3002`,finalizeNotReady:e=>`\u30C6\u30B9\u30C8\u306F\u73FE\u72B6\u3067\u306F\u30DE\u30FC\u30B8\u53EF\u80FD\u306A\u72B6\u614B\u3067\u306F\u3042\u308A\u307E\u305B\u3093${e?`: ${e}`:"\u3002"}`,ciNotCovered:"\u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u3092\u5B9F\u884C\u3059\u308B CI \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u306A\u3044\u305F\u3081\u3001\u4ECA\u5F8C\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002",sutNotRequired:"\u30A2\u30D7\u30EA\u306F\u8D77\u52D5\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u691C\u8A3C\u30C8\u30EA\u30A2\u30FC\u30B8\u306B\u3088\u308A\u3001\u3053\u306E\u5909\u66F4\u3067\u691C\u8A3C\u304C\u5FC5\u8981\u306A\u30C7\u30D7\u30ED\u30A4\u5F8C\u306E\u632F\u308B\u821E\u3044\u306F\u306A\u3044\u3068\u5224\u65AD\u3055\u308C\u307E\u3057\u305F\u3002",lintNotCovered:e=>`\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30EA\u30F3\u30BF\u30FC\u306F ${e} \u3092\u30C1\u30A7\u30C3\u30AF\u3057\u307E\u305B\u3093\u3002\u30B9\u30BF\u30A4\u30EB\u3084\u578B\u306E\u554F\u984C\u304C\u81EA\u52D5\u7684\u306B\u306F\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3002`,analysisUnverified:e=>`\u5909\u66F4\u306E\u5206\u6790\u306E\u4E00\u90E8\u3092\u691C\u8A3C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u672A\u89E3\u6C7A\u306E\u30C1\u30A7\u30C3\u30AF ${e} \u4EF6\uFF09\u3002\u8A72\u5F53\u3059\u308B\u4E3B\u5F35\u306F\u672A\u78BA\u8A8D\u3068\u3057\u3066\u6271\u3044\u3001\u30C6\u30B9\u30C8\u3092\u8A08\u753B\u3057\u307E\u3057\u305F\u3002`,unitTestsNotRun:e=>`Testbot \u306F\u9078\u629E\u3057\u305F\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u3053\u3053\u306B\u3042\u308B\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8\u306E\u7D50\u679C\u306F Testbot \u81EA\u8EAB\u306E\u518D\u5B9F\u884C\u306B\u3088\u308B\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${e}`,testsCouldNotRunHere:(e,t)=>`\u3053\u306E\u5909\u66F4\u306B\u306F ${e} \u4EF6\u306E\u30C6\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u3053\u306E\u74B0\u5883\u3067\u306F\u5B9F\u884C\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u7D50\u679C\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30C3\u30D7\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09: ${t}`},autoCommitHint:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067 `autoCommit: true` \u3092\u6709\u52B9\u306B\u3059\u308B\u3068\u3001Skyramp Testbot \u304C\u751F\u6210\u3057\u305F\u30C6\u30B9\u30C8\u3092\u81EA\u52D5\u7684\u306B\u30B3\u30DF\u30C3\u30C8\u3057\u307E\u3059\u3002",implementRecommendationsCta:"\u8FFD\u52A0\u306E\u30C6\u30B9\u30C8\u63A8\u5968\u3092\u5B9F\u88C5\u3059\u308B\u306B\u306F `@skyramp-testbot` \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5DEE\u5206\u306E\u5206\u6790\u306B\u57FA\u3065\u304D\u3001\u4EE5\u4E0B\u3092\u63A8\u5968\u3057\u307E\u3059:",sutServiceErrorsHeadline:":warning: **\u30B5\u30FC\u30D3\u30B9\u304C\u30A8\u30E9\u30FC\u3092\u8FD4\u3057\u3066\u3044\u307E\u3059**",sutCheckedEndpoints:"Testbot \u306F\u30C6\u30B9\u30C8\u5B9F\u884C\u524D\u306B\u30B5\u30FC\u30D3\u30B9\u306E\u8D77\u52D5\u3092\u5F85\u6A5F\u3057\u307E\u3057\u305F\u304C\u3001\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u304C\u901A\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",sutCheckCodeChanges:"**\u3053\u306E PR \u306E\u30B3\u30FC\u30C9\u5909\u66F4\u304C\u30B5\u30FC\u30D3\u30B9\u969C\u5BB3\u306E\u539F\u56E0\u306B\u306A\u3063\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044** \u2014 \u65B0\u305F\u306B\u6DF7\u5165\u3057\u305F\u30D0\u30B0\u3001\u4F9D\u5B58\u95A2\u4FC2\u306E\u4E0D\u8DB3\u3001\u8A2D\u5B9A\u30DF\u30B9\u306B\u3088\u308A\u3001\u30B5\u30FC\u30D3\u30B9\u304C\u8D77\u52D5\u3067\u304D\u306A\u3044\u30FB\u6B63\u3057\u304F\u5FDC\u7B54\u3067\u304D\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002",viewWorkflowLogs:e=>`[\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30ED\u30B0\u5168\u6587\u3092\u898B\u308B \u2197](${e})`,sutFixAndRetry:"_\u554F\u984C\u3092\u4FEE\u6B63\u3057\u3066\u518D\u5EA6\u30D7\u30C3\u30B7\u30E5\u3059\u308B\u304B\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002_",internalErrorHeader:"### \u5185\u90E8\u30A8\u30E9\u30FC",internalErrorRenderFailed:"Testbot \u306F\u5B9F\u884C\u3092\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001\u30EC\u30DD\u30FC\u30C8\u306E\u751F\u6210\u4E2D\u306B\u4E88\u671F\u3057\u306A\u3044\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002",internalErrorNoReport:"Testbot \u3067\u4E88\u671F\u3057\u306A\u3044\u5185\u90E8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306F\u6B63\u5E38\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001\u30EC\u30DD\u30FC\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",internalErrorAgentStopped:"Testbot \u306F\u30EC\u30DD\u30FC\u30C8\u3092\u751F\u6210\u3059\u308B\u524D\u306B\u505C\u6B62\u3057\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30ED\u30B0\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002",internalErrorRawReportAvailable:"\u751F\u6210\u3055\u308C\u305F `report.json` \u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\uFF08\u3042\u308C\u3070\uFF09\u306F\u901A\u5E38\u3069\u304A\u308A\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u3066\u3044\u307E\u3059\u3002",internalErrorRetriedTimes:e=>`${e} \u56DE\u30EA\u30C8\u30E9\u30A4\u3057\u307E\u3057\u305F\u304C\u6210\u529F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002`,internalErrorFileIssue:"\u554F\u984C\u304C\u89E3\u6C7A\u3057\u306A\u3044\u5834\u5408\u306F https://github.com/skyramp/testbot/issues \u306B\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u5B9F\u884C\u3078\u306E\u30EA\u30F3\u30AF\u3092\u6DFB\u3048\u3066 issue \u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerNotYourCode:"\u3053\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u5909\u66F4\u304C\u539F\u56E0\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30B9\u30C8\u306F\u751F\u6210\u3082\u5B9F\u884C\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",providerOutageHeadline:(e,t)=>`${e} \u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002Testbot \u306F ${t} \u56DE\u8A66\u884C\u3057\u307E\u3057\u305F\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,providerOutageActionStatusPage:e=>`${e} \u3067\u72B6\u6CC1\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B5\u30FC\u30D3\u30B9\u304C\u5FA9\u65E7\u3057\u305F\u3089\u3001Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,providerRateLimitHeadline:e=>`${e} \u306E\u30EC\u30FC\u30C8\u5236\u9650\u306B\u3088\u308A\u5B9F\u884C\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F (HTTP 429)\u3002`,providerRateLimitAction:"\u5236\u9650\u304C\u89E3\u9664\u3055\u308C\u308B\u307E\u3067\u5F85\u3063\u3066\u304B\u3089\u3001Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u7E70\u308A\u8FD4\u3059\u5834\u5408\u306F\u3001\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u4F7F\u7528\u3059\u308B\u8A8D\u8A3C\u60C5\u5831\u306E\u30EC\u30FC\u30C8\u5236\u9650\u3092\u5F15\u304D\u4E0A\u3052\u308B\u304B\u3001\u540C\u6642\u306B\u5B9F\u884C\u3059\u308B PR \u306E\u6570\u3092\u6E1B\u3089\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerUsageLimitHeadline:e=>`${e} \u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u5229\u7528\u4E0A\u9650\u306B\u9054\u3057\u307E\u3057\u305F\u3002`,providerUsageLimitAction:"\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u8A8D\u8A3C\u60C5\u5831\u306B\u7D10\u3065\u304F\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u5229\u7528\u4E0A\u9650\u3092\u5F15\u304D\u4E0A\u3052\u3066\u304B\u3089\u3001Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerAuthExpiredHeadline:e=>`\u5B9F\u884C\u4E2D\u306B\u3001Testbot \u304C ${e} \u3078\u63A5\u7D9A\u3059\u308B\u305F\u3081\u306E\u8A8D\u8A3C\u60C5\u5831\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u307E\u3057\u305F\u3002`,providerAuthExpiredAction:"\u8A8D\u8A3C\u60C5\u5831\u306E\u6709\u52B9\u671F\u9593\u306F\u56FA\u5B9A\u306E\u305F\u3081\u3001\u5B9F\u884C\u6642\u9593\u304C\u9577\u3044\u3068\u305D\u306E\u671F\u9593\u3092\u8D85\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002Actions \u30BF\u30D6\u306E\u5B9F\u884C\u30DA\u30FC\u30B8\u304B\u3089\u3053\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3053\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u5B9F\u884C\u304C\u6709\u52B9\u671F\u9593\u3092\u5E38\u306B\u8D85\u3048\u308B\u5834\u5408\u306F\u3001\u30B8\u30E7\u30D6\u3054\u3068\u306B\u8A8D\u8A3C\u60C5\u5831\u3092\u767A\u884C\u3059\u308B\u304B\u3001\u5404\u30B8\u30E7\u30D6\u304C\u6709\u52B9\u671F\u9593\u5185\u306B\u53CE\u307E\u308B\u3088\u3046\u5B9F\u884C\u3092\u5206\u5272\u3057\u3066\u304F\u3060\u3055\u3044\u3002",providerTimeoutHeadline:e=>`Testbot \u306F\u5236\u9650\u6642\u9593 ${e} \u5206\u3092\u8D85\u3048\u305F\u305F\u3081\u505C\u6B62\u3055\u308C\u307E\u3057\u305F\u3002`,providerTimeoutAction:"\u3053\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u5B9F\u884C\u306B\u672C\u5F53\u306B\u6642\u9593\u304C\u5FC5\u8981\u306A\u5834\u5408\u306F\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E `testbotTimeout` \u5165\u529B\u5024\u3092\u5927\u304D\u304F\u3057\u3066\u304F\u3060\u3055\u3044\u3002",workspaceTestbotPrTitle:"Skyramp Testbot: \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u8A2D\u5B9A\u306E\u66F4\u65B0",workspaceTestbotPrHeader:"### Skyramp Testbot \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u8A2D\u5B9A\u306E\u66F4\u65B0",workspaceTestbotPrBody:"\u3053\u306E PR \u306F\u3053\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u7D71\u5408 `.skyramp/workspace.yml` \u3092\u66F4\u65B0\u3057\u307E\u3059\u3002\n\u4ECA\u56DE\u306E\u5B9F\u884C\u3067\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306F\u3001\u8A2D\u5B9A\u3055\u308C\u305F\u30C6\u30B9\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u306B\u914D\u7F6E\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u306E\u5909\u66F4\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\uFF0F\u30B5\u30FC\u30D3\u30B9\u8A2D\u5B9A\uFF08\u30DE\u30EB\u30C1\u30EA\u30DD\u30B8\u30C8\u30EA\u5B9F\u884C\u3067\u5206\u6790\u3055\u308C\u305F\u8FFD\u52A0\u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u542B\u3080\uFF09\u306E\u307F\u3092\u8A18\u9332\u3057\u307E\u3059\u3002",devPrMergedBreadcrumb:(e,t,r)=>`\u958B\u767A PR \u304C\u30DE\u30FC\u30B8\u3055\u308C\u307E\u3057\u305F \u2014 Testbot PR [#${e}](${t}) \u306F\u5F15\u304D\u7D9A\u304D\u30AA\u30FC\u30D7\u30F3\u3067\u3001\u73FE\u5728\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306F \`${r}\` \u3067\u3059\u3002`,devPrClosedBreadcrumb:(e,t)=>`\u958B\u767A PR \u304C\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u307E\u3057\u305F \u2014 Testbot PR [#${e}](${t}) \u306F\u81EA\u52D5\u7684\u306B\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u307E\u3057\u305F\u3002`,testbotPrMergeHint:"\u3053\u306E PR \u3092\u30DE\u30FC\u30B8\u3059\u308B\u3068\u3001\u751F\u6210/\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u3055\u308C\u305F\u30C6\u30B9\u30C8\u304C\u30D5\u30A3\u30FC\u30C1\u30E3\u30FC\u30D6\u30E9\u30F3\u30C1\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002\u7834\u68C4\u3057\u305F\u3044\u5834\u5408\u306F\u30AF\u30ED\u30FC\u30BA\u3057\u3066\u304F\u3060\u3055\u3044\u3002",testbotPrBacklink:e=>`${e} \u7528\u306B Skyramp Testbot \u304C\u751F\u6210\u3057\u307E\u3057\u305F\u3002`,testbotPrDispatchBacklink:e=>`\`${e}\` \u306B\u5BFE\u3059\u308B\u624B\u52D5\u5B9F\u884C\u306B\u3088\u308A Skyramp Testbot \u304C\u751F\u6210\u3057\u307E\u3057\u305F\u3002`,testbotPrMergedBacklink:e=>`${e} \u7528\u306B Skyramp Testbot \u304C\u751F\u6210\u3057\u307E\u3057\u305F\u3002\u5143\u306E PR \u306F\u3059\u3067\u306B\u30DE\u30FC\u30B8\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u306F\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1\u3092\u5BFE\u8C61\u3068\u3057\u3066\u3044\u307E\u3059\u3002`,staleBannerNoChanges:e=>`> \u26A0\uFE0F ${e} \u3078\u306E\u6700\u65B0\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u306F\u3001\u65B0\u3057\u3044\u30C6\u30B9\u30C8\u5909\u66F4\u306F\u5FC5\u8981\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002`,staleBannerStillOpen:"> \u3053\u306E PR \u306F\u4EE5\u524D\u306E\u30D7\u30C3\u30B7\u30E5\u6642\u70B9\u306E testbot \u306E\u5206\u6790\u7D50\u679C\u306E\u307E\u307E\u3067\u3059\u3002`@skyramp-testbot` \u3067\u518D\u751F\u6210\u3059\u308B\u304B\u3001\u5185\u5BB9\u304C\u4ECA\u3082\u6709\u52B9\u3067\u3042\u308C\u3070\u305D\u306E\u307E\u307E\u30DE\u30FC\u30B8\u3059\u308B\u3053\u3068\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",testbotPrNoBaseBranchError:"\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1\u3092\u7279\u5B9A\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001Skyramp Testbot \u306F Testbot PR \u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08pull_request \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3082\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u3082\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u901A\u5E38\u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C `pull_request` \u30A4\u30D9\u30F3\u30C8\u4EE5\u5916\u3067\u5B9F\u884C\u3055\u308C\u3001`actions/checkout` \u304C detached HEAD \u306E\u72B6\u614B\u3092\u6B8B\u3057\u305F\u3053\u3068\u304C\u539F\u56E0\u3067\u3059\u3002\u4EE3\u308F\u308A\u306B\u30D5\u30A3\u30FC\u30C1\u30E3\u30FC\u30D6\u30E9\u30F3\u30C1\u3078\u76F4\u63A5\u30B3\u30DF\u30C3\u30C8\u3059\u308B\u306B\u306F `generatedTestsMode: same-branch` \u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",commitFailureGeneric:(e,t)=>t?`\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E Testbot PR \u30D6\u30E9\u30F3\u30C1\u3078\u306E\u30B3\u30DF\u30C3\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F: \`${e}\`\u3002`:`\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E\u30B3\u30DF\u30C3\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F: \`${e}\`\u3002`,commitFailureHookWhereTestbotPr:"\u305D\u306E\u305F\u3081 Testbot PR \u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",commitFailureHookWhereSameBranch:"\u305D\u306E\u305F\u3081\u5909\u66F4\u306F\u30D6\u30E9\u30F3\u30C1\u306B\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",commitFailureHook:(e,t)=>`\u30EA\u30DD\u30B8\u30C8\u30EA\u306E pre-commit \u30D5\u30C3\u30AF\u304C\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E\u30B3\u30DF\u30C3\u30C8\u3092\u62D2\u5426\u3057\u305F\u305F\u3081\u3001${t}\u3002\u30D5\u30C3\u30AF\u306E\u30A8\u30E9\u30FC: \`${e}\`\u3002`,gitVerificationBypassed:(e,t,r)=>`Git \u306E\u691C\u8A3C\u306E\u554F\u984C: \u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30D5\u30C3\u30AF\u304C\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E \`git ${e}\` \u3092\u62D2\u5426\u3057\u305F\u305F\u3081 Testbot \u306F\u307E\u305A\u4FEE\u6B63\u3092\u8A66\u307F\u307E\u3057\u305F\u304C\u3001${t}\u305F\u3081\u3001\`--no-verify\` \u3067\u914D\u4FE1\u3057\u307E\u3057\u305F\u3002\u30D5\u30C3\u30AF\u306E\u30A8\u30E9\u30FC: \`${r}\`\u3002`,repairTimedOut:e=>`${e} \u5206\u306E\u4FEE\u6B63\u6642\u9593\u3092\u4F7F\u3044\u5207\u3063\u305F`,repairSessionFailed:e=>`\u4FEE\u6B63\u30BB\u30C3\u30B7\u30E7\u30F3\u304C\u5931\u6557\u3057\u305F\uFF08${e}\uFF09`,gitVerificationBypassedNextStep:"Testbot \u306F\u30EA\u30DD\u30B8\u30C8\u30EA\u306E git \u30D5\u30C3\u30AF\u3092\u901A\u904E\u3057\u306A\u3044\u307E\u307E\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u3092\u914D\u4FE1\u3057\u307E\u3057\u305F\u3002\u30DE\u30FC\u30B8\u3059\u308B\u524D\u306B\u3001\u30D5\u30C3\u30AF\u304C\u5831\u544A\u3057\u305F\u554F\u984C\u3092\u305D\u308C\u3089\u306E\u30C6\u30B9\u30C8\u3067\u4FEE\u6B63\u3057\u3066\u304F\u3060\u3055\u3044\u3002",commitFailureHookNextStep:"pre-commit \u30D5\u30C3\u30AF\u304C Testbot \u306E\u751F\u6210\u3057\u305F\u30C6\u30B9\u30C8\u3092\u62D2\u5426\u3057\u307E\u3057\u305F\u3002\u30D5\u30C3\u30AF\u304C\u5831\u544A\u3057\u305F\u554F\u984C\u3092\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u5185\u3067\u4FEE\u6B63\u3059\u308B\u304B\u3001Testbot \u306E\u751F\u6210\u3057\u305F\u30C6\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u30B9\u30AD\u30C3\u30D7\u3059\u308B\u3088\u3046\u30D5\u30C3\u30AF\uFF0F\u30EA\u30F3\u30BF\u30FC\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\uFF08\u3069\u3061\u3089\u306E\u914D\u4FE1\u30E2\u30FC\u30C9\u3067\u3082 `git commit` \u3092\u5B9F\u884C\u3059\u308B\u305F\u3081\u3001`generatedTestsMode` \u3092\u5207\u308A\u66FF\u3048\u3066\u3082\u30D5\u30C3\u30AF\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u305B\u3093\u3002\uFF09",testbotPrCreationFailure:(e,t)=>`\u751F\u6210\u3055\u308C\u305F\u30C6\u30B9\u30C8\u306E Testbot PR \u3092\u958B\u3051\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30A8\u30E9\u30FC: \`${e}\`\u3002\u30C6\u30B9\u30C8\u306F \`${t}\` \u306B\u30B3\u30DF\u30C3\u30C8\u30FB\u30D7\u30C3\u30B7\u30E5\u6E08\u307F\u3067\u3059\u3002\u3053\u306E\u30D6\u30E9\u30F3\u30C1\u304B\u3089\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u4F5C\u6210\u3057\u3066\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,sameBranchTestRepoConflictError:"`generatedTestsMode: same-branch` \u306F `testRepoPath` \u306E\u8A2D\u5B9A\u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30C6\u30B9\u30C8\u306F\u30C6\u30B9\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u5074\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\u304C\u3001same-branch \u30E2\u30FC\u30C9\u306F\u30D7\u30E9\u30A4\u30DE\u30EA\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u306B\u306E\u307F\u30B3\u30DF\u30C3\u30C8\u3057\u307E\u3059\u3002`testRepoPath` \u3092\u4F7F\u3046\u5834\u5408\u306F `generatedTestsMode: separate-branch`\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09\u3092\u4F7F\u7528\u3059\u308B\u304B\u3001`testRepoPath` \u3092\u524A\u9664\u3057\u3066\u540C\u3058\u30D6\u30E9\u30F3\u30C1\u306B\u30C6\u30B9\u30C8\u3092\u30B3\u30DF\u30C3\u30C8\u3057\u3066\u304F\u3060\u3055\u3044\u3002",noNewTestChangesBreadcrumb:e=>`\u3053\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u306F\u65B0\u3057\u3044\u30C6\u30B9\u30C8\u5909\u66F4\u306F\u767A\u751F\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4EE5\u524D\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u4F5C\u6210\u3055\u308C\u305F [testbot PR](${e}) \u306F\u5F15\u304D\u7D9A\u304D\u30EC\u30D3\u30E5\u30FC\u5F85\u3061\u3067\u30AA\u30FC\u30D7\u30F3\u3067\u3059\u3002`,testbotPrLabel:(e,t)=>`Testbot PR: [${e}](${t})`,sutAppCrashDetected:e=>`**\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30AF\u30E9\u30C3\u30B7\u30E5\u3092\u691C\u51FA:** \u30B5\u30FC\u30D3\u30B9\uFF08${e}\uFF09\u304C\u30B3\u30FC\u30C9\u30A8\u30E9\u30FC\u306B\u3088\u308A\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`,sutErrorLine:e=>`
147
+ **\u30A8\u30E9\u30FC:** \`${e}\``,sutFixPrefix:"**\u4FEE\u6B63\u65B9\u6CD5:** ",sutServiceNotReachable:e=>`**\u30B5\u30FC\u30D3\u30B9\u306B\u5230\u9054\u3067\u304D\u307E\u305B\u3093:** ${e} \u306E\u30B5\u30FC\u30D3\u30B9\u304C\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u307E\u3067\u306B\u5FDC\u7B54\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B5\u30FC\u30D3\u30B9\u304C\u307E\u3060\u8D77\u52D5\u4E2D\u3067\u3042\u308B\u304B\u3001\u8D77\u52D5\u30B3\u30DE\u30F3\u30C9\u304C\u30B5\u30FC\u30D3\u30B9\u3092\u7ACB\u3061\u4E0A\u3052\u3089\u308C\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`,sutServiceNotReachableFix:"**\u4FEE\u6B63\u65B9\u6CD5:** `targetSetupCommand` \u304C\u3053\u306E\u30B5\u30FC\u30D3\u30B9\u3092\u5B9F\u969B\u306B\u8D77\u52D5\u3057\u3001\u60F3\u5B9A\u3057\u305F\u30DD\u30FC\u30C8\u3067\u5F85\u3061\u53D7\u3051\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B3\u30DE\u30F3\u30C9\u81EA\u4F53\u306F\u6B63\u3057\u3044\u304C\u30B5\u30FC\u30D3\u30B9\u306E\u8D77\u52D5\u304C\u9045\u3044\u5834\u5408\u306F\u3001`targetReadyCheckTimeout` \u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3088\u308A\u78BA\u5B9F\u306A\u8D77\u52D5\u5224\u5B9A\u3092\u884C\u3046\u306B\u306F\u3001`targetReadyCheckCommand` \u3067\u7279\u5B9A\u306E\u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3092\u30D7\u30ED\u30FC\u30D6\u3059\u308B\u3088\u3046\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",staged:{requestedByPerson:e=>`${e} \u3055\u3093\u306E\u4F9D\u983C\u3067\u5B9F\u884C`,requestedByPolicy:e=>`\u691C\u8A3C\u30DD\u30EA\u30B7\u30FC ${e} \u306B\u3088\u308A\u5B9F\u884C`,noLiveApp:e=>`> \u26A0\uFE0F **\u3053\u306E\u5B9F\u884C\u3067\u306F\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\uFF08SUT\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F** \u2014 \u4EE5\u4E0B\u306E ${e} \u4EF6\u306E\u30C6\u30B9\u30C8\u306F**\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u305B\u3093**\uFF08\u5B9F\u884C\u5BFE\u8C61\u306E\u30A2\u30D7\u30EA\u304C\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF09\u3002\u7A3C\u50CD\u4E2D\u306E\u30A2\u30D7\u30EA\u306B\u5BFE\u3057\u3066\u5B9F\u884C\u3057\u3001\u5408\u683C\u3059\u308B\u3053\u3068\uFF08\u304A\u3088\u3073\u518D\u73FE\u30C6\u30B9\u30C8\u304C\u610F\u56F3\u3069\u304A\u308A\u5931\u6557\u3059\u308B\u3053\u3068\uFF09\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,unitTestsInFile:(e,t,r)=>`**${e}**: ${r?`${r} \u306E`:""}\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8 ${t} \u4EF6`,addedToExistingFile:"\u65E2\u5B58\u306E\u30C6\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB\u306B\u8FFD\u52A0",testPackagesHeader:"### \u{1F4E6} \u3053\u308C\u3089\u306E\u30C6\u30B9\u30C8\u306E\u5B9F\u884C\u65B9\u6CD5",testPackageLine:(e,t)=>`\`${e}/\` \u306F Skyramp Testbot \u304C\u6240\u6709\u30FB\u4FDD\u5B88\u3059\u308B\u72EC\u7ACB\u3057\u305F\u30C6\u30B9\u30C8\u30D1\u30C3\u30B1\u30FC\u30B8\u3067\u3001\u72EC\u81EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3001\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\u3001\u30E9\u30F3\u30CA\u30FC\u8A2D\u5B9A\u3092\u6301\u3061\u307E\u3059\u3002\`${t}\` \u3067\u5B9F\u884C\u3067\u304D\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u5B9F\u884C\u3059\u308B\u306B\u306F\u3001\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092 CI \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,appManifestsUntouched:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u81EA\u8EAB\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3068\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\u306F\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093\u3002",dependencyChangesHeader:"### \u{1F4E6} \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u4F9D\u5B58\u95A2\u4FC2\u306E\u5909\u66F4",dependencyChangeLine:(e,t,r)=>`\`${t}\`\uFF08\u304A\u3088\u3073\u305D\u306E\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\uFF09\u306B \`${e}\` \u3092\u8FFD\u52A0${r?`: ${r}`:""}`,testMaintenanceHeader:"\u2705 \u30C6\u30B9\u30C8\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9",keptNot:"\u5909\u66F4\u305B\u305A\u7DAD\u6301 \u2014 \u898B\u9001\u3063\u305F\u64CD\u4F5C: ",declinedPlanned:"(\u4E88\u5B9A\u3057\u3066\u3044\u305F\u64CD\u4F5C\u3092\u898B\u9001\u308A: ",declinedMaintenanceHeader:"\u21A9\uFE0F \u898B\u9001\u3063\u305F\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9",existingEvidenceHeader:"\u2705 \u65E2\u5B58\u306E\u30A8\u30D3\u30C7\u30F3\u30B9",trustedCheckPassed:(e,t)=>`\u4FE1\u983C\u6E08\u307F\u306E CI \u30C1\u30A7\u30C3\u30AF ${e} \u304C${t?` ${t} \u3067`:""}\u5408\u683C\u3057\u3001\u6B21\u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F:`,testResultsHeader:"\u{1F9EA} \u30C6\u30B9\u30C8\u7D50\u679C",resultsTableHeader:"| \u30C6\u30B9\u30C8 ID | \u30C6\u30B9\u30C8\u7A2E\u5225 | \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8 | \u30B9\u30C6\u30FC\u30BF\u30B9 | \u8A73\u7D30 |",unitResultsTableHeader:"| \u30C6\u30B9\u30C8 ID | \u30C6\u30B9\u30C8\u7A2E\u5225 | \u30C6\u30B9\u30C8\u5BFE\u8C61\u306E\u30B3\u30FC\u30C9 | \u30C6\u30B9\u30C8 | \u30B1\u30FC\u30B9\u6570 | \u30B9\u30C6\u30FC\u30BF\u30B9 | \u8A73\u7D30 |",casesPassed:(e,t,r)=>`${t} \u4EF6\u4E2D ${e} \u4EF6\u5408\u683C${r?`\u3001${r} \u4EF6\u30B9\u30AD\u30C3\u30D7`:""}`,behaviourCoverageHeader:"\u{1F517} \u632F\u308B\u821E\u3044\u306E\u30AB\u30D0\u30EC\u30C3\u30B8",coverageCaption:(e,t,r,n)=>`\uFF08\u751F\u6210 ${e} \xB7 \u5909\u66F4 ${t} \xB7 \u691C\u8A3C ${r} \xB7 \u5B9F\u884C ${n}\uFF09`,coverageTableHeader:"| \u632F\u308B\u821E\u3044 | \u30BD\u30FC\u30B9 | \u30C6\u30B9\u30C8 | \u30E1\u30F3\u30C6\u30CA\u30F3\u30B9 |",writtenNotRun:"\u4F5C\u6210\u6E08\u307F\u30FB\u672A\u5B9F\u884C",issuesFoundHeader:"\u26A0\uFE0F \u691C\u51FA\u3055\u308C\u305F\u554F\u984C",caveatsHeader:"### \u26A0\uFE0F \u3053\u306E\u5B9F\u884C\u3067\u78BA\u8A8D\u3067\u304D\u306A\u304B\u3063\u305F\u3053\u3068",commentHeader:"### Skyramp Testbot",timedOut:"> \u26A0\uFE0F \u5B9F\u884C\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F \u2014 \u4EE5\u4E0B\u306E\u7D50\u679C\u306F\u4E00\u90E8\u306E\u307F\u3067\u3059\u3002",stopReasons:{"pr-closed":"\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30DE\u30FC\u30B8\u3055\u308C\u305A\u306B\u30AF\u30ED\u30FC\u30BA\u3055\u308C\u307E\u3057\u305F",cancelled:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u305F\u304B\u3001\u30E9\u30F3\u30CA\u30FC\u304C\u505C\u6B62\u3057\u307E\u3057\u305F","attempt-cancelled":"Skyramp \u3067\u3053\u306E\u5B9F\u884C\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F","attempt-closed":"Skyramp \u304C\u3053\u306E\u5B9F\u884C\u3092\u7D42\u4E86\u3057\u307E\u3057\u305F"},maintenanceActions:{update:"\u66F4\u65B0",regenerate:"\u518D\u751F\u6210",delete:"\u524A\u9664",verify:"\u691C\u8A3C",updated:"\u66F4\u65B0",regenerated:"\u518D\u751F\u6210",deleted:"\u524A\u9664",verified:"\u691C\u8A3C"},publishFailures:{push:"\u30D7\u30C3\u30B7\u30E5\u306B\u5931\u6557",auth:"\u8A8D\u8A3C\u30A8\u30E9\u30FC",conflict:"\u7AF6\u5408",unknown:"\u4E0D\u660E\u306A\u30A8\u30E9\u30FC"},stoppedEarly:(e,t)=>`> \u26A0\uFE0F \u5B9F\u884C\u304C\u9014\u4E2D\u3067\u505C\u6B62\u3057\u307E\u3057\u305F \u2014 ${e}\u3002\u4EE5\u4E0B\u306E\u7D50\u679C\u306F\u4E00\u90E8\u306E\u307F\u3067\u3059\u3002${t}`,viewInSkyramp:e=>` [Skyramp \u3067\u8868\u793A](${e})`,descriptionCut:(e,t,r)=>`_\u2026 \u6B8B\u308A\u306F\u7701\u7565\u3057\u307E\u3057\u305F${t===void 0?"\uFF08\u30C6\u30B9\u30C8\u7D50\u679C\u3092\u542B\u3080\uFF09":t?`\uFF08\u30C6\u30B9\u30C8\u7D50\u679C ${t} \u4EF6\u3092\u542B\u3080\uFF09`:""}\u3002Azure DevOps \u306E\u8AAC\u660E\u306F ${e} \u6587\u5B57\u307E\u3067\u3067\u3059\u3002${r?` [\u5B8C\u5168\u306A\u30EC\u30DD\u30FC\u30C8](${r})`:""}_`,setupRunEnds:{finished:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002Skyramp \u304C\u7D50\u679C\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059\u3002",failed:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",timedOut:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u304C\u6642\u9593\u5207\u308C\u306B\u306A\u308A\u307E\u3057\u305F\u3002",cancelledInSkyramp:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u306F Skyramp \u3067\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",stoppedToResume:"\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5B9F\u884C\u3092\u505C\u6B62\u3057\u307E\u3057\u305F\u3002Skyramp \u3067\u518D\u958B\u3067\u304D\u307E\u3059\u3002"},appUnreachable:e=>`Skyramp\uFF08${e}\uFF09\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,couldNotStart:e=>`Skyramp Testbot \u3092\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${e}`,assembledAfterFailedChecks:e=>`> \u26A0\uFE0F \u4F5C\u6210\u30B9\u30C6\u30C3\u30D7\u304C\u30C1\u30A7\u30C3\u30AF\u306B\u5408\u683C\u3057\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u3053\u306E\u30EC\u30DD\u30FC\u30C8\u306F\u81EA\u52D5\u3067\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u3057\u305F\u3002${e} \u4EF6\u306E\u30C1\u30A7\u30C3\u30AF\u304C\u672A\u9054\u6210\u3067\u3059 \u2014 \u8A73\u7D30\u306F\u5B9F\u884C\u30ED\u30B0\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,testbotPrLine:(e,t,r)=>`Testbot PR${e?`\uFF08${e}\uFF09`:""}: [${t}](${r})`,viewRun:e=>`_[\u5B9F\u884C\u3092\u8868\u793A](${e})_`,testsPrNotOpened:(e,t)=>`\u30C6\u30B9\u30C8 PR \u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${e}\uFF09\u3002\u30C6\u30B9\u30C8\u306F\u30D6\u30E9\u30F3\u30C1 \`${t}\` \u306B\u30D7\u30C3\u30B7\u30E5\u3055\u308C\u3066\u3044\u307E\u3059\u3002`,testsNotPushed:(e,t)=>`\u30C6\u30B9\u30C8\u3092\u30D7\u30C3\u30B7\u30E5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${e}\uFF09\u3002\u30C6\u30B9\u30C8\u306F\u30ED\u30FC\u30AB\u30EB\u30D6\u30E9\u30F3\u30C1 \`${t}\` \u306B\u6B8B\u3063\u3066\u3044\u307E\u3059\u3002`,testsPrRetargeted:e=>`\u30C6\u30B9\u30C8\u306E\u751F\u6210\u4E2D\u306B\u958B\u767A PR \u304C\u30DE\u30FC\u30B8\u3055\u308C\u307E\u3057\u305F \u2014 \u30C6\u30B9\u30C8 PR \u306F\u4EE3\u308F\u308A\u306B\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1${e?`\uFF08\`${e}\`\uFF09`:""}\u3092\u5BFE\u8C61\u306B\u3057\u3066\u3044\u307E\u3059\u3002`,testsPrUnchanged:"\u3053\u306E\u30D7\u30C3\u30B7\u30E5\u3067\u306F\u65B0\u3057\u3044\u30C6\u30B9\u30C8\u306E\u5909\u66F4\u306F\u4E0D\u8981\u3067\u3057\u305F\u3002\u4EE5\u4E0B\u306E\u30C6\u30B9\u30C8 PR \u306F\u4EE5\u524D\u306E\u5B9F\u884C\u306E\u3082\u306E\u3067\u3001\u305D\u306E\u307E\u307E\u306B\u3057\u3066\u3044\u307E\u3059\u3002",committedNoPr:e=>`\u30C6\u30B9\u30C8\u306F\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u307E\u3057\u305F\u304C\u3001PR \u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F: ${e}\u3002`}};var $P=(r=>(r.En="en",r.Ja="ja",r))($P||{}),LEt={en:mr,ja:GRe},HRe="en";function HI(e){let t=e.trim().toLowerCase();if(t==="")return"en";let r=Object.values($P);return r.includes(t)?t:(Oe(`Invalid language '${e}'. Supported: ${r.join(", ")}. Falling back to 'en'.`),"en")}function g3(e){HRe=e}function jI(e,t){return(Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0)??t}function ve(){return LEt[HRe]}var qP=(a=>(a.ProviderOutage="provider_outage",a.ProviderRateLimit="provider_rate_limit",a.ProviderUsageLimit="provider_usage_limit",a.ProviderAuthExpired="provider_auth_expired",a.Timeout="timeout",a.NoReport="no_report",a.RenderFailure="render_failure",a))(qP||{});(t=>{function e(r,n){switch(r){case"provider_outage":return{headline:ve().providerOutageHeadline(n.provider.name,n.maxRetries),action:ve().providerOutageActionStatusPage(n.provider.statusUrl)};case"provider_rate_limit":return{headline:ve().providerRateLimitHeadline(n.provider.name),action:ve().providerRateLimitAction};case"provider_usage_limit":return{headline:ve().providerUsageLimitHeadline(n.provider.name),action:ve().providerUsageLimitAction};case"provider_auth_expired":return{headline:ve().providerAuthExpiredHeadline(n.provider.name),action:ve().providerAuthExpiredAction};case"timeout":return{headline:ve().providerTimeoutHeadline(n.timeoutMinutes),action:ve().providerTimeoutAction};case"no_report":case"render_failure":return}}t.buildNotice=e})(qP||={});var GP=(r=>(r.SameBranch="same-branch",r.SeparateBranch="separate-branch",r))(GP||{});var zRe=(r=>(r.Sonnet="sonnet",r.Opus="opus",r))(zRe||{}),VRe="opus",UEt={sonnet:"claude-sonnet-5[1m]",opus:"claude-opus-5-5[1m]"},msr=UEt[VRe];function A3(e){return Object.values(zRe).includes(e)}function WRe(e){let t=(e??"").trim();if(t==="")return VRe;let r=t.toLowerCase();return A3(r)?r:t}var HP=(i=>(i.Low="low",i.Medium="medium",i.High="high",i.XHigh="xhigh",i.Max="max",i))(HP||{}),jP="high";function YRe(e){return Object.values(HP).includes(e)}var JRe=5;function $Et(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(Boolean);if(t.length>JRe)throw new Error(`relatedRepoPaths supports at most ${JRe} entries (got ${t.length}); the cap limits how much cross-repo context is loaded to avoid overflowing Testbot's context window.`);return t}function qEt(e){let t=e.trim().toLowerCase();return t===""?"separate-branch":Object.values(GP).includes(t)?t:(Oe(`Invalid generatedTestsMode '${e}'. Falling back to 'separate-branch'.`),"separate-branch")}function GEt(e){let t=(e??"").trim();if(t!==""){if(/^(?:[1-9]|10)$/.test(t))return Number(t);Oe(`Ignoring perTestMaxFixAttempts="${e}": expected a whole number from 1 to 10; the Skyramp MCP default applies`)}}function HEt(e){let t=(e??"").trim().toLowerCase();return t===""?jP:YRe(t)?t:(Oe(`Ignoring effort="${e}": expected one of ${Object.values(HP).join(", ")}; using "${jP}"`),jP)}function KRe(){let e=WRe(qe("model"));return A3(e)||Oe(`model '${e}' is not a tested alias (sonnet, opus); passing it to the agent verbatim as a raw model id.`),{skyrampLicenseFile:qe("skyrampLicenseFile"),cursorApiKey:qe("cursorApiKey"),copilotApiKey:qe("copilotApiKey"),anthropicApiKey:qe("anthropicApiKey"),useBedrock:lu("useBedrock"),awsRegion:qe("awsRegion"),useLocalAuth:qe("useLocalAuth").toLowerCase()==="true",model:e,effort:HEt(qe("effort")),targetSetupCommand:qe("targetSetupCommand"),authTokenCommand:qe("authTokenCommand"),uiCredentials:qe("uiCredentials"),targetTeardownCommand:qe("targetTeardownCommand"),skipTargetTeardown:lu("skipTargetTeardown"),skyrampExecutorVersion:qe("skyrampExecutorVersion"),skyrampMcpVersion:qe("skyrampMcpVersion"),skyrampMcpSource:qe("skyrampMcpSource"),skyrampMcpGithubToken:qe("skyrampMcpGithubToken"),skyrampMcpGithubRef:qe("skyrampMcpGithubRef"),nodeVersion:qe("nodeVersion"),skipTargetSetup:lu("skipTargetSetup"),targetReadyCheckCommand:qe("targetReadyCheckCommand"),targetReadyCheckTimeout:(()=>{let r=parseInt(qe("targetReadyCheckTimeout"),10)||1800;return r<1?(Oe(`targetReadyCheckTimeout must be at least 1 second, got ${r}. Using 1s.`),1):r})(),targetReadyCheckInterval:(()=>{let r=parseInt(qe("targetReadyCheckInterval"),10),n=isNaN(r)?30:r;return n<1?(Oe(`targetReadyCheckInterval must be at least 1 second, got ${n}. Using 1s.`),1):n})(),targetReadyCheckDiagnosticsCommand:(()=>{let r=qe("targetReadyCheckDiagnosticsCommand");return r.trim().toLowerCase()==="none"?"":r})(),workingDirectory:qe("workingDirectory"),autoCommit:lu("autoCommit"),commitMessage:qe("commitMessage"),generatedTestsMode:qEt(qe("generatedTestsMode")),postPrComment:lu("postPrComment"),testExecutionTimeout:parseInt(qe("testExecutionTimeout"),10)||300,maxRecommendations:(()=>{let r=parseInt(qe("maxRecommendations"),10);return isNaN(r)?void 0:Math.max(0,r)})(),maxGenerate:(()=>{let r=parseInt(qe("maxGenerate"),10);return isNaN(r)?void 0:Math.max(0,r)})(),perTestMaxFixAttempts:GEt(qe("perTestMaxFixAttempts")),testbotMaxRetries:parseInt(qe("testbotMaxRetries"),10)||3,testbotRetryDelay:parseInt(qe("testbotRetryDelay"),10)||10,testbotTimeout:parseInt(qe("testbotTimeout"),10)||60,targetSetupRetries:parseInt(qe("targetSetupRetries"),10)||3,targetSetupRetryDelay:parseInt(qe("targetSetupRetryDelay"),10)||10,authTokenRetries:(()=>{let r=parseInt(qe("authTokenRetries"),10);return Number.isFinite(r)&&r>=1?r:6})(),authTokenRetryDelay:(()=>{let r=parseInt(qe("authTokenRetryDelay"),10);return Number.isFinite(r)&&r>=0?r:10})(),reportCollapsed:lu("reportCollapsed"),language:HI(qe("language")),enableDebug:lu("enableDebug"),testRepoPath:qe("testRepoPath")||void 0,relatedRepoPaths:$Et(qe("relatedRepoPaths")),allowedAuthors:qe("allowedAuthors").split(/\r?\n/).map(r=>r.trim()).filter(Boolean)}}var jEt={useBedrock:"false",skipTargetTeardown:"false",skyrampMcpSource:"npm",skyrampMcpGithubRef:"main",nodeVersion:"lts/*",skipTargetSetup:"false",targetReadyCheckTimeout:"1800",targetReadyCheckInterval:"30",targetReadyCheckDiagnosticsCommand:`docker ps -a --format 'table {{.Names}} {{.Status}} {{.Ports}}' && docker ps -a --format '{{.Names}}' | while read name; do [ -n "$name" ] && echo "--- logs $name (last 30) ---" && docker logs --tail 30 "$name"; done`,workingDirectory:".",autoCommit:"true",commitMessage:"Skyramp Testbot: test maintenance suggestions",generatedTestsMode:"separate-branch",pipeline:"classic",postPrComment:"true",testbotMaxRetries:"3",testbotRetryDelay:"10",testExecutionTimeout:"300",testbotTimeout:"60",targetSetupRetries:"3",targetSetupRetryDelay:"10",authTokenRetries:"6",authTokenRetryDelay:"10",reportCollapsed:"true",language:"en",enableDebug:"true",sutSetupMode:"none"};function XRe(e=process.env){for(let[t,r]of Object.entries(jEt)){let n=`INPUT_${t.replace(/ /g,"_").toUpperCase()}`;(e[n]??"").trim()===""&&(e[n]=r)}}ft();var $0e=j(require("path"));var hb=require("fs"),Ju=j(require("path"),1),jke=require("child_process"),zke=require("util");function zEt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Es={},zP={},Vp={},ZRe;function zI(){if(ZRe)return Vp;ZRe=1;function e(o){return typeof o>"u"||o===null}function t(o){return typeof o=="object"&&o!==null}function r(o){return Array.isArray(o)?o:e(o)?[]:[o]}function n(o,a){if(a){let c=Object.keys(a);for(let l=0,u=c.length;l<u;l+=1){let d=c[l];o[d]=a[d]}}return o}function s(o,a){let c="";for(let l=0;l<a;l+=1)c+=o;return c}function i(o){return o===0&&Number.NEGATIVE_INFINITY===1/o}return Vp.isNothing=e,Vp.isObject=t,Vp.toArray=r,Vp.repeat=s,Vp.isNegativeZero=i,Vp.extend=n,Vp}var y3,eke;function VI(){if(eke)return y3;eke=1;function e(r,n){let s="",i=r.reason||"(unknown reason)";return r.mark?(r.mark.name&&(s+='in "'+r.mark.name+'" '),s+="("+(r.mark.line+1)+":"+(r.mark.column+1)+")",!n&&r.mark.snippet&&(s+=`
148
148
 
149
149
  `+r.mark.snippet),i+" "+s):i}function t(r,n){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=n,this.message=e(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(n){return this.name+": "+e(this,n)},y3=t,y3}var b3,tke;function VEt(){if(tke)return b3;tke=1;let e=zI();function t(s,i,o,a,c){let l="",u="",d=Math.floor(c/2)-1;return a-i>d&&(l=" ... ",i=a-d+l.length),o-a>d&&(u=" ...",o=a+d-u.length),{str:l+s.slice(i,o).replace(/\t/g,"\u2192")+u,pos:a-i+l.length}}function r(s,i){return e.repeat(" ",i-s.length)+s}function n(s,i){if(i=Object.create(i||null),!s.buffer)return null;i.maxLength||(i.maxLength=79),typeof i.indent!="number"&&(i.indent=1),typeof i.linesBefore!="number"&&(i.linesBefore=3),typeof i.linesAfter!="number"&&(i.linesAfter=2);let o=/\r?\n|\r|\0/g,a=[0],c=[],l,u=-1;for(;l=o.exec(s.buffer);)c.push(l.index),a.push(l.index+l[0].length),s.position<=l.index&&u<0&&(u=a.length-2);u<0&&(u=a.length-1);let d="",p=Math.min(s.line+i.linesAfter,c.length).toString().length,f=i.maxLength-(i.indent+p+3);for(let A=1;A<=i.linesBefore&&!(u-A<0);A++){let C=t(s.buffer,a[u-A],c[u-A],s.position-(a[u]-a[u-A]),f);d=e.repeat(" ",i.indent)+r((s.line-A+1).toString(),p)+" | "+C.str+`
150
150
  `+d}let h=t(s.buffer,a[u],c[u],s.position,f);d+=e.repeat(" ",i.indent)+r((s.line+1).toString(),p)+" | "+h.str+`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyramp/testbot-core",
3
- "version": "0.13.0-v3.155",
3
+ "version": "0.13.0-v3.156",
4
4
  "description": "Skyramp Testbot engine: AI-powered deterministic test generation, execution and maintenance",
5
5
  "main": "dist/main.js",
6
6
  "//files": "An explicit allowlist, never a glob. `dist/` is gitignored, so without this key npm's .gitignore fallback would publish a package with no engine in it; with a glob it would publish the sourcemaps, whose sourcesContent embeds every src/*.ts verbatim. eval-entry.js is a development entry and must not ship. dist/VERSION.json exists only in a release-engine.yml build. assets/gen-reference/ is the staged codegen reference corpus, which generate.ts finds at ../assets from dist/.",