Skip to content

Commit

Permalink
Use single user counts endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
shamoon committed Nov 22, 2024
1 parent 4adf24d commit c7e796b
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 31 deletions.
5 changes: 4 additions & 1 deletion docs/widgets/services/gitlab.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,14 @@ Learn more about [Gitlab](https://gitlab.com).

API requires a personal access token with either `read_api` or `api` permission. See the [gitlab documentation](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token) for details on generating one.

Allowed fields: `["events", "openIssues", "openMergeRequests"]`.
Your Gitlab user ID can be found on [your profile page](https://support.circleci.com/hc/en-us/articles/20761157174043-How-to-find-your-GitLab-User-ID).

Allowed fields: `["events", "issues", "merges", "projects"]`.

```yaml
widget:
type: gitlab
url: http://gitlab.host.or.ip:port
key: personal-access-token
user_id: 123456
```
5 changes: 3 additions & 2 deletions public/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -1003,8 +1003,9 @@
"loading": "Loading"
},
"gitlab": {
"events": "Events",
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests"
"merges": "Merge Requests",
"projects": "Projects"
}
}
20 changes: 10 additions & 10 deletions src/widgets/gitlab/component.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,29 @@ export default function Component({ service }) {
const { t } = useTranslation();
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");
const { data: gitlabCounts, error: gitlabCountsError } = useWidgetAPI(widget, "counts");

if (gitlabEventsError || gitlabIssuesError || gitlabMergesError) {
return <Container service={service} error={gitlabEventsError ?? gitlabIssuesError ?? gitlabMergesError} />;
if (gitlabCountsError) {
return <Container service={service} error={gitlabCountsError} />;
}

if (!gitlabEvents || !gitlabIssues || !gitlabMerges) {
if (!gitlabCounts) {
return (
<Container service={service}>
<Block label="gitlab.events" />
<Block label="gitlab.groups" />
<Block label="gitlab.issues" />
<Block label="gitlab.merges" />
<Block label="gitlab.projects" />
</Container>
);
}

return (
<Container service={service}>
<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 })} />
<Block label="gitlab.groups" value={t("common.number", { value: gitlabCounts.groups_count })} />
<Block label="gitlab.issues" value={t("common.number", { value: gitlabCounts.issues_count })} />
<Block label="gitlab.merges" value={t("common.number", { value: gitlabCounts.merge_requests_count })} />
<Block label="gitlab.projects" value={t("common.number", { value: gitlabCounts.projects_count })} />
</Container>
);
}
20 changes: 2 additions & 18 deletions src/widgets/gitlab/widget.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,11 @@
import { asJson } from "utils/proxy/api-helpers";
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";

const widget = {
api: "{url}/api/v4/{endpoint}",
proxyHandler: credentialedProxyHandler,
mappings: {
events: {
endpoint: "events",
map: (data) => ({
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,
}),
counts: {
endpoint: "users/{user_id}/associations_count",
},
},
};
Expand Down

0 comments on commit c7e796b

Please sign in to comment.