Quick overview
Youtube Video: https://youtu.be/5Jy5-KMuhtA
This workflow runs every six hours to monitor newly published PHP Composer security advisories from GitHub, enriches them with EPSS scores, uses Google Gemini plus Brave Search to generate a structured developer alert, creates a Jira issue, posts to Slack, and logs notifications in Google Sheets.
How it works
- Runs on a schedule every six hours.
- Reads a Google Sheets notification log to collect previously alerted GHSA IDs.
- Calls the GitHub Security Advisories API for recently published reviewed Composer advisories and filters out withdrawn items, unwanted severities, and advisories already logged.
- Sorts advisories by publish time, limits processing to a single newest advisory per run, and fetches an EPSS exploitation probability score from first.org using the CVE.
- Uses Google Gemini with Brave Search tools to analyze the advisory details and return a validated structured alert (risk level, exploit status, fix guidance, and sources).
- Creates a Jira issue with a formatted summary and description, posts the alert (including the Jira link or failure notice) to the configured Slack channel, and appends the notification details back to Google Sheets.
Setup
- Add credentials for GitHub API, Google Sheets (Service Account), Google Gemini (PaLM/Google AI), Brave Search, Jira Software Cloud, and Slack.
- Create or choose a Google Sheets spreadsheet and ensure it has a sheet named like your log sheet (for example, "Notification_Log") with columns matching the fields the workflow appends (such as ghsa_id, cve_id, severity, risk_level, package, and notified_at).
- Update the configuration values for the Google Sheet ID, Slack channel ID, timezone, lookback window, and allowed severities to match your environment.
- In Jira, set the correct project and issue type IDs (or select the right project/issue type) where vulnerability tickets should be created.