fix: remove duplicate projects from dashboard
CI / test (push) Failing after 4s
CI / lint (push) Failing after 4s

Gitea's /api/v1/user/repos already includes all org repos the user
has access to. Fetching org repos separately added duplicates.
Removed the redundant org-repo loop from dashboard and /api/projects.
Also fixed template to use repo.owner.login instead of _org hack.
This commit is contained in:
2026-07-08 09:30:33 -04:00
parent 2b83c658f6
commit 69803c4c4a
3 changed files with 2 additions and 22 deletions
-9
View File
@@ -82,15 +82,6 @@ async def projects(search: str = Query(default=""), show_archived: bool = Query(
"""List Gitea projects (JSON)."""
try:
repos = await gitea.get_user_repos(page=1, limit=50)
orgs = await gitea.get_user_orgs()
for org in orgs:
try:
org_repos = await gitea.get_org_repos(org["username"])
for r in org_repos:
r["_org"] = org["username"]
repos.extend(org_repos)
except Exception:
pass
if search:
q = search.lower()
repos = [r for r in repos if q in r.get("full_name", "").lower() or q in (r.get("description") or "").lower()]
+1 -12
View File
@@ -20,20 +20,9 @@ async def dashboard(
):
"""Dashboard: liste tous les projets Gitea (user + orgs)."""
try:
# User repos
# User repos already includes all accessible org repos in Gitea
repos = await gitea.get_user_repos(page=1, limit=50)
# Org repos
orgs = await gitea.get_user_orgs()
for org in orgs:
try:
org_repos = await gitea.get_org_repos(org["username"])
for r in org_repos:
r["_org"] = org["username"]
repos.extend(org_repos)
except Exception:
logger.debug("Skip org %s", org.get("username"))
# Filter
if search:
q = search.lower()
+1 -1
View File
@@ -36,7 +36,7 @@
{% for repo in repos %}
<a href="/board/{{ repo.owner.login }}/{{ repo.name }}" class="project-card">
<div class="project-card-header">
<span class="project-org">{{ repo._org or repo.owner.login }}</span>
<span class="project-org">{{ repo.owner.login }}</span>
<span class="project-name">{{ repo.name }}</span>
{% if repo.archived %}<span class="badge archived">archivé</span>{% endif %}
{% if repo.private %}<span class="badge private">privé</span>{% endif %}