Skip to content

itofinity/Itofinity-Credential-Manager

Repository files navigation

Overview

Itofinity Credential Manager (ICM) began life as an attempted fork of Microsoft's Git Credential Manager for Windows (GCMW).

I'm a great fan of the GCMW, it means I don't need to muck around with SSH keys, especially if I'm switch workstations, it provides support for 2FA on specified hosts and its a GUI when it can be and CLI when it has to be.

However ICM attempts to address some limitations of the GCMW, namely:

  1. It only runs on Windows
  2. It only works for Git
  3. Adding new Hosts, e.g. GitLab is complicated

Attempt #1

This was a straight fork of GCMW and then an attempt to extract all the GUI code into Windows specific projects and porting all the remaining code to Dotnet Standard/Core.

The intention was that it would remain possible to build the existing .NET Framework dependent git-credential-manager.exe and git-askpass.exe executables, but then additionally create new mirror GUI projects, using Avalonia, and add new Dotnet Core console application versions for git-credential-manager.exe and git-askpass.exe.

I still believe there is some merit in that approach, evolution over revolution, but for me it foundered on 2 main issues:

  1. GCMW is primarily a console application that can spin up GUI components as required.
    • A single GCMW flow, e.g. GET, can spawn 1 or more windows/dialogs, one at a time but essentially as independent windows.
    • Avalonia to my understanding doesn't allow this, you instantiate a single Avalonia Application and windows chain from one to another.
    • I could not reconcile these differences within the existing GCMW architecture
  2. GCMW is a well controlled application, as part of the Git for Windows distribution. As such its code is, quite rightly, well controlled. The code relies on hardcoding support of hosts such as Bitbucket.org, Github.com and Azure Devops (There is a performance reason for this)
    • This makes it difficult to add new, especially smaller, hosts
    • porting to Dotnet Core is complex.

Attempt #2

This current approach is a complete re-write, focusing on reproducing the behaviour of GCMW and by definition acting as a Git Credential Helper, see

Misc

Todo

About

A cross platform re-imaginging of Microsoft/Git-Credential-Manager-for-Windows

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages