github actions 的 token 问题

2020-02-22 13:28:46 +08:00
 ODD10

https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token

${{ secrets.GITHUB_TOKEN }}只有 1 小时时效

但我编译要 2 个小时,GITHUB_TOKEN 会失效。

我也尝试过自建 token,在项目的 Secrets 里面进行了添加;依旧不行。


Create Release

Run actions/create-release@v1
  with:
    tag_name: refs/tags/V1.0
    release_name: Release refs/tags/V1.0
    body: refs/tags/V1.0
    draft: false
    prerelease: false
  env:
    REPO_URL: https://github.com/coolsnowwolf/lede
    REPO_BRANCH: master
    CONFIG_FILE: .config
    DIY_SH: diy.sh
    FREE_UP_DISK: false
    SSH_ACTIONS: false
    UPLOAD_BIN_DIR: false
    UPLOAD_FIRMWARE: true
    TZ: Asia/Shanghai
    FILE_NAME: OpenWrt-K2P-firmware
    FIRMWARE: /home/runner/work/OpenWrt-K2P-firmware/OpenWrt-K2P-firmware/openwrt/bin/targets/ramips/mt7621
    GITHUB_TOKEN: ***
##[error]Validation Failed

4697 次点击
所在节点    GitHub
24 条回复
ODD10
2020-02-22 13:40:51 +08:00
```yaml

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
# 建议自建 TOKEN
# 然后在项目的 [Settings-Secrets] 绑定
# https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
# GITHUB_TOKEN 好像有时效,1 小时后失效,会报错 [Bad credentials]
GITHUB_TOKEN: ${{ secrets.RELEASES_TOKEN }}
with:
tag_name: ${{ github.ref }} # 触发工作流程运行的分支或标记 ref https://help.github.com/en/actions/reference/contexts-and-expression-syntax-for-github-actions#github-context
release_name: Release ${{ github.ref }}
body: ${{ github.ref }}
draft: false
prerelease: false

```
Trim21
2020-02-22 13:51:27 +08:00
试试换个环境变量的名字,不用`GITHUB_`开头
ODD10
2020-02-22 13:54:47 +08:00
@Trim21 #2
super_secret: ${{ secrets.RELEASES_TOKEN }}
我现在尝试,要过两小时才能知道结果
不知道自建的 token 是否也会有时间限制?
ODD10
2020-02-22 13:56:04 +08:00
@Trim21 #2
GITHUB_开头其实文档是说不能建立 GITHUB_名字的 token,好像与 env 无关
Trim21
2020-02-22 14:00:26 +08:00
@ODD10 #3 自建的 token 应该没有失效时间吧。

不过我看文档说的的确是环境变量
“设置有 GITHUB_ 前缀的环境变量或密码将导致错误。”
ODD10
2020-02-22 14:04:46 +08:00
@Trim21 #5
https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables

才看到,我自建的使用新 env 名字的还在编译;完结再来反馈
ODD10
2020-02-22 14:07:56 +08:00
@Trim21 #5
但还有一个问题,如果 env 中不能用 GITHUB_TOKEN 使用自建 token,可能不会加密,别人就能在 actions 日志看到这个 token。猜测,待验证。
ihciah
2020-02-22 14:34:15 +08:00
@ODD10 设置到 secret 里的 token 也会被拿去 match 日志,然后把 match 到的部分打码。
Kr98
2020-02-22 14:39:13 +08:00
只是检查 token 能不能用的话不需要 2 小时,跳过编译直接发布空的内容就够了,确定没问题之后再完整地跑。
GITHUB_TOKEN 这个名字是 actions/create-release@v1 要用的,你改成 super_secret 就不认了。
怀疑可能是 token 的权限没设置对?
ODD10
2020-02-22 14:43:46 +08:00
@Kr98 #9
GITHUB_TOKEN:自建 token。
十几分种试过,是可以的,昨天我就试过了,不过这个 2 小时还是不行。我是测试过,才来这发帖
ODD10
2020-02-22 14:45:49 +08:00
ODD10
2020-02-22 14:46:49 +08:00
@Kr98 #9 你看看是否问题?昨天我也怀疑权限没给够,后来差不多全选了,还是不顶用
explorerman
2020-03-03 09:32:42 +08:00
楼主,问题解决了没。
ODD10
2020-03-03 14:15:55 +08:00
@explorerman #13
actions/create-release 使用自建 token,并且不存在已创建同名 release。是可以成功执行的。
explorerman
2020-03-03 15:03:37 +08:00
@ODD10 方便分享一下代码和设置截图(模糊处理敏感信息)不,邮箱 explorer0771@gmail.com ,谢谢。在项目 Secrets 里面添加 token,还是在个人账户的 Settings/Developer settings/Personal access tokens 里添加。如果在 Secrets 里添加,其值的长度和复杂程度有什么要求没哈。

这个问题困扰很久了,谢谢指导!
ODD10
2020-03-03 18:12:02 +08:00
@explorerman #15
在项目 Secrets 里面添加的 token,日志都会打码***;个人账户的 Settings/Developer settings/Personal access tokens 只是给操作仓库等权限; Secrets 的大小好像有限制,64kb 还是多少来着,一般超不了。Secrets 可以开启 debug 日志等等,不一定存 token,比如存 docker 用户名、密码也是可以的。
explorerman
2020-03-03 22:48:11 +08:00
@ODD10 意思是,直接在在项目 Secrets 里面添加的 token 就好了是吧。
尝试自己建立的 secrets 处理
- name: Create release
uses: softprops/action-gh-release@v1,
env:
LEO_TOKEN: ${{ secrets.LEO_TOKEN }}

但错误提示 Unexpected error fetching GitHub release for tag refs/heads/master: HttpError: Bad credentials
explorerman
2020-03-03 23:05:03 +08:00
@ODD10 需要在 2 个地方同时设置不。
需要在个人账户 Settings/Developer settings/Personal access tokens 里,设置一个与项目 Secrets 里相同名称的 token 吗。如果是,项目 Secrets 里值要与 Personal access tokens 里产生的值,保持一致不。
谢谢~
ODD10
2020-03-03 23:25:05 +08:00
@explorerman #18
Secrets 的 token 名称是独立的,所以随便起,你自己知道是干嘛的就行。比如你要用 Settings/Developer settings/Personal access tokens 里面的 tokenA,值一定要是 tokenA 的值,Secrets 的字段名随便起。
explorerman
2020-03-03 23:34:48 +08:00
@ODD10 能否分享一下最后正确的代码哈,谢谢~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/646586

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX