Skip to content

Commit 283d32c

Browse files
Merge pull request #10 from fadhly-permata/Initial-Dev
Initial dev
2 parents bbb7596 + e31b2e5 commit 283d32c

8 files changed

Lines changed: 509 additions & 360 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ out/*
22
out/test/*
33
evolog-ai-*.vsix
44
changelog-generator.ps1
5+
.vscode-test
6+
.roomodes

README.md

Lines changed: 38 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,69 @@
11
# EvoLog-AI 🚀
22

3-
**EvoLog-AI** is your AI-powered VS Code extension that turbocharges your development workflow using **Ollama**. It automatically generates commit messages and changelogs so you can focus on coding. 🤖
3+
**EvoLog-AI** is your AI-powered VS Code extension that turbocharges your development workflow using **Ollama**. It automatically generates professional commit messages so you can focus on coding. 🤖
44

55
## ✨ Features
66

77
### 🤖 Generate Commit Messages with AI
88
* **Smart Commit Crafting:** Generate meaningful commit messages using Ollama AI instead of writing them manually ✍️
9-
* **Intelligent Categorization:** AI automatically categorizes commits (like feat, fix, chore, docs, etc.) 🏷️
10-
* **Context-Aware:** Uses your actual code changes to create relevant commit messages 🔍
9+
* **Conventional Commits:** AI automatically categorizes commits using standard prefixes (feat, fix, docs, etc.) 🏷️
10+
* **Context-Aware:** Analyzes your actual code changes (staged or unstaged) to create relevant messages 🔍
11+
* **Local Processing:** All AI processing happens locally on your machine for maximum privacy 🛡️
1112

12-
### 📄 Generate Changelogs from Git History
13-
* **Automated Changelog Generation:** AI analyzes your entire commit history to create comprehensive changelogs 📊
13+
### 📄 Generate Changelogs (Coming Soon)
14+
* **Automated Changelog Generation:** AI will analyze your commit history to create comprehensive changelogs 📊
1415
* **Smart Categorization:** Auto-detects changes such as Added, Refactored, Modified, Deleted, and more 📈
15-
* **Incremental Updates:** Adds new entries without disrupting your existing changelog format 🔄
16-
17-
### 🎨 Customizable Templates
18-
* **Flexible Templates:** Choose from popular formats or create custom templates for both commit messages and changelogs 🎯
19-
20-
### ⚡ Smart Versioning and Updates
21-
* **Smart Versioning:** Suggests semantic version bumps (Major, Minor, Patch) based on change impact 📦
22-
* **Duplicate Protection:** Prevents logging the same commit twice across releases 🛡️
2316

2417
## 🚀 Quick Start
2518

2619
1. **Install Ollama:** Get [Ollama](https://ollama.ai) running on your machine 💻
27-
2. **Setup Model:** Run `ollama run llama3` (or your preferred model) 🤖
20+
2. **Setup Model:** Run `ollama run mistral-large-3:675b-cloud` (or your preferred model) 🤖
2821
3. **Open Project:** Open your Git repository in VS Code 📂
29-
4. **Generate Commit Messages:** Stage your changes and use EvoLog to generate a commit message 💬
30-
5. **Generate Changelogs:** Select commits from source control and let EvoLog create your changelog 📝
22+
4. **Generate Commit Messages:** Click the lightbulb icon in the Source Control view title bar and select **Generate Commit Message** 💬
3123

3224
## ⚙️ Configuration
3325

3426
You can configure the extension in VS Code settings (`Settings > Extensions > EvoLog-AI`):
3527

36-
* `evolog.ollamaHost`: Set the Ollama API endpoint (default: `http://localhost:11434`) 🌐
37-
* `evolog.ollamaModel`: Choose your preferred AI model (default: `llama3`) 🧠
38-
* `evolog.commitTemplate`: Customize the commit message template (default: `conventional`) 💬
39-
* `evolog.changelogTemplate`: Customize the changelog format (default: `keep-a-changelog`) 📄
40-
* `evolog.smartCategorization`: Enable/disable AI-powered categorization (default: `true`) 🧠
28+
* `evolog-ai.ollamaHost`: Set the Ollama API endpoint (default: `http://localhost:11434`) 🌐
29+
* `evolog-ai.ollamaModel`: Choose your preferred AI model (default: `mistral-large-3:675b-cloud`) 🧠
30+
* `evolog-ai.enabled`: Enable or disable the extension (default: `true`) ✅
4131

4232
## 📖 How to Use
4333

4434
### For Commit Messages:
45-
1. Stage your changes in the Source Control view 📁
46-
2. Right-click and select "Generate Commit Message with AI" 🤖
47-
3. Review the generated message and commit ✅
35+
1. Open the **Source Control** view (`Ctrl+Shift+G`) 📁
36+
2. (Optional) Stage the changes you want to include. If no changes are staged, EvoLog will analyze unstaged changes.
37+
3. Click the **EvoLog-AI** (lightbulb) icon in the Source Control title bar.
38+
4. Select **EvoLog-AI: Generate Commit Message** 🤖
39+
5. Review the generated message in the commit input box and commit ✅
4840

49-
### For Changelogs:
50-
1. Open the EvoLog sidebar and select the commits you want to include 🔍
51-
2. Click the generate button to create the changelog 🎯
52-
3. Save the result to your `CHANGELOG.md` file 💾
41+
### Settings Sidebar:
42+
EvoLog-AI provides a convenient settings view directly in the Source Control sidebar where you can quickly:
43+
* View and edit the current Ollama Host.
44+
* Switch between different AI models.
5345

5446
## 🔒 Privacy
5547

5648
EvoLog-AI is privacy-focused. All AI processing happens locally using Ollama—your code never leaves your machine. 🛡️
5749

5850
---
5951

60-
**Built with ❤️ for developers who want to spend more time coding and less time writing docs.** 🎉
52+
**Built with ❤️ for developers who want to spend more time coding and less time writing docs.** 🎉
53+
54+
## 🛠 Development
55+
56+
### Build & Test
57+
- Install dependencies: `npm install`
58+
- Compile TypeScript: `npm run compile`
59+
- Run tests: `npm test`
60+
61+
### Contributing
62+
Contributions are welcome! Please see [`CONTRIBUTING.md`](CONTRIBUTING.md) for guidelines.
63+
64+
## 📦 Implementation Details
65+
66+
- Default Ollama host is defined in [`src/lib/utility.ts:4`](src/lib/utility.ts:4) as `http://localhost:11434`.
67+
- Default model is defined in [`src/lib/utility.ts:5`](src/lib/utility.ts:5) as `mistral-large-3:675b-cloud`.
68+
- Commit message generation uses [`handleGenerateCommitMessage`](src/lib/utility.ts:110) which gathers git changes via the VS Code Git extension.
69+
- Settings UI is provided by [`EvoLogAISettingsProvider`](src/lib/view.ts:4) and registered in [`src/extension.ts:9`](src/extension.ts:9).

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 149 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,151 @@
11
{
2-
"name": "evolog-ai",
3-
"displayName": "EvoLog-AI",
4-
"description": "EvoLog-AI is a powerful Visual Studio Code extension that generates professional changelog entries using AI through Ollama.",
5-
"version": "0.0.5",
6-
"publisher": "FadhlyPermata",
7-
"icon": "assets/images/evo.png",
8-
"keywords": [
9-
"git",
10-
"commit",
11-
"ai",
12-
"ollama",
13-
"change log",
14-
"changelog",
15-
"generator"
16-
],
17-
"engines": {
18-
"vscode": "^1.109.0"
19-
},
20-
"categories": [
21-
"Other"
22-
],
23-
"repository": {
24-
"type": "git",
25-
"url": "https://github.com/fadhly-permata/EvoLog-AI"
26-
},
27-
"activationEvents": [],
28-
"main": "./out/extension.js",
29-
"contributes": {
30-
"commands": [
31-
{
32-
"command": "evolog-ai.helloWorld",
33-
"title": "EvoLog-AI: Hello World"
34-
},
35-
{
36-
"command": "evolog-ai.generateCommitMessage",
37-
"title": "EvoLog-AI: Commit Message Generator",
38-
"icon": "$(lightbulb)"
39-
}
40-
],
41-
"menus": {
42-
"scm/title": [
43-
{
44-
"command": "evolog-ai.generateCommitMessage",
45-
"group": "navigation",
46-
"when": "scmProvider == git"
47-
}
48-
]
49-
}
50-
},
51-
"scripts": {
52-
"vscode:prepublish": "npm run compile",
53-
"compile": "tsc -p ./",
54-
"watch": "tsc -watch -p ./",
55-
"pretest": "npm run compile && npm run lint",
56-
"lint": "eslint src",
57-
"test": "vscode-test",
58-
"publish-patch": "npm version patch && npm run compile && vsce publish",
59-
"publish-minor": "npm version minor && npm run compile && vsce publish",
60-
"publish-major": "npm version major && npm run compile && vsce publish",
61-
"version": "git add -A .",
62-
"prepare-release": "npm run compile && npm test",
63-
"release": "npm run prepare-release && vsce publish"
64-
},
65-
"devDependencies": {
66-
"@types/mocha": "^10.0.10",
67-
"@types/node": "22.x",
68-
"@types/vscode": "^1.109.0",
69-
"@vscode/test-cli": "^0.0.12",
70-
"@vscode/test-electron": "^2.5.2",
71-
"eslint": "^9.39.2",
72-
"typescript": "^5.9.3",
73-
"typescript-eslint": "^8.54.0"
74-
}
2+
"name": "evolog-ai",
3+
"displayName": "EvoLog-AI",
4+
"description": "EvoLog-AI is a powerful Visual Studio Code extension that generates professional changelog entries using AI through Ollama.",
5+
"version": "0.0.9",
6+
"publisher": "FadhlyPermata",
7+
"icon": "assets/images/evo.png",
8+
"keywords": [
9+
"git",
10+
"commit",
11+
"ai",
12+
"ollama",
13+
"change log",
14+
"changelog",
15+
"generator"
16+
],
17+
"engines": {
18+
"vscode": "^1.109.0"
19+
},
20+
"categories": [
21+
"Other"
22+
],
23+
"repository": {
24+
"type": "git",
25+
"url": "https://github.com/fadhly-permata/EvoLog-AI"
26+
},
27+
"activationEvents": [
28+
"onStartupFinished",
29+
"onCommand:evolog-ai.generateCommitMessage",
30+
"onCommand:evolog-ai.generateCommitAndChangelog",
31+
"onCommand:evolog-ai.settings"
32+
],
33+
"main": "./out/extension.js",
34+
"contributes": {
35+
"commands": [
36+
{
37+
"command": "evolog-ai.showMenu",
38+
"title": "Show EvoLog-AI Menu",
39+
"icon": "$(lightbulb)"
40+
},
41+
{
42+
"command": "evolog-ai.generateCommitMessage",
43+
"title": "EvoLog-AI: Generate Commit Message"
44+
},
45+
{
46+
"command": "evolog-ai.generateCommitAndChangelog",
47+
"title": "EvoLog-AI: Generate Commit Message & ChangeLog"
48+
},
49+
{
50+
"command": "evolog-ai.settings",
51+
"title": "EvoLog-AI: Settings"
52+
},
53+
{
54+
"command": "evolog-ai.editHost",
55+
"title": "Edit Ollama Host"
56+
},
57+
{
58+
"command": "evolog-ai.editModel",
59+
"title": "Edit Ollama Model"
60+
}
61+
],
62+
"menus": {
63+
"scm/title": [
64+
{
65+
"submenu": "evolog-ai.menu",
66+
"group": "navigation",
67+
"when": "scmProvider == git"
68+
}
69+
],
70+
"evolog-ai.menu": [
71+
{
72+
"command": "evolog-ai.generateCommitMessage",
73+
"group": "1_main"
74+
},
75+
{
76+
"command": "evolog-ai.generateCommitAndChangelog",
77+
"group": "1_main"
78+
},
79+
{
80+
"command": "evolog-ai.settings",
81+
"group": "2_settings"
82+
}
83+
]
84+
},
85+
"submenus": [
86+
{
87+
"id": "evolog-ai.menu",
88+
"label": "EvoLog-AI",
89+
"icon": "$(lightbulb)"
90+
}
91+
],
92+
"views": {
93+
"scm": [
94+
{
95+
"id": "evolog-ai-settings",
96+
"name": "EvoLog-AI: Settings",
97+
"icon": "$(lightbulb)",
98+
"when": "true"
99+
}
100+
]
101+
},
102+
"configuration": {
103+
"title": "EvoLog-AI",
104+
"properties": {
105+
"evolog-ai.enabled": {
106+
"type": "boolean",
107+
"default": true,
108+
"description": "Enable EvoLog-AI extension"
109+
},
110+
"evolog-ai.ollamaHost": {
111+
"type": "string",
112+
"default": "http://localhost:11434",
113+
"description": "Ollama API host URL"
114+
},
115+
"evolog-ai.ollamaModel": {
116+
"type": "string",
117+
"default": "mistral-large-3:675b-cloud",
118+
"description": "Ollama model to use for commit message generation"
119+
}
120+
}
121+
}
122+
},
123+
"scripts": {
124+
"vscode:prepublish": "npm run compile",
125+
"compile": "tsc -p ./",
126+
"watch": "tsc -watch -p ./",
127+
"pretest": "npm run compile && npm run lint",
128+
"lint": "eslint src",
129+
"test": "vscode-test",
130+
"publish-patch": "npm version patch && npm run compile && vsce publish",
131+
"publish-minor": "npm version minor && npm run compile && vsce publish",
132+
"publish-major": "npm version major && npm run compile && vsce publish",
133+
"version": "git add -A .",
134+
"prepare-release": "npm run compile && npm test",
135+
"release": "npm run prepare-release && vsce publish",
136+
"publish:manual": "npm run compile && vsce publish",
137+
"publish:patch": "npm version patch && npm run publish:manual",
138+
"publish:minor": "npm version minor && npm run publish:manual",
139+
"publish:major": "npm version major && npm run publish:manual"
140+
},
141+
"devDependencies": {
142+
"@types/mocha": "^10.0.10",
143+
"@types/node": "22.x",
144+
"@types/vscode": "^1.109.0",
145+
"@vscode/test-cli": "^0.0.12",
146+
"@vscode/test-electron": "^2.5.2",
147+
"eslint": "^9.39.2",
148+
"typescript": "^5.9.3",
149+
"typescript-eslint": "^8.54.0"
150+
}
75151
}

0 commit comments

Comments
 (0)