GitHubのトレンドデータをSupabaseへ(毎日・週・月おき)
中級
これはEngineering, Multimodal AI分野の自動化ワークフローで、12個のノードを含みます。主にSet, SupabaseTool, Agent, ScheduleTrigger, LmChatOpenAiなどのノードを使用。 FireCrawl、GPT、Supabaseを使ったGitHubトレンドデータ収集の自動化
前提条件
- •Supabase URL と API Key
- •OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "4WG3MooFcMpSGdlq",
"meta": {
"instanceId": "4dc97d9369798c1d4aa77b1cd537e868761188a85f69db17f36f47212fb2a168",
"templateCredsSetupCompleted": true
},
"name": "GitHub Trending to Supabase (Daily, Weekly, Monthly)",
"tags": [],
"nodes": [
{
"id": "b758abe6-6889-4723-91bb-3140b3b4c5fb",
"name": "AIエージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
96,
512
],
"parameters": {
"text": "=This is a Markdown text containing multiple projects:\n---\n{{ $json.data.markdown }}\nPlease extract all project information and insert it into Supabase.\nWhen storing the data, make sure to include the field \"type\" with the value from:\n{{ $('B_ALL').item.json.type }}\n,\nwhich will be one of: \"daily\", \"weekly\", or \"monthly\".\nnow, please extract all projects out and save to supabase.",
"options": {
"systemMessage": "You are a professional data extraction assistant.\nYour task is to extract all key information from the provided Markdown text, which contains multiple GitHub Trending projects.\n\nPlease follow these rules strictly:\n\t1.\tIdentify all projects:\nLocate each individual project in the text. Projects are typically separated by a horizontal divider ---.\n\t2.\tFor each project, extract the following fields:\n\t•\tname: The project name in the format \"username/repository\".\n\t•\turl: The GitHub URL of the project.\n\t•\tdescription: The project description.\n\t•\tlanguage: The main programming language of the project. If not provided, use an empty string \"\".\n\t•\tstars: The total number of stars. This must be a number, and all thousand separators (such as commas) must be removed. If not provided, set to 0.\n\t3.\tOutput format:\nYour output must be a JSON array only. Each element in the array must be a JSON object representing a single project.\n\t4.\tNo extra content:\nDo not include any extra text, explanations, or Markdown syntax (e.g., ```json) before or after the JSON array.\n\nExample output format:\n[\n{\n“name”: “user1/repo1”,\n“url”: “https://github.com/user1/repo1”,\n“description”: “This is the first project.”,\n“language”: “TypeScript”,\n“stars”: 12000\n},\n{\n“name”: “user2/repo2”,\n“url”: “https://github.com/user2/repo2”,\n“description”: “This is the second project.”,\n“language”: “Python”,\n“stars”: 5432\n}\n]\n"
},
"promptType": "define"
},
"executeOnce": false,
"notesInFlow": false,
"typeVersion": 2.2,
"alwaysOutputData": false
},
{
"id": "37cb081c-e9d4-43b9-930e-345652284f64",
"name": "Supabase に行を作成",
"type": "n8n-nodes-base.supabaseTool",
"position": [
232,
736
],
"parameters": {
"tableId": "githubtrending",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "url",
"fieldValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues0_Field_Value', `github project url`, 'string') }}"
},
{
"fieldId": "project_id",
"fieldValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues1_Field_Value', `github project id name like: ubicloud / ubicloud`, 'string') }}"
},
{
"fieldId": "project_desc",
"fieldValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues2_Field_Value', `github project description`, 'string') }}"
},
{
"fieldId": "code_language",
"fieldValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues3_Field_Value', `project main code language`, 'string') }}"
},
{
"fieldId": "stars",
"fieldValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues4_Field_Value', `github stars`, 'string') }}"
},
{
"fieldId": "type",
"fieldValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues5_Field_Value', `it should be one of daily, weekly, monthly`, 'string') }}"
}
]
}
},
"credentials": {
"supabaseApi": {
"id": "z3RM2DPoUvufetDy",
"name": "Supabase account"
}
},
"typeVersion": 1
},
{
"id": "57f0b1a1-1939-4f2a-8261-68f56a918462",
"name": "OpenAI チャットモデル",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
104,
736
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "cKHFKOqinjSe6CNy",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "0de487de-b268-43c3-83ef-96b5bb931988",
"name": "毎日",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-800,
320
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "40691357-cc3a-4394-a7f7-532f40b351d9",
"name": "毎週",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-800,
512
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "7e66eea9-6840-4620-8fd4-81cd34be19c4",
"name": "毎月",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-800,
704
],
"parameters": {
"rule": {
"interval": [
{
"field": "months"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "0145707f-6da7-4771-bf26-9226ee11d668",
"name": "firecrawl",
"type": "@mendable/n8n-nodes-firecrawl.firecrawl",
"position": [
-128,
440
],
"parameters": {
"url": "=https://github.com/trending?since={{ $json.type }}",
"operation": "scrape",
"useCustomBody": true,
"requestOptions": {},
"additionalFields": {
"customProperties": "{\"onlyMainContent\":true,\"excludeTags\":[\".Box .Box-header\"],\"includeTags\":[\"div[data-hpc]\"]}"
}
},
"credentials": {
"firecrawlApi": {
"id": "2DUTgKK9MedK9fng",
"name": "Firecrawl-local"
}
},
"typeVersion": 1
},
{
"id": "b8c5d470-e2a4-41ca-be24-e42790c3b5f3",
"name": "付箋ノート",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
416
],
"parameters": {
"width": 672,
"height": 400,
"content": "# Run below sql to create table in supabase: \n```sql\nCREATE TABLE public.githubtrending (\n id bigint GENERATED ALWAYS AS IDENTITY NOT NULL,\n created_at timestamp with time zone NOT NULL DEFAULT now(),\n data_date date DEFAULT now(),\n url text,\n project_id text,\n project_desc text,\n code_language text,\n stars bigint DEFAULT '0'::bigint,\n type text,\n CONSTRAINT githubtrending_pkey PRIMARY KEY (id)\n);\n```"
},
"typeVersion": 1
},
{
"id": "733f7a6a-c56e-46ed-96cf-cc368859c954",
"name": "B1",
"type": "n8n-nodes-base.set",
"position": [
-576,
320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "64eaadea-d7f3-4702-859e-1ef5172272ae",
"name": "type",
"type": "string",
"value": "daily"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "69dc9a35-d23f-4858-ade6-625a15b4b189",
"name": "B2",
"type": "n8n-nodes-base.set",
"position": [
-576,
512
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d5d776f5-466b-4bca-a2d3-49eaa52322b1",
"name": "type",
"type": "string",
"value": "weekly"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bca85759-c41d-43c7-9eb8-11e02ddba632",
"name": "B3",
"type": "n8n-nodes-base.set",
"position": [
-576,
704
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9f2e7822-ca0f-4fec-b68e-a803647ee115",
"name": "type",
"type": "string",
"value": "monthly"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ac379357-4ae9-4617-9fd5-9c5d36c1a4b5",
"name": "B_ALL",
"type": "n8n-nodes-base.set",
"position": [
-352,
512
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8fd79ceb-392b-4265-9b54-c2fef43be6fa",
"name": "type",
"type": "string",
"value": "={{ $json.type }}"
}
]
}
},
"typeVersion": 3.4
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "09ca306d-3fa0-46b2-804c-f02026ec2613",
"connections": {
"733f7a6a-c56e-46ed-96cf-cc368859c954": {
"main": [
[
{
"node": "ac379357-4ae9-4617-9fd5-9c5d36c1a4b5",
"type": "main",
"index": 0
}
]
]
},
"69dc9a35-d23f-4858-ade6-625a15b4b189": {
"main": [
[
{
"node": "ac379357-4ae9-4617-9fd5-9c5d36c1a4b5",
"type": "main",
"index": 0
}
]
]
},
"bca85759-c41d-43c7-9eb8-11e02ddba632": {
"main": [
[
{
"node": "ac379357-4ae9-4617-9fd5-9c5d36c1a4b5",
"type": "main",
"index": 0
}
]
]
},
"ac379357-4ae9-4617-9fd5-9c5d36c1a4b5": {
"main": [
[
{
"node": "0145707f-6da7-4771-bf26-9226ee11d668",
"type": "main",
"index": 0
},
{
"node": "b758abe6-6889-4723-91bb-3140b3b4c5fb",
"type": "main",
"index": 0
}
]
]
},
"0de487de-b268-43c3-83ef-96b5bb931988": {
"main": [
[
{
"node": "733f7a6a-c56e-46ed-96cf-cc368859c954",
"type": "main",
"index": 0
}
]
]
},
"40691357-cc3a-4394-a7f7-532f40b351d9": {
"main": [
[
{
"node": "69dc9a35-d23f-4858-ade6-625a15b4b189",
"type": "main",
"index": 0
}
]
]
},
"7e66eea9-6840-4620-8fd4-81cd34be19c4": {
"main": [
[
{
"node": "bca85759-c41d-43c7-9eb8-11e02ddba632",
"type": "main",
"index": 0
}
]
]
},
"b758abe6-6889-4723-91bb-3140b3b4c5fb": {
"main": [
[]
]
},
"0145707f-6da7-4771-bf26-9226ee11d668": {
"main": [
[
{
"node": "b758abe6-6889-4723-91bb-3140b3b4c5fb",
"type": "main",
"index": 0
}
]
]
},
"57f0b1a1-1939-4f2a-8261-68f56a918462": {
"ai_languageModel": [
[
{
"node": "b758abe6-6889-4723-91bb-3140b3b4c5fb",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"37cb081c-e9d4-43b9-930e-345652284f64": {
"ai_tool": [
[
{
"node": "b758abe6-6889-4723-91bb-3140b3b4c5fb",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - エンジニアリング, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
POMLを解析
依存関係ゼロでPOMLをAI就緒のプロンプトやチャットメッセージに変換する
Set
Code
Manual Trigger
+
Set
Code
Manual Trigger
10 ノードRealSimple Solutions
エンジニアリング
dian-memo_03のエクスポート
AI音声とテキストノート - LINEメッセージ、Supabaseベクトルデータベース、Gmailの統合
If
Set
Code
+
If
Set
Code
30 ノードkote2
AI RAG検索拡張
コンテンツジェネレーター v3
AI驱动ブログ自動化:使用GPT-4生成并公開SEO記事至WordPressとTwitter
If
Set
Code
+
If
Set
Code
144 ノードJay Emp0
コンテンツ作成
## 対象ユーザー
AI駆動のLinkedIn日次投稿作成ツール。OpenAIフィードバックループとNotionを統合
Set
Notion
Linked In
+
Set
Notion
Linked In
28 ノードNabin Bhandari
ソーシャルメディア
財務・会計向けAI駆動型請求書リマインダーと支払い追跡ツール
財務・会計業務向けに設計されたAIベースの請求書リマインダーと支払い追跡ツール
If
Set
Code
+
If
Set
Code
35 ノードOneclick AI Squad
請求書処理
AI を活用した WhatsApp カスタマーサービス(GPT-4、スマートルーティング、ナレッジベース)
AI ベースの WhatsApp カスタマー サービス (GPT-4、インテリジェント ルーティング、ナレッジ ベース)
Set
Gmail
Merge
+
Set
Gmail
Merge
45 ノードPaul
AIチャットボット
ワークフロー情報
難易度
中級
ノード数12
カテゴリー2
ノードタイプ7
作成者
Cai Yongji
@caiyongjiAI startup/ indie developer/ solo founder/ super individual/ one-person business/ Google TFUG Organizer
外部リンク
n8n.ioで表示 →
このワークフローを共有