Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @miroslavpojer @Zejnilovic @benedeki
* @miroslavpojer @tmikula-dev
13 changes: 7 additions & 6 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
name: Bug report
about: Create a report to help us improve
about: Create a report for a bug found or identified
labels: 'bug'
type: 'Bug'
---

[//]: # (Template version v1.0.0)

## Describe the bug
A clear and concise description of what the bug is.

Expand All @@ -18,13 +20,12 @@ Steps to reproduce the behavior OR commands run:
## Expected behavior
A clear and concise description of what you expected to happen.

## Business Value
The business value of the requested bugfix.
You can also refer to the reporting team to confirm that the issue has been fixed.

## Screenshots
If applicable, add screenshots to help explain your problem.

## Desktop (please complete the following information):
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

## Additional context
Add any other context about the problem here.
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,15 @@ labels: 'epic'
type: 'Epic'
---

[//]: # (Template version v1.0.0)

## Background
A clear and concise intro into the situation.

## Goal
The goal that epic wants to achieve.

## Business Value
The business value of achieving the goal.

[Add actionable subtasks or even epics]
13 changes: 9 additions & 4 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
---
name: Feature request
about: Suggest an idea for this project
about: Suggest an idea for the project
labels: 'enhancement'
type: 'Feature'
---

[//]: # (Template version v1.0.0)

## Background
A clear and concise description of where the limitation lies.

## Feature
A description of the requested feature.

## Business Value
The business value of the requested feature.

## Example [Optional]
A simple example if applicable.

## Proposed Solution [Optional]
Solution Ideas:
1.
2.
3.
1.
2.
3.
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/operative_assignment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: Operative assignment
about: Issue template for an assignment about setting up the project, it's management or documentation. Usually not touching the codebase.
labels: 'infrastructure,no RN'
type: 'Task'
---

[//]: # (Template version v1.0.0)

## The assignment

Short description of the assignment.
10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/operative_task.md

This file was deleted.

12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Create a release of vX.Y.0
name: Release
about: Create a project release and its release notes
labels: 'documentation,infrastructure,no RN'
type: 'Task'
---

[//]: # (Template version v1.0.0)

## Background
Version vX.Y.0 can be released, including its release notes
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ labels: 'spike'
type: 'Task'
---

[//]: # (Template version v1.0.0)

## Background
A clear and concise description of the problem or a topic we need to understand.

Expand All @@ -16,19 +18,21 @@ Feel free to add information about why it's needed and what assumptions you have
2.
3.

## Desired Outcome
## Business Value
The business value of the requested investigation.

## Desired Outcome
The list of desired outcomes of this spike ticket.

### Tasks
- [ ] Questions have been answered or we have a clearer idea of how to get to our goal
- [ ] Questions have been answered, or we have a clearer idea of how to get to our goal
- [ ] Discussion with the team
- [ ] Documentation
- [ ] Create recommendations and new implementation tickets
- [ ] item here..
- [ ] item here...

## Additional Info/Resources [Optional]

1.
2.
3.
1.
2.
3.
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/technical_debt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Technical debt
about: Technical debt identified or created in the project
labels: 'tech debt'
type: 'Feature'
---
Comment on lines +1 to +6
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix the issue type classification.

Technical debt is classified as type: 'Feature', which is semantically incorrect. Technical debt represents maintenance work, not new features.

Consider changing to:

-type: 'Feature'
+type: 'Task'

Alternatively, if your issue tracking system supports it, use type: 'Technical Debt' for better categorization.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
name: Technical debt
about: Technical debt identified or created in the project
labels: 'tech debt'
type: 'Feature'
---
---
name: Technical debt
about: Technical debt identified or created in the project
labels: 'tech debt'
type: 'Task'
---
🤖 Prompt for AI Agents
In .github/ISSUE_TEMPLATE/technical_debt.md around lines 1 to 6, the frontmatter
sets type: 'Feature' which misclassifies technical debt; update the YAML
frontmatter to use a more accurate type such as type: 'Technical Debt' or type:
'Maintenance' (or remove the type field if your tracker does not support custom
types) so that issues are correctly categorized as maintenance work rather than
features.


[//]: # (Template version v1.0.0)

## Description
What is the risk essence.

## Risk location
Where is the source of the risk - class name(s), approach or solution.

## Risk assessment

### Condition of it manifesting
What are the conditions under which this technical debt would manifest.

### Possible impact <!-- optional -->
What is/would be the impact of the technical debt, if not addressed.

## Possible solution <!-- optional -->
Ideas and suggestions how to address the technical debt.
11 changes: 8 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
> Add information about goal of Pull Request.
<!-- What problem does it solve or what feature does it add? -->
## Overview

---
> **Note:** Remember to link this PR to the related issue by adding `Fixes #issue_number` to the description above.
<!-- Summarize the key changes for release notes. -->
## Release Notes
- TBD: 1st item of release notes
- TBD: 2nd item of release notes

<!-- Add attached issue that this PR solves. -->
## Related
Closes #issue_number
10 changes: 6 additions & 4 deletions .github/workflows/check_pr_release_notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# limitations under the License.
#

name: Check PR Release Notes in Description
name: Check PR Release Notes

on:
pull_request:
Expand All @@ -26,15 +26,17 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/setup-python@v5.1.1
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: '3.13'

- name: Check presence of release notes in PR description
uses: AbsaOSS/release-notes-presence-check@v0.3.0
uses: AbsaOSS/release-notes-presence-check@v0.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github-repository: ${{ github.repository }}
pr-number: ${{ github.event.number }}
title: "## [Rr]elease [Nn]otes"
skip-labels: 'no RN'
skip-placeholders: 'TBD'
85 changes: 44 additions & 41 deletions .github/workflows/release_draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,78 +14,81 @@
# limitations under the License.
#

name: Release - create draft release
name: Draft Release
on:
workflow_dispatch:
inputs:
tag-name:
description: 'Name of git version tag to be created, and then draft release created. Syntax: "v[0-9]+.[0-9]+.[0-9]+".'
description: 'Name of git tag to be created, and then draft release created. Syntax: "v[0-9]+.[0-9]+.[0-9]+".'
required: true
from-tag-name:
description: 'Name of the git tag from which to detect changes from. Default value: latest tag. Syntax: "v[0-9]+.[0-9]+.[0-9]+".'
required: false

jobs:
check-tag:
release-draft:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
persist-credentials: false

- uses: actions/setup-python@v5.1.1
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: '3.13'

- name: Version Tag Check
id: version_tag_check
uses: AbsaOSS/version-tag-check@master
- name: Check Format of Received Tag
id: check-version-tag
uses: AbsaOSS/version-tag-check@v0.3.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.tag-name }}

release-draft:
needs: check-tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false

- uses: actions/[email protected]
- name: Check Format of Received From Tag
if: ${{ github.event.inputs.from-tag-name }}
id: check-version-from-tag
uses: AbsaOSS/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
python-version: '3.11'
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.from-tag-name }}
should-exist: true

- name: Generate Release Notes
id: generate_release_notes
uses: AbsaOSS/generate-release-notes@v0.4.0
uses: AbsaOSS/generate-release-notes@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag-name: ${{ github.event.inputs.tag-name }}
chapters: '[
{"title": "No entry 🚫", "label": "duplicate"},
{"title": "No entry 🚫", "label": "invalid"},
{"title": "No entry 🚫", "label": "wontfix"},
{"title": "No entry 🚫", "label": "no RN"},
{"title": "Breaking Changes 💥", "label": "breaking-change"},
{"title": "New Features 🎉", "label": "enhancement"},
{"title": "New Features 🎉", "label": "feature"},
{"title": "Bugfixes 🛠", "label": "bug"},
{"title": "Infrastructure ⚙️", "label": "infrastructure"},
{"title": "Silent-live 🤫", "label": "silent-live"},
{"title": "Documentation 📜", "label": "documentation"}
]'
skip-release-notes-label: 'no RN'
verbose: true

chapters: |
- {"title": "Entries to skip 🚫", "label": "duplicate"}
- {"title": "Entries to skip 🚫", "label": "invalid"}
- {"title": "Entries to skip 🚫", "label": "wontfix"}
- {"title": "Entries to skip 🚫", "label": "no RN"}
- {"title": "Breaking Changes 💥", "label": "breaking change"}
- {"title": "Security updates 👮", "label": "security"}
- {"title": "New Features 🎉", "label": "enhancement"}
- {"title": "Bugfixes 🛠", "label": "bug"}
- {"title": "Epics 📖", "label": "epic"}
- {"title": "Infrastructure ⚙️", "label": "infrastructure"}
- {"title": "Silent-live 🤫", "label": "silent live"}
- {"title": "Documentation 📜", "label": "documentation"}
duplicity-scope: 'none'
warnings: true
print-empty-chapters: true

skip-release-notes-labels: "no RN,duplicate,invalid,wontfix"
print-empty-chapters: false
row-format-issue: '_{title}_ {developers} in {number}'
row-format-pr: '_{title}_ {developers} in {number}'
row-format-link-pr: true
hierarchy: true
Comment on lines +50 to +88
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Critical: Optional from-tag-name input is validated but not used.

The workflow validates the optional from-tag-name input (lines 50-59) but does not pass it to the "Generate Release Notes" step. This creates a disconnect: users can provide a from-tag-name, which passes validation, but the release notes generation may not use it.

The Generate Release Notes action (line 63) should receive the from-tag-name parameter:

      - name: Generate Release Notes
        id: generate_release_notes
        uses: AbsaOSS/generate-release-notes@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag-name: ${{ github.event.inputs.tag-name }}
+         from-tag-name: ${{ github.event.inputs.from-tag-name }}
          chapters: |

Alternatively, if the action doesn't support from-tag-name, clarify the intended behavior in documentation or remove the input entirely.


🌐 Web query:

AbsaOSS/generate-release-notes@v1 action parameters from-tag-name

💡 Result:

The action supports an optional from-tag-name input to set the lower bound of the tag range so the notes cover from from-tag-name...tag-name (i.e., compare from-tag-name..tag-name). Use it together with tag-name; if omitted the action uses the repository's latest state/previous release as the start. Example (in your workflow step):

  • name: Generate Release Notes
    uses: AbsaOSS/generate-release-notes@v1
    env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    with:
    tag-name: "v1.2.0"
    from-tag-name: "v1.1.0"
    chapters: |
    - {"title":"New Features 🎉","labels":"enhancement"}

(Documentation reference: README — Tag Range Selection uses tag-name/from-tag-name.) [1]

Sources

  • AbsaOSS/generate-release-notes README (Tag Range Selection / configuration). [1]

🌐 Web query:

AbsaOSS generate-release-notes action supported inputs documentation

💡 Result:

The AbsaOSS generate-release-notes Action README documents these supported inputs (use via with: or env:):

  • GITHUB_TOKEN (env) — GitHub token for API access. [required].
  • tag-name — Target tag for the release (string). [required].
  • chapters — YAML multiline mapping of chapter titles → labels (supports label or labels). [optional].
  • verbose — enable detailed logging (boolean, default: false). [optional].

The README also shows the action outputs (e.g., release_notes) and additional features/config options (from-tag-name/date selection, skip/duplicity settings, custom row formats, service chapters, etc.) exposed elsewhere in the docs. See the full docs and examples in the repository README. [1]

Sources
[1] AbsaOSS/generate-release-notes README (inputs, configuration, examples).


Critical: Optional from-tag-name input is validated but not passed to the release notes action.

The workflow validates from-tag-name at lines 50–59 but does not pass it to the "Generate Release Notes" step. The action supports an optional from-tag-name input to set the lower bound of the tag range so the notes cover from from-tag-name...tag-name, allowing users to specify a comparison range. Without this parameter, the action ignores the user-provided value.

Pass from-tag-name to the action:

      - name: Generate Release Notes
        id: generate_release_notes
        uses: AbsaOSS/generate-release-notes@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag-name: ${{ github.event.inputs.tag-name }}
+         from-tag-name: ${{ github.event.inputs.from-tag-name }}
          chapters: |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Check Format of Received From Tag
if: ${{ github.event.inputs.from-tag-name }}
id: check-version-from-tag
uses: AbsaOSS/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
python-version: '3.11'
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.from-tag-name }}
should-exist: true
- name: Generate Release Notes
id: generate_release_notes
uses: AbsaOSS/[email protected]
uses: AbsaOSS/generate-release-notes@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag-name: ${{ github.event.inputs.tag-name }}
chapters: '[
{"title": "No entry 🚫", "label": "duplicate"},
{"title": "No entry 🚫", "label": "invalid"},
{"title": "No entry 🚫", "label": "wontfix"},
{"title": "No entry 🚫", "label": "no RN"},
{"title": "Breaking Changes 💥", "label": "breaking-change"},
{"title": "New Features 🎉", "label": "enhancement"},
{"title": "New Features 🎉", "label": "feature"},
{"title": "Bugfixes 🛠", "label": "bug"},
{"title": "Infrastructure ⚙️", "label": "infrastructure"},
{"title": "Silent-live 🤫", "label": "silent-live"},
{"title": "Documentation 📜", "label": "documentation"}
]'
skip-release-notes-label: 'no RN'
verbose: true
chapters: |
- {"title": "Entries to skip 🚫", "label": "duplicate"}
- {"title": "Entries to skip 🚫", "label": "invalid"}
- {"title": "Entries to skip 🚫", "label": "wontfix"}
- {"title": "Entries to skip 🚫", "label": "no RN"}
- {"title": "Breaking Changes 💥", "label": "breaking change"}
- {"title": "Security updates 👮", "label": "security"}
- {"title": "New Features 🎉", "label": "enhancement"}
- {"title": "Bugfixes 🛠", "label": "bug"}
- {"title": "Epics 📖", "label": "epic"}
- {"title": "Infrastructure ⚙️", "label": "infrastructure"}
- {"title": "Silent-live 🤫", "label": "silent live"}
- {"title": "Documentation 📜", "label": "documentation"}
duplicity-scope: 'none'
warnings: true
print-empty-chapters: true
skip-release-notes-labels: "no RN,duplicate,invalid,wontfix"
print-empty-chapters: false
row-format-issue: '_{title}_ {developers} in {number}'
row-format-pr: '_{title}_ {developers} in {number}'
row-format-link-pr: true
hierarchy: true
- name: Check Format of Received From Tag
if: ${{ github.event.inputs.from-tag-name }}
id: check-version-from-tag
uses: AbsaOSS/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.from-tag-name }}
should-exist: true
- name: Generate Release Notes
id: generate_release_notes
uses: AbsaOSS/generate-release-notes@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag-name: ${{ github.event.inputs.tag-name }}
from-tag-name: ${{ github.event.inputs.from-tag-name }}
chapters: |
- {"title": "Entries to skip 🚫", "label": "duplicate"}
- {"title": "Entries to skip 🚫", "label": "invalid"}
- {"title": "Entries to skip 🚫", "label": "wontfix"}
- {"title": "Entries to skip 🚫", "label": "no RN"}
- {"title": "Breaking Changes 💥", "label": "breaking change"}
- {"title": "Security updates 👮", "label": "security"}
- {"title": "New Features 🎉", "label": "enhancement"}
- {"title": "Bugfixes 🛠", "label": "bug"}
- {"title": "Epics 📖", "label": "epic"}
- {"title": "Infrastructure ⚙️", "label": "infrastructure"}
- {"title": "Silent-live 🤫", "label": "silent live"}
- {"title": "Documentation 📜", "label": "documentation"}
duplicity-scope: 'none'
warnings: true
skip-release-notes-labels: "no RN,duplicate,invalid,wontfix"
print-empty-chapters: false
row-format-issue: '_{title}_ {developers} in {number}'
row-format-pr: '_{title}_ {developers} in {number}'
row-format-link-pr: true
hierarchy: true
🤖 Prompt for AI Agents
.github/workflows/release_draft.yml around lines 50 to 88: the workflow
validates github.event.inputs.from-tag-name but does not forward it to the
"Generate Release Notes" action, so the action cannot use the lower bound for
the tag range; fix by adding a with input named from-tag-name and set it to ${{
github.event.inputs.from-tag-name }} (the action accepts this optional input),
ensuring the value is passed through so release notes cover
from-tag-name...tag-name.


- name: Create and Push Tag
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
script: |
const tag = core.getInput('tag-name')
Expand All @@ -104,7 +107,7 @@ jobs:
tag-name: ${{ github.event.inputs.tag-name }}

- name: Create Draft Release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
Expand Down
Loading