@@ -22,6 +22,10 @@ public partial class GHActionsToolWindow : UserControl
22
22
{
23
23
private readonly RepoInfo _repoInfo = null ;
24
24
private readonly ToolWindowMessenger _toolWindowMessenger = null ;
25
+ private int maxRuns = 10 ;
26
+ private bool refreshPending = false ;
27
+ private int refreshInterval = 5 ;
28
+
25
29
26
30
public GHActionsToolWindow ( ToolWindowMessenger toolWindowMessenger )
27
31
{
@@ -68,6 +72,12 @@ public async Task GetRepoInfoAsync()
68
72
_repoInfo . IsGitHub = false ;
69
73
_repoInfo . RepoUrl = null ;
70
74
75
+ // get settings
76
+ var generalSettings = await ExtensionOptions . GetLiveInstanceAsync ( ) ;
77
+ maxRuns = generalSettings . MaxRuns ;
78
+ refreshInterval = generalSettings . RefreshInterval ;
79
+ refreshPending = generalSettings . RefreshActiveJobs ;
80
+
71
81
// find the git folder
72
82
var solution = await VS . Solutions . GetCurrentSolutionAsync ( ) ;
73
83
if ( solution is null )
@@ -127,10 +137,6 @@ private async Task LoadDataAsync()
127
137
MessageArea . Visibility = Visibility . Collapsed ;
128
138
ActionsInfoPanel . Visibility = Visibility . Visible ;
129
139
130
- // get the settings
131
- var generalSettings = await ExtensionOptions . GetLiveInstanceAsync ( ) ;
132
- var maxRuns = generalSettings . MaxRuns ;
133
-
134
140
refreshProgress . IsIndeterminate = true ;
135
141
refreshProgress . Visibility = Visibility . Visible ;
136
142
@@ -164,6 +170,22 @@ private async Task LoadDataAsync()
164
170
RunNumber = run . RunNumber . ToString ( )
165
171
} ;
166
172
173
+ if ( refreshPending )
174
+ {
175
+ var timer = new System . Timers . Timer ( refreshInterval * 1000 ) ;
176
+ timer . Elapsed += async ( sender , e ) =>
177
+ {
178
+ await ThreadHelper . JoinableTaskFactory . SwitchToMainThreadAsync ( ) ;
179
+ await LoadDataAsync ( ) ;
180
+ } ;
181
+ timer . AutoReset = false ;
182
+
183
+ if ( ( ( run . Status == WorkflowRunStatus . Queued ) || ( run . Status == WorkflowRunStatus . InProgress ) || ( run . Status == WorkflowRunStatus . Pending ) || ( run . Status == WorkflowRunStatus . Waiting ) ) )
184
+ {
185
+ timer . Start ( ) ;
186
+ }
187
+ }
188
+
167
189
// get the jobs for the run
168
190
var jobs = await client . Actions . Workflows . Jobs ? . List ( _repoInfo . RepoOwner , _repoInfo . RepoName , run . Id ) ;
169
191
@@ -218,7 +240,7 @@ private async Task LoadDataAsync()
218
240
}
219
241
220
242
CurrentBranchExpander . IsExpanded = true ;
221
- refreshProgress . Visibility = Visibility . Collapsed ;
243
+ refreshProgress . Visibility = Visibility . Hidden ;
222
244
refreshProgress . IsIndeterminate = false ;
223
245
}
224
246
0 commit comments