n8n 작업 흐름을 Bitbucket에 백업
중급
이것은Other분야의자동화 워크플로우로, 9개의 노드를 포함합니다.주로 If, N8n, Set, Code, Wait 등의 노드를 사용하며. n8n 작업 흐름을 Bitbucket에 백업
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "23GPrqZjHnIVvTEa",
"meta": {
"instanceId": "[instance id auto generated]",
"templateCredsSetupCompleted": true
},
"name": "Backup n8n Workflows to Bitbucket",
"tags": [],
"nodes": [
{
"id": "b3363b9d-ea6e-47b7-99f9-f48a21805886",
"name": "대기 시간 계산",
"type": "n8n-nodes-base.code",
"position": [
1400,
-260
],
"parameters": {
"jsCode": "// Get all input items and ensure we have data\nif ($input.all().length === 0 || !$input.all()[0].headers) {\n // If no headers available, return default wait time\n return { waitTime: 1 };\n}\n\n// Check rate limit headers from previous request\nconst headers = $input.all()[0].headers;\nlet waitTime = 1; // Default 1 second\n\n// Check if we have rate limit information (safely)\nconst remaining = parseInt(headers['x-ratelimit-remaining']) || null;\nconst reset = parseInt(headers['x-ratelimit-reset']) || null;\n\n// Only adjust wait time if we have valid rate limit info\nif (remaining !== null && reset !== null) {\n // If we're running low on requests, calculate a longer wait time\n if (remaining < 100) {\n // Calculate seconds until reset\n const now = Math.floor(Date.now() / 1000);\n const timeUntilReset = reset - now;\n \n // Spread remaining requests over time until reset\n // Add 10% buffer to be safe\n waitTime = Math.ceil((timeUntilReset / remaining) * 1.1);\n } else if (remaining < 500) {\n // Start slowing down earlier\n waitTime = 2;\n }\n}\n\n// Cap maximum wait time at 30 seconds\nwaitTime = Math.min(waitTime, 30);\n\nreturn { waitTime };"
},
"typeVersion": 2
},
{
"id": "3cbc2287-b36f-4839-87b7-be4a7eadcf79",
"name": "매일 오전 2시 실행",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-120,
-20
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 2
}
]
}
},
"typeVersion": 1.2
},
{
"id": "09b396aa-61e8-4631-8aae-7126fbd609e6",
"name": "모든 워크플로우 가져오기",
"type": "n8n-nodes-base.n8n",
"position": [
320,
-20
],
"parameters": {
"filters": {},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"id": "[n8n-api-credential-id]",
"name": "n8n Development Environment"
}
},
"typeVersion": 1
},
{
"id": "c46b50cd-432f-4714-ac68-b6f92663b592",
"name": "워크플로우 루프",
"type": "n8n-nodes-base.splitInBatches",
"position": [
540,
-20
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "2a27e85d-51c0-4f45-a7d6-6422fc8a439b",
"name": "Bitbucket에서 기존 워크플로우 가져오기",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
780,
-20
],
"parameters": {
"url": "=https://api.bitbucket.org/2.0/repositories/{{ $('Set Bitbucket Workspace & Repository').item.json.WorkspaceSlug }}/{{ $('Set Bitbucket Workspace & Repository').item.json.RepositorySlug }}/src/main/{{ $json.name.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase() }}",
"options": {
"response": {
"response": {
"fullResponse": true
}
},
"allowUnauthorizedCerts": true
},
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "[bitbucket-credential-id]",
"name": "Bitbucket"
}
},
"retryOnFail": false,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "eeb52f03-dd60-46ae-ad86-1cabf7f6c20f",
"name": "신규 또는 변경됨?",
"type": "n8n-nodes-base.if",
"position": [
980,
-20
],
"parameters": {
"options": {
"ignoreCase": true
},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "2d5da90e-0f1d-436b-84d4-d82deaaa4b58",
"operator": {
"type": "number",
"operation": "equals"
},
"leftValue": "={{ $json.error.status }}",
"rightValue": 404
},
{
"id": "b7b9a48d-8954-4cc4-bf7a-ab30439ad930",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $('Get Existing Worfklow from Bitbucket').item.json.data }}",
"rightValue": "={{ JSON.stringify($('Loop Workflows').item.json, null, 2) }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "04400827-d331-4ee2-8a67-1238ea2dc969",
"name": "워크플로우를 Bitbucket에 업로드",
"type": "n8n-nodes-base.httpRequest",
"position": [
1200,
-260
],
"parameters": {
"url": "=https://api.bitbucket.org/2.0/repositories/{{ $('Set Bitbucket Workspace & Repository').item.json.WorkspaceSlug }}/{{ $('Set Bitbucket Workspace & Repository').item.json.RepositorySlug }}/src",
"method": "POST",
"options": {
"redirect": {
"redirect": {
"maxRedirects": 5
}
},
"response": {
"response": {
"fullResponse": true
}
}
},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "message",
"value": "={{ $('Loop Workflows').item.json.name + ' [' + $now.format('yyyy-MM-dd HH:mm:ss') +']' }}"
},
{
"name": "={{ $('Loop Workflows').item.json.name.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase() }}",
"value": "={{ JSON.stringify($('Loop Workflows').item.json, null, 2) }}"
}
]
},
"genericAuthType": "httpBasicAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
]
}
},
"credentials": {
"httpBasicAuth": {
"id": "[bitbucket-credential-id]",
"name": "Bitbucket"
}
},
"typeVersion": 4.2
},
{
"id": "5f198366-3bcf-4a96-ae60-da7cc9403a6f",
"name": "속도 제한 회피 대기",
"type": "n8n-nodes-base.wait",
"position": [
1620,
-20
],
"webhookId": "793d7525-d166-4487-a71f-d48da7c66662",
"parameters": {
"amount": "={{ $json.waitTime || 1 }}"
},
"typeVersion": 1.1
},
{
"id": "adc37b33-c5af-4a44-ba87-9806efe25603",
"name": "Bitbucket 워크스페이스 및 저장소 설정",
"type": "n8n-nodes-base.set",
"position": [
100,
-20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "37f2ddba-188d-4bc1-98b3-5c5fa31d2d62",
"name": "WorkspaceSlug",
"type": "string",
"value": "[workspace-slug]"
},
{
"id": "303f25f0-bba8-4977-8f4f-33961e2e7e8c",
"name": "RepositorySlug",
"type": "string",
"value": "[repository-slug]"
}
]
}
},
"typeVersion": 3.4
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f21887f2-e885-42c6-a934-4f7617e267dd",
"connections": {
"c46b50cd-432f-4714-ac68-b6f92663b592": {
"main": [
[],
[
{
"node": "2a27e85d-51c0-4f45-a7d6-6422fc8a439b",
"type": "main",
"index": 0
}
]
]
},
"eeb52f03-dd60-46ae-ad86-1cabf7f6c20f": {
"main": [
[
{
"node": "04400827-d331-4ee2-8a67-1238ea2dc969",
"type": "main",
"index": 0
}
],
[
{
"node": "5f198366-3bcf-4a96-ae60-da7cc9403a6f",
"type": "main",
"index": 0
}
]
]
},
"09b396aa-61e8-4631-8aae-7126fbd609e6": {
"main": [
[
{
"node": "c46b50cd-432f-4714-ac68-b6f92663b592",
"type": "main",
"index": 0
}
]
]
},
"3cbc2287-b36f-4839-87b7-be4a7eadcf79": {
"main": [
[
{
"node": "adc37b33-c5af-4a44-ba87-9806efe25603",
"type": "main",
"index": 0
}
]
]
},
"b3363b9d-ea6e-47b7-99f9-f48a21805886": {
"main": [
[
{
"node": "5f198366-3bcf-4a96-ae60-da7cc9403a6f",
"type": "main",
"index": 0
}
]
]
},
"5f198366-3bcf-4a96-ae60-da7cc9403a6f": {
"main": [
[
{
"node": "c46b50cd-432f-4714-ac68-b6f92663b592",
"type": "main",
"index": 0
}
]
]
},
"04400827-d331-4ee2-8a67-1238ea2dc969": {
"main": [
[
{
"node": "b3363b9d-ea6e-47b7-99f9-f48a21805886",
"type": "main",
"index": 0
}
]
]
},
"2a27e85d-51c0-4f45-a7d6-6422fc8a439b": {
"main": [
[
{
"node": "eeb52f03-dd60-46ae-ad86-1cabf7f6c20f",
"type": "main",
"index": 0
}
]
]
},
"adc37b33-c5af-4a44-ba87-9806efe25603": {
"main": [
[
{
"node": "09b396aa-61e8-4631-8aae-7126fbd609e6",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 기타
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Bluesky의 새 팔로워에게 자동 개인 메시지(DM) 발송
Baserow를 사용하여 Bluesky의 새 팔로워에게 자동 다이렉트 메시지(DM) 발송
If
Set
Code
+
If
Set
Code
26 노드Gareth B. Davies
마케팅
AI 대리인 레스토랑 [템플릿]
🤖 WhatsApp, 인스타그램, 메신저의 AI 레스토랑 도우미
If
N8n
Set
+
If
N8n
Set
239 노드Amanda Benks
기타
워크플로우를 Gitea의 git 저장소에 백업합니다.
Gitea에 백업된 워크플로우를 git 저장소에 백업합니다.
If
N8n
Set
+
If
N8n
Set
20 노드Octoleo
기타
GitHub(서브 폴더)에 작업 흐름을 백업
Github에 작업 흐름 백업(서브 폴더)
If
N8n
Set
+
If
N8n
Set
25 노드Nazmy
기타
GitHub에 작업 흐름을 백업
Github에 작업 흐름 백업
If
N8n
Set
+
If
N8n
Set
23 노드Solomon
기타
Bluesky에서 주제 생성
Bluesky에서 주제를 만들기
Set
Code
Wait
+
Set
Code
Wait
20 노드Gareth B. Davies
마케팅
워크플로우 정보
난이도
중급
노드 수9
카테고리1
노드 유형8
저자
Gareth B. Davies
@garethbdaviesAPI/AI/Automation Coach with 30 years experience helping teams build sustainable, efficient processes and systems. Join my Automate 30 for 30 live cohort and course to reclaim your time.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유