Ontwerp een GitHub Actions Workflow voor Geautomatiseerde Afhankelijkheids- en Licentiecontrole
description
Maakt het mogelijk om proactief verouderde of kwetsbare afhankelijkheden en licentieproblemen te detecteren, waardoor juridische risico's verminderen en de beveiliging van het project verbetert. Deze prompt helpt een workflow te creëren die is afgestemd op jouw afhankelijkheidstools en compliancebehoeften, wat tijd bespaart ten opzichte van handmatige controles en naadloos integreert in je CI/CD-pijplijn.
prompt
Help me een GitHub Actions workflow te ontwerpen die geautomatiseerde controles uitvoert op afhankelijkheidsversies en licentiecompliance. Huidige workflowconfiguratie: <voer je huidige workflowconfiguratie in> Dependency management tool: ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorstel voor een GitHub Actions workflow die geautomatiseerde controles uitvoert op afhankelijkheidsversies en licentiecompliance, inclusief meldingen naar een Slack-kanaal:
name: Node.js CI met afhankelijkheids- en licentiecontroles
on:
push:
branches:
- main
pull_request:
jobs:
dependency-and-license-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Gebruik Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Installeer afhankelijkheden
run: npm install
- name: Controleer op verouderde afhankelijkheden
run: npm outdated
- name: Controleer licentie-informatie
run: |
npm license generate-disclaimer --summary
# Alternatief: gebruik 'license-checker' voor uitgebreidere info
# npm install -g license-checker
# license-checker --json
- name: Voer afhankelijkheids- en licentiecontroles uit
run: |
# Controleer op verouderde dependencies
npm outdated
# Check licenties met license-checker
npm install -g license-checker
license-checker --json > license-report.json
# Controleer op ongewenste licenties
# Bijvoorbeeld, geen GPL-licenties toegestaan
if grep -q 'GPL' license-report.json; then
echo "Ongewenste GPL-licentie gevonden!"
exit 1
fi
- name: Verstuur melding naar Slack bij falen
if: failure()
uses: Ilshidur/action-slack@v2
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
title: 'Fout in afhankelijkheids- en licentiecontrole'
message: |
Een probleem is gedetecteerd tijdens de afhankelijkheids- of licentiecontrole.
Controleer de build logs voor details.
color: '#FF0000'
- name: Verstuur melding naar Slack bij succes
if: success()
uses: Ilshidur/action-slack@v2
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
title: 'Dependencies en licentiecontrole geslaagd'
message: |
Alle afhankelijkheids- en licentiecontroles zijn succesvol uitgevoerd.
color: '#36A64F'
Opmerkingen:
- Zorg dat je een Slack Webhook-URL hebt ingesteld als geheim in je GitHub repository onder ‘SLACK_WEBHOOK_URL’.
- Je kunt de controle voor ongewenste licenties aanpassen afhankelijk van je licentiebeleid.
- Voor uitgebreide licentiecontroles kan je gebruik maken van de ‘license-checker’ tool zoals geïllustreerd.
- De workflow triggert bij push naar ‘main’ en bij pull requests, maar je kunt dat aanpassen naar wens.
Wil je dat ik de workflow verder aanpas of uitbreid?
provider: deepseek
model: deepseek-chat
Hier is een uitgebreide GitHub Actions workflow die afhankelijkheidscontroles en licentiecompliance toevoegt aan je bestaande Node.js CI:
```yaml
name: Node.js CI met Security & Compliance
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Gebruik Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install
- run: npm test
dependency-check:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Gebruik Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Installeer afhankelijkheden
run: npm install
- name: Uitgebreide dependency audit
run: npm audit --audit-level=moderate
- name: Check verouderde dependencies
run: npm outdated --long
- name: Dependency versie analyse
run: |
echo "### 📊 Dependency Analyse" >> $GITHUB_STEP_SUMMARY
npm list --depth=0 >> $GITHUB_STEP_SUMMARY
license-compliance:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Gebruik Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Installeer licentie checker
run: npm install -g license-checker
- name: Uitgebreide licentie scan
run: |
license-checker --summary --production
- name: Genereer licentie rapport
run: |
license-checker --json --out licenses.json
- name: Upload licentie rapport
uses: actions/upload-artifact@v2
with:
name: license-report
path: licenses.json
security-scan:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Gebruik Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Snyk security scan
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --severity-threshold=high
notifications:
runs-on: ubuntu-latest
needs: [dependency-check, license-compliance, security-scan]
if: always()
steps:
- name: Slack notificatie bij falen
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
channel: '#dev-alerts'
webhook_url: ${{ secrets.SLACK_WEBHOOK }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
```
**Benodigde repository secrets:**
- `SNYK_TOKEN`: Snyk API token (gratis aan te maken)
- `SLACK_WEBHOOK`: Slack webhook URL voor #dev-alerts
**Belangrijkste features:**
1. **Dependency Audit**: Controleert op bekende beveiligingslekken
2. **Versie Monitoring**: Toont verouderde dependencies
3. **Licentie Compliance**: Scan op licentiecompliance issues
4. **Security Scanning**: Geavanceerde beveiligingsscan met Snyk
5. **Slack Notificaties**: Meldingen naar #dev-alerts bij problemen
**Setup instructies:**
1. Voeg de secrets toe in je repository settings
2. Pas de Node.js versie aan indien nodig
3. Configureer eventuele extra licentiebeleidsregels in `license-checker`
De workflow voert eerst de bestaande build uit, gevolgd door parallelle security en compliance checks met geïntegreerde notificaties.