Skip to content
/ GitMan Public

System tray tool for working with git repositories

License

Notifications You must be signed in to change notification settings

Scepheo/GitMan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitMan

A small system-tray application that helps you work with a lot of git repositories.

Features

Currently supported features are:

  • Quick actions for each repository in your repository folder, such as:
    • Open repository folder in explorer
    • Open repository folder in Visual Studio Code
    • Open Git Bash
    • Open .sln solution file
  • Clone remote repositories, currently supports:
    • Azure DevOps (using a personal access token)
    • GitHub ( using a personal access token)

Road map

Planned features:

  • Configuration GUI
  • More actions on repositories

Configuration

Configuration is currently done by editing the config.json file, which is created when the application run.

An example config file for someone named "John Smith" with the Windows username "SmithJ":

{
    "RepositoryFolder": "C:/Users/SmithJ/Source/Repos",
    "AzureProviders": [
        {
            "Organization": "contoso",
            "Project": "webshop",
            "PersonalAccessToken": "abcdefghijkl1234567890",
            "DefaultConfig": {
                "user.email": "john.smith@contoso.com",
                "user.name": "John Smith"
            }
        }
    ],
    "GitHubProviders": [
        {
            "Username": "john-smith",
            "PersonalAccessToken": "abcdefghijkl1234567890",
            "DefaultConfig": {
                "user.email": "john@my-email.com",
                "user.name": "John"
            }
        }
    ],
    "Actions": [
        {
            "Name": "Open folder",
            "Program": "{directory}",
            "SearchFilter": ".git",
            "Shell": true
        },
        {
            "Name": "Git Bash",
            "Program": "C:\\Program Files\\Git\\git-bash.exe",
            "Args": [
                "--cd={directory}"
            ],
            "SearchFilter": ".git"
        }
    ]
}

RepositoryFolder

Path to the folder that contains all your git repositories. Defaults to %USERPROFILE%/Source/Repos, which is the default clone location used by Visual Studio.

AzureProviders

Array of Azure DevOps remotes. These will be available to clone from.

AzureProviders - Organization

Name of the organization that contains the project. Is the {project} part of https://dev.azure.com/{project}/{organization}.

AzureProviders - Project

Name of the project that has the repositories you want to access. Is the {organization} part of https://dev.azure.com/{project}/{organization}.

AzureProviders - PersonalAccessToken

An Azure DevOps personal access token that will be used for authentication. Can be generated by going to https://dev.azure.com/{project}/_usersSettings/tokens (replace {project} with the name of your project) and clicking "New Token".

AzureProviders - DefaultConfig

Keys and values for git config that should be applied to any repositories cloned from this provider. Can be used to e.g. set your company email and proxy server.

GitHubProviders

Array of GitHub accounts. These will be available to clone from.

GitHubProviders - Username

GitHub username that you want to authenticate as. All repositories that this user has access to will be available for cloning.

GitHubProviders - PersonalAccessToken

A GitHub personal access token that will be used for authentication. Can be generated by going to https://github.com/settings/tokens.

GitHubProviders - DefaultConfig

Keys and values for git config that should be applied to any repositories cloned from this provider. Can be used to e.g. set your personal email.

Actions

Array of actions you can take on a repository. By default, it provides actions for opening the directory, opening a solution file, starting git bash (if found) and opening the folder in Visual Studio Code (if found).

It will generate actions for each item found in the repository that matches the search filter. Then, for each item found, it will apply some substitutions to the Name, Program and Args properties:

original replaced with
{name} The name of the item, e.g. readme.md
{path} The full path to the item, e.g. , e.g. C:\Repos\MyRepo\readme.md
{directory} The full path of the directory containing the item, e.g. C:\Repos\MyRepo

Actions - Name

The name that will be used as the label for the action.

Actions - Program

The program to execute for the action. Can also be a path to a file or directory which will be opened with the default program if Shell is set.

Actions - Args

Arguments that will be provided to the program. Note that these will be quoted individually, so to execute the command program.exe --option value, you need to specify the option and value seperately:

{
    "Args": [ "--option", "value" ]
}

Actions - SearchFilter

Windows search filter that will be used to find the items the action operates on. For actions that operate on the main repository folder itself, this should (probably) be .git (see example config).

Actions - Shell

Whether to execute the command as a shell command. Useful to open a file or directory with the default program, or for more complex commands.

About

System tray tool for working with git repositories

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages