README.md: add bug bounty and update other sections

Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
This commit is contained in:
Maciej Pijanowski
2025-06-30 14:58:57 +02:00
parent aa6c48ffa6
commit a578619c73
2 changed files with 141 additions and 16 deletions
+61 -16
View File
@@ -1,28 +1,73 @@
Dasharo Issues repository
=======================
# Dasharo Issues repository
This repository tracks issues and feature development progress for the [Dasharo
Project](https://dasharo.com/).
This repository tracks issues and feature development progress for the
[Dasharo Project](https://dasharo.com/).
You can [file a new issue](https://github.com/Dasharo/dasharo-issues/issues/new/choose)
or [view all issues](https://github.com/Dasharo/dasharo-issues/issues).
Notable issues
--------------
## Bug Bounty
* [Good first issue](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
* [Help wanted](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
* [Community-developed](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aissue+is%3Aopen+label%3Acommunity-dev)
You can find more details on the Bug Bounty program
[on our website](https://3mdeb.com/bug-bounty/).
Issues by variant
-----------------
Bounties are categorized per difficulty:
- [Warmup](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aissue%20state%3Aopen%20label%3Abounty-warmup)
- [Easy](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aissue%20state%3Aopen%20label%3Abounty-easy)
- [Medium](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aissue%20state%3Aopen%20label%3Abounty-medium)
- [Hard](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aissue%20state%3Aopen%20label%3Abounty-hard)
* [Dasharo Workstation](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aopen+is%3Aissue+label%3A%22workstation%22)
* [Dasharo Secure Firewall](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aopen+is%3Aissue+label%3A%22firewall%22)
* [Dasharo Trustworthy Server](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aopen+is%3Aissue+label%3A%22server%22)
You can also view all bounties
[here](https://github.com/Dasharo/dasharo-issues/issues?q=is%3Aissue%20state%3Aopen%20label%3Abounty-warmup%20OR%20label%3Abounty-easy%20OR%20label%3Abounty-medium%20OR%20label%3Abounty-hard%20OR%20label%3Abounty).
GitHub help
-----------
<!-- BEGIN DEVICE ISSUES -->
## Issues per device
Below is a list of open issues affecting specific devices:
- [Asus KGPE-D16](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22asus_kgpe-d16%22)
- [Dell OptiPlex 7010](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22dell_optiplex_9010%22)
- [Dell OptiPlex 9010](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22dell_optiplex_9010%22)
- [Hardkernel Odroid H4](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22hardkernel_odroid_h4%22)
- [MSI Pro Z690-A](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22MSI%20PRO%20Z690-A%20boards%22)
- [MSI Pro Z790-P](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22MSI%20PRO%20Z790-P%20boards%22)
- [NovaCustom NS5x 11th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_ns5x/7x_tgl%22)
- [NovaCustom NS5x 11th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_ns5x/7x_adl%22)
- [NovaCustom NS7x 11th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_ns5x/7x_tgl%22)
- [NovaCustom NS7x 12th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_ns5x/7x_adl%22)
- [NovaCustom NUC BOX 14th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_nuc_box%22)
- [NovaCustom NV4x 11th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_nv4x_tgl%22)
- [NovaCustom NV4x 12th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_nv4x_adl%22)
- [NovaCustom V54 14th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_v54_mtl%22)
- [NovaCustom V56 14th Gen](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22novacustom_v56_mtl%22)
- [PC Engines APU2](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22pcengines_apu2%22)
- [PC Engines APU3](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22pcengines_apu2%22)
- [PC Engines APU4](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22pcengines_apu2%22)
- [PC Engines APU6](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22pcengines_apu2%22)
- [Protectli FW2B](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_bsw%22)
- [Protectli FW4B](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_bsw%22)
- [Protectli FW4C](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_bsw%22)
- [Protectli FW6](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_kbl%22)
- [Protectli V1210](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_jsl%22)
- [Protectli V1211](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_jsl%22)
- [Protectli V1410](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_jsl%22)
- [Protectli V1610](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_jsl%22)
- [Protectli VP2410](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_glk%22)
- [Protectli VP2420](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_ehl%22)
- [Protectli VP2430](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adln%22)
- [Protectli VP2440](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adln%22)
- [Protectli VP3210](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adln%22)
- [Protectli VP3230](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adln%22)
- [Protectli VP4630](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_cml%22)
- [Protectli VP4650](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_cml%22)
- [Protectli VP4670](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_cml%22)
- [Protectli VP6630](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adl%22)
- [Protectli VP6650](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adl%22)
- [Protectli VP6670](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22protectli_vault_adl%22)
- [QEMU Q35 Emulator](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22qemu_q35%22)
- [Raptor CS Talos II](https://github.com/dasharo/dasharo-issues/issues?q=is%3Aissue+state%3Aopen+label%3A%22raptor-cs_talos-2%22)
<!-- END DEVICE ISSUES -->
## GitHub help
* [GitHub search syntax](https://help.github.com/articles/search-syntax/)
* [GitHub search syntax related to issues](https://help.github.com/articles/searching-issues/)
+80
View File
@@ -0,0 +1,80 @@
#!/usr/bin/env python3
"""
update_readme_devices.py
This script updates the `README.md` file in the Dasharo Issues repository by generating
a section that lists supported devices and links each one to its open issues on GitHub.
It should be executed each time we add a new device (or drop existing one), to make sure
the list is up to date.
It:
- Loads the `.github/advanced-issue-labeler.yml` policy file.
- Extracts all device labels and their associated keys.
- Generates a Markdown list of device names linking to GitHub issue searches.
- Replaces the content between `<!-- BEGIN DEVICE ISSUES -->` and `<!-- END DEVICE ISSUES -->`
in `README.md` with this list.
Usage:
Run this script from the root of the repository:
python3 update_readme_devices.py
"""
import yaml
import urllib.parse
import re
REPO = "dasharo/dasharo-issues"
YAML_PATH = ".github/advanced-issue-labeler.yml"
README_PATH = "README.md"
START_MARKER = "<!-- BEGIN DEVICE ISSUES -->"
END_MARKER = "<!-- END DEVICE ISSUES -->"
def load_policy_yaml(path):
with open(path, "r") as f:
return yaml.safe_load(f)
def extract_device_entries(policy):
entries = []
for section in policy.get("policy", []):
for sec in section.get("section", []):
if sec.get("id") == ["device"] and "other" in sec.get("block-list", []):
for item in sec.get("label", []):
label_name = item["name"]
for key in item.get("keys", []):
entries.append((key, label_name))
return entries
def generate_issue_search_url(repo, label_name):
quoted = urllib.parse.quote(f'"{label_name}"')
return f"https://github.com/{repo}/issues?q=is%3Aissue+state%3Aopen+label%3A{quoted}"
def generate_readme_section(entries):
lines = ["## Issues per device", "\nBelow is a list of open issues affecting specific devices:"]
for device_name, label_name in sorted(entries, key=lambda x: x[0].lower()):
url = generate_issue_search_url(REPO, label_name)
lines.append(f"- [{device_name}]({url})")
return "\n".join(lines)
def update_readme(readme_path, new_section):
with open(readme_path, "r") as f:
content = f.read()
pattern = re.compile(rf"{START_MARKER}.*?{END_MARKER}", re.DOTALL)
replacement = f"{START_MARKER}\n{new_section}\n{END_MARKER}"
if pattern.search(content):
updated = pattern.sub(replacement, content)
else:
updated = content.strip() + "\n\n" + replacement
with open(readme_path, "w") as f:
f.write(updated)
if __name__ == "__main__":
policy = load_policy_yaml(YAML_PATH)
entries = extract_device_entries(policy)
section = generate_readme_section(entries)
update_readme(README_PATH, section)
print("README.md updated with flat device issue links.")