Skip to content

Fix Dependency Update Multiple Pages + Update Op-node to V1.13.4 #482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
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
4 changes: 2 additions & 2 deletions versions.env
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ export NETHERMIND_TAG=1.31.11
export OP_GETH_COMMIT=68075997f33907401a93216aa426514c5ddc8870
export OP_GETH_REPO=https://github.com/ethereum-optimism/op-geth.git
export OP_GETH_TAG=v1.101511.0
export OP_NODE_COMMIT=b1e7c63bb2ffea46771c302bcb05f72ba1a7bf61
export OP_NODE_COMMIT=7eedfced77eb30ae72cc8d0e7c793dd2d1b6f161
export OP_NODE_REPO=https://github.com/ethereum-optimism/optimism.git
export OP_NODE_TAG=op-node/v1.13.3
export OP_NODE_TAG=op-node/v1.13.4
export OP_RETH_COMMIT=127595e23079de2c494048d0821ea1f1107eb624
export OP_RETH_REPO=https://github.com/paradigmxyz/reth.git
export OP_RETH_TAG=v1.4.8
19 changes: 2 additions & 17 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.2",
"commit": "7fe1d4e7c74d322d2cf78df55db40e14f466cfc6",
"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.31.11",
"commit": "2be1890ee4f21f921a471de058dcb57937bd9b90",
"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.3",
"commit": "b1e7c63bb2ffea46771c302bcb05f72ba1a7bf61",
"commitUrl": "https://api.github.com/repos/ethereum-optimism/optimism/commits/",
"versionUrl": "https://api.github.com/repos/ethereum-optimism/optimism/releases",
"tag": "op-node/v1.13.4",
"commit": "7eedfced77eb30ae72cc8d0e7c793dd2d1b6f161",
"tagPrefix": "op-node",
"Owner": "ethereum-optimism",
"Repo": "optimism"
},
"op_reth": {
"repoUrl": "https://github.com/paradigmxyz/reth.git",
"tag": "v1.4.8",
"commit": "127595e23079de2c494048d0821ea1f1107eb624",
"commitUrl": "https://api.github.com/repos/paradigmxyz/reth/commits/",
"versionUrl": "https://api.github.com/repos/paradigmxyz/reth/releases",
"Owner": "paradigmxyz",
"Repo": "reth"
}
Expand Down