From e691c37378a778af6e48a8cb884a65046acc3223 Mon Sep 17 00:00:00 2001
From: adela
Date: Fri, 10 Jan 2025 14:00:06 +0800
Subject: [PATCH 1/2] put back temp file
---
.github/workflows/bb-export.yml | 57 ++++++++++++++++++++++-----------
1 file changed, 38 insertions(+), 19 deletions(-)
diff --git a/.github/workflows/bb-export.yml b/.github/workflows/bb-export.yml
index fa98bfd..4c01519 100644
--- a/.github/workflows/bb-export.yml
+++ b/.github/workflows/bb-export.yml
@@ -49,31 +49,50 @@ jobs:
local data="$3"
local description="$4"
- echo "Calling API: $description"
+ echo "=== DEBUG: API Call Details ==="
+ echo "Description: $description"
+ echo "URL: $url"
+ echo "Method: $method"
+ echo "Data: $data"
- # Store response in a temporary file
temp_file=$(mktemp)
-
- # Execute curl with minimal output
- response=$(curl -s \
+ http_code=$(curl -v -s -w "%{http_code}" \
--request "$method" "$url" \
--header "Authorization: Bearer ${{ steps.bytebase-login.outputs.token }}" \
--header "Content-Type: application/json" \
--data "$data" \
- --write-out "\n%{http_code}" \
- 2>/dev/null)
-
- http_code=$(echo "$response" | tail -n1)
- body=$(echo "$response" | sed '$d')
+ -o "$temp_file" 2>&1)
- echo "Status code: $http_code"
+ echo "=== DEBUG: Response Details ==="
+ echo "HTTP Status: $http_code"
+ echo "Response body:"
+ cat "$temp_file"
+ echo "==========================="
if [[ $http_code -lt 200 || $http_code -ge 300 ]]; then
- echo "Error: Failed $description"
- echo "Response: $body"
+ echo "Error: Failed $description. Status: $http_code"
+ cat "$temp_file"
+ rm "$temp_file"
+ return 1
+ fi
+
+ if [[ ! -s "$temp_file" ]]; then
+ echo "Error: Empty response from server"
+ rm "$temp_file"
+ return 1
+ fi
+
+ # Simple one-line JSON validation
+ if ! python3 -c "import json,sys; json.load(open('$temp_file'))" 2>/dev/null; then
+ echo "Error: Invalid JSON response"
+ echo "Response content:"
+ cat "$temp_file"
+ rm "$temp_file"
return 1
fi
+ cat "$temp_file"
+ rm "$temp_file"
return 0
}
@@ -117,16 +136,16 @@ jobs:
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "Processing $file"
- SQL_CONTENT=$(cat "$file" | python3 -c "import sys,base64,json; content=sys.stdin.read(); encoded=base64.b64encode(content.encode()).decode(); print(json.dumps(encoded)[1:-1])")
+ SQL_CONTENT=$(base64 < "$file")
echo "SQL_CONTENT=$SQL_CONTENT" >> $GITHUB_ENV
STEP_ID=$(python3 -c "import uuid; print(str(uuid.uuid4()))")
echo "STEP_ID=$STEP_ID" >> $GITHUB_ENV
BASE_URL="${{ steps.bytebase-login.outputs.api_url }}"
- echo "BASE_URL111=$BASE_URL"
+ echo "BASE_URL1111=$BASE_URL"
echo "BASE_URL=$BASE_URL" >> $GITHUB_ENV
sheet_data=$(call_api \
- "$BASE_URL/projects/$PROJECT/sheets" \
+ "$BASE_URL/v1/projects/$PROJECT/sheets" \
"POST" \
"{\"title\":\"\",\"content\":\"$SQL_CONTENT\",\"type\":\"TYPE_SQL\",\"source\":\"SOURCE_BYTEBASE_ARTIFACT\",\"visibility\":\"VISIBILITY_PUBLIC\"}" \
"Create Sheet")
@@ -134,7 +153,7 @@ jobs:
SHEET_NAME=$(echo "$sheet_data" | python3 -c "import sys, json; print(json.load(sys.stdin)['name'])")
plan_data=$(call_api \
- "$BASE_URL/projects/$PROJECT/plans" \
+ "$BASE_URL/v1/projects/$PROJECT/plans" \
"POST" \
"{\"steps\":[{\"specs\":[{\"id\":\"$STEP_ID\",\"export_data_config\":{\"target\":\"/instances/$INSTANCE/databases/$DATABASE\",\"format\":\"$FORMAT\",\"sheet\":\"$SHEET_NAME\"}}]}],\"title\":\"Export data from $DATABASE\",\"description\":\"EXPORT\"}" \
"Create Plan")
@@ -142,13 +161,13 @@ jobs:
PLAN_NAME=$(echo "$plan_data" | python3 -c "import sys, json; print(json.load(sys.stdin)['name'])")
issue_data=$(call_api \
- "$BASE_URL/projects/$PROJECT/issues" \
+ "$BASE_URL/v1/projects/$PROJECT/issues" \
"POST" \
"{\"approvers\":[],\"approvalTemplates\":[],\"subscribers\":[],\"title\":\"Issue: Export data from instances/$INSTANCE/databases/$DATABASE\",\"description\":\"SQL request from GitHub\",\"type\":\"DATABASE_DATA_EXPORT\",\"assignee\":\"\",\"plan\":\"$PLAN_NAME\"}" \
"Create Issue")
rollout_data=$(call_api \
- "$BASE_URL/projects/$PROJECT/rollouts" \
+ "$BASE_URL/v1/projects/$PROJECT/rollouts" \
"POST" \
"{\"plan\":\"$PLAN_NAME\"}" \
"Create Rollout")
From 199ec65ed73fc3e5415c03c9339038cf5c0b3d09 Mon Sep 17 00:00:00 2001
From: adela
Date: Fri, 10 Jan 2025 14:01:10 +0800
Subject: [PATCH 2/2] update
---
.github/workflows/bb-export.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/bb-export.yml b/.github/workflows/bb-export.yml
index 4c01519..6569e8a 100644
--- a/.github/workflows/bb-export.yml
+++ b/.github/workflows/bb-export.yml
@@ -145,7 +145,7 @@ jobs:
echo "BASE_URL=$BASE_URL" >> $GITHUB_ENV
sheet_data=$(call_api \
- "$BASE_URL/v1/projects/$PROJECT/sheets" \
+ "$BASE_URL/projects/$PROJECT/sheets" \
"POST" \
"{\"title\":\"\",\"content\":\"$SQL_CONTENT\",\"type\":\"TYPE_SQL\",\"source\":\"SOURCE_BYTEBASE_ARTIFACT\",\"visibility\":\"VISIBILITY_PUBLIC\"}" \
"Create Sheet")
@@ -153,7 +153,7 @@ jobs:
SHEET_NAME=$(echo "$sheet_data" | python3 -c "import sys, json; print(json.load(sys.stdin)['name'])")
plan_data=$(call_api \
- "$BASE_URL/v1/projects/$PROJECT/plans" \
+ "$BASE_URL/projects/$PROJECT/plans" \
"POST" \
"{\"steps\":[{\"specs\":[{\"id\":\"$STEP_ID\",\"export_data_config\":{\"target\":\"/instances/$INSTANCE/databases/$DATABASE\",\"format\":\"$FORMAT\",\"sheet\":\"$SHEET_NAME\"}}]}],\"title\":\"Export data from $DATABASE\",\"description\":\"EXPORT\"}" \
"Create Plan")
@@ -161,13 +161,13 @@ jobs:
PLAN_NAME=$(echo "$plan_data" | python3 -c "import sys, json; print(json.load(sys.stdin)['name'])")
issue_data=$(call_api \
- "$BASE_URL/v1/projects/$PROJECT/issues" \
+ "$BASE_URL/projects/$PROJECT/issues" \
"POST" \
"{\"approvers\":[],\"approvalTemplates\":[],\"subscribers\":[],\"title\":\"Issue: Export data from instances/$INSTANCE/databases/$DATABASE\",\"description\":\"SQL request from GitHub\",\"type\":\"DATABASE_DATA_EXPORT\",\"assignee\":\"\",\"plan\":\"$PLAN_NAME\"}" \
"Create Issue")
rollout_data=$(call_api \
- "$BASE_URL/v1/projects/$PROJECT/rollouts" \
+ "$BASE_URL/projects/$PROJECT/rollouts" \
"POST" \
"{\"plan\":\"$PLAN_NAME\"}" \
"Create Rollout")