diff --git a/server/services/repoAssignJob.js b/server/services/repoAssignJob.js index 95e5c6b..e513542 100644 --- a/server/services/repoAssignJob.js +++ b/server/services/repoAssignJob.js @@ -150,6 +150,9 @@ export async function runRepoAssignJob({ const docs = await listDocuments(collection(), [Query.limit(5000)]) for (const p of docs) { if (!p.createdByGitea || p.kind || p.archived || handled.has(p.$id)) continue + // Vom System-Konto angelegt (WOMS "Neues Projekt"): kein Mitarbeiter, den man erinnern + // koennte - sonst alle 10 Minuten Gitea-Abfrage und Log "keinem Mitarbeiter zugeordnet". + if (String(p.createdByGitea).toLowerCase() === String(config.gitea.systemUser || '').toLowerCase()) continue // Wiederholung/Nachholen: erste Mail noch nicht raus (0-2 Versuche), Repo noch juenger als 24 h. const attempts = Number(p.assignMailAttempts || 0) if (!p.assignMailSentAt && attempts < 3) { diff --git a/test/repoAssignDetect.test.js b/test/repoAssignDetect.test.js index e930ba5..2f4d692 100644 --- a/test/repoAssignDetect.test.js +++ b/test/repoAssignDetect.test.js @@ -126,6 +126,17 @@ test('Job: Mail ohne vorherigen Versuch wird nachgeholt (createdByGitea, 0 Versu assert.equal(sink.sent.length, 1) }) +test('Job: vom System-Konto angelegtes Projekt ohne Art wird nicht abgefragt und nicht gemailt', async () => { + freshSink() + gitea.addRepo({ full_name: 'WEBklar/aus-womS', created_at: ago(1) }) + aw.insert('websiteProjects', { repoFullName: 'WEBklar/aus-womS', projectName: 'aus WOMS', createdByGitea: 'webklar-system', assignMailAttempts: 0 }) + const before = gitea.calls.filter((c) => c.path === '/api/v1/repos/WEBklar/aus-womS').length + const c = await runRepoAssignJob({ now: NOW }) + assert.equal(c.retries, 0) + assert.equal(sink.sent.length, 0) + assert.equal(gitea.calls.filter((x) => x.path === '/api/v1/repos/WEBklar/aus-womS').length, before) +}) + test('Job: neues Nutzer-Repo → Mail, Org-Repo → keine Mail', async () => { freshSink() gitea.addRepo({ full_name: 'knso/jobneu', created_at: ago(1) })