GitHub ベースの自動単体テストジェネレーター
上級
これはEngineering, AI分野の自動化ワークフローで、24個のノードを含みます。主にCode, Merge, Github, Webhook, GithubToolなどのノードを使用、AI技術を活用したスマート自動化を実現。 GitHubのPRに対してJestテストを自動生成し、2つのAIによるレビューをサポートする
前提条件
- •GitHub Personal Access Token
- •HTTP Webhookエンドポイント(n8nが自動生成)
- •ターゲットAPIの認証情報が必要な場合あり
- •OpenAI API Key
使用ノード (24)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "7vi7pp915Xoh9Ovu",
"meta": {
"instanceId": "6bcff5ef8a06e8086902526a05c2a4c7bf5da8101f89e582301ed78094606f40",
"templateCredsSetupCompleted": true
},
"name": "Automatic Unit Test Creator from Github",
"tags": [],
"nodes": [
{
"id": "abb61423-4f32-41ce-a519-754b0b960503",
"name": "GH - PR取得",
"type": "n8n-nodes-base.github",
"position": [
-1820,
-420
],
"parameters": {},
"retryOnFail": true,
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "4bef0a06-16e7-4016-badb-5dcfb4c60a69",
"name": ".diffファイル取得",
"type": "n8n-nodes-base.httpRequest",
"position": [
-520,
-100
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "11edfe11-11a1-4182-bb00-377688d974ed",
"name": "テキスト分割",
"type": "n8n-nodes-base.code",
"position": [
-300,
-100
],
"parameters": {},
"typeVersion": 2
},
{
"id": "24a69dd5-d956-480a-8b90-4bfe0b65846e",
"name": "コンポーネントフィルタリング",
"type": "n8n-nodes-base.code",
"position": [
-80,
-100
],
"parameters": {},
"typeVersion": 2
},
{
"id": "865a7c7c-7459-4869-96b7-9b86b401426f",
"name": "API URL・オーナー・リポジトリ抽出",
"type": "n8n-nodes-base.code",
"position": [
-940,
40
],
"parameters": {},
"typeVersion": 2
},
{
"id": "3ba6c65f-0089-41b5-8af5-7bcc31345530",
"name": "ファイル名取得",
"type": "n8n-nodes-base.code",
"position": [
-80,
140
],
"parameters": {},
"typeVersion": 2
},
{
"id": "fc2667a8-ae72-40da-9a9d-be930fba5ebb",
"name": "ファイル取得",
"type": "n8n-nodes-base.githubTool",
"position": [
-1260,
680
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3a32bccc-e751-4757-9d6e-04c4eab58988",
"name": "構造化出力パーサー",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-1020,
680
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "a112221f-9f2d-4199-83f8-e7713b20154b",
"name": "情報マージ準備",
"type": "n8n-nodes-base.merge",
"position": [
-300,
140
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "2a3ad69b-06af-41a7-a3dc-7ace5671553e",
"name": "テスト作成",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1360,
460
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "87cbff84-a239-446e-a5c8-ed07432ab7a1",
"name": "リポジトリ取得",
"type": "n8n-nodes-base.githubTool",
"position": [
-1140,
680
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3913cdac-ff53-4a46-a445-2fd4b9ab3f9f",
"name": "コードレビュー",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-900,
460
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "d36b6f35-1e25-4366-a23d-139e89eb45f0",
"name": "o3-mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1460,
680
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "c4611e9c-c51b-404d-968a-b144e4251f69",
"name": "gpt4.1-mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-840,
680
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "dfaedcea-5bf5-48f6-9776-f64bb96244ff",
"name": "マージ",
"type": "n8n-nodes-base.merge",
"position": [
-520,
460
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "769d0846-4ba7-42bd-9117-8fc1cb9fbb2c",
"name": "POST準備",
"type": "n8n-nodes-base.code",
"position": [
-300,
460
],
"parameters": {},
"typeVersion": 2
},
{
"id": "3c8c6f4a-4031-47d4-9086-81d435f06238",
"name": "コメント投稿",
"type": "n8n-nodes-base.httpRequest",
"position": [
-80,
460
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "bb3e84fb-f1a9-41f6-8e34-f6fb8b2b7ea7",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-1240,
40
],
"webhookId": "91136d34-84ba-4256-a657-31812d04cbde",
"parameters": {},
"typeVersion": 2
},
{
"id": "d02bb743-f9ce-4753-9fb3-a0c99a7e5a19",
"name": "テスト用第2ノード",
"type": "n8n-nodes-base.code",
"position": [
-1560,
-400
],
"parameters": {},
"typeVersion": 2
},
{
"id": "0a50732e-619d-4def-a63d-d5762934df9b",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1860,
-520
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "64f8767b-eb19-4aa1-ae71-6959c09c0d50",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1380,
-120
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "a3df6a54-8fd1-47fe-9e07-d9fb58baa1fa",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-620,
-180
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "82b5aa37-2b56-436d-bde7-c8788357b6a6",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1880,
380
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "460aeeaf-e104-4b9c-b434-335e4db73250",
"name": "構造化出力パーサー1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-700,
680
],
"parameters": {},
"typeVersion": 1.2
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "d0882c15-ed71-40f6-acd7-5848ef4d6d72",
"connections": {
"dfaedcea-5bf5-48f6-9776-f64bb96244ff": {
"main": [
[
{
"node": "769d0846-4ba7-42bd-9117-8fc1cb9fbb2c",
"type": "main",
"index": 0
}
]
]
},
"bb3e84fb-f1a9-41f6-8e34-f6fb8b2b7ea7": {
"main": [
[
{
"node": "865a7c7c-7459-4869-96b7-9b86b401426f",
"type": "main",
"index": 0
}
]
]
},
"d36b6f35-1e25-4366-a23d-139e89eb45f0": {
"ai_languageModel": [
[
{
"node": "2a3ad69b-06af-41a7-a3dc-7ace5671553e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"87cbff84-a239-446e-a5c8-ed07432ab7a1": {
"ai_tool": [
[
{
"node": "2a3ad69b-06af-41a7-a3dc-7ace5671553e",
"type": "ai_tool",
"index": 0
},
{
"node": "3913cdac-ff53-4a46-a445-2fd4b9ab3f9f",
"type": "ai_tool",
"index": 0
}
]
]
},
"fc2667a8-ae72-40da-9a9d-be930fba5ebb": {
"ai_tool": [
[
{
"node": "2a3ad69b-06af-41a7-a3dc-7ace5671553e",
"type": "ai_tool",
"index": 0
},
{
"node": "3913cdac-ff53-4a46-a445-2fd4b9ab3f9f",
"type": "ai_tool",
"index": 0
}
]
]
},
"2a3ad69b-06af-41a7-a3dc-7ace5671553e": {
"main": [
[
{
"node": "3913cdac-ff53-4a46-a445-2fd4b9ab3f9f",
"type": "main",
"index": 0
}
]
]
},
"abb61423-4f32-41ce-a519-754b0b960503": {
"main": [
[]
]
},
"c4611e9c-c51b-404d-968a-b144e4251f69": {
"ai_languageModel": [
[
{
"node": "3913cdac-ff53-4a46-a445-2fd4b9ab3f9f",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"3913cdac-ff53-4a46-a445-2fd4b9ab3f9f": {
"main": [
[
{
"node": "dfaedcea-5bf5-48f6-9776-f64bb96244ff",
"type": "main",
"index": 1
}
]
]
},
"3ba6c65f-0089-41b5-8af5-7bcc31345530": {
"main": [
[
{
"node": "2a3ad69b-06af-41a7-a3dc-7ace5671553e",
"type": "main",
"index": 0
}
]
]
},
"3c8c6f4a-4031-47d4-9086-81d435f06238": {
"main": [
[]
]
},
"4bef0a06-16e7-4016-badb-5dcfb4c60a69": {
"main": [
[
{
"node": "11edfe11-11a1-4182-bb00-377688d974ed",
"type": "main",
"index": 0
}
]
]
},
"769d0846-4ba7-42bd-9117-8fc1cb9fbb2c": {
"main": [
[
{
"node": "3c8c6f4a-4031-47d4-9086-81d435f06238",
"type": "main",
"index": 0
}
]
]
},
"a112221f-9f2d-4199-83f8-e7713b20154b": {
"main": [
[
{
"node": "3ba6c65f-0089-41b5-8af5-7bcc31345530",
"type": "main",
"index": 0
}
]
]
},
"d02bb743-f9ce-4753-9fb3-a0c99a7e5a19": {
"main": [
[]
]
},
"24a69dd5-d956-480a-8b90-4bfe0b65846e": {
"main": [
[
{
"node": "a112221f-9f2d-4199-83f8-e7713b20154b",
"type": "main",
"index": 0
}
]
]
},
"11edfe11-11a1-4182-bb00-377688d974ed": {
"main": [
[
{
"node": "24a69dd5-d956-480a-8b90-4bfe0b65846e",
"type": "main",
"index": 0
}
]
]
},
"3a32bccc-e751-4757-9d6e-04c4eab58988": {
"ai_outputParser": [
[
{
"node": "2a3ad69b-06af-41a7-a3dc-7ace5671553e",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"460aeeaf-e104-4b9c-b434-335e4db73250": {
"ai_outputParser": [
[
{
"node": "3913cdac-ff53-4a46-a445-2fd4b9ab3f9f",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"865a7c7c-7459-4869-96b7-9b86b401426f": {
"main": [
[
{
"node": "4bef0a06-16e7-4016-badb-5dcfb4c60a69",
"type": "main",
"index": 0
},
{
"node": "a112221f-9f2d-4199-83f8-e7713b20154b",
"type": "main",
"index": 1
},
{
"node": "dfaedcea-5bf5-48f6-9776-f64bb96244ff",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - エンジニアリング, 人工知能
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
VDSワークフロー公開版
テキストプロンプトを使ってAI、GitHub、VercelでMVP構築とデプロイ
If
Code
Wait
+
If
Code
Wait
54 ノードVarritech
DevOps
AIによるフォーマット処理を使用してMarkdownコンテンツをContentfulフォーマットに変換
AIによる書式設定を使用してMarkdownコンテンツをContentfulの豊富なテキストに変換
Code
Merge
Http Request
+
Code
Merge
Http Request
12 ノードVarritech
エンジニアリング
AIエージェントの応答正確性をOpenAIとRAGASメソッドで評価
OpenAIとRAGASメソッドを使用してAIエージェントの応答の正確性を評価する
Set
Code
Merge
+
Set
Code
Merge
27 ノードJimleuk
エンジニアリング
以下は、入力された中国語テキストを日本語に正確に翻訳し、元の専門用語は変更せず、1 行に 1 つの翻訳を加えた結果です。
DeepGramとGPT-4oによる音声対話分析・可視化
Set
Code
Html
+
Set
Code
Html
54 ノードRealSimple Solutions
人工知能
ペットショップ 4
ペットショップ予約AIエージェント
If
Set
Code
+
If
Set
Code
187 ノードBruno Dias
人工知能
転写評価ツール V2
🔊 ブラウザ音声録音の音声文字起こしとAI分析(DeepgramとGPT-4oを使用)
Set
Code
Html
+
Set
Code
Html
54 ノードRealSimple Solutions
人工知能