Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: CI

on:
push:
branches: [refacs*, main]
tags: ['v*']

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm

- run: npm ci

- run: npm run compile

- run: npm test --if-present

publish:
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- run: npm ci

- run: npx @vscode/vsce publish
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"preLaunchTask": "${workspaceFolder}/npm: compile"
"preLaunchTask": "npm: compile"
}
]
}
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Git4Neo

[![CI](https://github.com/aycsi/git4neo/actions/workflows/ci.yml/badge.svg)](https://github.com/aycsi/git4neo/actions/workflows/ci.yml)

Analyze Git repositories as a Neo4j knowledge graph. Connect one or many repos, then explore contributors, dependencies, code complexity, and cross-repo relationships through graph queries and built-in visualizations.

## Setup

1. Install the extension
2. Have a Neo4j instance running
3. Run **Git4Neo: Setup** from the command palette to configure your connection
4. You'll also need a GitHub token for fetching repository data

## Configuration
Settings are under `git4neo.*` in VS Code:

- `neo4jUri` -- bolt URI (default: `bolt://localhost:7687`)
- `neo4jUsername` -- default: `neo4j`
- `neo4jPassword` -- your Neo4j password
- `githubToken` -- GitHub personal access token
Binary file modified icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 16 additions & 16 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

126 changes: 116 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,36 +1,60 @@
{
"name": "git4neo",
"displayName": "Git4Neo",
"description": "A comprehensive tool to get repository data towards Neo4j",
"version": "0.0.7",
"description": "Analyze Git repositories as a Neo4j knowledge graph",
"version": "0.1.0",
"publisher": "aycsi",
"icon": "icon.png",
"keywords": [
"neo4j",
"git",
"repository",
"graph",
"database",
"github",
"data-science"
"analytics",
"code-analysis",
"repository",
"visualization",
"contributors",
"dependencies",
"github"
],
"engines": {
"vscode": "^1.74.0"
},
"categories": [
"Data Science",
"Other"
"Visualization",
"SCM Providers"
],
"activationEvents": [
"onCommand:git4neo.testExtension",
"onCommand:git4neo.connectRepository",
"onCommand:git4neo.connectMultipleRepositories",
"onCommand:git4neo.viewGraph",
"onCommand:git4neo.openBatchManager",
"onCommand:git4neo.runQuery"
"onCommand:git4neo.runQuery",
"onCommand:git4neo.setupWizard",
"onCommand:git4neo.crossRepoAnalysis",
"onCommand:git4neo.exportInsights"
],
"main": "./out/extension.js",
"contributes": {
"viewsContainers": {
"activitybar": [
{
"id": "git4neo",
"title": "Git4Neo",
"icon": "icon.png"
}
]
},
"views": {
"git4neo": [
{
"id": "git4neo.insights",
"name": "Insights"
}
]
},
"commands": [
{
"command": "git4neo.testExtension",
Expand All @@ -55,6 +79,27 @@
{
"command": "git4neo.runQuery",
"title": "Git4Neo: Run Cypher Query"
},
{
"command": "git4neo.setupWizard",
"title": "Git4Neo: Setup Wizard"
},
{
"command": "git4neo.refreshInsights",
"title": "Git4Neo: Refresh Insights",
"icon": "$(refresh)"
},
{
"command": "git4neo.selectRepo",
"title": "Git4Neo: Select Repository"
},
{
"command": "git4neo.crossRepoAnalysis",
"title": "Git4Neo: Cross-Repo Analysis"
},
{
"command": "git4neo.exportInsights",
"title": "Git4Neo: Export Insights"
}
],
"configuration": {
Expand Down Expand Up @@ -82,6 +127,18 @@
}
},
"menus": {
"view/title": [
{
"command": "git4neo.refreshInsights",
"when": "view == git4neo.insights",
"group": "navigation"
},
{
"command": "git4neo.selectRepo",
"when": "view == git4neo.insights",
"group": "navigation"
}
],
"explorer/context": [
{
"command": "git4neo.connectRepository",
Expand Down Expand Up @@ -122,13 +179,62 @@
"when": "true"
}
]
}
},
"walkthroughs": [
{
"id": "git4neo.getStarted",
"title": "Get Started with Git4Neo",
"description": "Turn your Git repositories into a Neo4j knowledge graph",
"steps": [
{
"id": "setupNeo4j",
"title": "Connect to Neo4j",
"description": "Run the setup wizard to configure your Neo4j connection.\n\n[Run Setup Wizard](command:git4neo.setupWizard)",
"media": {
"markdown": ""
}
},
{
"id": "connectRepo",
"title": "Analyze Your First Repository",
"description": "Connect a GitHub repository to Neo4j for graph-based analysis.\n\n[Connect Repository](command:git4neo.connectRepository)",
"media": {
"markdown": ""
}
},
{
"id": "viewGraph",
"title": "Explore the Graph",
"description": "Open Neo4j Browser to visualize your repository data as a graph.\n\n[View Graph](command:git4neo.viewGraph)",
"media": {
"markdown": ""
}
},
{
"id": "runQuery",
"title": "Run a Cypher Query",
"description": "Query your repository graph directly with Cypher.\n\n[Run Query](command:git4neo.runQuery)",
"media": {
"markdown": ""
}
},
{
"id": "batchAnalysis",
"title": "Analyze Multiple Repositories",
"description": "Use the Batch Manager to process many repos at once.\n\n[Open Batch Manager](command:git4neo.openBatchManager)",
"media": {
"markdown": ""
}
}
]
}
]
},
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"test": "jest"
"test": "jest --passWithNoTests"
},
"devDependencies": {
"@types/jest": "^29.0.0",
Expand Down
Loading