Webhook: System-Commits legen kein Auto-Ticket an
Beim Anlegen mit Kunde (ohne Ticket) loeste der Commit der .webklar-preview.json durch webklar-system ein zusaetzliches Ticket "Website <name>" aus. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d878df96e0
commit
017a9c22f2
2 files changed
+13
-2
No files matched your search
@@ -10,7 +10,7 @@ import {
|
|||||||
buildPreviewUrl,
|
buildPreviewUrl,
|
||||||
} from '../../services/previewDeploy.js'
|
} from '../../services/previewDeploy.js'
|
||||||
import { ensureRepoPreviewConfig } from '../../services/giteaAdmin.js'
|
import { ensureRepoPreviewConfig } from '../../services/giteaAdmin.js'
|
||||||
import { createGitPushWorksheet } from '../../services/gitWorksheet.js'
|
import { createGitPushWorksheet, isSystemPusher } from '../../services/gitWorksheet.js'
|
||||||
import { sendPushTimeMail } from '../../services/pushTimeMail.js'
|
import { sendPushTimeMail } from '../../services/pushTimeMail.js'
|
||||||
import { ensureProjectTicket } from '../../services/ticketAdmin.js'
|
import { ensureProjectTicket } from '../../services/ticketAdmin.js'
|
||||||
import { invalidateProjectCache } from '../../services/projectInsights.js'
|
import { invalidateProjectCache } from '../../services/projectInsights.js'
|
||||||
@@ -177,7 +177,10 @@ router.post('/gitea', async (req, res) => {
|
|||||||
// (derselben wie assignProject/reconcileProject), damit ein gleichzeitiges Zuweisen nicht
|
// (derselben wie assignProject/reconcileProject), damit ein gleichzeitiges Zuweisen nicht
|
||||||
// dieselbe ticketId-Aufloesung doppelt anstoesst.
|
// dieselbe ticketId-Aufloesung doppelt anstoesst.
|
||||||
let gitWorksheet = null
|
let gitWorksheet = null
|
||||||
if (commitSha && commitSha !== '0000000000000000000000000000000000000000') {
|
// System-Commits (z. B. .webklar-preview.json beim Anlegen aus dem Ticketsystem) bekommen weder
|
||||||
|
// Arbeitsblatt noch Auto-Ticket - sonst entstand beim Anlegen mit Kunde ein zusaetzliches
|
||||||
|
// Ticket "Website <name>" neben dem, das im Zuordnen-Assistenten gewaehlt wird.
|
||||||
|
if (commitSha && commitSha !== '0000000000000000000000000000000000000000' && !isSystemPusher(pusher)) {
|
||||||
gitWorksheet = await withLocks(
|
gitWorksheet = await withLocks(
|
||||||
['project:' + project.$id],
|
['project:' + project.$id],
|
||||||
async () => {
|
async () => {
|
||||||
|
|||||||
@@ -223,6 +223,14 @@ test('Webhook des System-Kontos', async () => {
|
|||||||
await webhook(pushPayload({ full_name: 'WEBklar/D-ner-Nation', sha: 'cafe0001', pusher: 'webklar-system' }))
|
await webhook(pushPayload({ full_name: 'WEBklar/D-ner-Nation', sha: 'cafe0001', pusher: 'webklar-system' }))
|
||||||
assert.equal(aw.all('worksheets').length, before)
|
assert.equal(aw.all('worksheets').length, before)
|
||||||
})
|
})
|
||||||
|
test('System-Commit an Projekt mit Kunde ohne Ticket legt kein Auto-Ticket an', async () => {
|
||||||
|
gitea.addRepo({ full_name: 'WEBklar/neu-mit-kunde' })
|
||||||
|
aw.insert('websiteProjects', { $id: 'p_sys', repoFullName: 'WEBklar/neu-mit-kunde', projectName: 'Neu', customerId: 'c1', ticketId: '' })
|
||||||
|
const before = aw.all('workorders').length
|
||||||
|
await webhook(pushPayload({ full_name: 'WEBklar/neu-mit-kunde', sha: 'cafe0002', pusher: 'webklar-system' }))
|
||||||
|
assert.equal(aw.all('workorders').length, before)
|
||||||
|
assert.equal(aw.get('websiteProjects', 'p_sys').ticketId, '')
|
||||||
|
})
|
||||||
test('Webhook wartet auf laufenden Umzug', async () => {
|
test('Webhook wartet auf laufenden Umzug', async () => {
|
||||||
gitea.setTransferDelay(300)
|
gitea.setTransferDelay(300)
|
||||||
const move = post('/api/admin/website-projects/p5/assign', { customerId: 'c1', ticketId: 't1' }, 'jwt-admin') // p5: JUSN/langsam
|
const move = post('/api/admin/website-projects/p5/assign', { customerId: 'c1', ticketId: 't1' }, 'jwt-admin') // p5: JUSN/langsam
|
||||||
|
|||||||
Reference in new issue
Block a user