mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 09:27:29 +00:00
refactor(github): organize concrete feature owners (#41601)
This commit is contained in:
@@ -34,7 +34,7 @@ on:
|
||||
- 'src/main/runtime/agent-session/agent-session-unsaved-*.ts'
|
||||
# The phone/host contract program's unmocked desktop sources and its declaration owner's inputs.
|
||||
- 'src/main/runtime/integrations/github/runtime-github-repository-query-commands.ts'
|
||||
- 'src/main/github/issue-field-options.ts'
|
||||
- 'src/main/github/issues/issue-field-options.ts'
|
||||
- 'config/tsconfig.test.mobile-host-declarations.json'
|
||||
- 'config/tsconfig.node.json'
|
||||
- 'src/types/build-constants.d.ts'
|
||||
@@ -174,7 +174,7 @@ on:
|
||||
- 'src/main/runtime/agent-session/agent-session-unsaved-*.ts'
|
||||
# The phone/host contract program's unmocked desktop sources and its declaration owner's inputs.
|
||||
- 'src/main/runtime/integrations/github/runtime-github-repository-query-commands.ts'
|
||||
- 'src/main/github/issue-field-options.ts'
|
||||
- 'src/main/github/issues/issue-field-options.ts'
|
||||
- 'config/tsconfig.test.mobile-host-declarations.json'
|
||||
- 'config/tsconfig.node.json'
|
||||
- 'src/types/build-constants.d.ts'
|
||||
|
||||
@@ -428,19 +428,15 @@
|
||||
2 test-no-wall-clock:src/main/external-conversations/external-conversation-cancel-settlement.test.ts
|
||||
3 test-no-wall-clock:src/main/external-conversations/external-conversation-cancel.test.ts
|
||||
2 test-no-wall-clock:src/main/git/command-runner/host-routing/git-command-resolution-windows-checkout.test.ts
|
||||
2 test-no-wall-clock:src/main/git/command-runner/hosted-cli/runner-gh-account-binding.test.ts
|
||||
1 test-no-wall-clock:src/main/git/command-runner/hosted-cli/runner-gh-account-binding.test.ts
|
||||
1 test-no-wall-clock:src/main/git/refs/maintenance/pack-refs-lock-ownership.test.ts
|
||||
2 test-no-wall-clock:src/main/git/refs/maintenance/repo-ref-maintenance-real-git.test.ts
|
||||
1 test-no-wall-clock:src/main/git/source-control/blob-absence-real-git.test.ts
|
||||
2 test-no-wall-clock:src/main/git/worktrees/catalog/worktree-created-description-real-git.test.ts
|
||||
3 test-no-wall-clock:src/main/github/pr-refresh-coordinator-active-visible-priority.test.ts
|
||||
8 test-no-wall-clock:src/main/github/pr-refresh-coordinator-alias-coalescing.test.ts
|
||||
5 test-no-wall-clock:src/main/github/pr-refresh-coordinator-completion-order.test.ts
|
||||
3 test-no-wall-clock:src/main/github/pr-refresh-coordinator-foreground-pacing.test.ts
|
||||
3 test-no-wall-clock:src/main/github/pr-refresh-coordinator-refresh-events.test.ts
|
||||
4 test-no-wall-clock:src/main/github/pr-refresh-coordinator-visibility-policy.test.ts
|
||||
3 test-no-wall-clock:src/main/github/pr-refresh-coordinator-visible-follow-up.test.ts
|
||||
4 test-no-wall-clock:src/main/github/pr-refresh-queue-growth-bound.test.ts
|
||||
3 test-no-wall-clock:src/main/github/pull-requests/refresh/pr-refresh-coordinator-active-visible-priority.test.ts
|
||||
8 test-no-wall-clock:src/main/github/pull-requests/refresh/pr-refresh-coordinator-alias-coalescing.test.ts
|
||||
3 test-no-wall-clock:src/main/github/pull-requests/refresh/pr-refresh-coordinator-completion-order.test.ts
|
||||
2 test-no-wall-clock:src/main/github/pull-requests/refresh/pr-refresh-queue-growth-bound.test.ts
|
||||
2 test-no-wall-clock:src/main/grok/grok-hook-stdin-no-eof.test.ts
|
||||
3 test-no-wall-clock:src/main/ipc/runtime-environments/runtime-environment-request-connections.test.ts
|
||||
1 test-no-wall-clock:src/main/ipc/terminal-render-desync-evidence.test.ts
|
||||
@@ -517,8 +513,6 @@
|
||||
2 test-no-wall-clock:src/main/skills/transaction-state/skill-transaction-startup-recovery.test.ts
|
||||
4 test-no-wall-clock:src/main/sqlite/sync-database.test.ts
|
||||
4 test-no-wall-clock:src/main/ssh/remote-exec/ssh-remote-commands.test.ts
|
||||
2 test-no-wall-clock:src/main/star-nag/service-direct-star.test.ts
|
||||
3 test-no-wall-clock:src/main/star-nag/service-threshold-prompt.test.ts
|
||||
1 test-no-wall-clock:src/main/startup/gpu-lifecycle-install-dir-acl-guard.test.ts
|
||||
1 test-no-wall-clock:src/main/startup/login-shell-environment.test.ts
|
||||
2 test-no-wall-clock:src/main/startup/run-electron-vite-dev.test.ts
|
||||
|
||||
@@ -36,7 +36,7 @@ src/main/git/command-runner/process-capture/spawn-command-capture.ts
|
||||
src/main/git/command-runner/process-capture/spawned-command-tree-kill.ts
|
||||
src/main/git/command-runner/host-routing/wsl-aware-spawn.ts
|
||||
src/main/git/command-runner/host-routing/wsl-git-read-environment.ts
|
||||
src/main/github/gh-utils.ts
|
||||
src/main/github/execution/github-legacy-command.ts
|
||||
src/main/workspace-hooks/hooks.ts
|
||||
src/main/ipc/developer-permissions.ts
|
||||
src/main/ipc/filesystem/watcher-process/child-lifecycle/parcel-watcher-child-launch.ts
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# This is a RATCHET: counts may only go DOWN. Resolve the host instead (see fix text).
|
||||
# A lower bound: destructured and differently named rows are not counted.
|
||||
# Prune after a fix: pnpm check:repo-host-read-ratchet --prune
|
||||
1 src/main/github/account-binding-required-host.ts
|
||||
1 src/main/github/accounts/account-binding-required-host.ts
|
||||
3 src/main/ipc/ephemeral-vm-recipe-context.ts
|
||||
2 src/main/ipc/filesystem/filesystem-source-control-ai-targets.ts
|
||||
1 src/main/ipc/folder-repo-git-upgrade.ts
|
||||
@@ -46,7 +46,7 @@
|
||||
1 src/main/workspaces/space-analysis/workspace-space-worktree-row.ts
|
||||
1 src/shared/endpoint-catalog-adoption.ts
|
||||
1 src/shared/folder-workspaces/folder-workspace-execution-host.ts
|
||||
1 src/shared/github/github-cache-key.ts
|
||||
1 src/shared/github/cache/github-cache-key.ts
|
||||
1 src/shared/new-workspace-dialog-repo.ts
|
||||
1 src/shared/sidebar-list/workspace-review-facts.ts
|
||||
1 src/shared/workspace-session/workspace-session-terminal-buffers.ts
|
||||
|
||||
@@ -18,7 +18,7 @@ const NODE_RUNTIME_INCLUDE = [
|
||||
'src/main/ai-vault/parse-cache/session-parse-cache-persistence.test.ts',
|
||||
'src/main/ai-vault/scope/session-scanner-scope-walk.test.ts',
|
||||
// The forced-probe handoff race opens only under V8's promise scheduling, which Electron main uses.
|
||||
'src/main/github/rate-limit.test.ts',
|
||||
'src/main/github/api/rate-limit.test.ts',
|
||||
// Electron main bridges streams with Node's implementation.
|
||||
'src/main/host/electron-http-client.test.ts',
|
||||
'src/main/browser/extensions/native-messaging/browser-extension-native-host-process-backpressure.test.ts',
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"../src/main/runtime/orca-runtime.ts",
|
||||
"../src/main/runtime/rpc/core.ts",
|
||||
"../src/main/runtime/rpc/dispatch/dispatcher-request-parsing.ts",
|
||||
"../src/main/github/issue-field-options.ts",
|
||||
"../src/main/github/issues/issue-field-options.ts",
|
||||
"../src/main/runtime/workspaces/process-listing/runtime-worktree-ps-summaries.ts",
|
||||
"../src/types/build-constants.d.ts",
|
||||
"../src/main/native-chat/transcript-line-decoders-claude.ts",
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
OctagonAlert,
|
||||
TriangleAlert
|
||||
} from 'lucide-react-native'
|
||||
import type { GitHubCalloutKind } from '../../../src/shared/github/github-callouts'
|
||||
import type { GitHubCalloutKind } from '../../../src/shared/github/markdown/github-callouts'
|
||||
import { translate } from '../i18n/mobile-i18n'
|
||||
import { styles } from './mobile-markdown-styles'
|
||||
import { colors } from '../theme/mobile-theme'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { createContext, useEffect, useMemo, useRef, useSyncExternalStore } from 'react'
|
||||
import { createNativeChatFileLinkHooks } from '../../../src/shared/native-chat/native-chat-file-link-hooks'
|
||||
import type { NativeChatFileLinkExistence } from '../../../src/shared/native-chat/native-chat-file-link-existence'
|
||||
import type { GitHubRepoReference } from '../../../src/shared/github/github-reference-links'
|
||||
import type { GitHubRepoReference } from '../../../src/shared/github/markdown/github-reference-links'
|
||||
|
||||
/** What a chat knows about its workspace for links in its text; absent outside chat. */
|
||||
export type MobileMarkdownLinks = {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import type { BlockContent, DefinitionContent, Literal, Parent, PhrasingContent } from 'mdast'
|
||||
import type { GitHubCalloutKind } from '../../../src/shared/github/github-callouts'
|
||||
import type { GitHubCalloutKind } from '../../../src/shared/github/markdown/github-callouts'
|
||||
|
||||
// The node types MobileMarkdown adds to mdast, registered by declaration merging. Merging needs
|
||||
// interfaces, which React Doctor's root rules flag; mobile's lint config ignores this file because
|
||||
|
||||
@@ -3,7 +3,7 @@ import cjkFriendly from 'markdown-it-cjk-friendly'
|
||||
import footnote from 'markdown-it-footnote'
|
||||
import type { AlignType, Parent, PhrasingContent, Root, RootContent, Table } from 'mdast'
|
||||
import remend from 'remend'
|
||||
import { forEachGitHubCallout } from '../../../src/shared/github/github-callouts'
|
||||
import { forEachGitHubCallout } from '../../../src/shared/github/markdown/github-callouts'
|
||||
import { codeNode, type Token } from './mobile-markdown-code-nodes'
|
||||
import { inlineTagNode, inlineTagPairs } from './mobile-markdown-inline-html'
|
||||
import { readTaskMarker } from './mobile-markdown-task-items'
|
||||
|
||||
@@ -8,7 +8,7 @@ import { triggerError, triggerSuccess } from '../../platform/haptics'
|
||||
import {
|
||||
parseGitHubIssueOrPRLink,
|
||||
parseGitHubIssueOrPRNumber
|
||||
} from '../../../../src/shared/github/links'
|
||||
} from '../../../../src/shared/github/repositories/links'
|
||||
import { linkMobilePr } from '../../source-control/mobile-pr-link'
|
||||
import { TextField } from '../composer-input/TextField'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
|
||||
@@ -4,8 +4,8 @@ import { GitMerge } from 'lucide-react-native'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
import type { Translate } from '../../i18n/mobile-i18n'
|
||||
import type { GitHubPRMergeMethod } from '../../../../src/shared/github/pull-request-types'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../../src/shared/github/pull-request-merge-methods'
|
||||
import type { GitHubPRMergeMethod } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-methods'
|
||||
import { KeyedBottomDrawer } from '../bottom-drawer/keyed-bottom-drawer'
|
||||
import { SheetHeader } from '../nav-bar/SheetHeader'
|
||||
import { SheetPrimaryButton } from '../SheetPrimaryButton'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ActivityIndicator, ScrollView, Text, View } from 'react-native'
|
||||
import { colors } from '../../theme/mobile-theme'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import type { PRCheckRunDetails } from '../../../../src/shared/github/check-types'
|
||||
import type { PRCheckRunDetails } from '../../../../src/shared/github/checks/check-types'
|
||||
import { presentCheckDetail, type CheckDetailJob } from './pr-check-detail-content'
|
||||
import { mobilePrSidebarStyles as styles } from './mobile-pr-sidebar-styles'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
|
||||
@@ -6,7 +6,7 @@ import type {
|
||||
GitHubReaction,
|
||||
GitHubReactionContent,
|
||||
PRComment
|
||||
} from '../../../../src/shared/github/comment-types'
|
||||
} from '../../../../src/shared/github/comments/comment-types'
|
||||
import { colors, pressedStyle } from '../../theme/mobile-theme'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import type { Translate } from '../../i18n/mobile-i18n'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { useMemo, useState } from 'react'
|
||||
import { ActivityIndicator, Pressable, Text, View } from 'react-native'
|
||||
import { ChevronDown, ChevronRight } from 'lucide-react-native'
|
||||
import type { PRState } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import type { PRState } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { GitHubPrRepoSlug } from '../../source-control/review/github-pr-repo-slug'
|
||||
import { colors, pressedStyle } from '../../theme/mobile-theme'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
|
||||
@@ -17,7 +17,7 @@ import type { Translate } from '../../i18n/mobile-i18n'
|
||||
import { openExternalLink } from '../../platform/external-link'
|
||||
import { useClipboardWriter } from '../../platform/clipboard'
|
||||
import { triggerError, triggerSuccess } from '../../platform/haptics'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import { LIST_LEADING_SLOT, LIST_ROW_PADDING } from '../list/ListGroup'
|
||||
import { PullDownMenu } from '../nav-bar/PullDownMenu'
|
||||
import type { ActionSheetAction } from '../ActionSheetModal'
|
||||
|
||||
@@ -7,7 +7,7 @@ import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
import type { Translate } from '../../i18n/mobile-i18n'
|
||||
import { openExternalLink } from '../../platform/external-link'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import { isBrokenCheck } from '../../../../src/shared/source-control/checks/pr-checks-fix-prompt'
|
||||
import { sortChecksBySeverity } from '../../../../src/shared/source-control/checks/pr-check-severity-order'
|
||||
import { buildPrFixChecksPrompt } from '../../source-control/review/pr-ai-triage-prompt'
|
||||
|
||||
@@ -5,8 +5,8 @@ import { colors, pressedStyle } from '../../theme/mobile-theme'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
import type { Translate } from '../../i18n/mobile-i18n'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import { getGitHubPRReviewerRows } from '../../../../src/shared/github/pr-reviewer-display'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { getGitHubPRReviewerRows } from '../../../../src/shared/github/pull-requests/pr-reviewer-display'
|
||||
import { useCalmConnectionState } from '../../transport/connection/calm-connection-state'
|
||||
import {
|
||||
classifyConnection,
|
||||
|
||||
@@ -3,8 +3,8 @@ import { GitMerge, GitPullRequest, Sparkles, type LucideIcon } from 'lucide-reac
|
||||
import { colors, feedback, pressedStyle } from '../../theme/mobile-theme'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../../src/shared/github/pull-request-merge-methods'
|
||||
import { resolveGitHubPRMergeState } from '../../../../src/shared/github/pull-request-merge-state'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-methods'
|
||||
import { resolveGitHubPRMergeState } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-state'
|
||||
import { MOBILE_GITHUB_MARK_PR_READY_RUNTIME_CAPABILITY } from '../../../../src/shared/source-control/runtime/source-control-runtime-capabilities'
|
||||
import { useRouteCapability } from '../../worktree/use-workspace-client'
|
||||
import { buildResolveConflictsPrompt } from '../../source-control/review/pr-ai-triage-prompt'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Text, View } from 'react-native'
|
||||
import type { DiffHunkLine } from '../../../../src/shared/github/pr-comment-diff-hunk'
|
||||
import type { DiffHunkLine } from '../../../../src/shared/github/comments/pr-comment-diff-hunk'
|
||||
import { colors, radii, spacing, typography } from '../../theme/mobile-theme'
|
||||
import { themedStyleSheet } from '../../theme/themed-styles'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
|
||||
@@ -15,13 +15,13 @@ import {
|
||||
Sparkles,
|
||||
Trash2
|
||||
} from 'lucide-react-native'
|
||||
import type { PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import type { PRComment } from '../../../../src/shared/github/comments/comment-types'
|
||||
import {
|
||||
getPRCommentGroupRoot,
|
||||
type PRCommentGroup
|
||||
} from '../../../../src/shared/source-control/review-comments/pr-comment-groups'
|
||||
import { isBotPRComment } from '../../../../src/shared/source-control/review-comments/pr-comment-audience'
|
||||
import { threadDiffLines } from '../../../../src/shared/github/pr-comment-diff-hunk'
|
||||
import { threadDiffLines } from '../../../../src/shared/github/comments/pr-comment-diff-hunk'
|
||||
import { colors, pressedStyle, radii, spacing, typography } from '../../theme/mobile-theme'
|
||||
import { themedStyleSheet } from '../../theme/themed-styles'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ScrollView, Text, View } from 'react-native'
|
||||
import type { PRCommentGroup } from '../../../../src/shared/source-control/review-comments/pr-comment-groups'
|
||||
import { threadDiffLines } from '../../../../src/shared/github/pr-comment-diff-hunk'
|
||||
import { threadDiffLines } from '../../../../src/shared/github/comments/pr-comment-diff-hunk'
|
||||
import { colors, spacing, typography } from '../../theme/mobile-theme'
|
||||
import { themedStyleSheet } from '../../theme/themed-styles'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
import type { GitHubPRMergeMethod, PRInfo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type {
|
||||
GitHubPRMergeMethod,
|
||||
PRInfo
|
||||
} from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import {
|
||||
resolveGitHubPRMergeState,
|
||||
type GitHubPRMergeStateKind
|
||||
} from '../../../../src/shared/github/pull-request-merge-state'
|
||||
} from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-state'
|
||||
import {
|
||||
resolveGitHubPRStackMergeDecision,
|
||||
type GitHubPRStackMergeBlocker
|
||||
} from '../../../../src/shared/github/pull-request-stack-merge'
|
||||
} from '../../../../src/shared/github/pull-requests/merge/pull-request-stack-merge'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
|
||||
// Copy for desktop’s merge-state kinds; the shared rule decides which one applies.
|
||||
|
||||
@@ -2,7 +2,7 @@ import type {
|
||||
PRCheckAnnotation,
|
||||
PRCheckJob,
|
||||
PRCheckRunDetails
|
||||
} from '../../../../src/shared/github/check-types'
|
||||
} from '../../../../src/shared/github/checks/check-types'
|
||||
import {
|
||||
resolveStepOutcome,
|
||||
summarizeJobSteps
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRState } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import type { PRState } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import {
|
||||
getProviderChecksOutcome,
|
||||
summarizeProviderChecks
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { isCompletePRCheckOwner } from '../../../../src/shared/github/complete-pr-check-owner'
|
||||
import { isCompletePRCheckOwner } from '../../../../src/shared/github/checks/complete-pr-check-owner'
|
||||
import { getProviderChecksOutcome } from '../../../../src/shared/source-control/checks/provider-check-summary'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { groupPRComments } from '../../../../src/shared/source-control/review-comments/pr-comment-groups'
|
||||
import { isBotPRComment } from '../../../../src/shared/source-control/review-comments/pr-comment-audience'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
|
||||
@@ -3,9 +3,9 @@ import { useFocusEffect } from 'expo-router'
|
||||
import {
|
||||
ChecksDetailPollingPolicy,
|
||||
nextChecksPollBackoffMs
|
||||
} from '../../../../src/shared/github/checks-detail-polling-policy'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-request-types'
|
||||
} from '../../../../src/shared/github/checks/checks-detail-polling-policy'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { useHostQuery } from '../../query/host-query'
|
||||
import {
|
||||
NO_BRANCH,
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
type PrSidebarData,
|
||||
type PrSidebarState
|
||||
} from '../../source-control/review/mobile-pr-sidebar-state'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { PrSidebarLoadOptions } from '../../source-control/review/use-mobile-pr-sidebar-controller'
|
||||
import {
|
||||
prActionSlices,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useCallback, useLayoutEffect, useRef, useState } from 'react'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import { fetchPRCheckDetails } from '../../source-control/review/github-pr-rpc'
|
||||
import '../../source-control/review/github-pr-repo-slug'
|
||||
import type { GitHubPrRepoSlug } from '../../source-control/review/github-pr-repo-slug'
|
||||
|
||||
@@ -5,8 +5,8 @@ import { triggerError, triggerSuccess } from '../../platform/haptics'
|
||||
import { openMobilePrUrl } from '../mobile-pr-url'
|
||||
import type { ActionSheetAction } from '../ActionSheetModal'
|
||||
import { canEditPRTitle } from '../../source-control/review/pr-title-edit'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../../src/shared/github/pull-request-merge-methods'
|
||||
import { resolveGitHubPRMergeState } from '../../../../src/shared/github/pull-request-merge-state'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-methods'
|
||||
import { resolveGitHubPRMergeState } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-state'
|
||||
import {
|
||||
MOBILE_GITHUB_MARK_PR_DRAFT_RUNTIME_CAPABILITY,
|
||||
MOBILE_GITHUB_MARK_PR_READY_RUNTIME_CAPABILITY
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { useState } from 'react'
|
||||
import type {
|
||||
GitHubAssignableUser,
|
||||
GitHubOwnerRepo
|
||||
} from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubAssignableUser } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import { useWorkspaceExecutionHost } from '../../navigation/workspace-execution-host'
|
||||
import { useHostQuery } from '../../query/host-query'
|
||||
import { isHostNotConnectedError } from '../../query/host-query-errors'
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useMemo, useRef } from 'react'
|
||||
import {
|
||||
linkGitHubReferences,
|
||||
type GitHubRepoReference
|
||||
} from '../../../src/shared/github/github-reference-links'
|
||||
} from '../../../src/shared/github/markdown/github-reference-links'
|
||||
import {
|
||||
linkNativeChatFilePaths,
|
||||
type FileLinkExists
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { classifyExactGitHubOperation } from '../../../src/shared/github/exact-work-item-operation'
|
||||
import { classifyExactGitHubOperation } from '../../../src/shared/github/work-items/exact-work-item-operation'
|
||||
import {
|
||||
captureGitHubInvocation,
|
||||
GITHUB_TARGET_CHECK_TIMED_OUT,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { linearIssueReadFailureMessage } from '../../../../src/shared/integration-credential-errors'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { GitLabWorkItem } from '../../../../src/shared/gitlab-types'
|
||||
import type { LinearIssue } from '../../../../src/shared/linear/issue-types'
|
||||
import type { BaseRefSearchResult } from '../../../../src/shared/repo-types'
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
type SmartNameMode
|
||||
} from '../../../../src/shared/new-workspace/smart-workspace-source-results'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import { isGitHubWorkItemsSshRemoteRequiredError } from '../../../../src/shared/github/work-item-ssh-error'
|
||||
import { isGitHubWorkItemsSshRemoteRequiredError } from '../../../../src/shared/github/work-items/work-item-ssh-error'
|
||||
import type { MrStateFilter } from './mobile-composer-source-types'
|
||||
import type { JiraIssue, JiraSiteSelection } from '../../../../src/shared/jira/jira-types'
|
||||
import {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { GitLabWorkItem } from '../../../../src/shared/gitlab-types'
|
||||
import { normalizeGitHubLinkQuery } from '../../../../src/shared/new-workspace/github-links'
|
||||
import {
|
||||
normalizeGitHubLinkQuery,
|
||||
parseGitHubIssueOrPRLink,
|
||||
type GitHubIssueOrPRLink,
|
||||
type RepoSlug
|
||||
} from '../../../../src/shared/new-workspace/github-links'
|
||||
} from '../../../../src/shared/github/repositories/links'
|
||||
import { parseGitLabIssueOrMRLink } from '../../../../src/shared/new-workspace/gitlab-links'
|
||||
import { isSmartWorkspaceSourceQueryWithinLimit } from '../../../../src/shared/new-workspace/smart-workspace-source-results'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
readGitHubWorkItemByNumber,
|
||||
gitlabWorkItemByPathRead
|
||||
} from '../../tasks/providers/mobile-task-source-search-operations'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repository-identity-key'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repositories/repository-identity-key'
|
||||
|
||||
export type PasteRepoCandidate = {
|
||||
id: string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { GitLabWorkItem } from '../../../../src/shared/gitlab-types'
|
||||
import type { LinearIssue } from '../../../../src/shared/linear/issue-types'
|
||||
import type { BaseRefSearchResult } from '../../../../src/shared/repo-types'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useCallback, useMemo, useRef, useState } from 'react'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { GitLabWorkItem } from '../../../../src/shared/gitlab-types'
|
||||
import type { LinearIssue } from '../../../../src/shared/linear/issue-types'
|
||||
import { resolveComposerManualBranchNameChange } from '../../../../src/shared/composer-branch-selection'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { GitLabWorkItem } from '../../../../src/shared/gitlab-types'
|
||||
import {
|
||||
buildSmartWorkspaceSourceRows,
|
||||
|
||||
@@ -4,8 +4,8 @@ import { relativePathInsideRoot } from '../../../../src/shared/cross-platform-pa
|
||||
import {
|
||||
githubReferenceRepo,
|
||||
type GitHubRepoReference
|
||||
} from '../../../../src/shared/github/github-reference-links'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repository-identity-key'
|
||||
} from '../../../../src/shared/github/markdown/github-reference-links'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repositories/repository-identity-key'
|
||||
import {
|
||||
createNativeChatFileLinkChecker,
|
||||
type NativeChatFileLinkExistence
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { translate } from '../i18n/mobile-i18n'
|
||||
import type { PRInfo } from '../../../src/shared/github/pull-request-types'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../src/shared/github/pull-request-merge-methods'
|
||||
import { getGitHubPRPrimaryReviewer } from '../../../src/shared/github/pr-reviewer-display'
|
||||
import type { GitHubWorkItemDetails } from '../../../src/shared/github/work-item-types'
|
||||
import type { PRInfo } from '../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../src/shared/github/pull-requests/merge/pull-request-merge-methods'
|
||||
import { getGitHubPRPrimaryReviewer } from '../../../src/shared/github/pull-requests/pr-reviewer-display'
|
||||
import type { GitHubWorkItemDetails } from '../../../src/shared/github/work-items/work-item-types'
|
||||
import type { SourceControlNextStep } from '../../../src/shared/source-control/decisions/source-control-next-step-decision'
|
||||
import { presentPrMerge } from '../components/pr-sidebar/pr-actions-state'
|
||||
import type { MobileCreatePrAction } from './mobile-create-pr-action'
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
hasResolvableHostedReviewPushTargetLink,
|
||||
resolveHostedReviewPushTargetForActions
|
||||
} from '../../../src/shared/source-control/hosted-review/hosted-review-push-target'
|
||||
import type { PRState } from '../../../src/shared/github/pull-request-types'
|
||||
import type { PRState } from '../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitPushTarget } from '../../../src/shared/worktree/types'
|
||||
import type { PrSidebarState } from './review/mobile-pr-sidebar-state'
|
||||
import type { MobileGitBranchCompareResult } from './mobile-branch-compare'
|
||||
|
||||
@@ -5,7 +5,7 @@ import type {
|
||||
PRCheckJob,
|
||||
PRCheckRunDetails,
|
||||
PRCheckStep
|
||||
} from '../../../../src/shared/github/check-types'
|
||||
} from '../../../../src/shared/github/checks/check-types'
|
||||
import { prCount, prText } from './github-pr-entity-reply-schema'
|
||||
|
||||
// Require check name; default optional details because hosts may omit fields the panel renders unguarded.
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import { normalizePRCheckHeadSha } from '../../../../src/shared/github/pr-check-head'
|
||||
import { normalizePRCheckHeadSha } from '../../../../src/shared/github/checks/pr-check-head'
|
||||
import * as z from 'zod'
|
||||
import { openEnum, salvagedOptional, salvagingArray } from '../../../../src/shared/zod-salvage'
|
||||
import type { GitHubReaction, PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import type {
|
||||
GitHubReaction,
|
||||
PRComment
|
||||
} from '../../../../src/shared/github/comments/comment-types'
|
||||
import type {
|
||||
GitHubAssignableUser,
|
||||
GitHubPRFile,
|
||||
GitHubPRMergeMethodSettings,
|
||||
GitHubPRReviewSummary,
|
||||
GitHubRepositoryIdentity,
|
||||
ProviderCheckSummary
|
||||
} from '../../../../src/shared/github/pull-request-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
} from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
|
||||
// Require entity identity, salvage malformed list members, and default other fields for unguarded renderers.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GitHubPRMergeMethod } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubPRMergeMethod } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import {
|
||||
githubPrAutoMergeSet,
|
||||
githubPrBodySet,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import * as z from 'zod'
|
||||
import { salvagedOptional, salvagingArray } from '../../../../src/shared/zod-salvage'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type {
|
||||
GitHubWorkItem,
|
||||
GitHubWorkItemDetails
|
||||
} from '../../../../src/shared/github/work-item-types'
|
||||
} from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { HostedReviewInfo } from '../../../../src/shared/source-control/hosted-review/hosted-review-contracts'
|
||||
import {
|
||||
CHECK_STATUS,
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import { GITHUB_CONNECTION_CHANGED, githubOperationResponse } from './github-target-invocation'
|
||||
import { captureMobilePRCheckContract } from './pr-check-observation-contract'
|
||||
import { acceptPRCheckObservation } from '../../../../src/shared/github/complete-pr-check-owner'
|
||||
import { acceptPRCheckObservation } from '../../../../src/shared/github/checks/complete-pr-check-owner'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import { withGitHubTargetOperation } from './github-work-item-operation'
|
||||
import { requireGitHubWorkItemTargetDetails } from '../../../../src/shared/github/work-item-target'
|
||||
import type { PRCheckDetail, PRCheckRunDetails } from '../../../../src/shared/github/check-types'
|
||||
import { requireGitHubWorkItemTargetDetails } from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import type {
|
||||
PRCheckDetail,
|
||||
PRCheckRunDetails
|
||||
} from '../../../../src/shared/github/checks/check-types'
|
||||
import type {
|
||||
GitHubAssignableUser,
|
||||
GitHubOwnerRepo,
|
||||
PRInfo
|
||||
} from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
} from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { HostedReviewInfo } from '../../../../src/shared/source-control/hosted-review/hosted-review-contracts'
|
||||
import { refusedRpcMessageOrFallback } from '../../transport/rpc/rpc-refusal-message'
|
||||
import type { RpcResponse } from '../../transport/rpc/rpc-wire-types'
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { SendRequestOptions } from '../../transport/rpc/unvalidated-rpc-req
|
||||
import type { RpcResponse } from '../../transport/rpc/rpc-wire-types'
|
||||
import { readConnectionStatusProbe } from '../../transport/connection/runtime-status-probe'
|
||||
import { GITHUB_EXACT_WORK_ITEM_TARGET_RUNTIME_CAPABILITY } from '../../../../src/shared/source-control/runtime/source-control-runtime-capabilities'
|
||||
import { GITHUB_EXACT_OPERATION_UNSUPPORTED } from '../../../../src/shared/github/work-item-target'
|
||||
import { GITHUB_EXACT_OPERATION_UNSUPPORTED } from '../../../../src/shared/github/work-items/work-item-target'
|
||||
|
||||
export const GITHUB_CONNECTION_CHANGED = 'The Orca server connection changed. Try again.'
|
||||
export const GITHUB_TARGET_CHECK_TIMED_OUT = 'Timed out confirming the executing Orca server.'
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import type { SendRequestOptions } from '../../transport/rpc/unvalidated-rpc-request-port'
|
||||
import type { GitHubOwnerRepo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import { hasReachedAppVersion } from '../../../../src/shared/app-version'
|
||||
import {
|
||||
GITHUB_EXACT_OPERATION_UNSUPPORTED,
|
||||
matchesGitHubWorkItemTarget,
|
||||
type GitHubWorkItemTarget
|
||||
} from '../../../../src/shared/github/work-item-target'
|
||||
} from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import {
|
||||
captureGitHubInvocation,
|
||||
GITHUB_DESKTOP_UPDATE_REQUIRED,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import type { PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import type { PRComment } from '../../../../src/shared/github/comments/comment-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { buildMobileDiffReviewQueue } from './mobile-diff-review-queue'
|
||||
import { buildMobileDiffReviewGitHub, canCommentOnGitHub } from './mobile-diff-review-github'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { GitHubPRFile } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import { getPRInlineCommentPlacement } from '../../../../src/shared/github/pr-inline-comment-placement'
|
||||
import type { GitHubPRFile } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { getPRInlineCommentPlacement } from '../../../../src/shared/github/comments/pr-inline-comment-placement'
|
||||
import {
|
||||
groupPRComments,
|
||||
type PRCommentGroup
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import type { QueryClient, QueryKey } from '@tanstack/react-query'
|
||||
import type { PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRComment } from '../../../../src/shared/github/comments/comment-types'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import {
|
||||
acceptPRCheckObservation,
|
||||
completePRCheckOwnerScope
|
||||
} from '../../../../src/shared/github/complete-pr-check-owner'
|
||||
} from '../../../../src/shared/github/checks/complete-pr-check-owner'
|
||||
import type {
|
||||
GitHubAssignableUser,
|
||||
GitHubOwnerRepo,
|
||||
PRInfo
|
||||
} from '../../../../src/shared/github/pull-request-types'
|
||||
} from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import {
|
||||
matchesGitHubWorkItemTarget,
|
||||
resolveGitHubWorkItemTarget
|
||||
} from '../../../../src/shared/github/work-item-target'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
} from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { LOCAL_EXECUTION_HOST_ID } from '../../../../src/shared/execution-host'
|
||||
import { worktreeIdsEqual } from '../../../../src/shared/worktree/id'
|
||||
import { defineHostQuery, type HostQuerySignal, type HostSignalEvent } from '../../query/host-query'
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import {
|
||||
resolveGitHubWorkItemTarget,
|
||||
githubWorkItemTargetKey
|
||||
} from '../../../../src/shared/github/work-item-target'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/check-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-request-types'
|
||||
} from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import type { PRCheckDetail } from '../../../../src/shared/github/checks/check-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitPushTarget } from '../../../../src/shared/worktree/types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { HostedReviewInfo } from '../../../../src/shared/source-control/hosted-review/hosted-review-contracts'
|
||||
import type { GitHubPrReadOutcome } from './github-pr-rpc'
|
||||
import { isGitHubPRSuppressed } from '../../../../src/shared/worktree/github-pr-suppression'
|
||||
@@ -13,13 +13,13 @@ import {
|
||||
prBranchFallbackNeedsHint,
|
||||
resolvePRBranchFallback,
|
||||
shouldAcceptMergedFallbackPR
|
||||
} from '../../../../src/shared/github/pr-branch-fallback-rule'
|
||||
} from '../../../../src/shared/github/pull-requests/refresh/pr-branch-fallback-rule'
|
||||
import {
|
||||
shouldApplyBranchMismatchedLinkedPRClear,
|
||||
shouldApplyDivergedLinkedPRClear,
|
||||
shouldClearBranchMismatchedLinkedOpenPR,
|
||||
shouldClearDivergedLinkedMergedPR
|
||||
} from '../../../../src/shared/github/linked-pr-staleness'
|
||||
} from '../../../../src/shared/github/pull-requests/refresh/linked-pr-staleness'
|
||||
import type { MobileWorktreeSummary } from '../mobile-worktree-metadata-operations'
|
||||
import type { WorktreeGitHubPRLink } from '../mobile-pr-link'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GitHubPRMergeMethod } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubPRMergeMethod } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubPrMutationOutcome } from './github-pr-mutation-outcome'
|
||||
import type { GitHubPrRepoSlug } from './github-pr-repo-slug'
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import type { GitHubPRMergeMethod, PRState } from '../../../../src/shared/github/pull-request-types'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repository-identity-key'
|
||||
import type {
|
||||
GitHubPRMergeMethod,
|
||||
PRState
|
||||
} from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repositories/repository-identity-key'
|
||||
import { classifyPrSidebarFailure } from './mobile-pr-sidebar-state'
|
||||
import { createOptimisticField, type OptimisticField } from './optimistic-write-sequence'
|
||||
import type { GitHubPrMutationOutcome } from './github-pr-mutation-outcome'
|
||||
|
||||
@@ -3,12 +3,15 @@ import {
|
||||
collectFixChecksPromptDetails,
|
||||
hasGitHubCheckHandle
|
||||
} from '../../../../src/shared/source-control/checks/pr-checks-fix-prompt'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { PRInfo } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import { fetchPRCheckDetails } from './github-pr-rpc'
|
||||
import { splitWorktreeIdForFilesystem } from '../../../../src/shared/worktree/id'
|
||||
import { buildResolvePullRequestConflictsPrompt } from '../../../../src/shared/source-control/recovery/source-control-conflict-prompts'
|
||||
import type { PRCheckDetail, PRCheckRunDetails } from '../../../../src/shared/github/check-types'
|
||||
import type {
|
||||
PRCheckDetail,
|
||||
PRCheckRunDetails
|
||||
} from '../../../../src/shared/github/checks/check-types'
|
||||
|
||||
// Like desktop, the agent gets the failing steps' log tails, not just check names.
|
||||
export async function buildFixChecksPrompt(input: {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import { isMutablePRConversationComment } from '../../../../src/shared/github/pr-comment-mutability'
|
||||
import type { GitHubOwnerRepo, PRState } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { PRComment } from '../../../../src/shared/github/comments/comment-types'
|
||||
import { isMutablePRConversationComment } from '../../../../src/shared/github/comments/pr-comment-mutability'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import type { PRState } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
|
||||
// Only inline review threads have resolvable node ids; conversation comments cannot resolve.
|
||||
export function isResolvableComment(comment: Pick<PRComment, 'threadId'>): boolean {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { hashKey, type QueryClient, type QueryKey } from '@tanstack/react-query'
|
||||
import type { PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-item-types'
|
||||
import type { PRComment } from '../../../../src/shared/github/comments/comment-types'
|
||||
import type { GitHubWorkItemDetails } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { defineHostMutation } from '../../query/host-mutation'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
import { isLogicalClientCutoverError } from '../../transport/connection/logical-client-cutover-error'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { PRState } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { PRState } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
|
||||
export function canEditPRTitle(state: PRState | null | undefined): boolean {
|
||||
return state === 'open' || state === 'draft'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useCallback, useMemo, useRef, useState } from 'react'
|
||||
import type { PRComment } from '../../../../src/shared/github/comment-types'
|
||||
import type { PRComment } from '../../../../src/shared/github/comments/comment-types'
|
||||
import type { ConnectionState } from '../../transport/connection/connection-state'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import type { GitHubPrRepoSlug } from './github-pr-repo-slug'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import { useQueryClient, type UseQueryResult } from '@tanstack/react-query'
|
||||
import type { GitHubPRFileViewedState } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubPRFileViewedState } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { useWorkspaceExecutionHost } from '../../navigation/workspace-execution-host'
|
||||
import { readHostQueryLive, useHostQuery } from '../../query/host-query'
|
||||
import { isHostNotConnectedError } from '../../query/host-query-errors'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react'
|
||||
import type { QueryClient, QueryKey } from '@tanstack/react-query'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repository-identity-key'
|
||||
import { githubRepoIdentityKey } from '../../../../src/shared/github/repositories/repository-identity-key'
|
||||
import type { ConnectionState } from '../../transport/connection/connection-state'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import type { GitHubPrRepoSlug } from './github-pr-repo-slug'
|
||||
|
||||
@@ -13,8 +13,8 @@ import {
|
||||
} from './review/pr-ai-triage-prompt'
|
||||
import type { PrSidebarState } from './review/mobile-pr-sidebar-state'
|
||||
import { buildResolveConflictsPrompt } from '../../../src/shared/source-control/recovery/source-control-conflict-prompts'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../src/shared/github/pull-request-merge-methods'
|
||||
import type { GitHubPRMergeMethod } from '../../../src/shared/github/pull-request-types'
|
||||
import { resolveGitHubPRMergeMethods } from '../../../src/shared/github/pull-requests/merge/pull-request-merge-methods'
|
||||
import type { GitHubPRMergeMethod } from '../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { summarizeProviderChecks } from '../../../src/shared/source-control/checks/provider-check-summary'
|
||||
import { getBrokenChecks } from '../../../src/shared/source-control/checks/pr-checks-fix-prompt'
|
||||
import { resolveSourceControlCommitAreaPrimaryActionDecision } from '../../../src/shared/source-control/decisions/source-control-primary-action-decision'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { summarizeProviderChecks } from '../../../../src/shared/source-control/checks/provider-check-summary'
|
||||
import type { ProviderCheckSummary as GitHubCheckSummary } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { ProviderCheckSummary as GitHubCheckSummary } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
|
||||
export type GitHubCheckLike = {
|
||||
status: string
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
gitLabPipelineJobOutcome
|
||||
} from '../../../../src/shared/source-control/checks/gitlab/gitlab-pipeline-checks'
|
||||
import { summarizeProviderChecks } from '../../../../src/shared/source-control/checks/provider-check-summary'
|
||||
import type { ProviderCheckSummary } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { ProviderCheckSummary } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitLabPipeline } from '../../../../src/shared/gitlab-types'
|
||||
|
||||
type GitLabPipelineJobLike = { status: string; allowFailure?: boolean }
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import type {
|
||||
PRMergeableState,
|
||||
ProviderCheckSummary
|
||||
} from '../../../../src/shared/github/pull-request-types'
|
||||
} from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
import { resolveGitHubPRMergeState } from '../../../../src/shared/github/pull-request-merge-state'
|
||||
import { resolveGitHubPRMergeState } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-state'
|
||||
import {
|
||||
getProviderChecksLabel,
|
||||
getProviderChecksOutcome
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import { matchesGitHubWorkItemTarget } from '../../../../src/shared/github/work-item-target'
|
||||
import { acceptPRCheckObservation } from '../../../../src/shared/github/complete-pr-check-owner'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import { matchesGitHubWorkItemTarget } from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import { acceptPRCheckObservation } from '../../../../src/shared/github/checks/complete-pr-check-owner'
|
||||
import { captureMobilePRCheckContract } from '../../source-control/review/pr-check-observation-contract'
|
||||
import { githubWorkItemBySlugRead } from '../providers/mobile-task-source-search-operations'
|
||||
import {
|
||||
|
||||
@@ -13,7 +13,7 @@ import type {
|
||||
GitHubPRReviewerRow,
|
||||
GitHubWorkItem
|
||||
} from '../mobile-tasks-provider-detail-types'
|
||||
import { GITHUB_PR_MERGE_METHOD_I18N_KEYS } from '../../../../src/shared/github/pull-request-merge-methods'
|
||||
import { GITHUB_PR_MERGE_METHOD_I18N_KEYS } from '../../../../src/shared/github/pull-requests/merge/pull-request-merge-methods'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
|
||||
export const LINEAR_PRIORITY_LABELS: Record<number, string> = {
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
githubWorkItemTargetKey,
|
||||
resolveGitHubWorkItemTarget,
|
||||
matchesGitHubWorkItemTarget
|
||||
} from '../../../../src/shared/github/work-item-target'
|
||||
} from '../../../../src/shared/github/work-items/work-item-target'
|
||||
|
||||
export function githubTaskKey(source: GitHubWorkItem): string {
|
||||
const target = resolveGitHubWorkItemTarget(source)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { getGitHubTaskKind } from '../../../../src/shared/work-items/task-github-search'
|
||||
|
||||
import type { RpcSuccess } from '../../transport/rpc/rpc-wire-types'
|
||||
import type { GitHubOwnerRepo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import { colors } from '../../theme/mobile-theme'
|
||||
import type {
|
||||
GitHubPreset,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GitHubOwnerRepo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import { colors } from '../../theme/mobile-theme'
|
||||
import {
|
||||
getLinearPriorityLabel,
|
||||
|
||||
@@ -3,8 +3,8 @@ import { githubTaskKey, requireGitHubTaskTarget } from './github-task-identity'
|
||||
import {
|
||||
matchesGitHubWorkItemTarget,
|
||||
GitHubWorkItemTargetError
|
||||
} from '../../../../src/shared/github/work-item-target'
|
||||
import type { ProviderCheckSummary } from '../../../../src/shared/github/pull-request-types'
|
||||
} from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import type { ProviderCheckSummary } from '../../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitLabWorkItem } from '../mobile-tasks-provider-detail-types'
|
||||
import type { ItemDetailMetadataEffectsModel } from './use-mobile-tasks-item-detail-metadata-effects'
|
||||
import { fetchJiraIssueDetail } from '../providers/jira/mobile-jira-task-source'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GitHubOwnerRepo } from '../../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../../src/shared/github/repositories/repository-identity'
|
||||
import type { SendRequestOptions } from '../../transport/rpc/unvalidated-rpc-request-port'
|
||||
import {
|
||||
SHOW_MOBILE_DETAIL_METADATA_EDITORS,
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import type { ExecutionHostId } from '../../../src/shared/execution-host'
|
||||
import type {
|
||||
ProviderCheckSummary,
|
||||
GitHubOwnerRepo
|
||||
} from '../../../src/shared/github/pull-request-types'
|
||||
import type { ProviderCheckSummary } from '../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import type { GitHubRepositoryIdentity as GitHubOwnerRepo } from '../../../src/shared/github/repositories/repository-identity'
|
||||
import type { RpcClient } from '../transport/rpc/rpc-client-contract'
|
||||
import type { HostedReviewDecision } from '../../../src/shared/source-control/hosted-review/hosted-review-contracts'
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ import type { DetailComment } from './mobile-tasks-provider-detail-types'
|
||||
import type { TuiAgent } from '../../../src/shared/agent-launch/catalog/tui-agent'
|
||||
import type { TaskProvider } from '../../../src/shared/work-items/task-providers'
|
||||
import type { GitHubProjectSettings } from './project-board/github-project-reference'
|
||||
import type { GitHubProjectIdentity as GitHubProjectRef } from '../../../src/shared/github/project-identity'
|
||||
import type { GitHubProjectSortDirection } from '../../../src/shared/github/project-types'
|
||||
import type { GitHubProjectIdentity as GitHubProjectRef } from '../../../src/shared/github/projects/project-identity'
|
||||
import type { GitHubProjectSortDirection } from '../../../src/shared/github/projects/project-types'
|
||||
import type { JiraIssueFilter } from '../../../src/shared/jira/jira-types'
|
||||
|
||||
export type GitHubTaskKind = 'issues' | 'prs'
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import {
|
||||
GITHUB_OWNER_NUMBER_SHORTHAND_RE,
|
||||
GITHUB_OWNER_SLUG_RE
|
||||
} from '../../../../src/shared/github/owner-slug'
|
||||
} from '../../../../src/shared/github/repositories/owner-slug'
|
||||
import type {
|
||||
GitHubProjectIdentity,
|
||||
GitHubProjectIdentity as GitHubProjectRef
|
||||
} from '../../../../src/shared/github/project-identity'
|
||||
} from '../../../../src/shared/github/projects/project-identity'
|
||||
|
||||
export type GitHubProjectOwnerType = GitHubProjectIdentity['ownerType']
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
githubRepoIdentityKey,
|
||||
isDefaultGitHubHost
|
||||
} from '../../../../src/shared/github/repository-identity-key'
|
||||
} from '../../../../src/shared/github/repositories/repository-identity-key'
|
||||
|
||||
export type GitHubProjectRepoMatch = {
|
||||
id: string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { projectContentField } from '../../../../src/shared/github/project-content-field'
|
||||
import { projectContentField } from '../../../../src/shared/github/projects/project-content-field'
|
||||
import type { ConnectionPresentationModel } from '../screen-state/use-mobile-tasks-connection-presentation'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
import { View, Text, Pressable, FlatList } from 'react-native'
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
githubProjectIdentityKey as githubProjectKey,
|
||||
toGitHubProjectIdentity,
|
||||
type GitHubProjectIdentity as GitHubProjectRef
|
||||
} from '../../../../src/shared/github/project-identity'
|
||||
} from '../../../../src/shared/github/projects/project-identity'
|
||||
import { PickerModal } from '../../components/PickerModal'
|
||||
import { ListGroup, SectionHeader, ListRow } from '../../components/list/ListGroup'
|
||||
import { styles } from '../mobile-tasks-legacy-styles'
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
import {
|
||||
projectContentField,
|
||||
projectContentFieldLabel
|
||||
} from '../../../../src/shared/github/project-content-field'
|
||||
} from '../../../../src/shared/github/projects/project-content-field'
|
||||
import { translate } from '../../i18n/mobile-i18n'
|
||||
import type { GitHubProjectTable as SharedGitHubProjectTable } from '../../../../src/shared/github/project-types'
|
||||
import { isIterationCurrent } from '../../../../src/shared/github/project-group-sort'
|
||||
import type { ProjectGroup } from '../../../../src/shared/github/project-group-sort'
|
||||
import type { GitHubProjectTable as SharedGitHubProjectTable } from '../../../../src/shared/github/projects/project-types'
|
||||
import {
|
||||
isIterationCurrent,
|
||||
type ProjectGroup
|
||||
} from '../../../../src/shared/github/projects/project-group-sort'
|
||||
|
||||
import type { ProjectSortOverride } from '../task-list/mobile-tasks-options'
|
||||
import type {
|
||||
GitHubProjectField,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as z from 'zod'
|
||||
import type { GitHubProjectOwnerType } from '../../../../src/shared/github/project-types'
|
||||
import type { GitHubProjectOwnerType } from '../../../../src/shared/github/projects/project-types'
|
||||
import { hostUnionArms, salvagedOptional, salvagingArray } from '../../../../src/shared/zod-salvage'
|
||||
import {
|
||||
assignableUserListSchema,
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
githubProjectHost,
|
||||
githubProjectIdentityKey as githubProjectKey,
|
||||
toGitHubProjectIdentity
|
||||
} from '../../../../src/shared/github/project-identity'
|
||||
} from '../../../../src/shared/github/projects/project-identity'
|
||||
import { useCallback, useRef } from 'react'
|
||||
import type { GitHubProjectTable } from '../mobile-tasks-view-state-types'
|
||||
import {
|
||||
|
||||
@@ -3,12 +3,16 @@ import {
|
||||
filterGitHubProjectRowsForRepos,
|
||||
findRepoForGitHubProjectRepository
|
||||
} from './github-project-repo-match'
|
||||
import { githubProjectHost } from '../../../../src/shared/github/project-identity'
|
||||
import { githubProjectHost } from '../../../../src/shared/github/projects/project-identity'
|
||||
import { hasSettledHostRepoList } from '../repositories/host-repo-list'
|
||||
import { isHostedTaskRepo } from '../repositories/hosted-repo-selection'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
import { groupRows, sortRows } from '../../../../src/shared/github/project-group-sort'
|
||||
import type { ProjectGroup } from '../../../../src/shared/github/project-group-sort'
|
||||
import {
|
||||
groupRows,
|
||||
sortRows,
|
||||
type ProjectGroup
|
||||
} from '../../../../src/shared/github/projects/project-group-sort'
|
||||
|
||||
import type { GitHubProjectRow } from '../mobile-tasks-view-state-types'
|
||||
import type { ProjectListEntry } from '../task-list/mobile-tasks-options'
|
||||
import type { RepoSummary } from '../mobile-tasks-provider-detail-types'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ProjectProjectionModel } from './use-mobile-tasks-project-projection'
|
||||
import { githubProjectIdentityKey as githubProjectKey } from '../../../../src/shared/github/project-identity'
|
||||
import { githubProjectIdentityKey as githubProjectKey } from '../../../../src/shared/github/projects/project-identity'
|
||||
import { useEffect, useMemo } from 'react'
|
||||
import { GITHUB_REPO_CONCURRENCY } from '../task-list/mobile-tasks-options'
|
||||
import {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { JIRA_FILTER_LABELS } from '../providers/jira/mobile-jira-issue-filters'
|
||||
import { jiraSiteLabel } from '../providers/jira/jira-mobile-connection'
|
||||
import { useMobileTranslation } from '../../i18n/use-mobile-translation'
|
||||
import type { PickerOption } from '../../components/PickerModal'
|
||||
import { githubProjectIdentityKey as githubProjectKey } from '../../../../src/shared/github/project-identity'
|
||||
import { githubProjectIdentityKey as githubProjectKey } from '../../../../src/shared/github/projects/project-identity'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
import { useMobileColorScheme } from '../../theme/use-mobile-color-scheme'
|
||||
import {
|
||||
|
||||
@@ -10,7 +10,7 @@ import type {
|
||||
GitHubProjectSummary,
|
||||
GitHubProjectViewSummary
|
||||
} from './github-project-reference'
|
||||
import type { GitHubProjectIdentity as GitHubProjectRef } from '../../../../src/shared/github/project-identity'
|
||||
import type { GitHubProjectIdentity as GitHubProjectRef } from '../../../../src/shared/github/projects/project-identity'
|
||||
import type { PersistedTrustedOrcaHooks } from '../../../../src/shared/orca-yaml-hook-types'
|
||||
import type { SparsePreset } from '../../../../src/shared/worktree/create-types'
|
||||
import type { WorkspaceAgentChoice } from '../../new-workspace/creation/workspace-agent-selection'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-item-types'
|
||||
import type { GitHubWorkItem } from '../../../../src/shared/github/work-items/work-item-types'
|
||||
import type { RpcClient } from '../../transport/rpc/rpc-client-contract'
|
||||
import type { SendRequestOptions } from '../../transport/rpc/unvalidated-rpc-request-port'
|
||||
import { bindDeferredRpcOperation, defineRpcOperation } from '../../transport/rpc/rpc-operation'
|
||||
|
||||
@@ -4,8 +4,8 @@ import { colors } from '../../theme/mobile-theme'
|
||||
import { getLinkedWorkItemSuggestedName } from '../../new-workspace/creation/mobile-workspace-name'
|
||||
import type { GitHubProjectSettings } from '../project-board/github-project-reference'
|
||||
import type { TaskProvider } from '../../../../src/shared/work-items/task-providers'
|
||||
import type { GitHubProjectSortDirection } from '../../../../src/shared/github/project-types'
|
||||
import type { ProjectGroup } from '../../../../src/shared/github/project-group-sort'
|
||||
import type { GitHubProjectSortDirection } from '../../../../src/shared/github/projects/project-types'
|
||||
import type { ProjectGroup } from '../../../../src/shared/github/projects/project-group-sort'
|
||||
import type {
|
||||
GitHubMode,
|
||||
GitHubPreset,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ClassifiedError } from '../../../../src/shared/classified-error'
|
||||
import { getWorkItemPageErrorTypes } from '../../../../src/shared/github/work-item-page-errors'
|
||||
import { getWorkItemPageErrorTypes } from '../../../../src/shared/github/work-items/work-item-page-errors'
|
||||
import type { RuntimeHydrationModel } from '../screen-state/use-mobile-tasks-runtime-hydration'
|
||||
import {
|
||||
readJiraConnection,
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
getWorkItemCountedTotalPages,
|
||||
taskPageToGitHubApiPage
|
||||
} from '../../../../src/shared/work-items/work-item-pagination'
|
||||
import { isGitHubWorkItemsSshRemoteRequiredError } from '../../../../src/shared/github/work-item-ssh-error'
|
||||
import { isGitHubWorkItemsSshRemoteRequiredError } from '../../../../src/shared/github/work-items/work-item-ssh-error'
|
||||
import {
|
||||
type GitHubIssueSourceError,
|
||||
type GitHubIssueSourceFallback,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { normalizePRCheckHeadSha } from '../../../src/shared/github/pr-check-head'
|
||||
import { normalizePRCheckHeadSha } from '../../../src/shared/github/checks/pr-check-head'
|
||||
import * as z from 'zod'
|
||||
import type { GitHubPRFile } from '../../../src/shared/github/pull-request-types'
|
||||
import type { GitHubPRFile } from '../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import { hostUnionArms, salvagedOptional, salvagingArray } from '../../../src/shared/zod-salvage'
|
||||
import {
|
||||
prCount,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { GITHUB_EXACT_OPERATION_UNSUPPORTED } from '../../../../src/shared/github/work-item-target'
|
||||
import { GITHUB_EXACT_OPERATION_UNSUPPORTED } from '../../../../src/shared/github/work-items/work-item-target'
|
||||
import { GITHUB_CONNECTION_CHANGED } from '../../source-control/review/github-target-invocation'
|
||||
import { isKeyedObject, scriptsAbsentResultReply } from '../bridged-parity/divergence-evidence'
|
||||
import { rows } from './changed-bridge-outcomes'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { getProviderChecksOutcome } from '../../../src/shared/source-control/checks/provider-check-summary'
|
||||
import type { CheckStatus } from '../../../src/shared/github/pull-request-types'
|
||||
import type { CheckStatus } from '../../../src/shared/github/pull-requests/pull-request-types'
|
||||
import {
|
||||
getWorkspaceAttachmentKey,
|
||||
getWorkspaceAttachmentUrlScope
|
||||
|
||||
@@ -3,7 +3,7 @@ import type {
|
||||
CheckStatus,
|
||||
PRMergeableState,
|
||||
ProviderCheckSummary
|
||||
} from '../../shared/github/pull-request-types'
|
||||
} from '../../shared/github/pull-requests/pull-request-types'
|
||||
|
||||
export type RawAzureDevOpsStatus = {
|
||||
state?: string | null
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import type { CheckStatus, ProviderCheckSummary } from '../../shared/github/pull-request-types'
|
||||
import type {
|
||||
CheckStatus,
|
||||
ProviderCheckSummary
|
||||
} from '../../shared/github/pull-requests/pull-request-types'
|
||||
import {
|
||||
deriveBitbucketBuildStatus,
|
||||
summarizeBitbucketBuildStatuses,
|
||||
|
||||
@@ -3,7 +3,7 @@ import type {
|
||||
CheckStatus,
|
||||
PRMergeableState,
|
||||
ProviderCheckSummary
|
||||
} from '../../shared/github/pull-request-types'
|
||||
} from '../../shared/github/pull-requests/pull-request-types'
|
||||
|
||||
export type RawBitbucketPullRequest = {
|
||||
id?: number
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { normalizeGhAccountBinding } from '../../../../shared/github/account-binding'
|
||||
import { normalizeGhAccountBinding } from '../../../../shared/github/accounts/account-binding'
|
||||
import type { GhExecOptions } from './gh-exec-file'
|
||||
import { collectGhArgvHostSignals } from './gh-host-args'
|
||||
import type { ResolvedCommand } from '../host-routing/wsl-command-resolution'
|
||||
@@ -38,7 +38,7 @@ export async function resolveBoundGhExecEnv(
|
||||
createGhBoundAccountHostMismatchError,
|
||||
createGhBoundAccountUnavailableError,
|
||||
resolveGhAccountToken
|
||||
} = await import('../../../github/gh-account-token')
|
||||
} = await import('../../../github/accounts/gh-account-token')
|
||||
const normalized = normalizeGhAccountBinding(binding)
|
||||
if (!normalized) {
|
||||
throw createGhBoundAccountUnavailableError(binding)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type * as GhAccountTokenModule from '../../../github/accounts/gh-account-token'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { createFakeSpawnedChild as mockChild } from '../../../../shared/__fixtures__/fake-spawned-child'
|
||||
|
||||
const {
|
||||
spawnMock,
|
||||
@@ -28,9 +28,7 @@ vi.mock('node:child_process', async (importOriginal) => ({
|
||||
spawn: spawnMock
|
||||
}))
|
||||
|
||||
import type * as GhAccountTokenModule from '../../../github/gh-account-token'
|
||||
|
||||
vi.mock('../../../github/gh-account-token', async (importOriginal) => {
|
||||
vi.mock('../../../github/accounts/gh-account-token', async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof GhAccountTokenModule>()
|
||||
return {
|
||||
...actual,
|
||||
@@ -44,24 +42,6 @@ import { ghExecFileAsync } from './gh-exec-file'
|
||||
import { _resetGhRateLimitBreaker, recordGhPrimaryRateLimit } from './gh-rate-limit-breaker'
|
||||
|
||||
/** Spawns a child that settles with `stdout`, capturing the env the runner handed it. */
|
||||
function spawnSettledChild(stdout: string): {
|
||||
env: () => NodeJS.ProcessEnv | undefined
|
||||
} {
|
||||
let capturedEnv: NodeJS.ProcessEnv | undefined
|
||||
spawnMock.mockImplementation(
|
||||
(_cmd: string, _args: string[], opts: { env?: NodeJS.ProcessEnv }) => {
|
||||
capturedEnv = opts.env
|
||||
const child = mockChild()
|
||||
queueMicrotask(() => {
|
||||
child.stdout?.emit('data', Buffer.from(stdout))
|
||||
child.emit('exit', 0, null)
|
||||
child.emit('close', 0, null)
|
||||
})
|
||||
return child
|
||||
}
|
||||
)
|
||||
return { env: () => capturedEnv }
|
||||
}
|
||||
|
||||
describe('ghExecFileAsync account binding', () => {
|
||||
beforeEach(() => {
|
||||
@@ -93,19 +73,6 @@ describe('ghExecFileAsync account binding', () => {
|
||||
_resetGhRateLimitBreaker()
|
||||
})
|
||||
|
||||
it('skips injection for auth probes', async () => {
|
||||
const spawned = spawnSettledChild('')
|
||||
|
||||
await ghExecFileAsync(['auth', 'status'], {
|
||||
host: 'github.com',
|
||||
ghAccount: { host: 'github.com', user: 'Alice' },
|
||||
env: { ...process.env, GH_TOKEN: 'ambient' }
|
||||
})
|
||||
|
||||
expect(resolveGhAccountTokenMock).not.toHaveBeenCalled()
|
||||
expect(spawned.env()?.GH_TOKEN).toBe('ambient')
|
||||
})
|
||||
|
||||
it('fails closed when argv host signals disagree with the binding', async () => {
|
||||
await expect(
|
||||
ghExecFileAsync(['pr', 'list', '--repo', 'github.acme.com/a/b'], {
|
||||
@@ -129,20 +96,6 @@ describe('ghExecFileAsync account binding', () => {
|
||||
}
|
||||
)
|
||||
|
||||
it('still spawns the keyring token read while the core bucket is blocked', async () => {
|
||||
recordGhPrimaryRateLimit('core', Date.now() + 60_000, 'native:github.com')
|
||||
const spawned = spawnSettledChild('gho_bound\n')
|
||||
|
||||
const { stdout } = await ghExecFileAsync(
|
||||
['auth', 'token', '--user', 'Alice', '--hostname', 'github.com'],
|
||||
{ host: 'github.com' }
|
||||
)
|
||||
|
||||
expect(stdout.trim()).toBe('gho_bound')
|
||||
expect(spawnMock).toHaveBeenCalledTimes(1)
|
||||
expect(spawned.env()).toBeDefined()
|
||||
})
|
||||
|
||||
it('fails a bound API call fast on a blocked bucket without resolving a token', async () => {
|
||||
recordGhPrimaryRateLimit('core', Date.now() + 60_000, 'native:github.com')
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ import {
|
||||
import {
|
||||
__resetPRConflictSummaryCachesForTests,
|
||||
getPRConflictSummary
|
||||
} from '../../github/conflict-summary'
|
||||
import { __resetPRConflictSummaryDerivationCachesForTests } from '../../github/conflict-summary-cache'
|
||||
} from '../../github/pull-requests/conflicts/conflict-summary'
|
||||
import { __resetPRConflictSummaryDerivationCachesForTests } from '../../github/pull-requests/conflicts/conflict-summary-cache'
|
||||
import { getLocalGitCapabilityCache } from '../command-runner/host-routing/git-capability-state'
|
||||
|
||||
import { deleteBranchAfterWorktreeRemoval } from '../worktrees/removal/worktree-branch-removal'
|
||||
|
||||
@@ -9,16 +9,12 @@ vi.mock('../command-runner/git-exec-file', async (importOriginal) => ({
|
||||
...(await importOriginal<Record<string, unknown>>()),
|
||||
gitExecFileAsync: gitExecFileAsyncMock
|
||||
}))
|
||||
vi.mock('../../github/local-git-config-signature', () => ({
|
||||
vi.mock('../../github/repositories/local-git-config-signature', () => ({
|
||||
readLocalGitConfigSignature: readLocalGitConfigSignatureMock
|
||||
}))
|
||||
|
||||
import { REMOTE_URL_PROBE_TIMEOUT_MS } from './remote-url-probe'
|
||||
import {
|
||||
_resetRemoteNameListingCache,
|
||||
listCachedRemoteNames,
|
||||
shouldProbeGitRemote
|
||||
} from './remote-name-listing'
|
||||
import { _resetRemoteNameListingCache, shouldProbeGitRemote } from './remote-name-listing'
|
||||
|
||||
function remoteListCalls(): unknown[][] {
|
||||
return gitExecFileAsyncMock.mock.calls.filter(
|
||||
@@ -92,22 +88,6 @@ describe('cached git remote name listing', () => {
|
||||
expect(remoteListCalls()).toHaveLength(2)
|
||||
})
|
||||
|
||||
it('coalesces concurrent listings onto one spawn', async () => {
|
||||
gitExecFileAsyncMock.mockImplementation(async () => {
|
||||
await Promise.resolve()
|
||||
return { stdout: 'origin\n' }
|
||||
})
|
||||
|
||||
await expect(
|
||||
Promise.all([
|
||||
shouldProbeGitRemote('/repo', 'upstream'),
|
||||
shouldProbeGitRemote('/repo', 'upstream'),
|
||||
listCachedRemoteNames('/repo')
|
||||
])
|
||||
).resolves.toEqual([false, false, ['origin']])
|
||||
expect(remoteListCalls()).toHaveLength(1)
|
||||
})
|
||||
|
||||
it('keeps host and WSL listings separate', async () => {
|
||||
gitExecFileAsyncMock.mockImplementation(
|
||||
async (_args: string[], options: { wslDistro?: string } = {}) => ({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { readLocalGitConfigSignature } from '../../github/local-git-config-signature'
|
||||
import { readLocalGitConfigSignature } from '../../github/repositories/local-git-config-signature'
|
||||
import { runCoalescedProbe, type CoalescedProbes } from './coalesced-probe'
|
||||
import type { GitAdmissionTier } from '../../../shared/rpc-contract/git-admission-tier-params'
|
||||
import { REMOTE_URL_PROBE_TIMEOUT_MS } from './remote-url-probe'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { parseGitRemoteVerboseOutput } from '../../../shared/git/remotes/git-remote-identity'
|
||||
import { isDefaultGitHubHost } from '../../../shared/github/repository-identity-key'
|
||||
import { isGitHubHostAuthenticated } from '../../github/github-enterprise-repository'
|
||||
import { parseGitHubRemoteIdentity } from '../../github/github-remote-identity-parsing'
|
||||
import { isDefaultGitHubHost } from '../../../shared/github/repositories/repository-identity-key'
|
||||
import { isGitHubHostAuthenticated } from '../../github/repositories/github-enterprise-repository'
|
||||
import { parseGitHubRemoteIdentity } from '../../github/repositories/github-remote-identity-parsing'
|
||||
import {
|
||||
getGlabKnownHosts,
|
||||
getGlabPartialHosts
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user