@@ -18,11 +18,13 @@ import (
1818)
1919
2020type Info struct {
21- Tag string `json:"tag"`
21+ Tag string `json:"tag,omitempty "`
2222 Commit string `json:"commit"`
2323 TagPrefix string `json:"tagPrefix,omitempty"`
24- Owner string `json:"owner`
25- Repo string `json:"repo`
24+ Owner string `json:"owner"`
25+ Repo string `json:"repo"`
26+ Branch string `json:"branch,omitempty"`
27+ Tracking string `json:"tracking"`
2628}
2729
2830type VersionUpdateInfo struct {
@@ -149,7 +151,7 @@ func getAndUpdateDependency(ctx context.Context, client *github.Client, dependen
149151 if err != nil {
150152 return VersionUpdateInfo {}, err
151153 }
152- if updatedDependency != (VersionUpdateInfo {}) {
154+ if updatedDependency != (VersionUpdateInfo {}) || dependencies [ dependencyType ]. Tracking == "branch" {
153155 e := updateVersionTagAndCommit (commit , version , dependencyType , repoPath , dependencies )
154156 if e != nil {
155157 return VersionUpdateInfo {}, fmt .Errorf ("error updating version tag and commit: %s" , e )
@@ -161,48 +163,49 @@ func getAndUpdateDependency(ctx context.Context, client *github.Client, dependen
161163
162164func getVersionAndCommit (ctx context.Context , client * github.Client , dependencies Dependencies , dependencyType string ) (string , string , VersionUpdateInfo , error ) {
163165 var version * github.RepositoryRelease
164- var err error
166+ var commit string
165167 var diffUrl string
166168 var updatedDependency VersionUpdateInfo
167169 foundPrefixVersion := false
168170 options := & github.ListOptions {Page : 1 }
171+ if dependencies [dependencyType ].Tracking == "tag" {
172+ for {
173+ releases , resp , err := client .Repositories .ListReleases (
174+ ctx ,
175+ dependencies [dependencyType ].Owner ,
176+ dependencies [dependencyType ].Repo ,
177+ options )
169178
170- for {
171- releases , resp , err := client .Repositories .ListReleases (
172- ctx ,
173- dependencies [dependencyType ].Owner ,
174- dependencies [dependencyType ].Repo ,
175- options )
176-
177- if err != nil {
178- return "" , "" , VersionUpdateInfo {}, fmt .Errorf ("error getting releases: %s" , err )
179- }
180-
181- if dependencies [dependencyType ].TagPrefix == "" {
182- version = releases [0 ]
183- if * version .TagName != dependencies [dependencyType ].Tag {
184- diffUrl = generateGithubRepoUrl (dependencies , dependencyType ) + "/compare/" +
185- dependencies [dependencyType ].Tag + "..." + * version .TagName
179+ if err != nil {
180+ return "" , "" , VersionUpdateInfo {}, fmt .Errorf ("error getting releases: %s" , err )
186181 }
187- break
188- } else if dependencies [dependencyType ].TagPrefix != "" {
189- for release := range releases {
190- if strings .HasPrefix (* releases [release ].TagName , dependencies [dependencyType ].TagPrefix ) {
191- version = releases [release ]
192- foundPrefixVersion = true
193- if * version .TagName != dependencies [dependencyType ].Tag {
194- diffUrl = generateGithubRepoUrl (dependencies , dependencyType ) + "/compare/" +
195- dependencies [dependencyType ].Tag + "..." + * version .TagName
182+
183+ if dependencies [dependencyType ].TagPrefix == "" {
184+ version = releases [0 ]
185+ if * version .TagName != dependencies [dependencyType ].Tag {
186+ diffUrl = generateGithubRepoUrl (dependencies , dependencyType ) + "/compare/" +
187+ dependencies [dependencyType ].Tag + "..." + * version .TagName
188+ }
189+ break
190+ } else if dependencies [dependencyType ].TagPrefix != "" {
191+ for release := range releases {
192+ if strings .HasPrefix (* releases [release ].TagName , dependencies [dependencyType ].TagPrefix ) {
193+ version = releases [release ]
194+ foundPrefixVersion = true
195+ if * version .TagName != dependencies [dependencyType ].Tag {
196+ diffUrl = generateGithubRepoUrl (dependencies , dependencyType ) + "/compare/" +
197+ dependencies [dependencyType ].Tag + "..." + * version .TagName
198+ }
199+ break
196200 }
201+ }
202+ if foundPrefixVersion {
197203 break
198204 }
199- }
200- if foundPrefixVersion {
205+ options . Page = resp . NextPage
206+ } else if resp . NextPage == 0 {
201207 break
202208 }
203- options .Page = resp .NextPage
204- } else if resp .NextPage == 0 {
205- break
206209 }
207210 }
208211
@@ -215,17 +218,38 @@ func getVersionAndCommit(ctx context.Context, client *github.Client, dependencie
215218 }
216219 }
217220
218- commit , _ , err := client .Repositories .GetCommit (
221+ if dependencies [dependencyType ].Tracking == "tag" {
222+ versionCommit , _ , err := client .Repositories .GetCommit (
219223 ctx ,
220224 dependencies [dependencyType ].Owner ,
221225 dependencies [dependencyType ].Repo ,
222226 "refs/tags/" + * version .TagName ,
223227 & github.ListOptions {})
224- if err != nil {
225- return "" , "" , VersionUpdateInfo {}, fmt .Errorf ("error getting commit for " + dependencyType + ": %s" , err )
228+ if err != nil {
229+ return "" , "" , VersionUpdateInfo {}, fmt .Errorf ("error getting commit for " + dependencyType + ": %s" , err )
230+ }
231+ commit = * versionCommit .SHA
232+
233+ } else if dependencies [dependencyType ].Tracking == "branch" {
234+ branchCommit , _ , err := client .Repositories .ListCommits (
235+ ctx ,
236+ dependencies [dependencyType ].Owner ,
237+ dependencies [dependencyType ].Repo ,
238+ & github.CommitsListOptions {
239+ SHA : dependencies [dependencyType ].Branch ,
240+ },
241+ )
242+ if err != nil {
243+ return "" , "" , VersionUpdateInfo {}, fmt .Errorf ("error listing commits for " + dependencyType + ": %s" , err )
244+ }
245+ commit = * branchCommit [0 ].SHA
226246 }
227247
228- return * version .TagName , * commit .SHA , updatedDependency , nil
248+ if version != nil {
249+ return * version .TagName , commit , updatedDependency , nil
250+ }
251+
252+ return "" , commit , updatedDependency , nil
229253}
230254
231255func updateVersionTagAndCommit (
@@ -247,6 +271,7 @@ func updateVersionTagAndCommit(
247271func writeToVersionsEnv (repoPath string , dependencies Dependencies ) error {
248272 // formatting json
249273 updatedJson , err := json .MarshalIndent (dependencies , "" , " " )
274+ print (dependencies ["base_reth_node" ].Branch )
250275 if err != nil {
251276 return fmt .Errorf ("error Marshaling dependencies json: %s" , err )
252277 }
@@ -295,4 +320,4 @@ func createVersionsEnv(repoPath string, dependencies Dependencies) error {
295320
296321func generateGithubRepoUrl (dependencies Dependencies , dependencyType string ) string {
297322 return "https://github.com/" + dependencies [dependencyType ].Owner + "/" + dependencies [dependencyType ].Repo
298- }
323+ }
0 commit comments