Skip to content

🔧 chore(deps): 更新 Go 模块依赖版本。#32

Merged
eryajf merged 2 commits intomainfrom
fix_mod
Jan 6, 2026
Merged

🔧 chore(deps): 更新 Go 模块依赖版本。#32
eryajf merged 2 commits intomainfrom
fix_mod

Conversation

@eryajf
Copy link
Copy Markdown
Member

@eryajf eryajf commented Jan 6, 2026

  • 将 Go 版本从 1.22 升级到 1.25。
  • 升级多个依赖包版本,包括 github.com/golang-module/carbon/v2、github.com/tencentcloud/tencentcloud-sdk-go 相关模块等。
  • 移除不必要的依赖项并添加新的间接依赖。

Summary by CodeRabbit

发布说明

  • 杂务
    • 升级 Go 工具链至 1.25,更新多项依赖版本(含云服务 SDK 与时间库)
    • 更新构建与运行基础镜像至 Alpine 3.22
  • 持续集成
    • 更新 CI 配置以使用 go.mod 指定的 Go 版本并升级相关动作与工具
  • 优化
    • 在构建流程中加入二进制压缩步骤,减小发布包体积

✏️ Tip: You can customize this high-level summary in your review settings.

- 将 Go 版本从 1.22 升级到 1.25。
- 升级多个依赖包版本,包括 github.com/golang-module/carbon/v2、github.com/tencentcloud/tencentcloud-sdk-go 相关模块等。
- 移除不必要的依赖项并添加新的间接依赖。
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 6, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

将 Go 工具链从 1.22 升级到 1.25;Dockerfile 构建/运行镜像基线升级并在构建阶段添加 upx 压缩步骤;go.mod 中若干依赖(包括 carbon 与 Tencent Cloud SDK 子模块)版本被提升;CI 工作流更新为基于 go.mod 的 go 版本配置并升级相关动作版本。

Changes

内聚组别 / 文件(s) 变更摘要
构建镜像与打包
Dockerfile
构建阶段基础镜像从 registry.cn-hangzhou.aliyuncs.com/eryajf/golang:1.22.2-alpine3.19-eryajf 更新为 docker.cnb.cool/znb/images/golang:1.25.0-alpine3.22 AS builder;在构建阶段安装 upx 并对产物执行 upx -9;最终运行镜像从 registry.cn-hangzhou.aliyuncs.com/eryajf/alpine:3.19 更新为 docker.cnb.cool/znb/images/alpine:3.22
Go 模块与依赖
go.mod
Go 版本声明从 1.22 升为 1.25github.com/golang-module/carbon/v2v2.3.12 升至 v2.6.9;Tencent Cloud SDK 相关模块(common/dnspod/domain)版本调整为 v1.3.24/v1.3.24/v1.2.2;新增/调整间接依赖 github.com/dromara/carbon/v2 v2.6.15
CI 工作流
.github/workflows/...
.github/workflows/buildAndPush-binary-to-release.yml, .github/workflows/go-ci-check.yml
Release workflow 中的 Go 版本由 1.22 升至 1.25;CI lint 工作流将 setup-go 升级到 v6,改为使用 go-version-file: "go.mod"cache-dependency-path: "go.sum",并更新 golangci-lint 安装器版本(v1.61.0 → v2.7.2);部分步骤名称本地化。

Sequence Diagram(s)

(无。变更为构建/依赖版本与 CI 配置更新,未引入新的多组件控制流需要可视化序列图。)

评估代码审查工作量

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 镜像换新上行列,
Go 也踏上 1.25,
构建中放入 upx,二进制更轻盈,
依赖齐步向前奔,
小兔一跃庆更新! ✨

Pre-merge checks

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive PR标题采用了emoji和中文,内容与变更内容相关但过于宽泛,不够具体清晰。 建议使用英文和更具体的标题,如'chore(deps): upgrade Go to 1.25 and update dependencies',避免使用emoji,增强可读性。
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b922bba and 49a069e.

📒 Files selected for processing (2)
  • .github/workflows/buildAndPush-binary-to-release.yml
  • .github/workflows/go-ci-check.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
Dockerfile (2)

6-6: 建议使用 COPY 替代 ADD。

根据 Hadolint 的建议和 Docker 最佳实践,对于本地文件和目录,应使用 COPY 而不是 ADDADD 具有额外功能(如 tar 自动解压和 URL 支持),但在此场景下不需要这些功能。

🔎 建议的修复
-ADD . .
+COPY . .

8-8: UPX 压缩级别权衡。

使用 upx -9 可以获得最大压缩率,但会显著增加构建时间,并且在某些情况下可能导致二进制文件启动稍慢。对于频繁构建的场景,可以考虑使用 -5-7 来平衡压缩率和构建时间。

当前配置:

  • 优点:最大程度减小镜像体积
  • 缺点:构建时间较长

如果构建时间是瓶颈,可以考虑调整压缩级别。

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 31370ec and b922bba.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (2)
  • Dockerfile
  • go.mod
🧰 Additional context used
🪛 Hadolint (2.14.0)
Dockerfile

[error] 6-6: Use COPY instead of ADD for files and folders

(DL3020)

🔇 Additional comments (5)
Dockerfile (2)

1-1: 确认基础镜像的版本与 go.mod 对齐。

Builder 镜像使用 Go 1.25.0,这与 go.mod 中的 go 1.25 声明一致。请确保该镜像源 docker.cnb.cool/znb/images/golang:1.25.0-alpine3.22 可用且可信。


