Skip to content

Commit 2d5ee3c

Browse files
committed
Fixing some error condition on secrets node
1 parent 0f193c2 commit 2d5ee3c

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

src/Resources/UIStrings.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Resources/UIStrings.resx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,10 @@
181181
<value>Workflows</value>
182182
<comment>Header for workflow top-level node</comment>
183183
</data>
184+
<data name="INSUFFICIENT_SECRET_PERMS" xml:space="preserve">
185+
<value>Insufficient permissions to retrieve Secrets</value>
186+
<comment>Error for when you don't have perms</comment>
187+
</data>
184188
<data name="LABEL_NAME" xml:space="preserve">
185189
<value>Name:</value>
186190
<comment>Label for secret form for name</comment>

src/ToolWindows/GHActionsToolWindow.xaml.cs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ private async Task RefreshSecretsAsync(GitHubClient client)
361361
if (ex.StatusCode == System.Net.HttpStatusCode.Unauthorized || ex.StatusCode == System.Net.HttpStatusCode.Forbidden)
362362
{
363363
await _pane.WriteLineAsync($"Error retrieving Secrets: {ex.Message}:{ex.StatusCode}");
364-
secretList.Add("Insufficient permissions to retrieve Secrets");
364+
secretList.Add(resx.INSUFFICIENT_SECRET_PERMS);
365365
await ex.LogAsync(ex.Message);
366366
}
367367
}
@@ -410,14 +410,29 @@ private void HandlePreviewMouseWheel(object sender, MouseWheelEventArgs e)
410410

411411
private async void AddSecret_Click(object sender, RoutedEventArgs e)
412412
{
413-
await UpsertRepositorySecret(string.Empty);
413+
try
414+
{
415+
await UpsertRepositorySecret(string.Empty);
416+
}
417+
catch (ApiException ex)
418+
{
419+
if (ex.StatusCode == System.Net.HttpStatusCode.Unauthorized || ex.StatusCode == System.Net.HttpStatusCode.Forbidden)
420+
{
421+
await _pane.WriteLineAsync($"Error saving Secret: {ex.Message}:{ex.StatusCode}");
422+
await ex.LogAsync(ex.Message);
423+
}
424+
}
425+
catch (Exception ex)
426+
{
427+
await ex.LogAsync();
428+
}
414429
}
415430

416431
private async void EditSecret_Click(object sender, RoutedEventArgs e)
417432
{
418433
MenuItem menuItem = (MenuItem)sender;
419434
TextBlock tvi = GetParentTreeViewItem(menuItem);
420-
if (tvi is not null && tvi.Text.ToLowerInvariant() != resx.NO_REPO_SECRETS.ToLowerInvariant()) // yes a hack
435+
if (tvi is not null && !tvi.Text.ToLowerInvariant().Contains(" (")) // yes a hack
421436
{
422437
string header = tvi.Text.ToString();
423438
string secretName = header.Substring(0, header.IndexOf(" ("));
@@ -444,7 +459,7 @@ private async void DeleteSecret_Click(object sender, RoutedEventArgs e)
444459
MenuItem menuItem = (MenuItem)sender;
445460
TextBlock tvi = GetParentTreeViewItem(menuItem);
446461

447-
if (tvi is not null && tvi.Text.ToLowerInvariant() != resx.NO_REPO_SECRETS.ToLowerInvariant()) // yes a hack
462+
if (tvi is not null && !tvi.Text.ToLowerInvariant().Contains(" (")) // yes a hack
448463
{
449464
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
450465
// confirm the delete first
@@ -528,7 +543,7 @@ private void RunWorkflow_Click(object sender, RoutedEventArgs e)
528543
private async void Secret_MouseDoubleClick(object sender, MouseButtonEventArgs e)
529544
{
530545
// get the items Tag
531-
if (sender is TreeViewItem item && item.Header is not null)
546+
if (sender is TreeViewItem item && item.Header is not null && item.Header.ToString().ToLowerInvariant().Contains(" ("))
532547
{
533548
string header = item.Header.ToString();
534549
string secretName = header.Substring(0, header.IndexOf(" ("));

0 commit comments

Comments
 (0)