-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapisec_job_invoke_script.ps
More file actions
103 lines (72 loc) · 3.22 KB
/
apisec_job_invoke_script.ps
File metadata and controls
103 lines (72 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
param ($url ="https://cloud.apisec.ai",
$username,
$password,
$project,
$profile,
$scanner,
$emailReport,
$reportType,
$tags="")
$FX_HOST=$url
$FX_USER=$username
$FX_PWD=$password
$FX_PROJECT_NAME=$project
$JOB_NAME=$profile
$REGION=$scanner
$FX_EMAIL_REPORT=$emailReport
$FX_REPORT_TYPE=$reportType
$FX_TAGS=$tags
#Write-Host "user = ${FX_USER}"
#Write-Host "region = ${REGION}"
#Write-Host "projectName = ${FX_PROJECT_NAME}"
#Write-Host "jobName = ${JOB_NAME}"
#Write-Host "hostname = ${FX_HOST}"
$FX_SCRIPT=""
if ($FX_TAGS -ne "") {
FX_SCRIPT="&tags=script:"+${FX_TAGS}
}
$params = @{"username"=$FX_USER;
"password"=$FX_PWD;
}
$token=$((Invoke-WebRequest -Uri "${FX_HOST}/login" -UseBasicParsing -Method POST -Body ($params|ConvertTo-Json) -ContentType "application/json;charset=UTF-8" ) | ConvertFrom-Json | select -expand token)
Write-Host "generated token is: = ${token}"
$bearerAuthValue = "Bearer $token"
$headers = @{Authorization = $bearerAuthValue}
$URL="${FX_HOST}/api/v1/runs/project/${FX_PROJECT_NAME}?jobName=${JOB_NAME}®ion=${REGION}&emailReport=${FX_EMAIL_REPORT}&reportType=${FX_REPORT_TYPE}${FX_SCRIPT}"
$runId=$((Invoke-WebRequest -Uri $URL -UseBasicParsing -Headers $headers -Method POST -ContentType "application/json;charset=UTF-8" ) | ConvertFrom-Json | select -expand data | select -expand id)
Write-Host "runId = $runId"
Write-Host " "
if ( !$runId )
{
Write-Host "RunId = "$runId""
Write-Host "Invalid runid"
Write-Host $((Invoke-WebRequest -Uri $URL -UseBasicParsing -Headers $headers -Method POST -ContentType "application/json;charset=UTF-8" ) | ConvertFrom-Json | select -expand data | select -expand id)
exit 1
}
$taskStatus="WAITING"
Write-Host "taskStatus = $taskStatus"
While ( ("$taskStatus" -eq "WAITING") -or ("$taskStatus" -eq "PROCESSING") )
{
sleep 5
Write-Host "Checking Status...."
$passPercent=$((Invoke-WebRequest -Uri "${FX_HOST}/api/v1/runs/${runId}" -UseBasicParsing -Headers $headers -Method GET -ContentType "application/json;charset=UTF-8" )| ConvertFrom-Json | select -expand data | select -expand ciCdStatus)
$array = $passPercent.Split(':')
$taskStatus= $array[0]
Write-Host "Status =" , $array[0], " Success Percent =" , $array[1], " Total Tests =", $array[2], " Total Failed =", $array[3], " Run =" $array[6]
if ("$taskstatus" -eq "COMPLETED"){
Write-Host "------------------------------------------------"
Write-Host "Run detail link ${FX_HOST}"
Write-Host $array[7]
Write-Host "------------------------------------------------"
Write-Host "Scan Successfully Completed"
exit 0
}
}
if ("$taskstatus" -eq "TIMEOUT")
{
Write-Host "Task Status = $taskstatus"
exit 1
}
Write-Host $(Invoke-WebRequest -Uri "${FX_HOST}/api/v1/runs/${runId}" -UseBasicParsing -Headers $headers -Method GET -ContentType "application/json;charset=UTF-8" )
exit 1
return 0