10-10: Alpine 版本升级与 Go 版本对齐。

最终镜像升级到 Alpine 3.22,与 builder 阶段的 Alpine 版本保持一致。这是一个良好的实践,确保了构建和运行环境的一致性。

go.mod (3)

3-3: > Likely an incorrect or invalid review comment.


42-42: 确认:dromara/carbongolang-module/carbon 引入,无需额外处理

github.com/dromara/carbon/v2 作为间接依赖是由直接依赖 github.com/golang-module/carbon/v2 引入的。两个包拥有不同的导入路径,不存在命名冲突。版本差异(v2.6.15 vs v2.6.9)是 Go 模块系统自动选择最高兼容版本的正常行为,无需特殊处理。


24-26: 腾讯云 SDK 版本已确认存在且集成无误。

所有指定的 SDK 版本均已通过 Go 模块代理验证:

  • tencentcloud/common v1.3.24 ✓
  • tencentcloud/dnspod v1.3.24 ✓
  • tencentcloud/domain v1.2.2 ✓

代码在 pkg/provider/tencent.go 中已正确集成这些版本,使用了兼容的 API 调用方式(如 common.NewCredential()dnspod.NewClient() 等),且错误处理也适配了新版本的 errors.TencentCloudSDKError 类型。未发现兼容性问题或未处理的破坏性变更。

Comment thread go.mod
github.com/cloudflare/cloudflare-go v0.103.0
github.com/go-resty/resty/v2 v2.14.0
github.com/golang-module/carbon/v2 v2.3.12
github.com/golang-module/carbon/v2 v2.6.9
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# 验证 github.com/golang-module/carbon/v2 v2.6.9 版本是否存在

# 检查 Go 模块代理以验证版本
echo "=== 检查版本列表 ==="
curl -s "https://proxy.golang.org/github.com/golang-module/carbon/v2/@v/list" | grep -E "v2\.6\.9|v2\.3\.12"

# 获取该模块的最新版本列表
echo -e "\n=== 最近的版本列表 ==="
curl -s "https://proxy.golang.org/github.com/golang-module/carbon/v2/@v/list" | tail -15

# 验证 v2.6.9 的具体信息
echo -e "\n=== 验证 v2.6.9 版本信息 ==="
curl -s "https://proxy.golang.org/github.com/golang-module/carbon/v2/@v/v2.6.9.info"

Repository: opsre/cloud_dns_exporter

Length of output: 442


🌐 Web query:

github.com/golang-module/carbon v2.6.9 release notes breaking changes

💡 Result:

Short answer: The v2.6.9 series includes a repository/module move that can break consumers — the project was donated and the canonical module path changed from github.com/golang-module/carbon/v2 to github.com/dromara/carbon/v2. Update your imports or add a replace directive (or switch to the new module path) to avoid breakage. [1][2]

Sources:
[1] carbon installation / migration note.
[2] release listing showing v2.6.9.


🏁 Script executed:

#!/bin/bash
# 获取 carbon 模块在 GitHub 上的发布信息
echo "=== 检查 carbon v2.6.9 发布信息 ==="
curl -s "https://api.github.com/repos/golang-module/carbon/releases/tags/v2.6.9" | head -100

echo -e "\n=== 检查 v2.3.12 到 v2.6.9 之间的版本信息 ==="
curl -s "https://api.github.com/repos/golang-module/carbon/releases" | grep -E '"tag_name"|"v2\.(3\.[0-9]+|4\.|5\.|6\.)" ' | head -20

Repository: opsre/cloud_dns_exporter

Length of output: 281


🏁 Script executed:

#!/bin/bash
# 检查完整的 go.mod 文件
echo "=== 完整 go.mod 文件 ==="
cat -n go.mod

echo -e "\n=== 搜索 carbon 导入 ==="
rg "carbon" --type go -A 2 -B 2

echo -e "\n=== 检查是否有 replace 指令 ==="
grep -n "replace" go.mod || echo "未找到 replace 指令"

Repository: opsre/cloud_dns_exporter

Length of output: 8675


更新 carbon 依赖的模块路径以应对代码库迁移。

v2.6.9 版本存在且有效,但该版本涉及重大变更:carbon 项目已被捐赠,规范模块路径已从 github.com/golang-module/carbon/v2 迁移至 github.com/dromara/carbon/v2。当前 go.mod 中使用旧路径导入 v2.6.9,而间接依赖已指向新路径的 v2.6.15。codebase 在 6 个文件中使用 carbon(tencent.go、godaddy.go、cloudflare.go、amazon.go、aliyun.go、dnsla.go),所有导入仍使用旧路径。

建议采取以下措施之一:

  • 更新所有代码中的导入语句为 github.com/dromara/carbon/v2,并更新 go.mod 中的依赖版本
  • 或在 go.mod 中添加 replace 指令将旧路径重定向到新路径
  • 或回退至迁移前的版本(如 v2.3.x)

- 将 Go 版本从 1.22 升级至 1.25
- 更新 actions/setup-go 从 v3 到 v6
- 使用 go-version-file 替代固定版本号
- 添加 cache-dependency-path 配置
- 升级 golangci-lint 从 v1.61.0 到 v2.7.2
@eryajf eryajf merged commit e377918 into main Jan 6, 2026
2 of 4 checks passed
@eryajf eryajf added the bug Something isn't working label Jan 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant