fix: remove duplicate projects from dashboard
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:
@@ -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()]
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
Reference in New Issue
Block a user