2016-12-05 34 views
0

我使用特拉維斯企業和GitHub的企業,我有特拉維斯配置爲自動上傳資產回購我基於這些指令here爲什麼GitHub發佈版需要`api_key`使用Travis上傳?

.travis.yml有這樣一個部分,是當前做工精細:

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

我的問題很簡單,爲什麼我需要api_key部分,因爲在所有我GHE回購已經有一個Deploy Key與讀取配置/寫入權限。部署密鑰使Travis能夠訪問該回購協議,並使其能夠檢索代碼並首先執行構建。該部署密鑰是否應該足以讓Travis也將資產上傳到回購版的發佈部分?

+0

Downvoted沒有評論。那很有意思。 – david

+1

部署密鑰是SSH Git訪問。 API密鑰是調用[釋放GitHub的API](https://developer.github.com/v3/repos/releases/#create-a-release),爲特定用戶。 – osowskit

+0

@oskitkit我明白你的意思。那麼,不同之處在於,更多的是實現細節而不是安全問題。我的意思是,如果我有一個使用r/w訪問設置的部署密鑰,我認爲足以啓用將某些內容上傳到回購協議的發行版部分。 – david

回答

1

TLDR部署密鑰在GIT中的數據進行交互; OAuth令牌允許API訪問與GitHub進行交互。

一個deploy key將授予特拉維斯SSH的Git訪問 - 讀寫 - 和範圍限定於單一的儲存庫。這使得SSH可以與存儲庫進行交互。

release upload process要求Travis有一個OAuth token代表您與GitHub進行交互。 GitHub Releases API需要此令牌作爲特定用戶。

相關問題