Skip to content

Commit e7a5890

Browse files
author
CometAPI
committed
fix: use an HTTPS support project URL
1 parent a95ce85 commit e7a5890

9 files changed

Lines changed: 33 additions & 4 deletions

File tree

AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ committed.
234234
- Manual or arbitrary-branch publication is forbidden.
235235
- A successful build or upload is not a release. Registry installation,
236236
import, mocked-call smoke, and provenance must be verified separately.
237+
- Every distribution `Project-URL` must use HTTPS. The canonical Support URL
238+
is `https://github.com/cometapi-dev/cometapi-python/blob/main/SUPPORT.md`;
239+
`support@cometapi.com` remains the support and conduct contact.
237240
- Keep third-party Actions pinned to full commit SHAs and grant
238241
`id-token: write` only to the publishing job.
239242
- Keep README, roadmap, compatibility matrix, examples, and changelog aligned

ARCHITECTURE.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ separate `resources/` and `types/` packages. Provider-native adapters belong to
7676
a later milestone and use the official provider SDKs as optional dependencies.
7777
Empty placeholders are not part of 0.1.
7878

79+
Distribution `Project-URL` metadata uses HTTPS for every entry so registries
80+
can validate and render it consistently. The Support entry links to the public
81+
`SUPPORT.md` document; `support@cometapi.com` remains the support and conduct
82+
contact published inside that document.
83+
7984
## Dependency policy
8085

8186
The installable OpenAI range is `openai>=2.45.0,<3.0.0`. End users resolve

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ No user-visible changes are currently recorded beyond the initial alpha scope.
3737
language, and standalone content.
3838
- Scheduled live smoke requires the explicit repository opt-in, and release
3939
live smoke defaults an unset or empty model setting to `gpt-5.4`.
40+
- Distribution metadata now exposes Support as an HTTPS link to `SUPPORT.md`;
41+
release checks reject non-HTTPS canonical project URLs.
4042

4143
### Removed
4244

RELEASING.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ exact artifact must be installed independently outside the source tree; the
9494
check must assert installed metadata, public exports, absence of legacy aliases,
9595
and an offline mocked call.
9696

97+
Every canonical `[project.urls]` value must use HTTPS. In particular, Support
98+
must resolve to
99+
`https://github.com/cometapi-dev/cometapi-python/blob/main/SUPPORT.md`; the
100+
email address in that document remains the canonical support contact.
101+
97102
Record every command, outcome, skipped check, and unavailable tool in the
98103
verification record.
99104

ROADMAP.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ Deliverables:
4141
- Standalone documentation, MIT licensing, contribution and conduct guidance,
4242
security and support policies, architecture, release guide, changelog,
4343
compatibility matrix, and issue and pull-request templates.
44-
- Normalized package metadata, a reproducible development lock, Ruff, Pyright,
45-
pytest, metadata, artifact, clean-install, secret, and version checks.
44+
- Normalized package metadata with HTTPS-only project URLs and a public support
45+
document link, a reproducible development lock, Ruff, Pyright, pytest,
46+
metadata, artifact, clean-install, secret, and version checks.
4647
- Offline CI, trusted live-smoke definition, release-PR automation, OIDC
4748
publishing definition, and dependency update automation.
4849
- A repository-independence gate that copies the candidate into an empty

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Homepage = "https://www.cometapi.com"
2727
Documentation = "https://apidoc.cometapi.com/"
2828
Repository = "https://github.com/cometapi-dev/cometapi-python"
2929
Issues = "https://github.com/cometapi-dev/cometapi-python/issues"
30-
Support = "mailto:support@cometapi.com"
30+
Support = "https://github.com/cometapi-dev/cometapi-python/blob/main/SUPPORT.md"
3131
Security = "https://github.com/cometapi-dev/cometapi-python/security/advisories/new"
3232

3333
[dependency-groups]

scripts/_checks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"Documentation": "https://apidoc.cometapi.com/",
2929
"Repository": CANONICAL_REPOSITORY,
3030
"Issues": f"{CANONICAL_REPOSITORY}/issues",
31-
"Support": f"mailto:{CANONICAL_SUPPORT}",
31+
"Support": f"{CANONICAL_REPOSITORY}/blob/main/SUPPORT.md",
3232
"Security": CANONICAL_SECURITY,
3333
}
3434

scripts/check_version.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ def _check_project_identity(violations: list[str]) -> None:
132132
urls = project.get("urls")
133133
url_values = cast(dict[str, object], urls) if isinstance(urls, dict) else {}
134134
for label, expected in CANONICAL_PROJECT_URLS.items():
135+
parsed = urlsplit(expected)
136+
if parsed.scheme != "https" or not parsed.netloc:
137+
violations.append(f"canonical Project-URL {label} must use HTTPS: {expected!r}")
135138
actual = url_values.get(label)
136139
if actual != expected:
137140
violations.append(f"pyproject.toml: [project.urls].{label} must equal {expected!r}")

tests/test_release_documents.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@ def test_public_preview_documents_accept_durable_public_content(
121121
require_public_preview_docs()
122122

123123

124+
def test_public_preview_documents_reject_non_https_canonical_project_url(
125+
releasable_documents: Path,
126+
monkeypatch: pytest.MonkeyPatch,
127+
) -> None:
128+
monkeypatch.setitem(CANONICAL_PROJECT_URLS, "Support", f"mailto:{CANONICAL_SUPPORT}")
129+
130+
with pytest.raises(CheckError, match="canonical Project-URL Support must use HTTPS"):
131+
require_public_preview_docs()
132+
133+
124134
def test_public_preview_documents_reject_codeowners(releasable_documents: Path) -> None:
125135
codeowners = releasable_documents / ".github/CODEOWNERS"
126136
codeowners.parent.mkdir(parents=True, exist_ok=True)

0 commit comments

Comments
 (0)