Skip to content

Commit 88baece

Browse files
committed
Added some more logging to help troubleshooting
1 parent 11253fb commit 88baece

File tree

1 file changed

+66
-23
lines changed

1 file changed

+66
-23
lines changed

src/ToolWindows/GHActionsToolWindow.xaml.cs

Lines changed: 66 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public partial class GHActionsToolWindow : UserControl
2727
private int maxRuns = 10;
2828
private bool refreshPending = false;
2929
private int refreshInterval = 5;
30-
30+
OutputWindowPane _pane;
3131

3232
public GHActionsToolWindow(ToolWindowMessenger toolWindowMessenger)
3333
{
@@ -68,6 +68,11 @@ private Task GotoRepoAsync()
6868

6969
public async Task GetRepoInfoAsync()
7070
{
71+
if (_pane is null)
72+
{
73+
_pane = await VS.Windows.CreateOutputWindowPaneAsync("GitHub Actions for VS");
74+
}
75+
7176
ClearTreeViews();
7277
_repoInfo.RepoOwner = null;
7378
_repoInfo.RepoName = null;
@@ -80,10 +85,13 @@ public async Task GetRepoInfoAsync()
8085
refreshInterval = generalSettings.RefreshInterval;
8186
refreshPending = generalSettings.RefreshActiveJobs;
8287

88+
await _pane.WriteLineAsync("Extension settings retrieved and applied");
89+
8390
// find the git folder
8491
var solution = await VS.Solutions.GetCurrentSolutionAsync();
8592
if (solution is null)
8693
{
94+
await _pane.WriteLineAsync("No solution found");
8795
Debug.WriteLine("No solution found");
8896
ShowInfoMessage(resx.NO_PROJ_LOADED);
8997
return;
@@ -94,6 +102,7 @@ public async Task GetRepoInfoAsync()
94102

95103
if (string.IsNullOrWhiteSpace(gitPath))
96104
{
105+
await _pane.WriteLineAsync("No git repo found");
97106
Debug.WriteLine("No git repo found");
98107
ShowInfoMessage(resx.NO_GIT_REPO);
99108
}
@@ -107,6 +116,7 @@ public async Task GetRepoInfoAsync()
107116
}
108117
else
109118
{
119+
await _pane.WriteLineAsync("Not a GitHub repo");
110120
Debug.WriteLine("Not a GitHub repo");
111121
ShowInfoMessage(resx.GIT_NOT_GITHUB);
112122
}
@@ -154,13 +164,15 @@ private async Task LoadDataAsync()
154164
// get workflows
155165
await RefreshWorkflowsAsync(client);
156166

167+
await _pane.WriteLineAsync("Loading Workflow Runs...");
157168
// get current branch
158169
var runs = await client.Actions?.Workflows?.Runs?.List(_repoInfo.RepoOwner, _repoInfo.RepoName, new WorkflowRunsRequest() { Branch = _repoInfo.CurrentBranch }, new ApiOptions() { PageCount = 1, PageSize = maxRuns });
159170

160171
List<SimpleRun> runsList = new List<SimpleRun>();
161172

162173
if (runs.TotalCount > 0)
163174
{
175+
await _pane.WriteLineAsync($"Number of runs found: {runs.TotalCount}");
164176
// creating simplified model of the GH info for the treeview
165177

166178
// iterate throught the runs
@@ -255,53 +267,84 @@ private async Task LoadDataAsync()
255267

256268
private async Task RefreshEnvironmentsAsync(GitHubClient client)
257269
{
258-
var repoEnvs = await client.Repository?.Environment?.GetAll(_repoInfo.RepoOwner, _repoInfo.RepoName);
259270
List<SimpleEnvironment> envList = new List<SimpleEnvironment>();
260-
if (repoEnvs.TotalCount > 0)
271+
await _pane.WriteLineAsync("Loading Environments...");
272+
try
261273
{
262-
tvEnvironments.Header = $"{resx.HEADER_ENVIRONMENTS} ({repoEnvs.TotalCount})";
263-
foreach (var env in repoEnvs.Environments)
274+
var repoEnvs = await client.Repository?.Environment?.GetAll(_repoInfo.RepoOwner, _repoInfo.RepoName);
275+
276+
if (repoEnvs.TotalCount > 0)
264277
{
265-
var envItem = new SimpleEnvironment
278+
tvEnvironments.Header = $"{resx.HEADER_ENVIRONMENTS} ({repoEnvs.TotalCount})";
279+
foreach (var env in repoEnvs.Environments)
266280
{
267-
Name = env.Name,
268-
Url = env.HtmlUrl
269-
};
281+
var envItem = new SimpleEnvironment
282+
{
283+
Name = env.Name,
284+
Url = env.HtmlUrl
285+
};
270286

271-
envList.Add(envItem);
287+
envList.Add(envItem);
288+
}
289+
}
290+
else
291+
{
292+
envList.Add(new() { Name = resx.NO_ENV });
272293
}
273294
}
274-
else
295+
catch (Exception ex)
275296
{
276-
envList.Add(new() { Name = resx.NO_ENV});
297+
envList.Add(new SimpleEnvironment() { Name = "Unable to retrieve Environments, please check logs" });
298+
await ex.LogAsync();
277299
}
278300

279301
tvEnvironments.ItemsSource = envList;
280302
}
281303

282304
private async Task RefreshWorkflowsAsync(GitHubClient client)
283305
{
284-
var workflows = await client.Actions?.Workflows?.List(_repoInfo.RepoOwner, _repoInfo.RepoName);
285-
tvWorkflows.ItemsSource = workflows.Workflows;
306+
await _pane.WriteLineAsync("Loading Workflows...");
307+
try
308+
{
309+
var workflows = await client.Actions?.Workflows?.List(_repoInfo.RepoOwner, _repoInfo.RepoName);
310+
tvWorkflows.ItemsSource = workflows.Workflows;
311+
}
312+
catch (Exception ex)
313+
{
314+
await ex.LogAsync();
315+
}
316+
286317
}
287318
private async Task RefreshSecretsAsync(GitHubClient client)
288319
{
289-
var repoSecrets = await client.Repository?.Actions?.Secrets?.GetAll(_repoInfo.RepoOwner, _repoInfo.RepoName);
290320
List<string> secretList = new();
291-
if (repoSecrets.TotalCount > 0)
321+
await _pane.WriteLineAsync("Loading Secrets...");
322+
try
292323
{
293-
tvSecrets.Header = $"{resx.HEADER_REPO_SECRETS} ({repoSecrets.TotalCount})";
294-
foreach (var secret in repoSecrets.Secrets)
324+
var repoSecrets = await client.Repository?.Actions?.Secrets?.GetAll(_repoInfo.RepoOwner, _repoInfo.RepoName);
325+
326+
if (repoSecrets.TotalCount > 0)
295327
{
296-
var updatedOrCreatedAt = secret.UpdatedAt.GetValueOrDefault(secret.CreatedAt);
297-
secretList.Add($"{secret.Name} ({updatedOrCreatedAt:g})");
328+
await _pane.WriteLineAsync($"Number of Repository Secrets found: {repoSecrets.TotalCount}");
329+
tvSecrets.Header = $"{resx.HEADER_REPO_SECRETS} ({repoSecrets.TotalCount})";
330+
foreach (var secret in repoSecrets.Secrets)
331+
{
332+
var updatedOrCreatedAt = secret.UpdatedAt.GetValueOrDefault(secret.CreatedAt);
333+
secretList.Add($"{secret.Name} ({updatedOrCreatedAt:g})");
334+
}
335+
}
336+
else
337+
{
338+
tvSecrets.Header = resx.HEADER_REPO_SECRETS;
339+
secretList.Add(resx.NO_REPO_SECRETS);
298340
}
299341
}
300-
else
342+
catch (Exception ex)
301343
{
302-
tvSecrets.Header = resx.HEADER_REPO_SECRETS;
303-
secretList.Add(resx.NO_REPO_SECRETS);
344+
secretList.Add("Unable to retrieve Secrets, please check logs");
345+
await ex.LogAsync();
304346
}
347+
305348
tvSecrets.ItemsSource = secretList;
306349
}
307350

0 commit comments

Comments
 (0)