mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Source Unleash instance
 | 
						|
SOURCE_URL=""
 | 
						|
SOURCE_API_TOKEN=""
 | 
						|
SOURCE_ENV="production"
 | 
						|
SOURCE_TAG="exported"
 | 
						|
 | 
						|
# Target Unleash instance
 | 
						|
TARGET_URL=""
 | 
						|
TARGET_API_TOKEN=""
 | 
						|
TARGET_PROJECT="DemoImport"
 | 
						|
TARGET_ENV="production"
 | 
						|
 | 
						|
export_data() {
 | 
						|
  curl -s -w "\n%{http_code}" -X POST "$SOURCE_URL" \
 | 
						|
    -H "Authorization: $SOURCE_API_TOKEN" \
 | 
						|
    -H "Content-Type: application/json" \
 | 
						|
    -d "{\"tag\": \"$SOURCE_TAG\", \"environment\": \"$SOURCE_ENV\"}"
 | 
						|
}
 | 
						|
 | 
						|
import_data() {
 | 
						|
  data="$1"
 | 
						|
  response=$(curl -s -w "\n%{http_code}" -X POST "$TARGET_URL" \
 | 
						|
    -H "Authorization: $TARGET_API_TOKEN" \
 | 
						|
    -H "Content-Type: application/json" \
 | 
						|
    -d "{\"project\": \"$TARGET_PROJECT\", \"environment\": \"$TARGET_ENV\", \"data\": $data}")
 | 
						|
 | 
						|
  http_code=$(echo "$response" | awk 'END{print}')
 | 
						|
 | 
						|
  if ! [[ $http_code -ge 200 && $http_code -lt 300 ]]; then
 | 
						|
      status_message=$(echo "$response" | awk 'NR==1{print}')
 | 
						|
      echo "Error: Import failed with $http_code $status_message"
 | 
						|
      exit 1
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
echo "Exporting data from source API: ${SOURCE_URL}, tag: ${SOURCE_TAG}, environment: ${SOURCE_ENV}"
 | 
						|
response=$(export_data)
 | 
						|
http_code=$(echo "$response" | awk 'END{print}')
 | 
						|
if [[ $http_code -ge 200 && $http_code -lt 300 ]]; then
 | 
						|
  data=$(echo "$response" | awk 'NR>1{print line} {line=$0}')
 | 
						|
  echo "Data exported successfully."
 | 
						|
else
 | 
						|
  status_message=$(echo "$response" | awk 'NR==1{print}')
 | 
						|
  echo "Error: Export failed with $http_code $status_message"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
echo "Importing data to target API: ${TARGET_URL}, project: ${TARGET_PROJECT}, environment: ${TARGET_ENV}"
 | 
						|
import_data "$data"
 | 
						|
echo "Data imported successfully."
 |