2017-01-12 9 views
3

私はJenkinsfileでGitHubレポをセットアップしています。 GitHub Organization Folder Pluginは、提供されたJenkinsfileからパイプラインを実行します。JenkinsはプルリクエストでJenkinsfileの変更を制限します

パイプラインの最後のステップは展開ステップです。配備手順では、CloudBees Amazon Web Services資格証明プラグインを使用してブランチにAWS資格があるかどうかを確認します。資格情報を検出すると、それ以外の場合は展開されません。

プルリクエストを作成しなければならないものを変更する場合は、すべてのメンバーがGitHubリポジトリへの読み取り専用アクセス権を持ちます(管理者のみがマージできます)。新しいプルリクエストがある場合、Jenkinsサーバは、プル要求をマスター・ブランチに統合できるかどうかを確認するデプロイ・ステップ。パイプラインの最後のステップは展開ステップです。プルリクエストに対しては実行しないでください。

stage('Deploy') { 

    // Deploy with the right credentials 
    try { 
     withCredentials([[ 
      $class: 'AmazonWebServicesCredentialsBinding', 
      accessKeyVariable: 'AWS_ACCESS_KEY_ID', 
      credentialsId: env.BRANCH_NAME + '_AWS_Credentials', 
      secretKeyVariable: 'AWS_SECRET_ACCESS_KEY' 
     ]]) { 
      echo("Deploying to " + env.BRANCH_NAME + "...") 
      ... 
     } 
    } catch(all) { 
     echo("Not deploying for branch: " + env.BRANCH_NAME) 
    } 
} 

チームメンバーは、変更されたJenkinsfileでプルリクエストを作成できます。

チームメンバーの1人がハッキングされるとします。私は変更Jenkinsfileためのパイプラインを実行しているからジェンキンスを防ぐにはどうすればよい

credentialsId: 'master_AWS_Credentials', 

:彼らは今、次のことを行い変更Jenkinsfileとプルリクエストを作成することにより、本番環境に感染することができますか? または、代わりにmasterブランチからJenkinsfileをプルリクエストで使用する方法はありますか?

答えて

-2

おそらく、jenkinsファイルのハンドラを追加するのを忘れてしまったので、リポジトリを参照して予防の設定を取得してください。これがあなたのために修正されることを願っています。

+0

申し訳ありませんが、私はあなたが言っているものは得られません。 ステップ1.リポジトリ ステップ2.ジェンキンスは は私がすべてでそれを得ることはありませんあなたは今 – Niels

+0

それは非常に簡単です見て。 GitHubリポジトリ、Jenkinsの組織、Jenkinsの組織のどこに行かなければならないのですか? peventationとは何ですか?どのような設定、GitHub設定、組織>設定の構成または組織>リポジトリ>設定の表示?ハンドラーはどういう意味ですか? –

+0

をそれを得ることを願って、ファイルのハンドラを追加peventation ステップ3の設定を取得する: – Niels

0

私が知る限り、それは文書化されていませんが、リポジトリのブランチからのプル要求だけが変更されたJenkinsFileを実行できます。 誰かがフォーク要求とプル要求を行った場合、Jenkinsが実行するJenkinsファイルは、プル要求の対象ブランチの1つで、プル要求の対象分岐の1つになります。

あなたが安全であるように、何か(マスターブランチだけでなく)をマージするために管理者レベルが必要な場合。

関連する問題