Gitlab 16.1.0 升级到 18.11.0
最近发现 GitLab 存在一些漏洞,刚好我部署在公网的版本符合漏洞版本。所以决定升级 GitLab 版本到 18.11.0。
注意事项
GitLab 不能直接跨大版本进行直接升级,需要从最小兼容的版本开始,分段式升级到最新版本 GitLab 升级文档。
可以使用 工具网站 来确定你每个阶段需要升级的版本。
2026年5月9日大约 1 分钟
最近发现 GitLab 存在一些漏洞,刚好我部署在公网的版本符合漏洞版本。所以决定升级 GitLab 版本到 18.11.0。
GitLab 不能直接跨大版本进行直接升级,需要从最小兼容的版本开始,分段式升级到最新版本 GitLab 升级文档。
可以使用 工具网站 来确定你每个阶段需要升级的版本。
Active Code Page 导致 IDEA 崩溃的问题起因是最近部署了一个本地主机运行的 OpenClaw 示例,但是由于 我的 OS 激活版本为 简体中文,默认 Active Code Page 会导致 Windows OS 工具命令输出中文信息。但是在 OpenClaw 端显示为乱码,所以我想到了修改 Active Code Page 来直接将工具输出修改为英文输出。
我修改了 注册表 中 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor,的 auto_run 项,添加了修改 活动分页 的命令 chcp 437。
先说结论。
在调用 stringify 之前把 Date 类型先格式化为字符串避免。
export default {
/**
* 解决 stringify 导致的时区丢失,提前把所有日期类型字段转化为字符串
* @param data 转换对象
* @returns {*}
*/
formatDateTime(data){
for (const key in data){
const value = data[key]
if (value instanceof Date) {
const year = value.getFullYear()
const month = (value.getMonth() < 9 ? '0' : '') + (value.getMonth() + 1)
const day = (value.getDate() < 10 ? '0' : '') + value.getDate()
const hour = (value.getHours() < 10 ? '0' : '') + value.getHours()
const minute = (value.getMinutes() < 10 ? '0' : '') + value.getMinutes()
const second = (value.getSeconds() < 10 ? '0' : '') + value.getSeconds()
const milliseconds = (value.getSeconds() < 100 ? value.getSeconds() < 10 ? '00' : '0' : '') + value.getSeconds()
data[key] = `${year}-${month}-${day}T${hour}:${minute}:${second}.${milliseconds}Z`
}
}
return data
}
}
之前没有详细了解过sm2的组成、这个问题折腾了一上午。终于找到了解决办法。
其实 Base64 的公钥只是多了一步 ASN.1 的编码。用 ASN.1 解码工具解码 Base64 的公钥可以得到以下结果:
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE16LwYmnY3GmvpSw4RF05MXy+pCO8zEGTF5M9zFgnWAEWP5qxv86ubFjo4lzCzAm5BWFrF6VWhMnTf5k5AUK2+Q==