-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathcontribution_utils.go
More file actions
39 lines (33 loc) · 1.4 KB
/
contribution_utils.go
File metadata and controls
39 lines (33 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package github
import (
"context"
"fmt"
"slices"
"github.com/shurcooL/githubv4"
"github.com/turbot/steampipe-plugin-github/github/models"
"github.com/turbot/steampipe-plugin-sdk/v5/plugin"
)
func appendContributionColumnIncludes(m *map[string]interface{}, cols []string) {
(*m)["includeContributionCalendar"] = githubv4.Boolean(slices.Contains(cols, "contribution_calendar"))
(*m)["includeCommitContributionsByRepository"] = githubv4.Boolean(slices.Contains(cols, "commit_contributions_by_repository"))
}
func extractContributionsCollectionFromHydrateItem(h *plugin.HydrateData) (models.ContributionsCollection, error) {
if collection, ok := h.Item.(models.ContributionsCollection); ok {
return collection, nil
}
return models.ContributionsCollection{}, fmt.Errorf("unable to parse hydrate item %v as ContributionsCollection", h.Item)
}
func contributionHydrateCalendar(_ context.Context, _ *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) {
collection, err := extractContributionsCollectionFromHydrateItem(h)
if err != nil {
return nil, err
}
return collection.ContributionCalendar, nil
}
func contributionHydrateCommitContributionsByRepository(_ context.Context, _ *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) {
collection, err := extractContributionsCollectionFromHydrateItem(h)
if err != nil {
return nil, err
}
return collection.CommitContributionsByRepository, nil
}