6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Actionsでリリースノートを作成しkintoneに登録してみた

Last updated at Posted at 2025-04-25

こんにちは!かねごん(@hrbk25)です。

今回は、GitHubでPull Request(以下 PR)を、mainブランチにマージしたとき、GitHub Actionsによりリリースノートを作成し、その内容をkintoneアプリへ自動登録する仕組みを検証したので、備忘録としてまとめました!


どんな人向けの記事か

  • GitHub Actionsをまだ触ったことがないけど興味がある方!
  • GitHub Actionsによりkintoneへレコードを登録したい方!

事前準備

kintoneアプリの作成

まず、以下の内容でkintoneのアプリを作成します。

フィールド名 フィールドコード 種別(推奨)
リリースタグ release_tag 文字列(1行)
リリースノート release_note 文字列(複数行)
リリースURL release_url リンク

image.png

リポジトリのシークレットの作成

次に、Github Actionsで使用するシークレットに以下の情報を設定します。
設定の手順は公式ドキュメントを参照しました。

変数名 設定例/説明
KINTONE_BASE_URL https:// subdomain .cybozu.com
KINTONE_API_TOKEN ********************************
KINTONE_APP_ID 123 

image.png

ワークフローの作成

Release Drafterを使ってリリースノートを自動作成するためのファイルと、kintoneのレコードを登録するためのファイルをそれぞれ作成します。
Release Drafterの基本設定は以下の記事を参考にしました。

release-drafter のインストール(って言うのかな?)は簡単で、ドキュメントの Usage にあるワークフロー設定の YAML ファイルをリポジトリの .github/workflows ディレクトリに置き、設定ファイルをドキュメントの Example からコピーしてきます。先の例のリポジトリからコピーしても構いません。

基本的にChat GPTの力を借りて、一旦動かすために、必要なファイルをさくっと作ってみました!

.github/release-drafter.ymlの作成

上記の記事の「Example」を活用しました。

.github/workflows/release-drafter.ymlの作成

main ブランチへPRがマージされたタイミングでリリースノートのドラフトを作成します。

name: Release Drafter

on:
  pull_request:
    types: [closed]    
    branches:
      - main            # 対象ブランチ

permissions:
  contents: write       # リリース下書き作成に必須
  pull-requests: write  # Autolabeler を使う場合に必須

jobs:
  update_release_draft:
    runs-on: ubuntu-latest
    steps:
      - uses: release-drafter/release-drafter@v6
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/publish-release-to-kintone.ymlの作成

リリースを「Publish release」したときに、kintoneにレコードを追加します。

name: Publish release note to kintone

on:
  release:
    types: [published]   # 「Publish release」を押した瞬間だけ発火

jobs:
  post-to-kintone:
    runs-on: ubuntu-latest
    steps:
      - name: Build kintone payload
        id: build
        env:
          BODY: ${{ github.event.release.body }}
        run: |
          # 改行を安全に扱うため base64 → jq で JSON 化
          echo "${BODY}" | base64 -w0 > body.b64
          echo "encoded=$(cat body.b64)" >> "$GITHUB_OUTPUT"

      - name: Send to kintone
        env:
          KINTONE_BASE_URL: ${{ secrets.KINTONE_BASE_URL }}   # 例: https://example.cybozu.com
          KINTONE_API_TOKEN: ${{ secrets.KINTONE_API_TOKEN }} # レコード追加権限付き
          KINTONE_APP_ID: ${{ secrets.KINTONE_APP_ID }}       # 数値 (例: 123)
          TAG_NAME: ${{ github.event.release.tag_name }}
          RELEASE_URL: ${{ github.event.release.html_url }}
          BODY_B64: ${{ steps.build.outputs.encoded }}
        run: |
          jq -nr \
            --arg app "$KINTONE_APP_ID" \
            --arg tag "$TAG_NAME" \
            --arg url "$RELEASE_URL" \
            --arg body "$(echo "$BODY_B64" | base64 -d)" \
            '{
              app: ($app|tonumber),
              record: {
                release_tag:  { value: $tag },
                release_note: { value: $body },
                release_url:  { value: $url }
              }
            }' > payload.json

          curl -sS -X POST \
            -H "X-Cybozu-API-Token: $KINTONE_API_TOKEN" \
            -H "Content-Type: application/json" \
            --data @payload.json \
            "$KINTONE_BASE_URL/k/v1/record.json"

行った作業

  1. main ブランチへPRをマージする。
  2. 「Publish release」ボタンを押下して、リリースノートを作成する。
  3. リリースノートの内容が対象のkintoneアプリのレコードに登録されているか確認する。

詳細

main ブランチへPRをマージして、リリースノートのドラフトが作成されていることを確認します。

image.png

リリースノートの内容に問題が無ければ、「Publish release」ボタンを押下して、リリースノートを作成します。

image.png

Github Actionsにより、リリースノートの内容が、kintoneアプリのレコードに登録されていることを確認します。

image.png

無事にレコードが1件作成されました!!!


まとめ

今回は、「Github Actionsにより、リリースノートを自動でkintoneに登録する」ところまで動かしてみました。
まだまだ試したいことがいっぱいあるので、これからも色々触っていきます!

6
3
0

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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?