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-sourcesAI 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.
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 cloneThis 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.
Repositories you configured under the previous provider are not local imports. Their leftover clones will fail to index until you re-import them. Remove the stale namespaces first (bitoarch remove-repo <namespace>), then import as below.
2. Import your repositories
import-repos scans the immediate subdirectories of the path and, for each repository:
Checks the directory name is namespace-safe and the tree is fully readable.
Checks the size against
CIS_REPO_SIZE_LIMITbefore copying anything.Registers it as namespace
local/<directory-name>.Copies it onto the platform's shared clone volume.
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
HEADalready 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
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
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.
Related environment variables
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
CLI Reference — all
bitoarchcommands
Last updated

