Skip to content
Merged
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
22 changes: 11 additions & 11 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,33 @@ assignees: ""
---

## 🐞 Bug Description
A clear and concise description of the issue.
<!-- A clear and concise description of the issue. -->



## 📌 Steps to Reproduce
1. Go to '...'
## Steps to Reproduce
<!-- 1. Go to '...'
2. Call method '...'
3. Observe behavior '...'
3. Observe behavior '...' -->



## 🧪 Expected Behavior
What should have happened?
## Expected Behavior
<!-- What should have happened? -->


## 📷 Screenshots / Logs (if applicable)
Paste stack traces, console logs, or screenshots.
## Screenshots / Logs (if applicable)
<!-- Paste stack traces, console logs, or screenshots. -->



## 🧩 Environment
## Environment
- UltimateAuth version:
- .NET version:
- Platform: (Blazor / MAUI / ASP.NET Core / Other)
- OS:



## ✔ Additional Context
Add any other relevant context about the problem here.
## Additional Context
<!-- Add any other relevant context about the problem here. -->
30 changes: 15 additions & 15 deletions .github/ISSUE_TEMPLATE/design_proposal.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,39 @@ assignees: ""
---

## 🧠 Summary
Briefly describe the concept or design you're proposing.
<!-- Briefly describe the concept or design you're proposing. -->

---

## 🎯 Goals
What problem does this design solve?
What are the objectives?
## Goals
<!-- What problem does this design solve?
What are the objectives? -->

---

## 🧩 Proposed Architecture
Describe how this feature or change should work:
## Proposed Architecture
<!-- Describe how this feature or change should work:
- Components involved
- Flow diagrams (optional)
- Key abstractions
- Input/output expectations
- Input/output expectations -->

---

## 🧪 Alternatives Considered
List alternative designs and why they were not chosen.
## Alternatives Considered
<!-- List alternative designs and why they were not chosen. -->

---

## 🔥 Risks / Trade-offs
Any potential drawbacks or complexities?
## Risks / Trade-offs
<!-- Any potential drawbacks or complexities? -->

---

## 🔗 Related Issues
(Optional) Provide related bugs, features, or discussions.
## Related Issues
<!-- (Optional) Provide related bugs, features, or discussions. -->

---

## ✔ Additional Notes
Add anything else that may help the maintainers evaluate this proposal.
## Additional Notes
<!-- Add anything else that may help the maintainers evaluate this proposal. -->
20 changes: 10 additions & 10 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,27 @@ assignees: ""
---

## ✨ Feature Description
Describe the feature you'd like to see.
<!-- Describe the feature you'd like to see. -->

---

## 💡 Why Is This Needed?
Explain the problem this feature solves or the value it provides.
## Why Is This Needed?
<!-- Explain the problem this feature solves or the value it provides. -->

---

## 🛠 Suggested Implementation
If you have any implementation ideas, describe them:
## Suggested Implementation
<!-- If you have any implementation ideas, describe them:
- Proposed API shape
- Example usage
- Integration points
- Integration points -->

---

## 🔗 Related Issues / Discussions
(Optional) Link any related issues or design proposals.
## Related Issues / Discussions
<!-- (Optional) Link any related issues or design proposals. -->

---

## ✔ Additional Notes
Anything else we should know?
## Additional Notes
<!-- Anything else we should know? -->
14 changes: 8 additions & 6 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,27 @@
<!-- Please complete the following checklist to help us review your PR effectively.-->


## 📘 Summary
## Summary
<!-- Describe what this PR does and why it’s needed. -->


## 🔍 Details
## Details
<!-- Explain any important implementation details, design decisions, or considerations. -->


## 🧩 Related Issues
Link any related issues:
## Related Issues
<!-- Link any related issues: -->
<!-- Example: Fixes #42 -->


## 🛠 Changes
- [ ] New feature
## Changes
- [ ] Bug fix
- [ ] New feature
- [ ] Refactoring - Improvement
- [ ] Documentation
- [ ] Samples
- [ ] Tests
- [ ] Identity Lab
- [ ] Breaking change

---
Expand Down
69 changes: 60 additions & 9 deletions .github/workflows/ultimateauth-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
slug: CodeBeamOrg/UltimateAuth
flags: framework


identity-lab-security:
name: Identity Lab security (PostgreSQL)
runs-on: ubuntu-latest
Expand All @@ -75,18 +76,68 @@ jobs:
--logger "trx;LogFileName=identity-lab.trx"
--results-directory TestResults/IdentityLab

- name: Upload Identity Lab coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CodeBeamOrg/UltimateAuth
directory: TestResults/IdentityLab
flags: identitylab
fail_ci_if_error: true
- name: Generate Identity Lab coverage summary
if: always()
shell: bash
run: |
python3 - <<'PY'
import glob
import os
import xml.etree.ElementTree as ET

reports = glob.glob(
"TestResults/IdentityLab/**/coverage.cobertura.xml",
recursive=True
)

summary_path = os.environ["GITHUB_STEP_SUMMARY"]

with open(summary_path, "a", encoding="utf-8") as output:
output.write("## Identity Lab Coverage\n\n")

if not reports:
output.write("Coverage report was not generated.\n")
raise SystemExit(0)

- name: Upload test results
reports = [
path for path in reports
if "/In/" not in path.replace("\\", "/")
]

if not reports:
output.write("No usable coverage report found.\n")
raise SystemExit(0)

report = ET.parse(reports[0]).getroot()

line_rate = float(report.attrib.get("line-rate", 0))
branch_rate = float(report.attrib.get("branch-rate", 0))
lines_valid = int(report.attrib.get("lines-valid", 0))
lines_covered = int(report.attrib.get("lines-covered", 0))
branches_valid = int(report.attrib.get("branches-valid", 0))
branches_covered = int(report.attrib.get("branches-covered", 0))

output.write("| Metric | Coverage |\n")
output.write("|---|---:|\n")
output.write(f"| Lines | {line_rate:.2%} |\n")
output.write(f"| Branches | {branch_rate:.2%} |\n")
output.write(
f"| Covered lines | {lines_covered:,} / {lines_valid:,} |\n"
)
output.write(
f"| Covered branches | {branches_covered:,} / {branches_valid:,} |\n"
)
output.write("\n")
output.write(
"Coverage is reported separately from UltimateAuth "
"framework coverage.\n"
)
PY

- name: Upload Identity Lab test and coverage results
if: always()
uses: actions/upload-artifact@v4
with:
name: identity-lab-test-results
path: TestResults/IdentityLab

9 changes: 2 additions & 7 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ coverage:
status:
project:
default: false

framework:
flags:
- framework
Expand All @@ -14,7 +13,6 @@ coverage:

patch:
default: false

framework:
flags:
- framework
Expand All @@ -26,11 +24,8 @@ flags:
paths:
- src/

identitylab:
paths:
- apps/identity-lab/

ignore:
- "samples/**"
- "tests/**"
- "**/Migrations/**"
- "apps/**"
- "**/Migrations/**"
Loading