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,
|
||||
} from '../../services/previewDeploy.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 { ensureProjectTicket } from '../../services/ticketAdmin.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
|
||||
// dieselbe ticketId-Aufloesung doppelt anstoesst.
|
||||
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(
|
||||
['project:' + project.$id],
|
||||
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' }))
|
||||
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 () => {
|
||||
gitea.setTransferDelay(300)
|
||||
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