5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Tips: CodeBuildでGitHubのPRへコメントを行う

Last updated at Posted at 2021-06-01

これは何

記事投稿イベント「3000文字Tips」の参加記事です。

CodeBuildについて

CodeBuildとは、AWSで使えるCI/CDサービスです。
詳しくは↓の記事などが参考になると思います。

CodeBuildの準備

まずはCodeBuildとGitHubを以下の記事を参考に連携してください。

CIの発火イベントはPULL_REQUEST_UPDATEDを設定してください。

コメントを行うためのスクリプトを用意する

GitHubのPRへコメントを行うためのスクリプトを用意します。
今回はRubyで書いていますが、GitHubのAPIが叩ければなんでも大丈夫です。

ci.rb
require 'net/http'
require 'uri'
require 'json'

trigger_data = ENV['CODEBUILD_WEBHOOK_TRIGGER'].split('/')

uri = URI.parse("https://api.github.com/repos/#{'ユーザー名'}/#{'リポジトリ名'}/issues/#{trigger_data[1]}/comments")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

params = {
  body: <<~EOS   
    #{'コメントしたい内容'}
  EOS
}

headers = {
  "Accept" => "application/vnd.github.v3+json",
  "Authorization" => "token #{'GITHUBアクセストークン'}"
}


response = http.post(uri.path, params.to_json, headers)

buildspec.ymlの準備

buildspec.ymlに以下のように記述します。

buildspec.yml
phases:
  build:
    commands:
      - |
        parsed_triger=(${CODEBUILD_WEBHOOK_TRIGGER//\// })
        if [ "${parsed_triger[0]}" = "pr" ]; then
          ruby scripts/ci.rb
        fi
5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?