-
Notifications
You must be signed in to change notification settings - Fork 4
/
workflow.yml
72 lines (65 loc) · 2.59 KB
/
workflow.yml
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
# This workflow starts your API and fuzzes it with ForAllSecure Mayhem for API
# to find reliability, performance and security issues before they reach
# production.
#
# To use this workflow, you will need to:
#
# 1. Create a Mayhem account at
# https://app.mayhem.security
#
# 2. Create an API token following https://app.mayhem.security/docs/api-testing/getting-set-up/generating-api-tokens/
#
# 3. In your repo's settings, add the service account token as a secret in
# GitHub called "MAYHEM_TOKEN". More details on adding encrypted secrets
# instructions found at https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository
#
#
# 4. Update the "Start your API" step to run your API in the background before
# starting the Mayhem for API scan, and update the `api-url` & `api-spec`
# field.
#
# If you have any questions, please contact us at [email protected]
# or join our discord channel https://discord.com/channels/845302007081336862/845302008907169886
name: "Mayhem for API"
on:
push:
branches: [ main, master ]
pull_request:
jobs:
mayhem-for-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
# fetch entire history to compute diffs between jobs
fetch-depth: 0
# Run your API in the background. Ideally, the API would run in debug
# mode & send stacktraces back on "500 Internal Server Error" responses
# (don't do this in production though)
- name: Start your API
run: ./run_your_api.sh & # <- update this
# Run Mayhem for API
- name: Mayhem for API
uses: ForAllSecure/mapi-action@v2
continue-on-error: true
with:
mayhem-token: ${{ secrets.MAYHEM_TOKEN }}
api-url: "http://localhost:8080" # <- update this
api-spec: "http://localhost:8080/openapi.json" # <- update this
sarif-report: mapi.sarif
html-report: mapi.html
run-args: | # <- Additional run args
# # --warnaserror # split by \n
# Archive HTML report
- name: Archive Mayhem for API report
uses: actions/upload-artifact@v4
with:
name: mapi-report
path: mapi.html
# Upload SARIF file (only available on public repos or github
# enterprise). If you cannot use this action, other report format are
# available (HTML, JUnit)
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: mapi.sarif