Adviseer mij over het automatiseren van GitHub Issue-templates en workflows
description
Met deze prompt krijg je gericht advies om het beheer van issues in je GitHub-project te automatiseren, waardoor je tijd bespaart, sneller reageert op problemen en een gestroomlijnde workflow ontwikkelt. Dit verbetert de efficiëntie en samenwerking zonder overlap met bestaande prompts over algemene workflowoptimalisatie of beveiliging.
prompt
Help mij bij het opzetten van geautomatiseerde GitHub Issue-templates en workflows met de volgende details:
Projectnaam: <voer de naam van mijn project in>
Soort issues die ik vaak ontvang: <beschrijf de types issues die vaak voorkomen>
Huidige aanpak voor issuebeheer: ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzicht en advies voor het opzetten van geautomatiseerde GitHub Issue-templates en workflows voor jouw project "MijnWebApp".
### 1. Issue-templates ontwerpen
**Doel:** Consistente en informatieve issues creëren, waardoor prioriteren en labelen eenvoudiger wordt.
**Aanpak:**
- Maak verschillende templates voor bugmeldingen en verbeteringen.
- Gebruik YAML of Markdown voor duidelijke structuur.
- Voeg automatische labels en prioriteit toe op basis van de inhoud.
**Voorbeeld:**
**a. Bug-issue-template (`bug_report.md`):**
```markdown
---
name: Bug Melden
about: Meld een bug in MijnWebApp
title: "[BUG] "
labels: bug, te-wachten
assignees: ''
---
**Beschrijving:**
Kort beschrijven wat er misgaat.
**Stappen om te reproduceren:**
1. Ga naar...
2. Klik op...
3. Zie foutmelding...
**Verwart gedrag / Verwachte resultaat:**
Wat zou er moeten gebeuren?
**Screenshots / Logs:**
Indien beschikbaar.
**Omgeving:**
- Browser:
- OS:
- Versie van de app:
```
**b. Verbetering-issue-template (`feature_request.md`):**
```markdown
---
name: Verbetering
about: Stel een verbetering of nieuwe feature voor
title: "[Verbetering] "
labels: enhancement, te-wachten
assignees: ''
---
**Omschrijving:**
Beschrijf de voorgestelde verbetering of feature.
**Motivatie:**
Waarom is dit belangrijk?
**Voorstel:**
Hoe zou dit geïmplementeerd kunnen worden?
**Alternatieven:**
Zijn er andere oplossingen overwogen?
**Screenshots / Mockups:**
Indien relevant.
```
### 2. Issue-templates toevoegen aan je repository
- Maak een map `.github/ISSUE_TEMPLATE/`.
- Plaats daar de markdown-bestanden (`bug_report.md`, `feature_request.md`).
- Voeg een `config.yml` toe om templates te beheren:
```yaml
blank_issues_enabled: false
issue_templates:
- name: Bug Melden
description: Meld een bug
filename: bug_report.md
- name: Verbetering
description: Stel een verbetering voor
filename: feature_request.md
```
### 3. Automatisering met GitHub Actions workflows
**Doel:** Issue automatisch labelen en prioriteren op basis van inhoud of andere criteria.
**Voorbeeld workflow (`.github/workflows/issue-labeler.yml`):**
```yaml
name: Issue Labeler
on:
issues:
types: [opened, edited]
jobs:
label:
runs-on: ubuntu-latest
steps:
- name: Label issues op inhoud
uses: actions/labeler@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration: .github/labeler.yml
```
**Labeler-configuratie (`.github/labeler.yml`):**
```yaml
bug_report.md:
- bug
- high-priority
feature_request.md:
- enhancement
- low-priority
```
*(Let op: De labeler-actie werkt standaard op basis van bestandsnaam. Voor inhoud gebaseerde labels kun je een custom actie schrijven of scripting binnen workflows.)*
### 4. Geautomatiseerde prioriteitstelling
Voor meer dynamische prioritering op basis van inhoud (zoals urgentie of impact), kun je een aangepaste workflow schrijven met een script (bijvoorbeeld in JavaScript of Python) die inhoud scant en labels toevoegt.
**Voorbeeld:**
```yaml
name: Prioriteit toekennen
on:
issues:
types: [opened]
jobs:
assign-priority:
runs-on: ubuntu-latest
steps:
- name: Check issue inhoud
uses: actions/github-script@v6
with:
script: |
const issueBody = context.payload.issue.body;
if (issueBody.includes('crash') || issueBody.includes('foutmelding')) {
await github.issues.addLabels({
issue_number: context.payload.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['hoog-prioriteit']
});
} else {
await github.issues.addLabels({
issue_number: context.payload.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['laag-prioriteit']
});
}
```
### Samenvatting
- Maak aparte issue-templates voor bugmeldingen en verbeteringen.
- Gebruik `.github/ISSUE_TEMPLATE/` en `config.yml` voor beheer.
- Automatiseer labelen en prioriteren via GitHub Actions, eventueel met scripts voor inhoudsanalyse.
- Overweeg het gebruik van labels en prioriteitstags voor betere workflow.
Wil je dat ik specifieke scripts of configuraties verder uitwerk?
provider: deepseek
model: deepseek-chat
Zeker, ik help je graag met het opzetten van geautomatiseerde GitHub Issue-templates en workflows voor je project "MijnWebApp". Hier is een stapsgewijze handleiding in het Nederlands:
## 1. Issue Templates Aanmaken
Maak een `.github` map aan in je repository met daarin een `ISSUE_TEMPLATE` map:
### Bug Report Template (bug_melding.md)
```markdown
---
name: 🐛 Bug Melding
about: Meld een probleem om ons te helpen verbeteren
title: '[BUG] '
labels: 'bug, needs-triage'
---
## Beschrijving
Duidelijke omschrijving van de bug
## Stappen om te reproduceren
1. Ga naar '...'
2. Klik op '....'
3. Scroll naar '....'
4. Zie fout
## Verwacht gedrag
Duidelijke omschrijving van wat je verwachtte te gebeuren
## Screenshots
Optioneel: voeg screenshots toe
## Omgeving
- OS: [bijv. Windows 10]
- Browser: [bijv. Chrome 90]
- Versie: [bijv. 1.2.0]
```
### Verbetering Template (verbetering.md)
```markdown
---
name: 💡 Verbeteringsvoorstel
about: Stel een verbetering of nieuwe feature voor
title: '[VERBETERING] '
labels: 'enhancement, needs-triage'
---
## Beschrijving
Duidelijke omschrijving van de gewenste verbetering
## Motivatie
Waarom is deze verbetering nuttig voor het project?
## Voorgestelde oplossing
Hoe zou je dit willen implementeren?
## Alternatieven
Zijn er alternatieve oplossingen overwogen?
```
## 2. Automatisering met GitHub Workflows
Maak een `.github/workflows/issue-automation.yml` bestand:
```yaml
name: Issue Automation
on:
issues:
types: [opened, edited]
jobs:
automate-issues:
runs-on: ubuntu-latest
steps:
- name: Automatisch labelen op basis van titel
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issue = context.payload.issue
const labels = issue.labels.map(label => label.name)
// Automatisch prioriteit labelen op basis van keywords
if (issue.title.toLowerCase().includes('kritiek') || issue.title.toLowerCase().includes('blokkerend')) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
labels: ['hoge-prioriteit']
})
}
// Automatisch type detecteren
if (issue.title.toLowerCase().includes('bug') || issue.body.toLowerCase().includes('fout')) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
labels: ['bug']
})
}
- name: Reageren op nieuwe issues
if: github.event.action == 'opened'
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issue = context.payload.issue
let response = ''
if (issue.labels.some(label => label.name === 'bug')) {
response = `Bedankt voor je bugmelding! We zullen deze zo snel mogelijk onderzoeken.`
} else if (issue.labels.some(label => label.name === 'enhancement')) {
response = `Bedankt voor je verbeteringsvoorstel! We zullen dit meenemen in onze planning.`
}
if (response) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
body: response
})
}
```
## 3. Aanvullende Automatisering
Voeg deze stappen toe aan je workflow voor extra automatisering:
```yaml
- name: Issue triage en assign
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
// Automatisch assignen op basis van labels
const issue = context.payload.issue
if (issue.labels.some(label => label.name === 'bug')) {
await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
assignees: ['naam-van-ontwikkelaar']
})
}
```
## 4. Configuratie Bestanden
Maak een `config.yml` in `.github` voor extra configuratie:
```yaml
# .github/config.yml
blank_issues_enabled: false
contact_links:
- name: Bug Melding
url: https://github.com/jouw-gebruikersnaam/MijnWebApp/issues/new?template=bug_melding.md
about: Meld een bug of probleem
- name: Verbeteringsvoorstel
url: https://github.com/jouw-gebruikersnaam/MijnWebApp/issues/new?template=verbetering.md
about: Doe een suggestie voor verbetering
```
## 5. Tips voor Effectief Gebruik
1. **Standaard Labels**: Maak vaste labels aan zoals:
- `bug`, `enhancement`, `documentation`
- `hoge-prioriteit`, `medium-prioriteit`, `lage-prioriteit`
- `needs-triage`, `in-progress`, `ready-for-review`
2. **Workflow Afhandeling**: Stel duidelijke SLA's in voor reactietijden
3. **Regular Expressions**: Gebruik regex in je workflows voor geavanceerde detectie
4. **Testing**: Test je workflows eerst in een test repository
Deze setup zal je helpen bij:
- Snellere triage en categorisering van issues
- Automatische prioritering op basis van inhoud
- Gestandaardiseerde issue-aanmeldingen
- Vermindering van handmatig werk
Wil je dat ik specifieke onderdelen verder uitwerk of aanpas aan je specifieke behoeften?