Skip to content

Commit 71c1c59

Browse files
Update bito-cra.sh
1 parent 77189d8 commit 71c1c59

File tree

1 file changed

+52
-4
lines changed

1 file changed

+52
-4
lines changed

cra-scripts/bito-cra.sh

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@ validate_env() {
9393
fi
9494
}
9595

96+
cr_event_type="automated"
97+
validate_cr_event_type() {
98+
local cr_event_type_val="$1"
99+
if [ "$cr_event_type_val" == "manual" ]; then
100+
cr_event_type=$cr_event_type_val
101+
echo
102+
fi
103+
}
104+
96105
# Function to validate a review_comments vallue i.e. 1 mapped to "FULLPOST" or 2 mapped to "INLINE"
97106
validate_review_comments() {
98107
local review_comments="$1"
@@ -373,6 +382,8 @@ optional_params_cli=(
373382
"static_analysis_tool"
374383
"review_scope"
375384
"exclude_branches"
385+
"exclude_files"
386+
"exclude_draft_pr"
376387
"dependency_check"
377388
"dependency_check.snyk_auth_token"
378389
"cra_version"
@@ -381,6 +392,8 @@ optional_params_cli=(
381392
"output_path"
382393
"git.domain"
383394
"code_context"
395+
"nexus_url"
396+
"cr_event_type"
384397
)
385398

386399
# Parameters that are required/optional in mode server
@@ -398,6 +411,8 @@ optional_params_server=(
398411
"static_analysis_tool"
399412
"review_scope"
400413
"exclude_branches"
414+
"exclude_files"
415+
"exclude_draft_pr"
401416
"dependency_check"
402417
"dependency_check.snyk_auth_token"
403418
"server_port"
@@ -406,6 +421,8 @@ optional_params_server=(
406421
"cli_path"
407422
"git.domain"
408423
"code_context"
424+
"nexus_url"
425+
"cr_event_type"
409426
)
410427

411428
bee_params=(
@@ -425,6 +442,7 @@ cra_version="latest"
425442

426443
# Docker pull command
427444
docker_pull='docker pull bitoai/cra:${cra_version}'
445+
nexus_url=
428446

429447
# Construct the docker run command
430448
docker_init_cmd='docker run --rm -it'
@@ -457,7 +475,9 @@ echo ""
457475
#echo Optional Parameters: "${optional_params[@]}"
458476

459477
# Append Docker Image and Tag Placeholder
460-
docker_cmd+=' bitoai/cra:${cra_version}'
478+
docker_repo="bitoai/cra"
479+
docker_cmd+=' ${docker_repo}:${cra_version}'
480+
461481

462482
# Ask for required parameters if they are not set
463483
for param in "${required_params[@]}"; do
@@ -468,7 +488,7 @@ done
468488
for param in "${optional_params[@]}"; do
469489
if [ "$param" == "dependency_check.snyk_auth_token" ] && [ "${props["dependency_check"]}" == "True" ]; then
470490
ask_for_param "$param" "False"
471-
elif [ "$param" != "dependency_check.snyk_auth_token" ] && [ "$param" != "env" ] && [ "$param" != "cli_path" ] && [ "$param" != "output_path" ] && [ "$param" != "static_analysis_tool" ] && [ "$param" != "git.domain" ] && [ "$param" != "review_scope" ] && [ "$param" != "exclude_branches" ]; then
491+
elif [ "$param" != "dependency_check.snyk_auth_token" ] && [ "$param" != "env" ] && [ "$param" != "cli_path" ] && [ "$param" != "output_path" ] && [ "$param" != "static_analysis_tool" ] && [ "$param" != "git.domain" ] && [ "$param" != "review_scope" ] && [ "$param" != "exclude_branches" ] && [ "$param" != "nexus_url" ] && [ "$param" != "exclude_files" ] && [ "$param" != "exclude_draft_pr" ] && [ "$param" != "cr_event_type" ]; then
472492
ask_for_param "$param" "False"
473493
fi
474494
done
@@ -504,7 +524,11 @@ for param in "${required_params[@]}" "${bee_params[@]}" "${optional_params[@]}";
504524
scopes=$(echo ${props[$param]} | sed 's/, */,/g')
505525
docker_cmd+=" --review_scope='[$scopes]'"
506526
elif [ "$param" == "exclude_branches" ]; then
507-
docker_cmd+=" --exclude_branches=${props[$param]}"
527+
docker_cmd+=" --exclude_branches='${props[$param]}'"
528+
elif [ "$param" == "exclude_files" ]; then
529+
docker_cmd+=" --exclude_files='${props[$param]}'"
530+
elif [ "$param" == "exclude_draft_pr" ]; then
531+
docker_cmd+=" --exclude_draft_pr=${props[$param]}"
508532
elif [ "$param" == "dependency_check" ]; then
509533
#validate the dependency check boolean value
510534
props[$param]=$(validate_boolean "${props[$param]}")
@@ -547,12 +571,17 @@ for param in "${required_params[@]}" "${bee_params[@]}" "${optional_params[@]}";
547571
echo "Invalid value provided for review_comments. Exiting."
548572
exit 1
549573
fi
574+
elif [ "$param" == "nexus_url" ]; then
575+
nexus_url=$(echo "${props[$param]}" | sed 's/^[ \t]*//;s/[ \t]*$//')
576+
elif [ "$param" == "cr_event_type" ]; then
577+
validate_cr_event_type "${props[$param]}"
550578
else
551579
docker_cmd+=" --$param=${props[$param]}"
552580
fi
553581

554582
fi
555583
done
584+
docker_cmd+=" --cr_event_type=${cr_event_type}"
556585

557586
docker_cmd=$docker_init_cmd$docker_cmd
558587
param_bito_access_key="bito_cli.bito.access_key"
@@ -573,8 +602,27 @@ fi
573602
echo "Running command: $(eval echo $docker_pull)"
574603
eval "$docker_pull"
575604

605+
606+
if [ "$?" == 0 ] ; then
607+
echo "Docker image pulled successfully."
608+
else
609+
if [[ -n "$nexus_url" ]]; then
610+
nexus_pull='docker pull ${nexus_url}/cra:${cra_version}'
611+
echo "Running command: $(eval echo $nexus_pull)"
612+
eval "$nexus_pull"
613+
if [ "$?" == 0 ]; then
614+
docker_repo='${nexus_url}/cra'
615+
docker_repo=$(eval echo "$docker_repo")
616+
echo "Successfully pulled docker image from Nexus."
617+
else
618+
echo "Failed to pull docker image from Nexus."
619+
fi
620+
fi
621+
fi
622+
623+
576624
if [ "$?" == 0 ]; then
577-
echo "Running command: $docker_cmd"
625+
echo "Running command: $(eval echo $docker_cmd)"
578626
eval "$docker_cmd"
579627

580628
if [ "$?" == 0 ] && [ "$mode" == "server" ]; then

0 commit comments

Comments
 (0)