Attempt to make this work

This commit is contained in:
Mark Wylde
2025-05-30 21:49:42 +01:00
parent c0d1a3fc4c
commit e079f18247
2 changed files with 24 additions and 4 deletions

View File

@@ -48,12 +48,28 @@ export class GiteaApiClient {
try {
const response = await fetch(url, options);
const responseData: any = await response.json();
let responseData: any = null;
const contentType = response.headers.get("content-type");
// Only try to parse JSON if the response has JSON content type
if (contentType && contentType.includes("application/json")) {
try {
responseData = await response.json();
} catch (parseError) {
console.warn(`Failed to parse JSON response: ${parseError}`);
responseData = await response.text();
}
} else {
responseData = await response.text();
}
if (!response.ok) {
const error = new Error(
`HTTP ${response.status}: ${responseData.message || response.statusText}`
) as GiteaApiError;
const errorMessage = typeof responseData === 'object' && responseData.message
? responseData.message
: responseData || response.statusText;
const error = new Error(`HTTP ${response.status}: ${errorMessage}`) as GiteaApiError;
error.status = response.status;
error.response = {
data: responseData,

View File

@@ -25,13 +25,17 @@ export async function createInitialComment(
try {
let response;
console.log(`Creating comment for ${context.isPR ? 'PR' : 'issue'} #${context.entityNumber}`);
// Only use createReplyForReviewComment if it's a PR review comment AND we have a comment_id
if (isPullRequestReviewCommentEvent(context)) {
console.log(`Creating PR review comment reply`);
response = await api.customRequest("POST", `/api/v1/repos/${owner}/${repo}/pulls/${context.entityNumber}/comments/${context.payload.comment.id}/replies`, {
body: initialBody,
});
} else {
// For all other cases (issues, issue comments, or missing comment_id)
console.log(`Creating issue comment via API`);
response = await api.createIssueComment(owner, repo, context.entityNumber, initialBody);
}