๐ Quick Start Guide
Welcome to Unoplat Code Confluence - Your Gateway to Code Understanding!
๐ Unoplat Code Confluence currently supports Python codebases and is in alpha stage. We're actively working on expanding language support and features. While in alpha stage, it's best suited for developers and tech enthusiasts who enjoy exploring new tools, don't mind a few rough edges, and are willing to provide feedback as we work towards establishing a complete end-to-end workflow!
๐ Table of Contentsโ
Introductionโ
The current version supports parsing codebases and exporting a JSON representation of code graph. For more details, check out:
- ๐ Vision ยป
Prerequisitesโ
Before you begin, ensure you have the following tools installed:
Tool | Purpose |
---|---|
๐ uv ยป | Fast Python package installer and resolver |
๐ณ Docker & Docker Compose ยป | For running services |
Setting Up Code Confluenceโ
Follow these steps to set up the ingestion engine:
-
Create Project Directory and Download Configuration:
mkdir -p code-confluence && cd code-confluence
# Download Docker Compose file
curl -O https://raw.githubusercontent.com/unoplat/unoplat-code-confluence/main/unoplat-code-confluence-ingestion/code-confluence-flow-bridge/prod-docker-compose.yml -
Launch Services:
docker compose -f prod-docker-compose.yml up -d
-
Verify Deployment:
docker compose -f prod-docker-compose.yml ps
Repository Configurationโ
๐ Creating Your Configurationโ
Create a config.json
file with your repository details:
Basic Configuration Template
{
"repositories": [
{
"git_url": "https://github.com/your-org/your-repo",
"output_path": "/path/to/output/directory",
"codebases": [
{
"codebase_folder": "path/to/codebase",
"root_package": "src/package_name",
"programming_language_metadata": {
"language": "python",
"package_manager": "uv"
}
}
]
}
]
}
You can configure multiple repositories by including additional objects in the "repositories" array, and within each repository, you can specify multiple codebases in the "codebases" array. All of these will be processed in parallel.
Currently, the only supported language is Python.
Configuration Fieldsโ
Field | Description |
---|---|
repositories | Array of repositories to analyze |
git_url | Repository URL (HTTPS) |
output_path | Local directory for analysis output |
codebases | Array of codebase configurations |
codebase_folder | Path to codebase within repository |
root_package | Path to root package/module |
programming_language_metadata | Language configuration details |
๐ก Example Configurationโ
Real-world Configuration Example
{
"repositories": [
{
"git_url": "https://github.com/unoplat/unoplat-code-confluence",
"output_path": "/Users/username/Documents/unoplat",
"codebases": [
{
"codebase_folder": "unoplat-code-confluence-ingestion/code-confluence-flow-bridge",
"root_package": "src/code_confluence_flow_bridge",
"programming_language_metadata": {
"language": "python",
"package_manager": "uv"
}
}
]
}
]
}
CLI Installationโ
-
Create Virtual Environment:
uv venv
-
Install Code Confluence CLI:
uv pip install "git+https://github.com/unoplat/unoplat-code-confluence.git#subdirectory=unoplat-code-confluence-cli"
Running the Applicationโ
-
Execute Analysis:
code-confluence --config /path/to/your/config.json
When you run this command, you'll be prompted to enter a GitHub Personal Access Token (PAT). This token is needed to clone the repositories specified in your config file.
Getting a GitHub PATIf you don't have a GitHub PAT:
-
Go to GitHub Settings โ Developer Settings โ Personal Access Tokens โ Tokens (classic)
-
Click "Generate new token (classic)"
-
Give it a name like "CodeConfluence"
-
Select only the
repo
scope (this gives read access to repositories) -
Click "Generate token" and copy it
You only need read access since we'll just be cloning repositories!
-
-
Access Neo4j Browser:
- ๐ Open:
http://localhost:7474/browser/
- ๐ Login with:
Username: neo4j
Password: password
- ๐ Open:
-
Explore Your Code Graph:
MATCH (n)
RETURN n
LIMIT 25
The above query displays the first 25 nodes in your code graph, perfect for a quick overview!
Troubleshootingโ
Need assistance? We're here to help!
๐ Support Optionsโ
-
GitHub Issues
- ๐ Visit GitHub Issues ยป to:
- Report bugs or request features
- Browse existing solutions
- Get developer support
- ๐ Visit GitHub Issues ยป to:
-
Community Support
- ๐ฌ Join our Discord Community ยป to:
- Connect with other users
- Get real-time assistance
- ๐ฌ Join our Discord Community ยป to:
Remember to check existing issues before creating a new one!