Gittyup icon indicating copy to clipboard operation
Gittyup copied to clipboard

Remote account handling overhaul

Open exactly-one-kas opened this issue 3 years ago • 7 comments

The remote account feature currently only supports pre-filling the URL for the clone dialog There is an undocumented way to enable a PR button in the toolbar that probably only works with GitHub

Here's a list of suggestions:

  • Allow for searching and paginating / stepping through the user's and their organization's repositories
    • As suggested by #251, this should be grouped hierarchically by the organization
  • Maybe do away with showing all repositories in the sidebar, instead only displaying recently active / starred ones
    • Allow for custom criteria, including includes and excludes
  • Implement OAuth: #226
  • Implement custom icons and/or retrieving favicons for self-hosted platforms: #10
  • Implement mandatory URL input (for self-hosted-only platforms like Gitea, see #313)
  • Implement tighter integrations
    • Saving the remote account used to clone the repo
      • Allow associating other remotes to accounts as well
      • Also as a dropdown setting in the repository settings dialog
      • Saved using gittyup.<remote>.user and gittyup.<remote>.instance in .git/config?
    • Creating pull requests
    • Checking out PR branches (including through forks)
    • Showing CI status next to commits
      • In the list or just in the commit details?
    • Hotlinking issue and PR mentions
      • ~Maybe also @user mentions?~ Yeah, that's a bit too much
    • Opening / showing the PRs a branch belongs to
    • Cloning as a fork
  • ~Allow for multiple accounts of the same type~ Already implemented, the + button in the bottom left allows this
  • Implement support for BitBucket Server (see #492)

exactly-one-kas avatar Oct 16 '22 16:10 exactly-one-kas

I love the idea of being able to see all of my repositories in the Sidebar, perhaps instead of doing away with them give people the option to toggle which ones are visible such as via a toolbar button. “Organization Repos” “Personal Repos”. I would definitely like grouping via Organization as well. Perhaps a Tree would be best for the sidebar, sorting by Organization (if enabled to view), with perhaps “starred” organizations shown first. This might seem a bit overkill at first, but I think it is a bit standard. The ability to hide repos would be nice... I'm associated with Epic Games because I do Unreal Engine development. I'm not fond of seeing all the other repos clutter the sidebar, I don't ever have any intention to muck with any of them save one in particular.

Custom favicons, sign me up. :) I use Gitea heavily themed on my NAS and my friends VPN into a closed-off LAN to develop, so we're used to custom favicons. It's a great idea, I think.

Regarding tighter integrations, that seems wisest about how to associate with an account, but what about multiple hosts? Some might push on GitHub or Gitea, I do both even for the same projects (multiple upstream origins).

I think user mentions might be a bit beyond scope and overly complex to implement except for certain hosts such as GitHub/Gitea organizational repos. It may be too difficult to gain access to user lists for hosts...most likely even impossible without scraping and risking connection throttles or unhappy behavior from hosts. It may however be certainly possible to use keyword alerts (such as someone using your e-mail or name). That should probably be a plugin, instead. It could be based off of Comments.lua.

OdinVex avatar Oct 16 '22 16:10 OdinVex

Please add: ability to handle multiple accounts. If there is an existing option, or way of using Gittyup, I haven't found it yet. I have multiple accounts on GH, and other servers as well.

Kevin-Prichard avatar Nov 14 '22 21:11 Kevin-Prichard

Please add: ability to handle multiple accounts. If there is an existing option, or way of using Gittyup, I haven't found it yet. I have multiple accounts on GH, and other servers as well.

Just click the + icon, bottom left, after adding any account you like..I have multiple, though I use Gitea and GitHub and GitLab.

OdinVex avatar Nov 15 '22 13:11 OdinVex

Please add: ability to handle multiple accounts. If there is an existing option, or way of using Gittyup, I haven't found it yet. I have multiple accounts on GH, and other servers as well.

Just click the + icon, bottom left, after adding any account you like..I have multiple, though I use Gitea and GitHub and GitLab.

Where is the '+' icon? Bottom left of which panel, dialog or window? What rev?

I just pulled and built gittyup_v1.4.0 and am not seeing an option for adding users, other than the 'User name' and 'User email' fields under Application Settings -> General

"though I use Gitea"

Wait, are you talking about a tool other than Gittyup ? @OdinVex

Update- I see now, under the normally closed repository column, there's '+' -> Add (Github|Gitlab|Gitea|...) Account

Essentially, Gittyup wants its own session with each account? Or a PAT?

I've already got all my git-associated ssh keys under ~/.ssh, and a ton of configuration under ~/.gitconfig. Plus includeIfs, though it doesn't seem like Gittyup makes use of them.

Though, 'Edit Config File' opens my global ~/.gitconfig, but is it using my installed git or is it building in its own git when built?

Kevin-Prichard avatar Nov 15 '25 05:11 Kevin-Prichard

Where is the '+' icon? Bottom left of which panel, dialog or window? What rev?

Bottom left of entire window. Still there as of 1.4.0.

Wait, are you talking about a tool other than Gittyup ?

No, Gitea is an hostable alternative to GitHub. I disagreed with Gitea's direction and went with the Forgejo fork. Still, for Forgejo you can use the 'Gitea' account option to add it (icon stays Gitea, sadly).

Though, 'Edit Config File' opens my global ~/.gitconfig, but is it using my installed git or is it building in its own git when built?

Not certain as I haven't used Gittyup in quite a while. If I recall, it depends upon which installation method of Gittyup you're using. Flatpak might bundle(?) but OS package (apt, aur, etc) may not(?)

OdinVex avatar Nov 15 '25 12:11 OdinVex

Where is the '+' icon? Bottom left of which panel, dialog or window? What rev?

Bottom left of entire window. Still there as of 1.4.0.

Wait, are you talking about a tool other than Gittyup ?

No, Gitea is an hostable alternative to GitHub. I disagreed with Gitea's direction and went with the Forgejo fork. Still, for Forgejo you can use the 'Gitea' account option to add it (icon stays Gitea, sadly).

Though, 'Edit Config File' opens my global ~/.gitconfig, but is it using my installed git or is it building in its own git when built?

Not certain as I haven't used Gittyup in quite a while. If I recall, it depends upon which installation method of Gittyup you're using. Flatpak might bundle(?) but OS package (apt, aur, etc) may not(?)

After poking around Gittyup's source, I don't believe it's possible to easily manage locally-defined accounts (~/.ssh keypairs, ~/.ssh/config host/identityfile defs, and remotes defined in local repos).

Gittyup works from libgit2. It appears to only work with the first key listed by the ssh agent. It can't switch identities that aren't defined with a PAT from the well-known repo hosting services under the '+' icon.

Git works with libssh. It implements its own parsers and logic for ~/.ssh, ~/.ssh/config and ~/.gitconfig. It doesn't provide or export that logic as modules importable by other projects. This is the reason why libgit2 exists, but it implements only a fraction of the logic implemented by git.

For now, I'll probably continue to use Gittyup, but only for reviewing diffs and staging pre-commit. Because I have so many projects with their own identities, most hosted on machines that aren't well-known cloud services, I'll be making commits from shell, so that my ~/.gitconfig's [includeIf ...] author switching and ~/.ssh/config's Host/IdentityFile defs will be respected (by git, and OpenSSH-which git shells out to for opening ssh connections to remotes).

It would be very cool to one day have full git/OpenSSH capabilities implemented in a GUI client -or just the issues mentioned above. But given the complexities in git's design and impl, it may be a while.

Cheers, thanks for listening 😃

Kevin-Prichard avatar Nov 16 '25 03:11 Kevin-Prichard

For now, I'll probably continue to use Gittyup, but only for reviewing diffs and staging pre-commit. Because I have so many projects with their own identities, most hosted on machines that aren't well-known cloud services, I'll be making commits from shell, so that my ~/.gitconfig's [includeIf ...] author switching and ~/.ssh/config's Host/IdentityFile defs will be respected (by git, and OpenSSH-which git shells out to for opening ssh connections to remotes).

It would be very cool to one day have full git/OpenSSH capabilities implemented in a GUI client -or just the issues mentioned above. But given the complexities in git's design and impl, it may be a while.

Cheers, thanks for listening 😃

Ai, another reason why I had to leave Gittyup behind. Loved everything about it except single identity despite multiple remotes and the lack of GPG signing/signoff. I had implemented them, but it required too much effort to remove libgit2 and rely on shell calls or whatever I did (been years).

OdinVex avatar Nov 16 '25 03:11 OdinVex