Skip to content

Commit a6c3de4

Browse files
committed
fix: improved error handling on pull event handlers
1 parent b00637c commit a6c3de4

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

cls/SourceControl/Git/PullEventHandler.cls

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,28 @@ Method OnPull() As %Status [ Abstract ]
2424
/// <var>pullEventClass</var>: if defined, override the configured pull event class
2525
ClassMethod ForModifications(ByRef files, pullEventClass As %String) As %Status
2626
{
27-
set log = ##class(SourceControl.Git.DeploymentLog).%New()
28-
set log.HeadRevision = ##class(SourceControl.Git.Utils).GetCurrentRevision()
29-
set log.StartTimestamp = $zdatetime($ztimestamp,3)
30-
do log.%Save()
31-
set event = $classmethod(
32-
$select(
33-
$data(pullEventClass)#2: pullEventClass,
34-
1: ##class(SourceControl.Git.Utils).PullEventClass())
35-
,"%New")
36-
set event.LocalRoot = ##class(SourceControl.Git.Utils).TempFolder()
37-
merge event.ModifiedFiles = files
38-
set st = event.OnPull()
39-
set log.EndTimestamp = $zdatetime($ztimestamp,3)
40-
set log.Status = st
41-
do log.%Save()
27+
set st = $$$OK
28+
try {
29+
set log = ##class(SourceControl.Git.DeploymentLog).%New()
30+
set log.HeadRevision = ##class(SourceControl.Git.Utils).GetCurrentRevision()
31+
set log.StartTimestamp = $zdatetime($ztimestamp,3)
32+
set st = log.%Save()
33+
quit:$$$ISERR(st)
34+
set event = $classmethod(
35+
$select(
36+
$data(pullEventClass)#2: pullEventClass,
37+
1: ##class(SourceControl.Git.Utils).PullEventClass())
38+
,"%New")
39+
set event.LocalRoot = ##class(SourceControl.Git.Utils).TempFolder()
40+
merge event.ModifiedFiles = files
41+
set st = event.OnPull()
42+
set log.EndTimestamp = $zdatetime($ztimestamp,3)
43+
set log.Status = st
44+
set st = log.%Save()
45+
quit:$$$ISERR(st)
46+
} catch err {
47+
set st = err.AsStatus()
48+
}
4249
quit st
4350
}
4451

0 commit comments

Comments
 (0)