Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 32 additions & 20 deletions dependency_updater/dependency_updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down Expand Up @@ -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
}
}

Expand Down Expand Up @@ -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",
Expand All @@ -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)
Expand Down
15 changes: 0 additions & 15 deletions versions.json
Original file line number Diff line number Diff line change
@@ -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"
}
Expand Down