For the complete documentation index, see llms.txt. This page is also available as Markdown.

Local Git Provider (Pre-Cloned Repositories) — Setup Guide

Bito's AI Architect can index repositories without any git credentials. Instead of connecting to GitHub, GitLab, Bitbucket, or Azure DevOps, you clone your repositories yourself onto the host that runs AI Architect, and copy them in with a single command:

bitoarch import-repos /srv/bito-sources

AI Architect stores no token, no app key, no username, and no git domain for this provider, and nothing inside the platform ever contacts your git server — every remote is stripped from the copy it keeps.

Use this when: your git server is unreachable from the AI Architect host (air-gapped or segmented network), your policy does not allow issuing a read token, your git server is not one of the four supported providers, or you want to index a source tree that is not in git at all.

Supported on Docker Compose, Standalone, and Kubernetes (single- or multi-node — no extra volume mounts, no hostPath, no shared ReadWriteMany storage).


Prerequisites

  • You can place repository clones on the machine that runs bitoarch.

  • The clones live under one parent directory, with each repository as an immediate subdirectory of it.

  • Each repository directory name uses only a-z A-Z 0-9 _ . - (these become the repository namespace).

  • Every file in every repository is readable by the user running bitoarch.

  • Each repository is at or under CIS_REPO_SIZE_LIMIT (default 5 GB).

  • The platform is running when you import (bitoarch status).

Expected layout:

/srv/bito-sources/
├── backend-api/      ← a git clone
├── web-frontend/     ← a git clone
└── shared-lib/       ← a git clone

This imports as three repositories: local/backend-api, local/web-frontend, and local/shared-lib.


1. Install with the local provider

Interactive install

At the git provider prompt, choose 5:

The installer then skips the enterprise-domain question, the PAT/GitHub App choice, and the access-token prompt, and confirms:

Installation finishes with an empty repository list. You add repositories in step 2.

Non-interactive install

Pre-seed ~/.bitoarch/install.yaml — omit access_token entirely:

local is the only provider for which the installer does not require a git access token.

Switching an existing install to local

Any previously stored PAT or GitHub App key is cleared.


2. Import your repositories

import-repos scans the immediate subdirectories of the path and, for each repository:

  1. Checks the directory name is namespace-safe and the tree is fully readable.

  2. Checks the size against CIS_REPO_SIZE_LIMIT before copying anything.

  3. Registers it as namespace local/<directory-name>.

  4. Copies it onto the platform's shared clone volume.

  5. Removes every git remote from the copy, so nothing in the platform can reach your git server.

The copy is atomic: a repository is only swapped into place once it has transferred completely. A failure leaves any previously imported copy untouched.

It finishes with a summary:

Check progress with bitoarch index-status, and confirm the result with bitoarch index-repo-list or bitoarch repo-info backend-api.


3. Keep repositories up to date

There is no webhook and no polling — you decide when AI Architect sees new commits. Pull in your source clones, then re-run the same command:

Re-running is the update flow and is safe to repeat:

  • A repository whose HEAD already matches the imported copy is skipped (no copy, no re-index).

  • A repository with new commits is re-synced and indexed incrementally on the next run.

  • A new subdirectory is imported and registered automatically.

To automate it, pull and import from cron (or any scheduler) on the AI Architect host:


4. Source trees that are not git repositories

By default a subdirectory without a .git directory is skipped:

To include plain source trees:

AI Architect synthesizes a git history inside its own copy so the indexing pipeline works normally. Your source directory is never modified. Two caveats:

  • Because there is no real commit history, these repositories are always fully re-indexed when their contents change (never incrementally).

  • An unchanged tree still keeps its identity across re-imports, so re-running the command on unchanged sources does not trigger needless re-indexing.


5. Removing a repository

remove-repo deliberately keeps the imported copy on the platform's volume so a later re-add is fast. Reclaim that disk space yourself if you do not plan to re-add the repository.


What differs from a token-based provider

Area
With local

Credentials

None. Nothing is stored; no token to rotate or expire

Adding repositories

bitoarch import-repos <path> — not add-repo / add-repos / a repos YAML

bitoarch fetch-repo-list

Not available — there is no remote to enumerate

Git Insights

Not available — it analyzes remote history and PRs. Disabled automatically at setup

New commits

Picked up only when you re-run import-repos. No webhooks, no polling

Namespaces

Always local/<directory-name> (two segments)

Network access

The platform never contacts your git server. All remotes are stripped from the copy


Troubleshooting

Message / symptom
What to do

import-repos requires the local git provider (current: github)

This install uses a token-based provider. Switch with bitoarch update-git-creds → option 5

No running ai-architect-manager pod found / a docker exec failure

The platform is not running. Start it with bitoarch start, then re-import

Cannot import 'X': not readable by <user> / not fully readable

Fix the source permissions, or re-run as a user that can read every file in that repository. The repository is skipped, not partially copied

Skipping 'X': directory name has characters not allowed in a repo namespace

Rename the directory using only a-z A-Z 0-9 _ . -

Skipping 'X': not a git clone

Add --allow-non-git, or make the directory a real clone

Skipping 'X': size ... exceeds CIS_REPO_SIZE_LIMIT

Trim the repository, or raise CIS_REPO_SIZE_LIMIT in .env-bitoarch and restart

Could not register local/X -- is cis-config reachable?

Check bitoarch status. Once services are healthy, re-run import-repos — it heals partial runs

'X' is already imported at <sha> (skipped)

Expected. The imported copy already matches your source HEAD. Pull new commits first

Imported, but nothing appears in results

Indexing has not run yet. bitoarch index-repos, then watch bitoarch index-status

fetch-repo-list is not available for the local git provider

Expected. Use bitoarch import-repos instead

Full diagnostics: bitoarch diagnose produces a support bundle for support@bito.ai.


Variable
Meaning

GIT_PROVIDER

Set to local for this mode

CIS_CLONE_DIR

Where imported copies live inside the platform (default /opt/bito/ai-architect/data/clone-dir)

CIS_REPO_SIZE_LIMIT

Max indexable size per repository, in bytes (default 5368709120 = 5 GB)


See also

Last updated