Cobra CLI tool for fuzzy-finding and navigating around git repos from multiple remotes
Go to file
2023-12-10 11:41:08 -05:00
cmd Merged alias fuzzy search 2023-12-10 11:15:52 -05:00
contrib Update shell funcs 2023-12-09 23:45:30 -05:00
internal Merged alias fuzzy search 2023-12-10 11:15:52 -05:00
.gitignore Add gitignore 2023-12-07 12:09:18 -05:00
go.mod wip 2023-12-09 23:19:19 -05:00
go.sum wip 2023-12-09 23:19:19 -05:00
LICENSE Initial commit 2023-12-04 16:53:01 -05:00
main.go Begin caching, implement commands 2023-12-05 16:56:47 -05:00
README.md Update README 2023-12-10 11:41:08 -05:00

GitLab Project Manager

Purpose

The goal of this utility is to provide a fuzzy-find method of locating, cloning, and using GitLab projects -- along with your preferred aliases, autocompletion, and shortcuts.

Functionality

Fuzzy as F_ck. This program will try like hell to help you find a project, and once you've found it, will remember your preference along with whatever crazy thing your lizard brain wants to call it.

Do you think of a project called terraform as infra-stuff? No problem, just let gpm know that and it'll remember.

The basic workflow looks like this:

  1. Cache -- load your cache to make things super quick
    • project cache has a TTL, or you can load it manually
    • you only need to update it if there are new projects the cache is unaware of
  2. Add -- find your project, give it any extra aliases you want
  • run gpm project add (or padd if using the provided shell defaults)
  1. Go -- go to your project, fuzzy searching by alias
  • clones your project if that's never been done
    • the provided pgo func makes it easy
  1. Open -- rather than simply changing directories to a project, open it in your IDE
  2. Manage -- fine-tune your aliases, making it easy to nail them without fuzzy stuff
  • if you are lazy in your aliases, you'll be fuzzy finding a lot
    • match your alias exactly (or have only one result) and you go there right away
    • positive reinforcement given for solid alias behavior
    • manage aliases using gpm alias add or gpm alias delete
  1. List -- get a list of your configured projects any time with plist
  2. Reward -- buy the author a beer, because this thing is a time saver

TODO

  • Fix NPE when cache is reset or project for whatever reason leaves an orphaned alias
  • Add config setters and getters
  • Add TTL check to cache load, and add -f / --force flag to re-build regardless
  • For each project loaded, check if it is the same, and do nothing
    • prevents clobbering cache on a partial update
    • track already loaded projects to diff after load
    • should prune missing after the load is complete
  • Add open command
    • config should exist for editor (vim, code, etc..)
  • Update README for shell completion, aliases, usage
  • Make a Makefile
  • Add git repo status to project go (up-to-date, pending commits, etc..)
  • Merge aliases together for same project when selecting
    • If after merging there is only one project, go there by default