aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/google/go-github/github/admin_stats.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/google/go-github/github/admin_stats.go')
-rw-r--r--vendor/github.com/google/go-github/github/admin_stats.go171
1 files changed, 171 insertions, 0 deletions
diff --git a/vendor/github.com/google/go-github/github/admin_stats.go b/vendor/github.com/google/go-github/github/admin_stats.go
new file mode 100644
index 0000000..b5645f8
--- /dev/null
+++ b/vendor/github.com/google/go-github/github/admin_stats.go
@@ -0,0 +1,171 @@
+// Copyright 2017 The go-github AUTHORS. All rights reserved.
+//
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package github
+
+import (
+ "context"
+ "fmt"
+)
+
+// AdminStats represents a variety of stats of a Github Enterprise
+// installation.
+type AdminStats struct {
+ Issues *IssueStats `json:"issues,omitempty"`
+ Hooks *HookStats `json:"hooks,omitempty"`
+ Milestones *MilestoneStats `json:"milestones,omitempty"`
+ Orgs *OrgStats `json:"orgs,omitempty"`
+ Comments *CommentStats `json:"comments,omitempty"`
+ Pages *PageStats `json:"pages,omitempty"`
+ Users *UserStats `json:"users,omitempty"`
+ Gists *GistStats `json:"gists,omitempty"`
+ Pulls *PullStats `json:"pulls,omitempty"`
+ Repos *RepoStats `json:"repos,omitempty"`
+}
+
+func (s AdminStats) String() string {
+ return Stringify(s)
+}
+
+// IssueStats represents the number of total, open and closed issues.
+type IssueStats struct {
+ TotalIssues *int `json:"total_issues,omitempty"`
+ OpenIssues *int `json:"open_issues,omitempty"`
+ ClosedIssues *int `json:"closed_issues,omitempty"`
+}
+
+func (s IssueStats) String() string {
+ return Stringify(s)
+}
+
+// HookStats represents the number of total, active and inactive hooks.
+type HookStats struct {
+ TotalHooks *int `json:"total_hooks,omitempty"`
+ ActiveHooks *int `json:"active_hooks,omitempty"`
+ InactiveHooks *int `json:"inactive_hooks,omitempty"`
+}
+
+func (s HookStats) String() string {
+ return Stringify(s)
+}
+
+// MilestoneStats represents the number of total, open and close milestones.
+type MilestoneStats struct {
+ TotalMilestones *int `json:"total_milestones,omitempty"`
+ OpenMilestones *int `json:"open_milestones,omitempty"`
+ ClosedMilestones *int `json:"closed_milestones,omitempty"`
+}
+
+func (s MilestoneStats) String() string {
+ return Stringify(s)
+}
+
+// OrgStats represents the number of total, disabled organizations and the team
+// and team member count.
+type OrgStats struct {
+ TotalOrgs *int `json:"total_orgs,omitempty"`
+ DisabledOrgs *int `json:"disabled_orgs,omitempty"`
+ TotalTeams *int `json:"total_teams,omitempty"`
+ TotalTeamMembers *int `json:"total_team_members,omitempty"`
+}
+
+func (s OrgStats) String() string {
+ return Stringify(s)
+}
+
+// CommentStats represents the number of total comments on commits, gists, issues
+// and pull requests.
+type CommentStats struct {
+ TotalCommitComments *int `json:"total_commit_comments,omitempty"`
+ TotalGistComments *int `json:"total_gist_comments,omitempty"`
+ TotalIssueComments *int `json:"total_issue_comments,omitempty"`
+ TotalPullRequestComments *int `json:"total_pull_request_comments,omitempty"`
+}
+
+func (s CommentStats) String() string {
+ return Stringify(s)
+}
+
+// PageStats represents the total number of github pages.
+type PageStats struct {
+ TotalPages *int `json:"total_pages,omitempty"`
+}
+
+func (s PageStats) String() string {
+ return Stringify(s)
+}
+
+// UserStats represents the number of total, admin and suspended users.
+type UserStats struct {
+ TotalUsers *int `json:"total_users,omitempty"`
+ AdminUsers *int `json:"admin_users,omitempty"`
+ SuspendedUsers *int `json:"suspended_users,omitempty"`
+}
+
+func (s UserStats) String() string {
+ return Stringify(s)
+}
+
+// GistStats represents the number of total, private and public gists.
+type GistStats struct {
+ TotalGists *int `json:"total_gists,omitempty"`
+ PrivateGists *int `json:"private_gists,omitempty"`
+ PublicGists *int `json:"public_gists,omitempty"`
+}
+
+func (s GistStats) String() string {
+ return Stringify(s)
+}
+
+// PullStats represents the number of total, merged, mergable and unmergeable
+// pull-requests.
+type PullStats struct {
+ TotalPulls *int `json:"total_pulls,omitempty"`
+ MergedPulls *int `json:"merged_pulls,omitempty"`
+ MergablePulls *int `json:"mergeable_pulls,omitempty"`
+ UnmergablePulls *int `json:"unmergeable_pulls,omitempty"`
+}
+
+func (s PullStats) String() string {
+ return Stringify(s)
+}
+
+// RepoStats represents the number of total, root, fork, organization repositories
+// together with the total number of pushes and wikis.
+type RepoStats struct {
+ TotalRepos *int `json:"total_repos,omitempty"`
+ RootRepos *int `json:"root_repos,omitempty"`
+ ForkRepos *int `json:"fork_repos,omitempty"`
+ OrgRepos *int `json:"org_repos,omitempty"`
+ TotalPushes *int `json:"total_pushes,omitempty"`
+ TotalWikis *int `json:"total_wikis,omitempty"`
+}
+
+func (s RepoStats) String() string {
+ return Stringify(s)
+}
+
+// GetAdminStats returns a variety of metrics about a Github Enterprise
+// installation.
+//
+// Please note that this is only available to site administrators,
+// otherwise it will error with a 404 not found (instead of 401 or 403).
+//
+// GitHub API docs: https://developer.github.com/v3/enterprise-admin/admin_stats/
+func (s *AdminService) GetAdminStats(ctx context.Context) (*AdminStats, *Response, error) {
+ u := fmt.Sprintf("enterprise/stats/all")
+ req, err := s.client.NewRequest("GET", u, nil)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ m := new(AdminStats)
+ resp, err := s.client.Do(ctx, req, m)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return m, resp, nil
+}