📝 Provide a description of the new feature
Self-hosted Gitea/Forgejo is often on a non-443 port (git.example.com:3000, Docker default). Gitify cannot target that listener.
Hostname validation is DNS-only. host:port fails with Hostname format is invalid:
// src/renderer/utils/auth/utils.ts
export function isValidHostname(hostname: Hostname) {
return /^([A-Z0-9]([A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}$/i.test(hostname);
}
The Gitea client then always builds a URL without a port:
// src/renderer/utils/forges/gitea/client.ts
export function getGiteaApiBaseUrl(hostname: Hostname): URL {
if (!isValidHostname(hostname)) {
throw new Error('Refusing to build a Gitea API URL for invalid hostname.');
}
return new URL(`https://${hostname}/api/v1/`);
}
FAQ already says self-hosted Gitea is supported and that the hostname should match the instance URL. In practice only host.tld on HTTPS/443 works.
Please allow an optional port on the existing hostname field, still HTTPS:
gitea.example.com → https://gitea.example.com/api/v1/
gitea.example.com:3000 → https://gitea.example.com:3000/api/v1/
giteaGetJson should compare parsed.host (name + port) against that origin. Other forges unchanged.
Relevant Forge(s)
Gitea / Forgejo / Codeberg
➕ Additional Information
happy to send a PR
📝 Provide a description of the new feature
Self-hosted Gitea/Forgejo is often on a non-443 port (
git.example.com:3000, Docker default). Gitify cannot target that listener.Hostname validation is DNS-only.
host:portfails withHostname format is invalid:The Gitea client then always builds a URL without a port:
FAQ already says self-hosted Gitea is supported and that the hostname should match the instance URL. In practice only
host.tldon HTTPS/443 works.Please allow an optional port on the existing hostname field, still HTTPS:
gitea.example.com→https://gitea.example.com/api/v1/gitea.example.com:3000→https://gitea.example.com:3000/api/v1/giteaGetJsonshould compareparsed.host(name + port) against that origin. Other forges unchanged.Relevant Forge(s)
Gitea / Forgejo / Codeberg
➕ Additional Information
happy to send a PR