diff --git a/dependency_updater/dependency_updater.go b/dependency_updater/dependency_updater.go index cbecd717e..332802e8f 100644 --- a/dependency_updater/dependency_updater.go +++ b/dependency_updater/dependency_updater.go @@ -16,11 +16,8 @@ import ( ) type Info struct { - RepoUrl string `json:"repoUrl"` Tag string `json:"tag"` Commit string `json:"commit"` - CommitUrl string `json:"commitUrl"` - VersionUrl string `json:"versionUrl"` TagPrefix string `json:"tagPrefix,omitempty"` Owner string `json:"owner` Repo string `json:"repo` @@ -124,28 +121,39 @@ func getAndUpdateDependency(ctx context.Context, client *github.Client, dependen } func getVersionAndCommit(ctx context.Context, client *github.Client, dependencies Dependencies, dependencyType string) (string, string, error) { - var version *github.RepositoryRelease var err error - // handle dependencies with prefix - releases, _, err := client.Repositories.ListReleases( - ctx, - dependencies[dependencyType].Owner, - dependencies[dependencyType].Repo, - nil) + foundPrefixVersion := false + options := &github.ListOptions{Page: 1} - if err != nil { - return "", "", fmt.Errorf("error getting releases: %s", err) - } + for { + releases, resp, err := client.Repositories.ListReleases( + ctx, + dependencies[dependencyType].Owner, + dependencies[dependencyType].Repo, + options) - if dependencies[dependencyType].TagPrefix == "" { - version = releases[0] - } else { - for release := range releases { - if strings.HasPrefix(*releases[release].TagName, dependencies[dependencyType].TagPrefix) { - version = releases[release] + if err != nil { + return "", "", fmt.Errorf("error getting releases: %s", err) + } + + if dependencies[dependencyType].TagPrefix == "" { + version = releases[0] + break + } else if dependencies[dependencyType].TagPrefix != ""{ + for release := range releases { + if strings.HasPrefix(*releases[release].TagName, dependencies[dependencyType].TagPrefix) { + version = releases[release] + foundPrefixVersion = true + break + } + } + if foundPrefixVersion { break } + options.Page = resp.NextPage + } else if resp.NextPage == 0 { + break } } @@ -196,6 +204,10 @@ func createVersionsEnv(repoPath string, dependencies Dependencies) error { envLines := []string{} for dependency := range dependencies { + repoUrl := "https://github.com/" + + dependencies[dependency].Owner + "/" + + dependencies[dependency].Repo + ".git" + dependencyPrefix := strings.ToUpper(dependency) envLines = append(envLines, fmt.Sprintf("export %s_%s=%s", @@ -205,7 +217,7 @@ func createVersionsEnv(repoPath string, dependencies Dependencies) error { dependencyPrefix, "COMMIT", dependencies[dependency].Commit)) envLines = append(envLines, fmt.Sprintf("export %s_%s=%s", - dependencyPrefix, "REPO", dependencies[dependency].RepoUrl)) + dependencyPrefix, "REPO", repoUrl)) } slices.Sort(envLines) diff --git a/versions.json b/versions.json index 7ec455bdb..86c6dd8f8 100644 --- a/versions.json +++ b/versions.json @@ -1,47 +1,32 @@ { "base_reth_node": { - "repoUrl": "https://github.com/base/node-reth.git", "tag": "v0.1.3", "commit": "f28c2751a0737d7617e52253a9e81070b87290b5", - "commitUrl": "https://api.github.com/repos/base/node-reth/commits/", - "versionUrl": "https://api.github.com/repos/base/node-reth/releases", "Owner": "base", "Repo": "node-reth" }, "nethermind": { - "repoUrl": "https://github.com/NethermindEth/nethermind.git", "tag": "1.32.2", "commit": "d3e7eb98b28d0b9c7b58a9fb45e83b640b2e17e6", - "commitUrl": "https://api.github.com/repos/NethermindEth/nethermind/commits/", - "versionUrl": "https://api.github.com/repos/NethermindEth/nethermind/releases", "Owner": "NethermindEth", "Repo": "nethermind" }, "op_geth": { - "repoUrl": "https://github.com/ethereum-optimism/op-geth.git", "tag": "v1.101511.0", "commit": "68075997f33907401a93216aa426514c5ddc8870", - "commitUrl": "https://api.github.com/repos/ethereum-optimism/op-geth/commits/", - "versionUrl": "https://api.github.com/repos/ethereum-optimism/op-geth/releases", "Owner": "ethereum-optimism", "Repo": "op-geth" }, "op_node": { - "repoUrl": "https://github.com/ethereum-optimism/optimism.git", "tag": "op-node/v1.13.4", "commit": "7eedfced77eb30ae72cc8d0e7c793dd2d1b6f161", - "commitUrl": "https://api.github.com/repos/ethereum-optimism/optimism/commits/", - "versionUrl": "https://api.github.com/repos/ethereum-optimism/optimism/releases", "tagPrefix": "op-node", "Owner": "ethereum-optimism", "Repo": "optimism" }, "op_reth": { - "repoUrl": "https://github.com/paradigmxyz/reth.git", "tag": "v1.5.0", "commit": "61e38f9af154fe91e776d8f5e449d20a1571e8cf", - "commitUrl": "https://api.github.com/repos/paradigmxyz/reth/commits/", - "versionUrl": "https://api.github.com/repos/paradigmxyz/reth/releases", "Owner": "paradigmxyz", "Repo": "reth" }