Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/m7medVision/lazycommit
using AI to generate commit message suggestions
https://github.com/m7medVision/lazycommit
Last synced: 2 months ago
JSON representation
using AI to generate commit message suggestions
- Host: GitHub
- URL: https://github.com/m7medVision/lazycommit
- Owner: m7medVision
- Created: 2024-07-22T13:01:39.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-08-22T18:17:06.000Z (3 months ago)
- Last Synced: 2024-08-22T20:34:05.841Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 130 KB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-AI-driven-development - lazycommit - using AI to generate commit message suggestions (Uncategorized / Uncategorized)
README
# lazycommit
have ai write commit messages for you in [lazygit](https://github.com/jesseduffield/lazygit).
uses Openai or google AI to generate commit message suggestions based on the diff between the current branch and master.
then you can select a commit message from the list and use it to commit your changes.## installation and configuration
```sh
bunx @m7medvision/lazycommit@latest config
```set up with your openai api key & preferred model:
## usage
You can specify custom templates. use `bunx @m7medvision/lazycommit@latest config` to edit the templates.
### as a menu
this creates a menu of commit messages based on the diff between the current branch and master.
insert the following custom command into your [lazygit](https://github.com/jesseduffield/lazygit) config file:
```yaml
customCommands:
- key: "" # ctrl + a
description: "pick AI commit"
command: 'git commit -m "{{.Form.Msg}}"'
context: "files"
prompts:
- type: "menuFromCommand"
title: "ai Commits"
key: "Msg"
command: "bunx @m7medvision/lazycommit@latest"
filter: '^(?P\d+)\.\s(?P.+)$'
valueFormat: "{{ .message }}"
labelFormat: "{{ .number }}: {{ .message | green }}"
```### with vim
this allows you to edit the commit message in vim after you've selected it from the menu.
abort committing by deleting the commit message in vim.
```yaml
customCommands:
- key: "" # ctrl + a
description: "Pick AI commit"
command: 'echo "{{.Form.Msg}}" > .git/COMMIT_EDITMSG && vim .git/COMMIT_EDITMSG && [ -s .git/COMMIT_EDITMSG ] && git commit -F .git/COMMIT_EDITMSG || echo "Commit message is empty, commit aborted."'
context: "files"
subprocess: true
prompts:
- type: "menuFromCommand"
title: "AI Commits"
key: "Msg"
command: "bunx @m7medvision/lazycommit@latest"
filter: '^(?P\d+)\.\s(?P.+)$'
valueFormat: "{{ .message }}"
labelFormat: "{{ .number }}: {{ .message | green }}"
```## acknowledgements
- check out original project [bunnai](https://github.com/chhoumann/bunnai).
check out these other projects that inspired this one:- https://github.com/BuilderIO/ai-shell