为什么GitHub需要`api_key`使用Travis上传?

时间:2016-12-05 21:16:17

标签: github travis-ci

我正在使用Travis Enterprise和GitHub Enterprise,我已将Travis配置为根据说明here自动将资产上传到我的仓库。

我的.travis.yml有一个这样的部分,目前工作正常:

deploy:
  provider: releases
  file: app.war
  skip_cleanup: true
  on:
    tags: true
  api_key:
    secure: *********

我的问题很简单,为什么我需要api_key部分,因为我的GHE repo已经配置了Deploy Key读/写访问权限。 Deploy Key使Travis可以访问该repo,并使其能够检索代码并首先执行构建。部署密钥不应该足以让Travis还将资产上传到回购的Releases部分吗?

1 个答案:

答案 0 :(得分:1)

TLDR 部署密钥与Git数据交互; OAuth令牌允许API访问与GitHub交互。

deploy key将授予Travis SSH Git访问权限 - 读取和写入 - 并限定为单个存储库。这样就可以与存储库进行SSH交互。

release upload process要求Travis有OAuth token代表您与GitHub互动。 GitHub Releases API需要此令牌作为特定用户。