* 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 { widget } = service;
const { data: gitlabEvents, error: gitlabEventsError } = useWidgetAPI(widget, "events"); 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) { if (gitlabEventsError || gitlabIssuesError || gitlabMergesError) {
return <Container service={service} error={gitlabEvents} />; return <Container service={service} error={gitlabEventsError ?? gitlabIssuesError ?? gitlabMergesError} />;
} }
if (!gitlabEvents) { if (!gitlabEvents || !gitlabIssues || !gitlabMerges) {
return ( return (
<Container service={service}> <Container service={service}>
<Block label="gitlab.events" /> <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 ( return (
<Container service={service}> <Container service={service}>
<Block label="gitlab.events" value={t("common.number", { value: gitlabEvents.events })} /> <Block label="gitlab.events" value={t("common.number", { value: gitlabEvents.count })} />
<Block label="gitlab.issues" value={t("common.number", { value: openIssues })} /> <Block label="gitlab.issues" value={t("common.number", { value: gitlabIssues.count })} />
<Block label="gitlab.merges" value={t("common.number", { value: openMerges })} /> <Block label="gitlab.merges" value={t("common.number", { value: gitlabMerges.count })} />
</Container> </Container>
); );
} }

View File

@ -8,9 +8,19 @@ const widget = {
events: { events: {
endpoint: "events", endpoint: "events",
map: (data) => ({ map: (data) => ({
merges: asJson(data).filter((event) => event.target_type?.toLowerCase() === "merge_request"), count: asJson(data).length,
issues: asJson(data).filter((event) => event.target_type?.toLowerCase() === "issue"), }),
events: 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,
}), }),
}, },
}, },