I LOVE GitHub Actions! I’ve written about this a lot and how I’ve ‘seen the light’ with regard to ensuring CI/CD is a part of any/every project from the start. That said I’m also a HUGE Visual Studio fan/user. I like having everything as much as possible at my fingertips in my IDE and for most basic things not have to leave VS to do those things. Because of this I’ve created GitHub Actions for Visual Studio extension that installs right into Visual Studio 2022 and gives you immediate insight into your GitHub Actions environment.
Like nearly every one of my projects it starts as completely selfish reasons and tailored to my needs. I spend time doing this in some reserved learning time and the occasional time where my family isn’t around and/or it’s raining and I can’t be on my bike LOL. That said, it may not meet your needs, and that’s okay.
With that said, let me introduce you to this extension…
How to launch it
First you’ll need to have a project/solution open that is attached to GitHub.com and you have the necessary permissions to view this information. The extension looks for GitHub credentials to use interacting with your Windows Credential manager. From VS Solution Explorer, right-click on a project or solution and navigate to the “GitHub Actions” menu item. This will open a new tool window and start querying the repository and actions for more information. There is a progress indicator that will show when activity is happening. Once complete you’ll have a new tool window you can dock anywhere and it will show a few things for you, let’s take a look at what those are.
In the tool window there are 4 primary areas to be aware of:
First in the area marked #1 is a small toolbar. The toolbar has two buttons, one to refresh the data should you need to manually do so for any reason. The second is a shortcut to the repository’s Actions section on GitHub.com.
Next the #2 area is a tree view of the current branch you have open and workflow runs that targeted that. It will first show executed (or in-progress) workflow runs, and then you can expand it to see the jobs and steps of each job. At the ‘leaf’ node of the step you can double-click (or right-click for a menu) and it will open the log for that step on GitHub.com directly.
The #3 area is a list of the Workflows in your repository by named definition. This is helpful just to see a list of them, but also you can right-click on them and “run” a workflow which triggers a dispatch call to that workflow to execute!
Finally the #4 area is your Environments and Secrets. Right now Environments just shows you a list of any you have, but not much else. Secrets are limited to Repository Secrets only right now and show you a list and when the secret was last updated. You can right-click on the Secrets node to add another or double-click on an existing one to edit. This will launch a quick modal dialog window to capture the secret name/value and upon saving, write to your repository and refresh this list.
There are a small set of options you can configure for the extension:
The following can be set:
- Max Runs (Default=10): this is the maximum number of Workflow Runs to retrieve
- Refresh Active Jobs (Default=False): if True, this will refresh the Workflow Runs list when any job is known to be in-progress
- Refresh Interval (Default=5): This is a number in seconds you want to poll for an update on in-progress jobs.
Aside from viewing the list there are a few other things you can do using the extension:
- Hover over the Run to see details of the final conclusion state, how it was triggered, the total time for the run, and what GitHub user triggered the run
- If a run is in-progress, right-click on the run and you can choose to Cancel, which will attempt to send a cancellation to stop the run at whatever step it is in
- On the steps nodes you can double-click or right-click and choose to view logs. This will launch your default browser to the location of the step log for that item
- From the Workflows list, you can right-click on a name of a Workflow and choose “Run Workflow” which will attempt to signal to run the start a run for that Workflow
Secrets right now are limited to Repository Secrets only. This is due to a limitation the Octokit library this extension uses. If you are using Environment Secrets you will not be able to manage them from here.
- From the Repository Secrets node you can right-click and Add Secret which will launch a modal dialog to supply a name/value for a new secret. Clicking save will persist this to your repo and refresh the list.
- From an existing secret you can double-click it or right-click and choose ‘Edit’ and will launch the same modal dialog but just enables you to edit the value only.
- To delete a secret, right-click and choose delete. This is irreversible, so be sure you want to delete!
Get Started and Log Issues
To get started, you simply can navigate to the link on the marketplace and click install or use the Extension Manager in Visual Studio and search for “GitHub Actions” and install it. If you find any issues, the source is available on my GitHub at timheuer/GitHubActionsVS but also would appreciate that you could log an Issue if you find it not working for you. Thanks for trying it out and I hope it is helpful for you as it is for me.
Please enjoy some of these other recent posts...