GitDBDocs
gitdb.co platform

AST indexing

Index a repository's code structure so agents can search it by symbol and by meaning — what data is shared, how consent works, manual versus automatic indexing, and what each status means.

AST indexing parses a repository's source code into a symbol index (functions, classes, methods) and a semantic search index. That's what lets AI agents find code by symbol and by meaning through GitDB's symbol and semantic search tools. Until a repository is indexed, those tools aren't available for it.

Indexing needs your agreement, because it involves third-party processing.

What's shared, and with whom

When you agree, you accept the AST indexing terms (agreement version ast-privacy-v3). In short:

  • Parsing runs entirely on gitdb.co servers.
  • Sent to embedding processors: only code-symbol names and signatures. Never file contents, commit messages, or repository metadata. They go to Microsoft Azure (Azure OpenAI Service) and/or OpenAI, Inc. to generate embeddings.
  • Split between processors: when both processors are used, the symbols are divided so that each receives only a disjoint portion. Neither ever receives the complete set of your repository's symbols.
  • Stored on gitdb.co: the resulting vectors, the symbol index, and all file contents stay in gitdb.co storage.
  • One processor only? If you prefer a single processor (Azure only or OpenAI only) for your repositories, contact support@keyes.ai. That preference always overrides mixed processing.
  • Your consent record: your acceptance is recorded with your account, a timestamp, and the agreement version. Turning automation off later stops future indexing, but doesn't delete existing indexes or your consent record.

Index a repository

  1. Open the repository. If it isn't indexed, the page shows This repository is not AST-indexed and an AST index button.
  2. Click AST index. The Enable AST indexing dialog shows the full terms.
  3. Choose the automation you want:
    • "Automatically index org/repo on future pushes (keeps the index up to date)." Checked by default.
    • "Automatically index all my repositories on future pushes." This turns on the account-wide setting at Settings → Public profile → AST indexing. Unchecked by default.
  4. Click Agree & index.

The job is queued and the banner follows it. Large repositories take a few minutes; the banner updates on its own while the job runs.

You need write access to start indexing: members with the readonly role can't.

Manual or automatic

WhereSettingCovers
Settings → Public profile → AST indexingManual (default) or Automatic (index on every push). Use Enable automatic or Switch to manual.Your personal repositories
Organization Settings → Enterprise settings → Automatic AST indexingEnable / Disable (organization owner)All of the organization's repositories
The repository's AST index dialog"Automatically index org/repo on future pushes"That one repository
  • Manual: a repository is indexed only when someone clicks AST index on its page. New pushes aren't indexed, so the index shows the code as of the last run.
  • Automatic: every push is indexed.

Turning automatic indexing on asks you to accept the same agreement first.

Status on the repository page

The indexing status is always visible at the top of the repository's Code tab:

StatusMeaning
AST indexed (with a date)The index is up to date as of that time; symbol and semantic search work.
AST indexed — embeddings degradedIndexed, but embedding generation was degraded on the last run. Symbol and semantic search are still available.
AST indexing queued — position NWaiting in the queue.
AST indexing running…The job is running now.
This repository is not AST-indexedNever indexed. Click AST index.
AST index is frozenIndexed before, but the repository is in manual mode, so new pushes aren't indexed. Search serves the last indexed state. Click AST index to update it.
AST indexing failedThe last run didn't complete. Search may be unavailable or stale. The banner may show the error. Click Retry AST index (or AST index).

On this page