如何在Gitea中查找配置推送镜像的仓库及查看同步失败记录?
查找配置了GitHub推送镜像的仓库
方法1:直接查询PostgreSQL数据库
Gitea的镜像配置存在mirror表,推送类型的镜像direction字段值为push,且目标地址包含github.com。执行以下SQL语句即可批量获取相关仓库信息:
SELECT repo.name AS repo_name, owner.name AS owner_name, mirror.remote_address AS github_mirror_url FROM mirror JOIN repository repo ON mirror.repo_id = repo.id JOIN "user" owner ON repo.owner_id = owner.id WHERE mirror.direction = 'push' AND mirror.remote_address LIKE '%github.com%';
查询结果会列出仓库名、所有者(用户/组织)以及对应的GitHub镜像地址,不用逐个仓库手动检查。
方法2:使用Gitea命令行工具
如果服务器上能直接运行Gitea的二进制文件,用内置命令导出所有镜像仓库,再筛选目标为GitHub的推送镜像:
gitea admin repo list --all --mirror | grep -E "push.*github.com"
这个命令会输出符合条件的仓库信息,适合快速排查。
查看推送镜像同步失败的记录
方法1:查询数据库任务日志
Gitea的镜像推送任务记录存在task表,失败任务的status字段为failed,任务类型是mirror-push。执行以下SQL获取失败详情:
SELECT repo.name AS repo_name, owner.name AS owner_name, task.start_time AS failed_time, task.error AS error_message FROM task JOIN repository repo ON task.repo_id = repo.id JOIN "user" owner ON repo.owner_id = owner.id WHERE task.type = 'mirror-push' AND task.status = 'failed' ORDER BY task.start_time DESC;
结果会按时间倒序展示失败的仓库、所有者、失败时间和具体错误信息,能直接定位到哪个仓库的推送出了问题。
方法2:查看Gitea服务器日志
Gitea的运行日志里会记录镜像推送的失败细节,默认日志路径通常是/var/log/gitea/gitea.log(如果是容器部署,可能在/data/gitea/log/gitea.log,具体看你的安装配置)。用以下命令过滤失败记录:
grep -E "mirror.*push.*failed" /var/log/gitea/gitea.log | tail -20
这个命令会输出最近20条推送失败的日志,里面包含仓库标识、错误原因(比如令牌过期、权限不足等),方便快速排查问题。
内容的提问来源于stack exchange,提问作者James Skemp
相关产品推荐
相关产品推荐

