diff --git a/src/generate_repo_overview/_html_common.py b/src/generate_repo_overview/_html_common.py index 440b61f..3524f28 100644 --- a/src/generate_repo_overview/_html_common.py +++ b/src/generate_repo_overview/_html_common.py @@ -4,6 +4,7 @@ from pathlib import Path from typing import TYPE_CHECKING +from ._icons import _bazel_svg from .metrics_report import parse_version_key if TYPE_CHECKING: @@ -13,10 +14,7 @@ CSS = (_TEMPLATES / "styles.css").read_text(encoding="utf-8") -BAZEL_ICON = ( - 'Bazel' -) +BAZEL_ICON = _bazel_svg('class="icon-bazel"') GITHUB_ICON = ( diff --git a/src/generate_repo_overview/_icons.py b/src/generate_repo_overview/_icons.py new file mode 100644 index 0000000..6ea4fb5 --- /dev/null +++ b/src/generate_repo_overview/_icons.py @@ -0,0 +1,19 @@ +from __future__ import annotations + +import re +from pathlib import Path + +_TEMPLATES = Path(__file__).parent / "templates" + +# Inner content of the official Bazel SVG (paths only, no outer tag). +# Source: https://blog.bazel.build/images/bazel-icon.svg (bazelbuild/bazel-blog) +_BAZEL_SVG_INNER = re.sub( + r"]*>|", + "", + (_TEMPLATES / "bazel-icon.svg").read_text(encoding="utf-8"), +).strip() + + +def _bazel_svg(extra_attrs: str) -> str: + """Return the official Bazel SVG icon with caller-supplied attributes.""" + return f'{_BAZEL_SVG_INNER}' diff --git a/src/generate_repo_overview/metrics_report.py b/src/generate_repo_overview/metrics_report.py index a7f798f..4312f12 100644 --- a/src/generate_repo_overview/metrics_report.py +++ b/src/generate_repo_overview/metrics_report.py @@ -3,6 +3,7 @@ import re from typing import TYPE_CHECKING +from ._icons import _bazel_svg from ._text_utils import escape_markdown_table_cell if TYPE_CHECKING: @@ -12,7 +13,6 @@ HANDLE_PATTERN = re.compile(r"@[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)?") -BAZEL_ICON_URL = "https://bazel.build/_pwa/bazel/icons/icon-72x72.png" def render_metrics_report(snapshot: RepoSnapshot) -> str: @@ -306,7 +306,7 @@ def render_bazel_version_column_header() -> str: def render_bazel_icon() -> str: - return f'Bazel' + return _bazel_svg('width="16" height="16"') def render_presence(value: bool, *, icon: str) -> str: diff --git a/src/generate_repo_overview/templates/bazel-icon.svg b/src/generate_repo_overview/templates/bazel-icon.svg new file mode 100644 index 0000000..e114f8b --- /dev/null +++ b/src/generate_repo_overview/templates/bazel-icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tests/test_repo_overview.py b/tests/test_repo_overview.py index 1b6aa3d..54a4ce6 100644 --- a/tests/test_repo_overview.py +++ b/tests/test_repo_overview.py @@ -1235,9 +1235,12 @@ def test_metrics_report_renders_summary_and_table() -> None: assert "## Ownership With Versions" not in markdown assert "## Delivery And Automation" in markdown assert "### Infrastructure" in markdown + from generate_repo_overview.metrics_report import render_bazel_icon + assert ( "| [tools](https://github.com/eclipse-score/tools) " - 'Bazel | ' + + render_bazel_icon() + + " | " "Codeowners: @docs-team, @platform-team, @infra-team, @qa-team

" "Maintainers In Bazel Registry: @4og, @nradakovic, @pawelrutkaq
| " "🔥 11 | 2 / 1+1 | v1.2.3 + 🟡 7 | 3 / 4 |" in markdown