5
5
"fmt"
6
6
"os"
7
7
"path/filepath"
8
- "strings"
9
8
"text/template"
10
- "time"
11
9
12
10
"github.com/Masterminds/sprig/v3"
13
11
log "github.com/sirupsen/logrus"
@@ -17,7 +15,7 @@ import (
17
15
"github.com/argoproj/argo-cd/v3/commitserver/apiclient"
18
16
"github.com/argoproj/argo-cd/v3/common"
19
17
appv1 "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1"
20
- "github.com/argoproj/argo-cd/v3/util/git "
18
+ "github.com/argoproj/argo-cd/v3/util/hydrator "
21
19
"github.com/argoproj/argo-cd/v3/util/io"
22
20
)
23
21
@@ -36,25 +34,13 @@ func init() {
36
34
// WriteForPaths writes the manifests, hydrator.metadata, and README.md files for each path in the provided paths. It
37
35
// also writes a root-level hydrator.metadata file containing the repo URL and dry SHA.
38
36
func WriteForPaths (root * os.Root , repoUrl , drySha string , dryCommitMetadata * appv1.RevisionMetadata , paths []* apiclient.PathDetails ) error { //nolint:revive //FIXME(var-naming)
39
- author := ""
40
- message := ""
41
- date := ""
42
- var references []appv1.RevisionReference
43
- if dryCommitMetadata != nil {
44
- author = dryCommitMetadata .Author
45
- message = dryCommitMetadata .Message
46
- if dryCommitMetadata .Date != nil {
47
- date = dryCommitMetadata .Date .Format (time .RFC3339 )
48
- }
49
- references = dryCommitMetadata .References
37
+ hydratorMetadata , err := hydrator .GetCommitMetadata (repoUrl , drySha , dryCommitMetadata )
38
+ if err != nil {
39
+ return fmt .Errorf ("failed to retrieve hydrator metadata: %w" , err )
50
40
}
51
41
52
- subject , body , _ := strings .Cut (message , "\n \n " )
53
-
54
- _ , bodyMinusTrailers := git .GetReferences (log .WithFields (log.Fields {"repo" : repoUrl , "revision" : drySha }), body )
55
-
56
42
// Write the top-level readme.
57
- err : = writeMetadata (root , "" , hydratorMetadataFile { DrySHA : drySha , RepoURL : repoUrl , Author : author , Subject : subject , Body : bodyMinusTrailers , Date : date , References : references } )
43
+ err = writeMetadata (root , "" , hydratorMetadata )
58
44
if err != nil {
59
45
return fmt .Errorf ("failed to write top-level hydrator metadata: %w" , err )
60
46
}
@@ -86,7 +72,7 @@ func WriteForPaths(root *os.Root, repoUrl, drySha string, dryCommitMetadata *app
86
72
}
87
73
88
74
// Write hydrator.metadata containing information about the hydration process.
89
- hydratorMetadata := hydratorMetadataFile {
75
+ hydratorMetadata := hydrator. HydratorCommitMetadata {
90
76
Commands : p .Commands ,
91
77
DrySHA : drySha ,
92
78
RepoURL : repoUrl ,
@@ -106,7 +92,7 @@ func WriteForPaths(root *os.Root, repoUrl, drySha string, dryCommitMetadata *app
106
92
}
107
93
108
94
// writeMetadata writes the metadata to the hydrator.metadata file.
109
- func writeMetadata (root * os.Root , dirPath string , metadata hydratorMetadataFile ) error {
95
+ func writeMetadata (root * os.Root , dirPath string , metadata hydrator. HydratorCommitMetadata ) error {
110
96
hydratorMetadataPath := filepath .Join (dirPath , "hydrator.metadata" )
111
97
f , err := root .Create (hydratorMetadataPath )
112
98
if err != nil {
@@ -125,7 +111,7 @@ func writeMetadata(root *os.Root, dirPath string, metadata hydratorMetadataFile)
125
111
}
126
112
127
113
// writeReadme writes the readme to the README.md file.
128
- func writeReadme (root * os.Root , dirPath string , metadata hydratorMetadataFile ) error {
114
+ func writeReadme (root * os.Root , dirPath string , metadata hydrator. HydratorCommitMetadata ) error {
129
115
readmeTemplate , err := template .New ("readme" ).Funcs (sprigFuncMap ).Parse (manifestHydrationReadmeTemplate )
130
116
if err != nil {
131
117
return fmt .Errorf ("failed to parse readme template: %w" , err )
0 commit comments