slogan3

Help me een GitHub Actions workflow maken die afhankelijkheidsupdates optimaliseert in mijn CI/CD-pipeline.

description

Deze workflow bespaart tijd door afhankelijkheidsbeheer te automatiseren, vermindert beveiligingsrisico's en zorgt ervoor dat je project de nieuwste functies en fixes gebruikt.

prompt

try_prompt

Ik heb hulp nodig bij het ontwerpen van een GitHub Actions workflow die automatisch controleert op verouderde afhankelijkheden en updates toepast op basi ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een GitHub Actions workflow die automatisch controleert op verouderde afhankelijkheden in een Node.js-project, deze bijwerkt volgens een automatische strategie, en meldingen stuurt naar Slack: ```yaml name: Dependabot en Dependency Updates on: schedule: - cron: '0 0 * * *' # Elke dag om middernacht push: branches: - main pull_request: types: [opened, synchronize, reopened] jobs: check-dependencies: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '16' # Pas aan indien nodig - name: Install dependencies run: npm install - name: Check op verouderde dependencies run: | npm outdated --json > outdated.json if [ -s outdated.json ]; then echo "Er zijn verouderde dependencies." # U kunt hier verdere logica toevoegen om updates te bepalen else echo "Alle dependencies zijn up-to-date." fi - name: Werk dependencies bij automatisch run: | npm update if: always() - name: Commit en push updates run: | if [ "$(git status --porcelain)" != "" ]; then git config user.name "GitHub Actions" git config user.email "actions@github.com" git checkout -b dependency-update-$(date +%Y%m%d%H%M%S) git add package.json package-lock.json git commit -m "Automatische dependency update" git push origin HEAD else echo "Geen updates om te committen." fi env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Verstuur Slack melding if: always() uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} fields: repo, commit, message env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} ``` **Belangrijke punten:** - Vervang `${{ secrets.SLACK_WEBHOOK_URL }}` door je eigen Slack webhook-URL, die je in de secrets van je repository kunt zetten. - Je kunt de cron-schedule aanpassen aan je behoeften. - Voor meer controle over welke afhankelijkheden automatisch worden bijgewerkt, kun je overwegen Dependabot in te schakelen of script-uitbreidingen toe te voegen. - Deze workflow voert dagelijks een controle uit en push automatisch updates, afhankelijk van de afhankelijkheden die verouderd zijn. Wil je nog specifieke criteria toevoegen of de workflow verder aanpassen?
provider: deepseek
model: deepseek-chat
Hier is een GitHub Actions workflow voor het automatisch bijwerken van Node.js afhankelijkheden met Slack-notificaties: ```yaml name: Dependency Updates on: schedule: # Voer dagelijks uit om 06:00 UTC - cron: '0 6 * * *' workflow_dispatch: # Optioneel handmatig starten jobs: dependency-update: runs-on: ubuntu-latest steps: - name: Repository uitchecken uses: actions/checkout@v4 with: token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 - name: Node.js instellen uses: actions/setup-node@v4 with: node-version: '18' cache: 'npm' - name: Afhankelijkheden bijwerken id: update run: | # Installeer en gebruik npm-check-updates npx npm-check-updates --upgrade --target minor # Controleer of package.json is gewijzigd if git diff --name-only | grep -q package.json; then echo "changes_detected=true" >> $GITHUB_OUTPUT # Installeer bijgewerkte dependencies npm install # Voer tests uit om compatibiliteit te verifiëren npm test else echo "changes_detected=false" >> $GITHUB_OUTPUT fi - name: Pull Request aanmaken bij updates if: steps.update.outputs.changes_detected == 'true' run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git checkout -b dependencies/auto-update-$(date +%Y%m%d) git add package.json package-lock.json git commit -m "chore: automatische dependency updates" git push origin dependencies/auto-update-$(date +%Y%m%d) # Maak PR aan met GitHub CLI gh pr create \ --title "Automatische Dependency Updates $(date +%Y-%m-%d)" \ --body "Deze PR bevat automatisch bijgewerkte dependencies. Controleer de wijzigingen voor merging." \ --base main \ --head dependencies/auto-update-$(date +%Y%m%d) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Slack notificatie bij updates if: steps.update.outputs.changes_detected == 'true' uses: slackapi/slack-github-action@v1.24.0 with: payload: | { "text": "🔔 Nieuwe dependency updates beschikbaar", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "🚀 *Automatische Dependency Updates*\nEr zijn nieuwe dependency updates gevonden en een PR is aangemaakt." } }, { "type": "section", "fields": [ { "type": "mrkdwn", "text": "*Repository:*\n${{ github.repository }}" }, { "type": "mrkdwn", "text": "*Branch:*\ndependencies/auto-update-$(date +%Y%m%d)" } ] } ] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK - name: Slack notificatie bij geen updates if: steps.update.outputs.changes_detected == 'false' uses: slackapi/slack-github-action@v1.24.0 with: payload: | { "text": "✅ Geen nieuwe dependency updates", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "✅ *Dependency Check Voltooid*\nAlle dependencies zijn up-to-date." } } ] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK ``` ## Benodigde instellingen: ### 1. Repository Secrets configureren: - `SLACK_WEBHOOK_URL`: Webhook URL van je Slack kanaal ### 2. Aanvullende aanpassingen: **Voor major updates:** ```yaml npx npm-check-updates --upgrade --target major ``` **Alleen patch updates:** ```yaml npx npm-check-updates --upgrade --target patch ``` **Specifieke packages uitsluiten:** ```yaml npx npm-check-updates --upgrade --target minor --reject "package1,package2" ``` ### 3. Permissies: Zorg dat `GITHUB_TOKEN` voldoende rechten heeft: - `contents: write` (voor PR aanmaken) - `pull-requests: write` Deze workflow controleert dagelijks op updates, past minor updates automatisch toe, voert tests uit, en verstuurt Slack-notificaties bij wijzigingen.