Feature Description
Add support for label-based exclusion rules on individual service chapters. Each rule is a group of labels that must all be present on an issue (AND logic) for the issue to be excluded from that chapter. Multiple independent groups can be defined per chapter — groups are evaluated with OR logic (if any group matches, the issue is excluded).
Problem / Opportunity
Service chapters such as "Closed Issues without Pull Request" currently collect all qualifying issues with no way to filter out noise. Teams use label combinations like scope:security + type:tech-debt to mark issues intentionally closed without a PR (e.g. false-positive security alerts). Without exclusion rules, these flood the chapter and obscure genuinely actionable items.
Acceptance Criteria
- Each service chapter definition accepts an optional
exclude field containing a list of label groups.
- A label group is a list of label strings — all labels in the group must be present on an issue for it to be excluded (AND logic within a group).
- Multiple groups are supported per chapter; an issue matching any single group is excluded (OR logic across groups).
- Issues excluded this way do not appear in any other chapter (silently dropped).
- If
exclude is omitted or empty, chapter behaviour is unchanged.
- Invalid or unrecognised labels in
exclude are ignored without error.
- Configuration syntax and behaviour are documented with examples.
Proposed Solution
Add a new action input service-chapter-exclude that maps service chapter titles to one or more label-exclusion groups. Each group is a list of labels that must all be present (AND); an issue matching any group is excluded from that chapter (OR across groups).
Example action.yml usage:
- uses: AbsaOSS/generate-release-notes@v1
with:
service-chapter-exclude: |
Closed Issues without Pull Request ⚠️:
- [scope:security, type:tech-debt]
- [scope:security, type:false-positive]
### Dependencies / Related
```markdown
- `docs/features/service_chapters.md` — service chapter configuration reference
### Additional Context
First concrete use case: the "Closed Issues without Pull Request" chapter in the AUL project receives large numbers of `[SEC][FP=...]` security false-positive issues (labelled `scope:security` + `type:tech-debt`) that are closed without a PR by design. These should be excludable without hiding other legitimate issues that genuinely lack a PR.
Feature Description
Add support for label-based exclusion rules on individual service chapters. Each rule is a group of labels that must all be present on an issue (AND logic) for the issue to be excluded from that chapter. Multiple independent groups can be defined per chapter — groups are evaluated with OR logic (if any group matches, the issue is excluded).
Problem / Opportunity
Service chapters such as "Closed Issues without Pull Request" currently collect all qualifying issues with no way to filter out noise. Teams use label combinations like
scope:security+type:tech-debtto mark issues intentionally closed without a PR (e.g. false-positive security alerts). Without exclusion rules, these flood the chapter and obscure genuinely actionable items.Acceptance Criteria
excludefield containing a list of label groups.excludeis omitted or empty, chapter behaviour is unchanged.excludeare ignored without error.Proposed Solution
Add a new action input
service-chapter-excludethat maps service chapter titles to one or more label-exclusion groups. Each group is a list of labels that must all be present (AND); an issue matching any group is excluded from that chapter (OR across groups).Example
action.ymlusage: