stability

This commit is contained in:
Untone 2025-02-19 00:42:05 +03:00
parent c6e0e0349c
commit b6d0503e7b
2 changed files with 28 additions and 22 deletions

View File

@ -6,29 +6,32 @@ const { formatMessage } = require('./formatters')
* @returns {Object} - Normalized webhook data * @returns {Object} - Normalized webhook data
*/ */
const normalizeGiteaPayload = (payload) => { const normalizeGiteaPayload = (payload) => {
// Early return if no commits // Validate required fields
if (!Array.isArray(payload.commits)) { if (!payload?.repository?.full_name || !payload?.ref) {
return { return {
repository: { repository: {
full_name: payload.repository.full_name, full_name: payload?.repository?.full_name || 'unknown',
html_url: payload.repository.html_url || payload.repository.url, html_url: payload?.repository?.html_url || payload?.repository?.url || '#',
id: payload.repository.id id: payload?.repository?.id || 0
}, },
ref: payload.ref, ref: payload?.ref || 'unknown',
commits: [] commits: []
} }
} }
// Handle missing or invalid commits array
const commits = Array.isArray(payload.commits) ? payload.commits : []
return { return {
repository: { repository: {
full_name: payload.repository.full_name, full_name: payload.repository.full_name,
html_url: payload.repository.html_url || payload.repository.url, html_url: payload.repository.html_url || payload.repository.url,
id: payload.repository.id id: payload.repository.id || 0
}, },
ref: payload.ref, ref: payload.ref,
commits: payload.commits.map(commit => ({ commits: commits.map(commit => ({
id: commit.id, id: commit.id || `${Date.now()}-${Math.random()}`,
message: commit.message, message: commit.message || 'No message',
stats: { stats: {
additions: commit.added?.length || 0, additions: commit.added?.length || 0,
deletions: commit.removed?.length || 0 deletions: commit.removed?.length || 0

View File

@ -6,32 +6,35 @@ const { formatMessage } = require('./formatters')
* @returns {Object} - Normalized webhook data * @returns {Object} - Normalized webhook data
*/ */
const normalizeGithubPayload = (payload) => { const normalizeGithubPayload = (payload) => {
// Early return if no commits // Validate required fields
if (!Array.isArray(payload.commits)) { if (!payload?.repository?.full_name || !payload?.repository?.html_url || !payload?.ref) {
return { return {
repository: { repository: {
full_name: payload.repository.full_name, full_name: payload?.repository?.full_name || 'unknown',
html_url: payload.repository.html_url, html_url: payload?.repository?.html_url || '#',
id: payload.repository.id id: payload?.repository?.id || 0
}, },
ref: payload.ref, ref: payload?.ref || 'unknown',
commits: [] commits: []
} }
} }
// Handle missing or invalid commits array
const commits = Array.isArray(payload.commits) ? payload.commits : []
return { return {
repository: { repository: {
full_name: payload.repository.full_name, full_name: payload.repository.full_name,
html_url: payload.repository.html_url, html_url: payload.repository.html_url,
id: payload.repository.id id: payload.repository.id || 0
}, },
ref: payload.ref, ref: payload.ref,
commits: payload.commits.map(commit => ({ commits: commits.map(commit => ({
id: commit.id, id: commit.id || `${Date.now()}-${Math.random()}`,
message: commit.message, message: commit.message || 'No message',
stats: { stats: {
additions: commit.stats?.additions || 0, additions: Number(commit.stats?.additions) || 0,
deletions: commit.stats?.deletions || 0 deletions: Number(commit.stats?.deletions) || 0
} }
})) }))
} }