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
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: 2

updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: monday
time: "06:00"
timezone: UTC
open-pull-requests-limit: 3
groups:
workflow-dependencies:
patterns: ["*"]
commit-message:
prefix: "chore(actions)"
7 changes: 6 additions & 1 deletion .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- name: Check out canonical core assets
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
repository: graphabi/graphabi
path: .graphabi-core
- run: python3 scripts/check_text.py
- run: python3 scripts/check_profile.py
- run: python3 scripts/check_profile.py .graphabi-core
20 changes: 19 additions & 1 deletion scripts/check_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,24 @@

from __future__ import annotations

import argparse
from pathlib import Path
from xml.etree import ElementTree

ROOT = Path(__file__).parents[1]
ASSETS = ("demo.gif", "logo-dark.svg", "logo-light.svg")


def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument(
"core",
nargs="?",
type=Path,
default=ROOT.parent / "graphabi",
help="path to a GraphABI core checkout",
)
core = parser.parse_args().core.resolve()
readme = (ROOT / "profile/README.md").read_text(encoding="utf-8")
required = (
"Explicit contracts",
Expand All @@ -26,12 +37,19 @@ def main() -> int:
gif = (ROOT / "profile/assets/demo.gif").read_bytes()
if not gif.startswith((b"GIF87a", b"GIF89a")):
missing.append("valid demo.gif")
for name in ASSETS:
profile_asset = ROOT / "profile/assets" / name
core_asset = core / "docs/assets/brand" / name
if not core_asset.is_file():
missing.append(f"canonical core asset {core_asset}")
elif profile_asset.read_bytes() != core_asset.read_bytes():
missing.append(f"profile/assets/{name} synchronized with the core asset")
if missing:
print("Organization profile verification failed:")
for item in missing:
print(f"- missing {item}")
return 1
print("Organization profile links, principles, command, and assets are present.")
print("Organization profile links, principles, command, and canonical assets are present.")
return 0


Expand Down