alert2issue
🔐 Automatically create GitHub issues from open Dependabot alerts — complete with severity, CVE info, and tagging.
🚀 What It Does
alert2issue scans a list of GitHub repositories for open Dependabot alerts and creates labeled GitHub issues summarizing the problems.
It helps teams stay on top of security alerts by converting them into visible, actionable tasks.
📦 Features
- ✅ Lists open Dependabot alerts using the GitHub CLI
- ✅ Avoids duplicate issues
- ✅ Auto-labels issues with
securityanddependabot - ✅ Marks alerts with no patch as special warnings
- ✅ Supports dry-run mode for safe testing
- ✅ Tested with unit tests and coverage
📦 Installation
Install via PyPI:
pip install alert2issue
Make sure you have the GitHub CLI (gh) installed and authenticated:
gh auth login
⚙️ Usage
Run the tool with a list of repositories (one per line):
alert2issue path/to/repo-list.txt
Options
--dry-run Run without creating issues or labels (preview only)
--verbose Print extra info
Example repo list
# Only include public or authorized repos
openai/gym
pallets/flask # Inline comment OK
✅ Requirements
- Python 3.8+
- GitHub CLI (
gh) - GitHub token with
reposcope if using private repositories
🧪 Testing
To run tests:
python -m unittest test_alert2issue.py
With code coverage:
coverage run -m unittest
coverage report
📈 CI
This project includes a GitHub Actions workflow that runs tests and linting.
🛠 Development Install (optional)
If you want to run it from source:
git clone https://github.com/annejan/alert2issue.git
cd alert2issue
pip install -e .
🙋 Contributing
Pull requests welcome! Open an issue first if you'd like to suggest a major change.
📄 License
MIT License — see LICENSE file.
© 2025 Anne Jan Brouwer
Parts of this project were written with the assistance of ChatGPT, Claude and VLAM.ai.
Metadata
Release files for alert2issue 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alert2issue-0.2.0.tar.gz | 5.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alert2issue-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.3 kB
Release files / alert2issue-0.2.0.tar.gz
| Download URL | alert2issue-0.2.0.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c892d8bebab7be315f51aef387b65033ff46e8f8f7dc4f7a8d975dd4ec3071c
|
|
BLAKE2b-256 checksum How to use checksums |
191ebdc9632d5714d79ea5531501d38bb853dcb537eb58119f58c8f1000512b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / alert2issue-0.2.0-py3-none-any.whl
| Download URL | alert2issue-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
077ae95f82d9e7351edfee77d962c9039880db4b63ebf487396808ea8d9be13d
|
|
BLAKE2b-256 checksum How to use checksums |
44afa9eeb8eea8a64ed3fc1ae41f04fc98371f1018ee34ad8cabe5721a057b49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|