GitHub Actions报错:fatal: could not read Password for 'https://***@github.com': No such device or address

今天给博客添加一个友链时,发现过了十几分钟页面都没有更新。最初怀疑是 CloudFlare 缓存的原因,等了半小时无果后,就在 CloudFlare 开启了开发模式并清空了缓存,但是发现还是没更新。然后去看了 GitHub 静态文件仓库,发现最新一次提交还是 2 天前,顺着检查了源文件仓库的自动部署任务,发现有错误:fatal: could not read Password for 'https://***@github.com': No such device or address,因为 Actions 的 push 代码后加了 || echo "nothing to commit",所以无论 push 成功与否,Actions 任务都会成功结束。

知道了是密码错误导致 push 错误,想起前两天 GitHub 邮件提示有 token 即将过期,那就简单了,Regenerate 一下重新执行任务就完事了,然而更新 token 之后任务还是在 push 的时候报同样的错,有点不能理解了。

然后就理了一下,在 Actions 里引用的密码是这样的:

git commit -m "GitHub Actions Auto Builder at $(date +'%Y-%m-%d %H:%M:%S')" && git push --force "https://${{ secrets.HEXO_BLOG_DEPLOY_KEY }}@$GITHUB_REPO" master:main || echo "Nothing to commit"

但 Personal access token 中的 token 却是没有名称的,只有一个 note:

Personl access token

理了一下,将新的 token 的 value 更新到源文件仓库 Secrets and variables > Actions > Repository secrets 的 HEXO_BLOG_DEPLOY_KEY 中,再重新运行任务,就部署成功了。