@@ -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"
97106validate_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
411428bee_params=(
@@ -425,6 +442,7 @@ cra_version="latest"
425442
426443# Docker pull command
427444docker_pull=' docker pull bitoai/cra:${cra_version}'
445+ nexus_url=
428446
429447# Construct the docker run command
430448docker_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
463483for param in " ${required_params[@]} " ; do
468488for 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
474494done
@@ -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
555583done
584+ docker_cmd+=" --cr_event_type=${cr_event_type} "
556585
557586docker_cmd=$docker_init_cmd$docker_cmd
558587param_bito_access_key=" bito_cli.bito.access_key"
573602echo " Running command: $( eval echo $docker_pull ) "
574603eval " $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+
576624if [ " $? " == 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