424 lines · 17.7 KB
import { requestCodeIndex } from "~/server/code/search-index";
import { createServerFn } from "@tanstack/react-start";
import { kickRepoInsights } from "~/server/insights/repo-insights-do";
import { assertBelowCap, CAPS, limitWrite, limitAccountWrite, withinRateLimit, MAX_PAGE } from "~/server/limits";
import { z } from "zod";
import { MAX_TOPIC_LENGTH, MAX_TOPICS, normalizeTopics, parseTopics, TopicError } from "~/lib/topics";
import { requireViewer, viewerMiddleware } from "./middleware";
import { all, batch, first, run } from "~/server/db";
import { addCounter, counterTotals } from "~/server/counters";
import { REPO_STARS } from "~/server/counter-keys";
import { repoMoveStatements } from "~/server/redirects";
import { syncHostingForRepo } from "~/server/sites/sync";
import { isScratchRepo } from "~/server/sites/config";
import {
  assertOwnerNotDisabled,
  assertNotArchived,
  canCreateInAccount,
  hasPermission,
  hasPrivateForkAncestor,
  requireRepoAccess,
  toRepoSummaries,
  toRepoSummary,
  visibleReposClause,
} from "~/server/repos";
import {
  createRepository,
  deleteRepository,
  forkRepository,
  importRepository,
  refreshRepoStatus,
  reindexRepo,
} from "~/server/repo-ops";
import { listRefs } from "~/server/git/refs";
import { containersEnabled } from "~/server/editor/container-config";
import { containersAllowedFor } from "~/server/editor/container-meter";
import { ownerAccount, setCollaborator as setRepoCollaborator } from "~/server/collaborators";
import { assertCanFork } from "~/server/fork-policy";
import { purgeRepoCaches } from "~/server/git/cache-purge";
import { dropHiddenRefsForRepo, requestHiddenRefCleanup } from "~/server/git/pull-bridge";
import { syncRepoAdvisoryIndex } from "~/server/security/advisory-packages";