Forgejo・Gitea:ジョブのログの期限切れ
Forgejo・Gitea のサーバーにもう無いジョブのログは、遅れているのではありません。残す期間が過ぎて、サーバーが消しました。このときジョブのログの API は 404 を返し、Forgejo は {"message":"logs have expired"}、Gitea は {"message":"logs have been cleaned up"} と言います。残す期間はサーバーの設定の [actions] の LOG_RETENTION_DAYS で、既定は365日、ジョブが止まった時から数えます。期間を過ぎたログは毎晩0時の掃除の仕事がファイルごと消すので、あとで設定を延ばしても、残っているログが長く残るだけで、消えたログは戻りません。
サーバーの答え
Gitea は、最新の版 28.2.0(2026年10月18日)で確かめました(routers/common/actions.go)。
GET /api/v1/repos/{owner}/{repo}/actions/jobs/{job_id}/logsの 404logs have been cleaned up:ログは消されました。- 404
job not started:ジョブはまだ動いていません。動けばログができます。 - 404
unable to open task logs: ...:サーバーの記録にはログのファイルがあるのに、保存先にはもうありません。 GET .../actions/runs/{run}/logs(最新の回の zip)は、ログの消えたジョブを入れず、1つも残っていなければ 404logs not foundを返します。
Forgejo はソースから(services/actions/job_logs.go・routers/api/v1/repo/action.go)。
GET /api/v1/repos/{owner}/{repo}/actions/jobs/{job_id}/logsの 404logs have expired:ログは消されました。- 404
job has not been executed yet:ジョブはまだ動いていません。 - 404
step index out of range:頼んだstepが、ジョブの最後のステップより後です。 GET .../actions/runs/{run_id}/logs(zip)は、消えたログの代わりに{job}-{id}-attempt-{n}.MISSINGという名前のファイルを入れ、中にlogs have been cleaned upと書きます。
ログと実行が残る日数
- Gitea:
LOG_RETENTION_DAYS、既定は365。0 ならずっと残します(docs.gitea.com:Configuration Cheat Sheet・services/actions/cleanup.go)。Gitea は、終わった実行もその下のものごとRUN_RETENTION_DAYS(既定は400・0 なら消さない)で消します。そのあとは実行そのものが 404 を返します。成果物はARTIFACT_RETENTION_DAYS(既定は90)で消えます。 - Forgejo:
LOG_RETENTION_DAYS、既定は365(forgejo.org:Configuration Cheat Sheet)。0 以下は365として読むので(modules/setting/actions.go)、ログをずっと残す設定はありません。 - どちらも:日数はジョブが止まった時から数え、動いているジョブのログは消しません(models/actions/task.go の
FindOldTasksToExpire)。消すのは cron の仕事cleanup_actionsで、既定は毎晩0時です(services/cron/tasks_actions.go)。
期間より長く残したいログは、サーバーにあるうちにダウンロードしておきます。上の実行のログの zip か、ジョブ1つのログです。
IntelliJ IDEA で Forgejo・Gitea の Actions を見るなら
Pipeline Inbox for Forgejo and Gitea は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。ジョブごとのログを IDE のタブに出します。版 1.0.0 は、サーバーがログを消した終わったジョブにこのジョブにはログがありませんと出していました。1.0.1 からは、サーバーがログを消したことを、LOG_RETENTION_DAYS の名前と一緒に出します。実行・ジョブ・ログは無料、やり直し・取り消し・ワークフローの開始は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
Forgejo・Gitea・Codeberg はそれぞれの持ち主の名前、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Forgejo プロジェクト・Codeberg e.V.・Gitea プロジェクト・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:「No matching online runner with label」 · ワークフローを手で始められない · Gitea の Actions の API の「token is required」 · IntelliJ IDEA・PyCharm で Forgejo・Gitea の Actions を見る方法の比較 · English