USB Type C ケーブル 【1m+1m+2m+2m/4本】タイプc ケーブル PD対応 60W急速充電】データ転送 断線防止 高耐久ナイロン iPhone 16 /iPhone 15 / MacBook、iPad Pro/Air、Galaxy、Sony、Pixel Type C機種対応
¥798 (2025年4月25日 13:05 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
こんにちは!かねごん(@hrbk25)です。
今回は、GitHubでPull Request(以下 PR)を、mainブランチにマージしたとき、GitHub Actionsによりリリースノートを作成し、その内容をkintoneアプリへ自動登録する仕組みを検証したので、備忘録としてまとめました!
どんな人向けの記事か
- GitHub Actionsをまだ触ったことがないけど興味がある方!
- GitHub Actionsによりkintoneへレコードを登録したい方!
事前準備
kintoneアプリの作成
まず、以下の内容でkintoneのアプリを作成します。
フィールド名 | フィールドコード | 種別(推奨) |
---|---|---|
リリースタグ | release_tag | 文字列(1行) |
リリースノート | release_note | 文字列(複数行) |
リリースURL | release_url | リンク |
リポジトリのシークレットの作成
次に、Github Actionsで使用するシークレットに以下の情報を設定します。
設定の手順は公式ドキュメントを参照しました。
変数名 | 設定例/説明 |
---|---|
KINTONE_BASE_URL | https:// subdomain .cybozu.com |
KINTONE_API_TOKEN | ******************************** |
KINTONE_APP_ID | 123 |
ワークフローの作成
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"
行った作業
-
main
ブランチへPRをマージする。 - 「Publish release」ボタンを押下して、リリースノートを作成する。
- リリースノートの内容が対象のkintoneアプリのレコードに登録されているか確認する。
詳細
main
ブランチへPRをマージして、リリースノートのドラフトが作成されていることを確認します。
リリースノートの内容に問題が無ければ、「Publish release」ボタンを押下して、リリースノートを作成します。
Github Actionsにより、リリースノートの内容が、kintoneアプリのレコードに登録されていることを確認します。
無事にレコードが1件作成されました!!!
まとめ
今回は、「Github Actionsにより、リリースノートを自動でkintoneに登録する」ところまで動かしてみました。
まだまだ試したいことがいっぱいあるので、これからも色々触っていきます!