oatsoda / buildmonitor Goto Github PK
View Code? Open in Web Editor NEWA windows tray application to monitor builds and their status on Azure DevOps (formerly VSTS)
A windows tray application to monitor builds and their status on Azure DevOps (formerly VSTS)
The URLs in the REST API are not for the web portal.
The version 2.0 build API does have "web" URLs, so would need to convert to these.
VSO is now Azure DevOps, also.
Windows 10 (and probably 8/8.1) have the notifications that slide in from the right-hand side.
Probably better that the old-skool toaster notifications.
When it shows "Waiting for builds..." or "No builds found." it would be nicer if the UI was a bit bigger and had the same colour scheme.
Not sure how we locate the Task on the vNext build - would rather not use names. Equally, what about builds with muitiple solutions - combine the totals?
Auth failures are just dealt with like other exceptions so the monitor simply continues to try.
If the password is incorrect then this can lock out the account.
Strange behaviour caused by the Settings.Upgrade() being called every time the application launches. If an existing user.config exists in users/appdata/local/ then the upgrade overwrites the setting in the current version user.config.
New builds can be negative "-32 seconds ago". This is due to discrepancy between VSO clock and local clock.
Should probably just have "Now" or "0 seconds ago".
Optionally have a checkbox, but ideally just would like it to run to save finding the desktop icon (which we could lose)
If, for example, and error occurs when polling then the Windows 10 toaster notification isn't very helpful as you can't see enough text. Before Win 10 you got the tooltip balloon which could contain more characters.
Either need to process the exception messages to make them more useful, or find a different way to communicate the messages.
Would be nice to
a) Have a place to log exceptions and then go and view them. And ensure that exceptions don't wipe the list of build statuses.
b) To have error handling per-definition so that temporary failures don't cause problems for other definitions. If too much time elapses since the last "refresh" of a definition, perhaps this could just show it on the UI. This could alter the status icon in the system tray to indicate an issue too.
Because of the Thread.Sleep on the current interval, the Start with the new settings has to wait until the sleep has completed before it can start a new run with the new settings.
Even an additional slash breaks it.
Also, does TFS Online always have /DefultCollection ? The new Build v2.0 APIs have the project before the /_apis too, so this part would need to be removed anyway.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.************** Exception Text **************
System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Last[TSource](IEnumerable1 source) at BuildMonitor.UI.Controls.BuildDefinitionsListForm.RemoveUnusedControls(Int32 numberToRemove) at BuildMonitor.UI.Controls.BuildDefinitionsListForm.UpdateBuildControls(IEnumerable
1 buildDetails)
at BuildMonitor.UI.Controls.BuildDefinitionsListForm.<>c__DisplayClass22_0.b__0()
at BuildMonitor.UI.Helpers.ControlExtensions.<>c__DisplayClass1_0.b__0()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dllBuildMonitor.App
Assembly Version: 1.5.3.0
Win32 Version: 1.5.3.0
CodeBase: file:///C:/Program%20Files%20(x86)/Build%20Monitor/BuildMonitor.App.exeSystem.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dllSystem.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dllSystem
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3314.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dllBuildMonitor.UI
Assembly Version: 1.5.3.0
Win32 Version: 1.5.3.0
CodeBase: file:///C:/Program%20Files%20(x86)/Build%20Monitor/BuildMonitor.UI.DLLBuildMonitor.TfsOnline
Assembly Version: 1.5.3.0
Win32 Version: 1.5.3.0
CodeBase: file:///C:/Program%20Files%20(x86)/Build%20Monitor/BuildMonitor.TfsOnline.DLLBuildMonitor.Core
Assembly Version: 1.5.3.0
Win32 Version: 1.5.3.0
CodeBase: file:///C:/Program%20Files%20(x86)/Build%20Monitor/BuildMonitor.Core.DLLSystem.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dllSystem.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dllAccessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dllSystem.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dllSystem.Security
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3101.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Security/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Security.dllSystem.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dllNewtonsoft.Json
Assembly Version: 9.0.0.0
Win32 Version: 9.0.1.19813
CodeBase: file:///C:/Program%20Files%20(x86)/Build%20Monitor/Newtonsoft.Json.DLLSystem.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3056.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.