I set this up last week and it successfully brought in all of my Github repos. For 3 days, and on each manual sync, Gitea Mirror reports it successfully synced but there are errors in Forgejo logs
2026/01/26 20:28:45 ...irror/mirror_pull.go:338:runSync() [E] SyncMirrors [repo: <Repository 20:tylerobara/example>]: failed to update mirror repository:
Stderr: fatal: could not read Password for 'https://sanitized-credential@github.com': terminal prompts disabled Err: exit status 128 2026/01/26 20:28:46 ...c/net/http/server.go:2322:ServeHTTP() [I] PING DATABASE postgresschema 2026/01/26 20:28:46 .
Note the log line https://sanitized-credential@github.com was not sanitized by me. Exactly how it appears. If I Test credentials for Github and Forgejo, both report successful.
Originally created by @tylerobara on GitHub (Jan 26, 2026).
Original GitHub issue: https://github.com/RayLabsHQ/gitea-mirror/issues/171
I set this up last week and it successfully brought in all of my Github repos. For 3 days, and on each manual sync, Gitea Mirror reports it successfully synced but there are errors in Forgejo logs
```
2026/01/26 20:28:45 ...irror/mirror_pull.go:338:runSync() [E] SyncMirrors [repo: <Repository 20:tylerobara/example>]: failed to update mirror repository:
Stderr: fatal: could not read Password for 'https://sanitized-credential@github.com': terminal prompts disabled Err: exit status 128 2026/01/26 20:28:46 ...c/net/http/server.go:2322:ServeHTTP() [I] PING DATABASE postgresschema 2026/01/26 20:28:46 .
```
Note the log line `https://sanitized-credential@github.com` was not sanitized by me. Exactly how it appears. If I Test credentials for Github and Forgejo, both report successful.
@tylerobara need to take a look at this. can you clean up your docker compse and post of you have any unique setup?
<!-- gh-comment-id:3803461815 -->
@arunavo4 commented on GitHub (Jan 27, 2026):
@tylerobara need to take a look at this. can you clean up your docker compse and post of you have any unique setup?
Update: I put a fake Github token and hit test, then put my valid token back in and hit test again. It says connected successsfully but I get the same error on sync in the Forgejo logs. But.... if I update the password field in a repo > settings > mirror settings > authorization > password with the same token, the mirror syncs no problem.
<!-- gh-comment-id:3820052206 -->
@tylerobara commented on GitHub (Jan 29, 2026):
Update: I put a fake Github token and hit test, then put my valid token back in and hit test again. It says connected successsfully but I get the same error on sync in the Forgejo logs. But.... if I update the password field in a repo > settings > mirror settings > authorization > password with the same token, the mirror syncs no problem.
we now show "Sync requested" instead of implying the sync fully succeeded
added README troubleshooting for token rotation on existing mirror repos
For repos already affected right now, the immediate fix is still:
update token in Forgejo repo Settings -> Mirror Settings, or
delete and re-mirror from Gitea Mirror so it is recreated with current credentials.
<!-- gh-comment-id:3948932057 -->
@arunavo4 commented on GitHub (Feb 24, 2026):
Good catch, and thanks for the detailed report.
I dug into this and the behavior lines up with how Gitea/Forgejo handles pull mirrors:
1) The mirror-sync API call only queues a sync request and returns 200.
2) The actual pull happens later in Forgejo/Gitea, so it can still fail in server logs after that.
3) For existing mirrors, changing the GitHub token in Gitea Mirror does not always update the saved mirror credentials on the Forgejo side.
I opened #181 to improve this from our side:
- we now show "Sync requested" instead of implying the sync fully succeeded
- added README troubleshooting for token rotation on existing mirror repos
For repos already affected right now, the immediate fix is still:
- update token in Forgejo repo Settings -> Mirror Settings, or
- delete and re-mirror from Gitea Mirror so it is recreated with current credentials.
Resolved by #181: sync status wording is now accurate for async mirror pulls, and README now documents token-rotation behavior/workarounds for existing mirrors.
<!-- gh-comment-id:3948964397 -->
@arunavo4 commented on GitHub (Feb 24, 2026):
Resolved by #181: sync status wording is now accurate for async mirror pulls, and README now documents token-rotation behavior/workarounds for existing mirrors.
I also found these "terminal prompts disabled" notices in my Forgejo instance. I tried re-creating the repos, but the notices always came back. After some searching, I found that this is actually an issue with Forgejo: https://codeberg.org/forgejo/forgejo/issues/9629.
<!-- gh-comment-id:3981590014 -->
@pedorich-n commented on GitHub (Mar 2, 2026):
I also found these "terminal prompts disabled" notices in my Forgejo instance. I tried re-creating the repos, but the notices always came back. After some searching, I found that this is actually an issue with Forgejo: https://codeberg.org/forgejo/forgejo/issues/9629.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @tylerobara on GitHub (Jan 26, 2026).
Original GitHub issue: https://github.com/RayLabsHQ/gitea-mirror/issues/171
I set this up last week and it successfully brought in all of my Github repos. For 3 days, and on each manual sync, Gitea Mirror reports it successfully synced but there are errors in Forgejo logs
Note the log line
https://sanitized-credential@github.comwas not sanitized by me. Exactly how it appears. If I Test credentials for Github and Forgejo, both report successful.@arunavo4 commented on GitHub (Jan 27, 2026):
@tylerobara need to take a look at this. can you clean up your docker compse and post of you have any unique setup?
@tylerobara commented on GitHub (Jan 27, 2026):
I am deploying with this helm chart and these values:
@tylerobara commented on GitHub (Jan 29, 2026):
Update: I put a fake Github token and hit test, then put my valid token back in and hit test again. It says connected successsfully but I get the same error on sync in the Forgejo logs. But.... if I update the password field in a repo > settings > mirror settings > authorization > password with the same token, the mirror syncs no problem.
@arunavo4 commented on GitHub (Feb 24, 2026):
Good catch, and thanks for the detailed report.
I dug into this and the behavior lines up with how Gitea/Forgejo handles pull mirrors:
I opened #181 to improve this from our side:
For repos already affected right now, the immediate fix is still:
@arunavo4 commented on GitHub (Feb 24, 2026):
Resolved by #181: sync status wording is now accurate for async mirror pulls, and README now documents token-rotation behavior/workarounds for existing mirrors.
@pedorich-n commented on GitHub (Mar 2, 2026):
I also found these "terminal prompts disabled" notices in my Forgejo instance. I tried re-creating the repos, but the notices always came back. After some searching, I found that this is actually an issue with Forgejo: https://codeberg.org/forgejo/forgejo/issues/9629.