Skip to content

Commit d9d3df8

Browse files
update
1 parent 7ffe172 commit d9d3df8

File tree

2 files changed

+29
-61
lines changed

2 files changed

+29
-61
lines changed

.github/workflows/4-bb-export.yml

+29-61
Original file line numberDiff line numberDiff line change
@@ -46,40 +46,7 @@ jobs:
4646
id: process-sql
4747
if: steps.changed-files.outputs.any_changed == 'true'
4848
run: |
49-
call_api() {
50-
local url="$1"
51-
local method="$2"
52-
local data="$3"
53-
local description="$4"
54-
55-
echo "Calling API: $description"
56-
echo "URL: $url"
57-
58-
temp_file=$(mktemp)
59-
http_code=$(curl -s -w "%{http_code}" \
60-
--request "$method" "$url" \
61-
--header "Authorization: Bearer ${{ steps.bytebase-login.outputs.token }}" \
62-
--header "Content-Type: application/json" \
63-
--data "$data" \
64-
-o "$temp_file")
65-
66-
echo "Response (Status $http_code):"
67-
echo "Raw response:"
68-
cat "$temp_file"
69-
70-
# Check if response is valid JSON
71-
if jq empty "$temp_file" 2>/dev/null; then
72-
echo "Valid JSON response:"
73-
cat "$temp_file" | jq '.'
74-
else
75-
echo "WARNING: Invalid JSON response"
76-
cat "$temp_file"
77-
fi
78-
echo "------------------------"
79-
80-
cat "$temp_file"
81-
}
82-
49+
# Find and read manifest.toml
8350
MANIFEST_PATH=""
8451
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
8552
DIR_PATH=$(dirname "$file")
@@ -101,6 +68,7 @@ jobs:
10168
echo "Manifest contents:"
10269
cat "$MANIFEST_PATH"
10370
71+
# Parse TOML file
10472
read_toml() {
10573
local key="$1"
10674
python3 -c "import tomllib; print(tomllib.load(open('$MANIFEST_PATH', 'rb')).get('$key', ''))"
@@ -125,44 +93,44 @@ jobs:
12593
BASE_URL="${{ steps.bytebase-login.outputs.api_url }}"
12694
12795
# Create Sheet
128-
sheet_data=$(call_api \
129-
"$BASE_URL/projects/$PROJECT/sheets" \
130-
"POST" \
131-
"{\"title\":\"\",\"content\":\"$SQL_CONTENT\",\"type\":\"TYPE_SQL\",\"source\":\"SOURCE_BYTEBASE_ARTIFACT\",\"visibility\":\"VISIBILITY_PUBLIC\"}" \
132-
"Create Sheet")
96+
echo "Creating sheet..."
97+
sheet_response=$(curl -s -X POST "$BASE_URL/projects/$PROJECT/sheets" \
98+
-H "Authorization: Bearer ${{ steps.bytebase-login.outputs.token }}" \
99+
-H "Content-Type: application/json" \
100+
-d "{\"title\":\"\",\"content\":\"$SQL_CONTENT\",\"type\":\"TYPE_SQL\",\"source\":\"SOURCE_BYTEBASE_ARTIFACT\",\"visibility\":\"VISIBILITY_PUBLIC\"}")
133101
134-
SHEET_NAME=$(echo "$sheet_data" | jq -r '.name')
135-
echo "Sheet name: $SHEET_NAME"
102+
SHEET_NAME=$(echo "$sheet_response" | jq -r '.name')
103+
echo "Sheet created: $SHEET_NAME"
136104
137105
# Create Plan
138-
plan_data=$(call_api \
139-
"$BASE_URL/projects/$PROJECT/plans" \
140-
"POST" \
141-
"{\"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\"}" \
142-
"Create Plan")
106+
echo "Creating plan..."
107+
plan_response=$(curl -s -X POST "$BASE_URL/projects/$PROJECT/plans" \
108+
-H "Authorization: Bearer ${{ steps.bytebase-login.outputs.token }}" \
109+
-H "Content-Type: application/json" \
110+
-d "{\"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\"}")
143111
144-
PLAN_NAME=$(echo "$plan_data" | jq -r '.name')
145-
echo "Plan name: $PLAN_NAME"
112+
PLAN_NAME=$(echo "$plan_response" | jq -r '.name')
113+
echo "Plan created: $PLAN_NAME"
146114
147115
# Create Issue
148-
issue_data=$(call_api \
149-
"$BASE_URL/projects/$PROJECT/issues" \
150-
"POST" \
151-
"{\"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\"}" \
152-
"Create Issue")
116+
echo "Creating issue..."
117+
issue_response=$(curl -s -X POST "$BASE_URL/projects/$PROJECT/issues" \
118+
-H "Authorization: Bearer ${{ steps.bytebase-login.outputs.token }}" \
119+
-H "Content-Type: application/json" \
120+
-d "{\"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\"}")
153121
154-
ISSUE_NUMBER=$(echo "$issue_data" | jq -r '.name | split("/")[-1]')
122+
ISSUE_NUMBER=$(echo "$issue_response" | jq -r '.name | split("/")[-1]')
155123
ISSUE_LINK="${{ secrets.BYTEBASE_URL }}/projects/$PROJECT/issues/$ISSUE_NUMBER"
156-
echo "Issue link: $ISSUE_LINK"
124+
echo "Issue created: $ISSUE_LINK"
157125
158126
# Create Rollout
159-
rollout_data=$(call_api \
160-
"$BASE_URL/projects/$PROJECT/rollouts" \
161-
"POST" \
162-
"{\"plan\":\"$PLAN_NAME\"}" \
163-
"Create Rollout")
127+
echo "Creating rollout..."
128+
rollout_response=$(curl -s -X POST "$BASE_URL/projects/$PROJECT/rollouts" \
129+
-H "Authorization: Bearer ${{ steps.bytebase-login.outputs.token }}" \
130+
-H "Content-Type: application/json" \
131+
-d "{\"plan\":\"$PLAN_NAME\"}")
164132
165-
echo "Rollout created: $(echo "$rollout_data" | jq -r '.name')"
133+
echo "Rollout created: $(echo "$rollout_response" | jq -r '.name')"
166134
done
167135
168136
- name: Comment on PR

0 commit comments

Comments
 (0)