Skip to main content

๐Ÿš€ Quick Start Guide

Welcome to Unoplat Code Confluence - Your Gateway to Code Understanding!

Current Status

๐Ÿ”„ 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:

Prerequisitesโ€‹

Before you begin, ensure you have the following tools installed:

ToolPurpose
๐Ÿš€ 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:

  1. 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
  2. Launch Services:

    docker compose -f prod-docker-compose.yml up -d
  3. 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"
}
}
]
}
]
}
tip

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.

note

Currently, the only supported language is Python.

Configuration Fieldsโ€‹

FieldDescription
repositoriesArray of repositories to analyze
git_urlRepository URL (HTTPS)
output_pathLocal directory for analysis output
codebasesArray of codebase configurations
codebase_folderPath to codebase within repository
root_packagePath to root package/module
programming_language_metadataLanguage 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โ€‹

  1. Create Virtual Environment:

    uv venv
  2. Install Code Confluence CLI:

    uv pip install "git+https://github.com/unoplat/unoplat-code-confluence.git#subdirectory=unoplat-code-confluence-cli" 

Running the Applicationโ€‹

  1. 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 PAT

    If you don't have a GitHub PAT:

    1. Go to GitHub Settings โ†’ Developer Settings โ†’ Personal Access Tokens โ†’ Tokens (classic)

    2. Click "Generate new token (classic)"

    3. Give it a name like "CodeConfluence"

    4. Select only the repo scope (this gives read access to repositories)

    5. Click "Generate token" and copy it

    You only need read access since we'll just be cloning repositories!

  2. Access Neo4j Browser:

    • ๐ŸŒ Open: http://localhost:7474/browser/
    • ๐Ÿ”‘ Login with:
      Username: neo4j
      Password: password
  3. Explore Your Code Graph:

    MATCH (n) 
    RETURN n
    LIMIT 25
tip

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โ€‹

  1. GitHub Issues

    • ๐Ÿ“ Visit GitHub Issues ยป to:
      • Report bugs or request features
      • Browse existing solutions
      • Get developer support
  2. Community Support

note

Remember to check existing issues before creating a new one!