GitLab使用semantic-release报错Invalid GitHub token问题咨询
问题原因
你遇到的报错是因为semantic-release实际运行时加载了@semantic-release/github插件,触发了GitHub token校验逻辑,和你配置的GitLab插件无关。
排查和解决步骤
- 第一步:确认配置文件是否正常加载
semantic-release默认读取根目录下带.前缀的.releaserc.json作为配置文件,你当前用的releaserc.json缺少前缀点,大概率是配置不生效的核心原因。
你可以直接把文件名改为.releaserc.json,或者运行命令时手动指定配置文件:
你也可以加debug参数确认加载的配置是否正确:npx semantic-release --config releaserc.json
查看输出的配置信息中plugins数组是否和你写的配置一致,如果输出中包含npx semantic-release --dry-run --debug@semantic-release/github,说明还是使用了带GitHub插件的默认配置。 - 第二步:检查运行命令是否指定了额外插件
如果你在CI脚本里运行semantic-release时加了--plugins参数手动指定插件列表,命令行参数的优先级会高于配置文件,会覆盖你写的配置。 - 第三步:临时快速修复
如果排查耗时过长,可以直接卸载@semantic-release/github包规避问题,执行命令:
卸载后就算逻辑尝试加载该插件也会因为找不到包直接跳过,不会触发token校验。npm uninstall @semantic-release/github
额外注意事项
你需要在CI变量中配置权限足够的GITLAB_TOKEN,需要具备仓库读写、标签创建权限,才能保证semantic-release GitLab插件正常运行。你提供的.npmrc配置是用于发布npm包到GitLab制品库的,和本次报错无关,配置本身没有问题。
内容的提问来源于stack exchange,提问作者陈子天
相关产品推荐
相关产品推荐

