On the surface Wingman is a simple menu bar application that integrates with a Github account to manage projects. As you dive deeper into the app you will find more robust features that help accomplish routine tasks such as the ability to create separate branches for features, bugs, hotfixes, and releases. What makes Wingman so simple to use is not the minimal interface, actually it is the “Task Driven Workflow” that is easy to understand for developers and non-developers alike.
All actions in Wingman start with a task. For example, if you have a bug in your project you would like to work on, you would start by clicking the Wingman icon in the menu bar (or by hitting command+enter on the keyboard) and arrowing down to your repo for that project. If you have already loaded the project then a sub menu will display the available tasks you can perform for that project (e.g. Work on a new bug fix or Work on a new feature). As an example, I chose Work on a new bug fix. Wingman will ask for a name to associate with the bug fix and it even allows you to select a pre-existing GitHub Issue or create a new one at that time. Wingman then goes in to action doing all the work required to create a separate branch for the bug fix as well as cloning it to your local computer. The automated tasks are quick and reliable in my experience. The integration with GitHub Issues is perhaps my favorite part of Wingman. Having a paid account with GitHub for a while now, I love tools that really help me get my moneys worth out of the service. I have been using Wingman with a couple of projects in private repos associated with a GitHub organization account and it has worked flawlessly.
Of course there are many other features in Wingman worth mentioning. The process of creating release candidates and its use of git tagging for the actual release is a very impressive feature. Many of these actions are as simple as a single click, so all the developer has to do is focus on writing code and saving changes. Even applying hotfixes to releases is easily accomplished by clicking on the previously released version of your project in the drop down menu and then select the hotfix option. A new branch is created for the hotfix and then merged when the task is completed. This of course requires little to no effort on the developer's part, which is the real beauty of Wingman.
As previously mentioned Wingman is a menu bar app. However, it will definitely stand out from your other icons because Wingman also displays with the name of the branch you are currently working in. So when you are working on a bug fix or new feature, you will see the name you assigned the bug/feature while setting it up. At first I saw this as a draw back since it can eat up a lot of space in the menu bar, but it eventually grew on me since every time I turn on my computer now I see the task I should be working on glaring at me from the menu bar. This ominous reminder is surprisingly motivating and helps me stay productive on the current task at hand. I was also not keen on the command+enter global hotkey since it interferes with other hotkeys including one I frequently use when commiting changes in Xcode. Although there is no UI preference for changing the hotkey, it can be done via a Terminal command. The developer offers some assistance on how to change the global hotkey on their support page. I personally changed it to Command+Shift+Enter and that seems to be a better fit for my workflow.
The only real issue I have with Wingman is when it comes to saving changes. As illustrated above, it shows you the filenames of the files that have changed but it doesn't show a detailed comparison view of the code changes like you would see when commiting changes in Xcode. It does integrate with apps like Kaleidoscope for comparing code but I have only seen the option to use that when there are merge conflicts. So until this feature is improved, I will continue to write code and do my commits locally in Xcode, then use Wingman’s Save Changes Centrally and Complete Task to push changes to the branch and clean up after completing the task.
Wingman is a great utility for both the seasoned developer that is tired of the routine tasks as well as the novice developer that may have just opened a GitHub account and has no idea how to use Git command-line tools. This simple yet versatile app is definitely worth checking out if you rely on GitHub for hosting your projects.
Wingman is available on the developers website for $39.99.