2016-12-05 7 views
0

私はTravis EnterpriseとGitHub Enterpriseを使用しており、Travisは、hereの指示に基づいて資産を自分のレポに自動的にアップロードするように設定しています。マイ.travis.ymlGitHubがTravisでアップロードするために `api_key`が必要ですか?

は、このようなセクションがあり、正常に動作電流です:

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

私の質問は、私は私のGHEレポがすでに持っているので、全くapi_keyセクションを必要としない理由は非常に単純であるDeploy Key読み取りで構成/書き込みアクセス。 Deployキーは、Travisにそのリポジトリへのアクセス権を与え、最初の場所でコードを取得してビルドを実行できるようにします。 Travisがレポのリリースセクションにアセットをアップロードするには、Deploy Keyで十分ではありませんか?

+0

コメントなしで下落しました。それは面白い。 – david

+1

展開キーはSSH Gitアクセスです。 APIキーは、特定のユーザーとして[release GitHub API](https://developer.github.com/v3/repos/releases/#create-a-release)を呼び出すことです。 – osowskit

+0

@osowskit私はあなたが何を意味するかを見ます。セキュリティとは関係なく、実装の詳細の違いがありますか?概念的には、私がr/wアクセスで設定したDeploy Keyを持っていれば、リポジトリのReleaseセクションに何かをアップロードするのに十分であると思います。 – david

答えて

1

TLDR DeployキーはGitデータと対話します。 OAuthトークンを使用すると、APIアクセスがGitHubとやり取りできます。

deploy keyは、Travis SSH Gitのアクセス権を読み取りと書き込みに許可し、1つのリポジトリにスコープします。これにより、SSHとリポジトリとの対話が可能になります。

release upload processでは、Travisに代わってGitHubと対話するために、OAuth tokenが必要です。 GitHub Releases APIには、このトークンが特定のユーザーとして必要です。

関連する問題