From 41302a6f4af610a667359536fdf1938c7027c2cc Mon Sep 17 00:00:00 2001 From: shristy Date: Sat, 4 Oct 2025 19:38:16 +0530 Subject: [PATCH 1/2] refactor: restructure project to follow Go conventions --- commit.gif => assets/commit.gif | Bin image.png => assets/image.png | Bin {src => cmd/commit-msg}/main.go | 16 ++++++++-------- {src => internal}/chatgpt/chatgpt.go | 2 +- {src => internal}/claude/claude.go | 2 +- {src/internal => internal}/display/display.go | 0 {src => internal}/gemini/gemini.go | 2 +- {src/internal => internal}/git/operations.go | 6 +++--- {src => internal}/grok/grok.go | 2 +- {src/internal => internal}/scrubber/scrubber.go | 0 .../scrubber/scrubber_test.go | 0 {src/internal => internal}/stats/statistics.go | 6 +++--- {src/internal => internal}/utils/utils.go | 0 src/types/promt.go => pkg/types/prompt.go | 0 {src => pkg}/types/types.go | 0 15 files changed, 18 insertions(+), 18 deletions(-) rename commit.gif => assets/commit.gif (100%) rename image.png => assets/image.png (100%) rename {src => cmd/commit-msg}/main.go (91%) rename {src => internal}/chatgpt/chatgpt.go (94%) rename {src => internal}/claude/claude.go (97%) rename {src/internal => internal}/display/display.go (100%) rename {src => internal}/gemini/gemini.go (96%) rename {src/internal => internal}/git/operations.go (96%) rename {src => internal}/grok/grok.go (98%) rename {src/internal => internal}/scrubber/scrubber.go (100%) rename {src/internal => internal}/scrubber/scrubber_test.go (100%) rename {src/internal => internal}/stats/statistics.go (93%) rename {src/internal => internal}/utils/utils.go (100%) rename src/types/promt.go => pkg/types/prompt.go (100%) rename {src => pkg}/types/types.go (100%) diff --git a/commit.gif b/assets/commit.gif similarity index 100% rename from commit.gif rename to assets/commit.gif diff --git a/image.png b/assets/image.png similarity index 100% rename from image.png rename to assets/image.png diff --git a/src/main.go b/cmd/commit-msg/main.go similarity index 91% rename from src/main.go rename to cmd/commit-msg/main.go index 647d151..d7bc5a2 100644 --- a/src/main.go +++ b/cmd/commit-msg/main.go @@ -5,14 +5,14 @@ import ( "os" "github.com/atotto/clipboard" - "github.com/dfanso/commit-msg/src/chatgpt" - "github.com/dfanso/commit-msg/src/claude" - "github.com/dfanso/commit-msg/src/gemini" - "github.com/dfanso/commit-msg/src/grok" - "github.com/dfanso/commit-msg/src/internal/display" - "github.com/dfanso/commit-msg/src/internal/git" - "github.com/dfanso/commit-msg/src/internal/stats" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/internal/chatgpt" + "github.com/dfanso/commit-msg/internal/claude" + "github.com/dfanso/commit-msg/internal/display" + "github.com/dfanso/commit-msg/internal/gemini" + "github.com/dfanso/commit-msg/internal/git" + "github.com/dfanso/commit-msg/internal/grok" + "github.com/dfanso/commit-msg/internal/stats" + "github.com/dfanso/commit-msg/pkg/types" "github.com/pterm/pterm" ) diff --git a/src/chatgpt/chatgpt.go b/internal/chatgpt/chatgpt.go similarity index 94% rename from src/chatgpt/chatgpt.go rename to internal/chatgpt/chatgpt.go index b3571e5..93429c4 100644 --- a/src/chatgpt/chatgpt.go +++ b/internal/chatgpt/chatgpt.go @@ -7,7 +7,7 @@ import ( openai "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/option" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/pkg/types" ) func GenerateCommitMessage(config *types.Config, changes string, apiKey string) (string, error) { diff --git a/src/claude/claude.go b/internal/claude/claude.go similarity index 97% rename from src/claude/claude.go rename to internal/claude/claude.go index 3a47dd9..1d326ce 100644 --- a/src/claude/claude.go +++ b/internal/claude/claude.go @@ -7,7 +7,7 @@ import ( "fmt" "net/http" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/pkg/types" ) type ClaudeRequest struct { diff --git a/src/internal/display/display.go b/internal/display/display.go similarity index 100% rename from src/internal/display/display.go rename to internal/display/display.go diff --git a/src/gemini/gemini.go b/internal/gemini/gemini.go similarity index 96% rename from src/gemini/gemini.go rename to internal/gemini/gemini.go index e3cdf0e..b231868 100644 --- a/src/gemini/gemini.go +++ b/internal/gemini/gemini.go @@ -7,7 +7,7 @@ import ( "github.com/google/generative-ai-go/genai" "google.golang.org/api/option" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/pkg/types" ) func GenerateCommitMessage(config *types.Config, changes string, apiKey string) (string, error) { diff --git a/src/internal/git/operations.go b/internal/git/operations.go similarity index 96% rename from src/internal/git/operations.go rename to internal/git/operations.go index 048b4f5..ebd7f2b 100644 --- a/src/internal/git/operations.go +++ b/internal/git/operations.go @@ -7,9 +7,9 @@ import ( "path/filepath" "strings" - "github.com/dfanso/commit-msg/src/internal/scrubber" - "github.com/dfanso/commit-msg/src/internal/utils" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/internal/scrubber" + "github.com/dfanso/commit-msg/internal/utils" + "github.com/dfanso/commit-msg/pkg/types" ) // IsRepository checks if a directory is a git repository diff --git a/src/grok/grok.go b/internal/grok/grok.go similarity index 98% rename from src/grok/grok.go rename to internal/grok/grok.go index 09e5e79..a5acc25 100644 --- a/src/grok/grok.go +++ b/internal/grok/grok.go @@ -9,7 +9,7 @@ import ( "net/http" "time" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/pkg/types" ) func GenerateCommitMessage(config *types.Config, changes string, apiKey string) (string, error) { diff --git a/src/internal/scrubber/scrubber.go b/internal/scrubber/scrubber.go similarity index 100% rename from src/internal/scrubber/scrubber.go rename to internal/scrubber/scrubber.go diff --git a/src/internal/scrubber/scrubber_test.go b/internal/scrubber/scrubber_test.go similarity index 100% rename from src/internal/scrubber/scrubber_test.go rename to internal/scrubber/scrubber_test.go diff --git a/src/internal/stats/statistics.go b/internal/stats/statistics.go similarity index 93% rename from src/internal/stats/statistics.go rename to internal/stats/statistics.go index d579345..96ae961 100644 --- a/src/internal/stats/statistics.go +++ b/internal/stats/statistics.go @@ -5,9 +5,9 @@ import ( "os/exec" "strings" - "github.com/dfanso/commit-msg/src/internal/display" - "github.com/dfanso/commit-msg/src/internal/utils" - "github.com/dfanso/commit-msg/src/types" + "github.com/dfanso/commit-msg/internal/display" + "github.com/dfanso/commit-msg/internal/utils" + "github.com/dfanso/commit-msg/pkg/types" ) // GetFileStatistics collects comprehensive file statistics from Git diff --git a/src/internal/utils/utils.go b/internal/utils/utils.go similarity index 100% rename from src/internal/utils/utils.go rename to internal/utils/utils.go diff --git a/src/types/promt.go b/pkg/types/prompt.go similarity index 100% rename from src/types/promt.go rename to pkg/types/prompt.go diff --git a/src/types/types.go b/pkg/types/types.go similarity index 100% rename from src/types/types.go rename to pkg/types/types.go From b9d64dde97c3084f66a2af1c106755f235a7c004 Mon Sep 17 00:00:00 2001 From: shristy Date: Sat, 4 Oct 2025 21:18:04 +0530 Subject: [PATCH 2/2] fix: update workflows and docs for new project structure --- .github/workflows/build-and-release.yml | 4 ++-- CONTRIBUTING.md | 4 ++-- README.md | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 36e8651..c4bb507 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -78,9 +78,9 @@ jobs: - name: Build run: | if [ "${{ matrix.os }}" = "windows-latest" ]; then - go build -v -o ${{ matrix.artifact_name }} -ldflags="-s -w" ./src + go build -v -o ${{ matrix.artifact_name }} -ldflags="-s -w" ./cmd/commit-msg else - go build -v -o ${{ matrix.artifact_name }} -ldflags="-s -w" ./src + go build -v -o ${{ matrix.artifact_name }} -ldflags="-s -w" ./cmd/commit-msg fi shell: bash diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1a47d82..625f86c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -104,12 +104,12 @@ Improving documentation is always appreciated: 3. Run the application: ```bash - go run src/main.go . + go run cmd/commit-msg/main.go . ``` 4. Build the executable: ```bash - go build -o commit.exe src/main.go + go build -o commit.exe cmd/commit-msg/main.go ``` ### Testing Your Changes diff --git a/README.md b/README.md index 5647d8c..6620ea3 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Below is a sample execution of `commit-msg`: -![Commit-msg GIF](commit.gif) +![Commit-msg GIF](assets/commit.gif) Before running the application, ensure you have set the system environment variables. and add commit.exe to path variables (same for linux macOS) @@ -102,7 +102,7 @@ cd commit-msg go mod download # Build the executable -go build -o commit src/main.go +go build -o commit cmd/commit-msg/main.go # (Optional) Install to GOPATH go install @@ -123,7 +123,7 @@ commit . Or if running from source: ```bash -go run src/main.go . +go run cmd/commit-msg/main.go . ``` ### Example Workflow