@@ -58,7 +58,7 @@ func artifactsHandler(ctx context.Context, wk *CurrentWorker) http.HandlerFunc {
58
58
return
59
59
}
60
60
61
- artifactsJSON := []sdk. WorkflowRunResultArtifact {}
61
+ artifactsJSON := make ([] interface {}, 0 )
62
62
63
63
workflowRunResults , err := wk .client .WorkflowRunResultsList (ctx , projectKey , reqArgs .Workflow , reqArgs .Number )
64
64
if err != nil {
@@ -67,19 +67,41 @@ func artifactsHandler(ctx context.Context, wk *CurrentWorker) http.HandlerFunc {
67
67
return
68
68
}
69
69
for _ , result := range workflowRunResults {
70
- if result .Type != sdk .WorkflowRunResultTypeArtifact {
71
- continue
70
+ switch result .Type {
71
+ case sdk .WorkflowRunResultTypeArtifact :
72
+ artData , err := result .GetArtifact ()
73
+ if err != nil {
74
+ newError := sdk .NewError (sdk .ErrUnknownError , fmt .Errorf ("item is not an artifact: %s" , err ))
75
+ writeError (w , r , newError )
76
+ return
77
+ }
78
+ if reqArgs .Pattern != "" && ! regexp .MatchString (artData .Name ) {
79
+ continue
80
+ }
81
+ artifactsJSON = append (artifactsJSON , artData )
82
+ case sdk .WorkflowRunResultTypeArtifactManager :
83
+ artData , err := result .GetArtifactManager ()
84
+ if err != nil {
85
+ newError := sdk .NewError (sdk .ErrUnknownError , fmt .Errorf ("item is not from an artifact manager: %s" , err ))
86
+ writeError (w , r , newError )
87
+ return
88
+ }
89
+ if reqArgs .Pattern != "" && ! regexp .MatchString (artData .Name ) {
90
+ continue
91
+ }
92
+ artifactsJSON = append (artifactsJSON , artData )
93
+ case sdk .WorkflowRunResultTypeCoverage :
94
+ artData , err := result .GetCoverage ()
95
+ if err != nil {
96
+ newError := sdk .NewError (sdk .ErrUnknownError , fmt .Errorf ("item is not a coverage: %s" , err ))
97
+ writeError (w , r , newError )
98
+ return
99
+ }
100
+ if reqArgs .Pattern != "" && ! regexp .MatchString (artData .Name ) {
101
+ continue
102
+ }
103
+ artifactsJSON = append (artifactsJSON , artData )
72
104
}
73
- artData , err := result .GetArtifact ()
74
- if err != nil {
75
- newError := sdk .NewError (sdk .ErrUnknownError , fmt .Errorf ("item is not an artifact: %s" , err ))
76
- writeError (w , r , newError )
77
- return
78
- }
79
- if reqArgs .Pattern != "" && ! regexp .MatchString (artData .Name ) {
80
- continue
81
- }
82
- artifactsJSON = append (artifactsJSON , artData )
83
105
}
84
106
85
107
writeJSON (w , artifactsJSON , http .StatusOK )
0 commit comments