Skip to content

Create a fork from lporg#1

Merged
5ouma merged 1 commit intomainfrom
feat-fork-lporg
Dec 31, 2025
Merged

Create a fork from lporg#1
5ouma merged 1 commit intomainfrom
feat-fork-lporg

Conversation

@5ouma
Copy link
Owner

@5ouma 5ouma commented Dec 31, 2025

Merge files from blacktop/lporg.

Merge files from blacktop/lporg.
@5ouma 5ouma self-assigned this Dec 31, 2025
@5ouma 5ouma added the 🎉 New Feature A new feature label Dec 31, 2025
@5ouma 5ouma merged commit 1de5001 into main Dec 31, 2025
1 check was pending
@5ouma 5ouma deleted the feat-fork-lporg branch December 31, 2025 08:41
@coderabbitai
Copy link

coderabbitai bot commented Dec 31, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR introduces lporg, a complete macOS Launchpad organizer application with CLI commands (default, save, load, revert, version), database operations for Launchpad/Dock configuration management, macOS system integration, build tooling, CI/CD workflows, and documentation. Total of 30+ new files covering Go source code, shell scripts, configurations, and examples.

Changes

Cohort / File(s) Summary
GitHub Actions & CI
.github/workflows/codeql.yml, .github/workflows/go.yml
Adds CodeQL security analysis workflow (triggered on version tags) and Go build/test workflow (macOS, runs tests with go run main.go commands and caching)
Dependency & Release Management
.github/dependabot.yml, .github/FUNDING.yml, .goreleaser.yml
Configures Dependabot for Go modules and GitHub Actions updates with daily schedule, Patreon funding link, and comprehensive GoReleaser configuration for multi-platform macOS builds with Homebrew tap support
Build & Project Configuration
Makefile, go.mod, .gitignore, LICENSE, README.md
Adds Makefile with test/build/release targets using svu for versioning, Go module declaration, standard MIT license, .gitignore for build artifacts, and full project documentation
Development Helper Scripts
.hack/bump/version, .hack/make/completions, .hack/make/release, .hack/scripts/copy.sh, .hack/scripts/list.sh, .hack/scripts/reset.sh
Introduces shell scripts for SemVer version bumping, generating shell completions, creating git release tags, managing Launchpad database files, and resetting macOS Launchpad/Dock
Example Configuration Data
.hack/examples/launchpad.json, .hack/examples/launchpad.yaml, .hack/test/launchpad-test.yaml, .hack/test/decode.go
Provides example Launchpad configurations in JSON/YAML formats with hierarchical app/widget organization and a Go test utility for parsing configurations
CLI Command Implementations
cmd/root.go, cmd/default.go, cmd/save.go, cmd/load.go, cmd/revert.go, cmd/version.go
Implements Cobra-based CLI with root command (flags for verbose, config file, iCloud), default/save/load/revert commands for Launchpad management, and version command; includes backup prompting and confirmation flows
Database & Configuration Layer
internal/database/model.go, internal/database/config.go, internal/database/database.go
Defines GORM ORM models (App, Widget, Item, Group, DBInfo) for SQLite Launchpad schema, configuration structures (Config, Apps, Page, AppFolder) with YAML support, and comprehensive database operations (GetMissing, ClearGroups, ApplyConfig, FixOther, trigger management)
macOS System Integration
internal/desktop/background.go, internal/desktop/background_test.go, internal/dock/dock.go, internal/dock/dock_test.go
Provides AppleScript-based desktop wallpaper management and Dock plist manipulation (load, modify, persist) with TileData structures and system command execution for Dock settings and restart operations
Core Command Logic
internal/command/command.go, internal/command/utils.go
Centralizes config validation, Launchpad organization (DefaultOrg), configuration persistence (SaveConfig), and loading (LoadConfig) with database interactions; includes Dock ASCII art, database file cleanup, iCloud path resolution, and helper utilities
Common Utilities
internal/utils/utils.go
Provides logging indentation helpers, slice utilities (StringInSlice, AppendIfMissing), and command execution with context support
Application Entry Point
main.go
Simple entrypoint that calls cmd.Execute() to run the Cobra CLI framework

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~70 minutes

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat-fork-lporg

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 009309b and 4079d98.

⛔ Files ignored due to path filters (2)
  • .github/imgs/porg.jpeg is excluded by !**/*.jpeg
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (38)
  • .github/FUNDING.yml
  • .github/dependabot.yml
  • .github/workflows/codeql.yml
  • .github/workflows/go.yml
  • .gitignore
  • .goreleaser.yml
  • .hack/bump/version
  • .hack/examples/launchpad.json
  • .hack/examples/launchpad.yaml
  • .hack/make/completions
  • .hack/make/release
  • .hack/scripts/copy.sh
  • .hack/scripts/list.sh
  • .hack/scripts/reset.sh
  • .hack/test/com.apple.dock.plist
  • .hack/test/decode.go
  • .hack/test/launchpad-test.yaml
  • LICENSE
  • Makefile
  • README.md
  • cmd/default.go
  • cmd/load.go
  • cmd/revert.go
  • cmd/root.go
  • cmd/save.go
  • cmd/version.go
  • go.mod
  • internal/command/command.go
  • internal/command/utils.go
  • internal/database/config.go
  • internal/database/database.go
  • internal/database/model.go
  • internal/desktop/background.go
  • internal/desktop/background_test.go
  • internal/dock/dock.go
  • internal/dock/dock_test.go
  • internal/utils/utils.go
  • main.go

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

This was referenced Dec 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎉 New Feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant