Skip to content

Commit fc8b423

Browse files
authored
Merge pull request #20 from test-IO/defectdojo
Add Defectdojo support
2 parents 425686c + be76304 commit fc8b423

File tree

1 file changed

+75
-3
lines changed

1 file changed

+75
-3
lines changed

.circleci/config.yml

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
version: 2.1
2+
infra_container: &infra_container
3+
eu.gcr.io/cirro-io/swissknife@sha256:1dceb221bfc058c4ba22fe4dcbf4f30dfdc10951bc2293d5c53aebc4f87037f3
4+
5+
# Configure authentication in private registry
6+
infra_container_registry_auth:
7+
&infra_container_registry_auth
8+
auth:
9+
username: _json_key # default username when using a JSON key file to authenticate
10+
password: $GOOGLE_JSON_KEY
211

312
jobs:
4-
build:
13+
test:
514
docker:
615
- image: circleci/ruby:2.7.1-node
716
environment:
@@ -25,6 +34,7 @@ jobs:
2534
- run:
2635
name: Check code style
2736
command: bundle exec rubocop
37+
2838
deploy:
2939
docker:
3040
- image: circleci/ruby:2.7.1-node
@@ -56,14 +66,76 @@ jobs:
5666
gem push cirro-ruby-client-$version.gem
5767
shred -u ~/.gem/credentials
5868
69+
defectdojo:
70+
docker:
71+
- image: *infra_container
72+
<<: *infra_container_registry_auth
73+
environment:
74+
- DEFECTDOJO_URL: defectdojo.testcloud.io
75+
- DEFECTDOJO_PRODUCT: Cirro Ruby Client
76+
- DEFECTDOJO_ENG_NAME: CircleCI Scan
77+
steps:
78+
- checkout
79+
- run:
80+
name: Setup access to GCP
81+
command: |
82+
echo $GOOGLE_JSON_KEY > ${HOME}/gcloud-service-key.json && \
83+
gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
84+
gcloud auth configure-docker
85+
- run:
86+
name: Scans
87+
command: |
88+
unset GITHUB_TOKEN && trivy fs --exit-code 0 --no-progress --ignorefile .trivyignore-fake --format json --output filesystem-scan.json .
89+
gitleaks detect --no-git --exit-code 0 --report-format json --report-path gitleaks.json
90+
- run:
91+
name: Send data to DefectDojo
92+
command: |
93+
export DEFECTDOJO_TOKEN=$(gcloud secrets versions access latest \
94+
--secret="defectdojo_token" \
95+
--project=cirro-io \
96+
--quiet)
97+
98+
# Send Trivy filesystem scan
99+
curl --fail --request POST https://$DEFECTDOJO_URL/api/v2/reimport-scan/ \
100+
--header "Authorization: Token $DEFECTDOJO_TOKEN" \
101+
--form "active=true" \
102+
--form "auto_create_context=true" \
103+
--form "branch_tag=${CIRCLE_BRANCH}" \
104+
--form "commit_hash=${CIRCLE_SHA1}" \
105+
--form "close_old_findings=true" \
106+
--form "scan_type=Trivy Scan" \
107+
--form "test_title=Trivy application scan" \
108+
--form "engagement_name=${DEFECTDOJO_ENG_NAME}" \
109+
--form "product_name=${DEFECTDOJO_PRODUCT}" \
110+
111+
112+
# Send Gitleaks scan
113+
curl --fail --request POST https://$DEFECTDOJO_URL/api/v2/reimport-scan/ \
114+
--header "Authorization: Token $DEFECTDOJO_TOKEN" \
115+
--form "active=true" \
116+
--form "auto_create_context=true" \
117+
--form "branch_tag=${CIRCLE_BRANCH}" \
118+
--form "commit_hash=${CIRCLE_SHA1}" \
119+
--form "close_old_findings=true" \
120+
--form "scan_type=Gitleaks Scan" \
121+
--form "test_title=Gitleaks Scan" \
122+
--form "engagement_name=${DEFECTDOJO_ENG_NAME}" \
123+
--form "product_name=${DEFECTDOJO_PRODUCT}" \
124+
125+
59126
workflows:
60127
version: 2
61128
deploy_the_gem:
62129
jobs:
63-
- build
130+
- test
64131
- deploy:
65132
requires:
66-
- build
133+
- test
134+
filters:
135+
branches:
136+
only:
137+
- master
138+
- defectdojo:
67139
filters:
68140
branches:
69141
only:

0 commit comments

Comments
 (0)