2016-08-23 91 views
1

AWS文档描述了使用浏览器你Github上如何进行身份验证,而且您是当前登录到Github上与权限要从部署存储库的有效用户:将AWS CodeDeploy连接到Github而不使用我的Github用户?

http://docs.aws.amazon.com/codedeploy/latest/userguide/github-integ.html#github-integ-behaviors-auth

有什么如何设置CodeDeploy而无需链接我的用户和浏览器?我很乐意在每个存储库和AWS API调用上使用webhook,但如果必须的话,我会创建一个Github的“服务用户”。

更多的例子: http://blogs.aws.amazon.com/application-management/post/Tx33XKAKURCCW83/Automatically-Deploy-from-GitHub-Using-AWS-CodeDeploy

我很想在我的回购使用网络挂接,或者设置他们自己,不是允许AWS访问每个库在我的Github上的帐户。

回答

1

在这一点上,似乎没有办法在浏览器中执行OAuth流程。如果您担心将整个Github帐户开放至亚马逊,那么创建服务用户可能是最好的方法,不幸的是,似乎该用户仍然需要通过管理访问您的回购站来设置集成。

-2

您可以使用此bash命令

从本地到远程

rsync --delete -azvv -e "ssh -i /path/to/pem" /path/to/local/code/* [email protected]:/path/to/remote/code

从远程到本地

rsync --delete -azvv -e "ssh -i /path/to/pem" [email protected]:/path/to/remote/code/* /path/to/local/code

rsync检查文件版本和做更新文件那需要更新

+0

你确定你回答正确的问题? – Martin

+0

是的。他要求在没有github用户的情况下进行部署 –

+0

我问如何在没有Github用户的情况下使用AWS CodeDeploy产品,同时仍然使用他们提供的与Github的集成。在这种情况下,你的回答没有意义。 – Martin

0

CodeDeploy和Github集成基于Github Oauth工作。因此,要使用CodeDeploy和Github集成,您必须使用您的github帐户信任CodeDeploy github应用程序。目前,这种集成只能在浏览器中使用有效的github帐户,因为CodeDeploy应用程序将始终重定向回CodeDeploy控制台,以验证&完成OAuth身份验证过程。

0

经过更多研究,我意识到我的第一个答案是错误的,您可以使用AWS CLI使用Github OAuth令牌创建CodePipeline。然后,您可以从那里插入CodeDeploy部署。下面是一个例子配置:

{ 
    "pipeline": { 
     "roleArn": "arn:aws:iam::99999999:role/AWS-CodePipeline-Service", 
     "stages": [ 
      { 
       "name": "Source", 
       "actions": [ 
        { 
         "inputArtifacts": [], 
         "name": "Source", 
         "actionTypeId": { 
          "category": "Source", 
          "owner": "ThirdParty", 
          "version": "1", 
          "provider": "GitHub" 
         }, 
         "outputArtifacts": [ 
          { 
           "name": "MyApp" 
          } 
         ], 
         "configuration": { 
          "Owner": "myusername", 
          "Repo": "myrepo", 
          "Branch": "master", 
          "OAuthToken": "**************" 
         }, 
         "runOrder": 1 
        } 
       ] 
      }, 
      { 
       "name": "Beta", 
       "actions": [ 
        { 
         "inputArtifacts": [ 
          { 
           "name": "MyApp" 
          } 
         ], 
         "name": "CodePipelineDemoFleet", 
         "actionTypeId": { 
          "category": "Deploy", 
          "owner": "AWS", 
          "version": "1", 
          "provider": "CodeDeploy" 
         }, 
         "outputArtifacts": [], 
         "configuration": { 
          "ApplicationName": "CodePipelineDemoApplication", 
          "DeploymentGroupName": "CodePipelineDemoFleet" 
         }, 
         "runOrder": 1 
        } 
       ] 
      } 
     ], 
     "artifactStore": { 
      "type": "S3", 
      "location": "codepipeline-us-east-1-99999999" 
     }, 
     "name": "MySecondPipeline", 
     "version": 1 
    } 
} 

您可以使用以下命令创建的管道:

aws codepipeline create-pipeline --cli-input-json file://input.json 

确保Github上的OAuth令牌有权限admin:repo_hookrepo

参考:http://docs.aws.amazon.com/cli/latest/reference/codepipeline/create-pipeline.html

+0

虽然我认为这会在这一点上使用不同的产品。看起来答案仍然是“使用AWS CodeDeploy,你不能。” – Martin