* fix gitlab widget showing incorrect count of issues and merges

This commit is contained in:
Urs Kröll 2024-11-22 01:38:30 +01:00
parent defa1ded7f
commit 4adf24dfa9
No known key found for this signature in database
GPG Key ID: D93E3DE7D924C315
2 changed files with 21 additions and 12 deletions

View File

@ -9,12 +9,14 @@ export default function Component({ service }) {
const { widget } = service;
const { data: gitlabEvents, error: gitlabEventsError } = useWidgetAPI(widget, "events");
const { data: gitlabIssues, error: gitlabIssuesError } = useWidgetAPI(widget, "issues");
const { data: gitlabMerges, error: gitlabMergesError } = useWidgetAPI(widget, "merges");
if (gitlabEventsError) {
return <Container service={service} error={gitlabEvents} />;
if (gitlabEventsError || gitlabIssuesError || gitlabMergesError) {
return <Container service={service} error={gitlabEventsError ?? gitlabIssuesError ?? gitlabMergesError} />;
}
if (!gitlabEvents) {
if (!gitlabEvents || !gitlabIssues || !gitlabMerges) {
return (
<Container service={service}>
<Block label="gitlab.events" />
@ -24,14 +26,11 @@ export default function Component({ service }) {
);
}
const openIssues = gitlabEvents.issues.filter((event) => event.action_name.toLowerCase() === "opened").length;
const openMerges = gitlabEvents.merges.filter((event) => event.action_name.toLowerCase() === "opened").length;
return (
<Container service={service}>
<Block label="gitlab.events" value={t("common.number", { value: gitlabEvents.events })} />
<Block label="gitlab.issues" value={t("common.number", { value: openIssues })} />
<Block label="gitlab.merges" value={t("common.number", { value: openMerges })} />
<Block label="gitlab.events" value={t("common.number", { value: gitlabEvents.count })} />
<Block label="gitlab.issues" value={t("common.number", { value: gitlabIssues.count })} />
<Block label="gitlab.merges" value={t("common.number", { value: gitlabMerges.count })} />
</Container>
);
}

View File

@ -8,9 +8,19 @@ const widget = {
events: {
endpoint: "events",
map: (data) => ({
merges: asJson(data).filter((event) => event.target_type?.toLowerCase() === "merge_request"),
issues: asJson(data).filter((event) => event.target_type?.toLowerCase() === "issue"),
events: asJson(data).length,
count: asJson(data).length,
}),
},
issues: {
endpoint: "issues?state=opened",
map: (data) => ({
count: asJson(data).length,
}),
},
merges: {
endpoint: "merge_requests?state=opened",
map: (data) => ({
count: asJson(data).length,
}),
},
},