github

package
v1.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package github contains more usable functions and types for interacting with the Githubv4 API

Index

Constants

View Source
const PageNumberLimit = 2

PageNumberLimit is the limit on the number of pages that will be traversed

Variables

This section is empty.

Functions

func GetQueryHandlers added in v1.3.0

func GetQueryHandlers(s *QueryHandler) *datasource.QueryTypeMux

GetQueryHandlers creates the QueryTypeMux type for handling queries

func InterPolateMacros added in v1.0.14

func InterPolateMacros(query string) (string, error)

InterPolateMacros interpolate macros on a given query string

func UnmarshalQuery added in v1.3.0

func UnmarshalQuery(b []byte, v interface{}) *backend.DataResponse

UnmarshalQuery attempts to unmarshal a query from JSON

Types

type CVSS added in v1.3.0

type CVSS struct {
	Score        float64
	VectorString string
}

CVSS is a way of grading the severity of a vulnerability

type Commit

type Commit struct {
	OID           string
	PushedDate    githubv4.DateTime
	AuthoredDate  githubv4.DateTime
	CommittedDate githubv4.DateTime
	Message       githubv4.String
	Author        GitActor
}

Commit represents a git commit from GitHub's API

type Commits

type Commits []Commit

Commits is a slice of git commits

func GetAllCommits

func GetAllCommits(ctx context.Context, client models.Client, opts models.ListCommitsOptions) (Commits, error)

GetAllCommits lists every commit in a project. This function is slow and very prone to rate limiting.

func GetCommitsInRange

func GetCommitsInRange(ctx context.Context, client models.Client, opts models.ListCommitsOptions, from time.Time, to time.Time) (Commits, error)

GetCommitsInRange lists all commits in a repository within a time range.

func (Commits) Frames

func (c Commits) Frames() data.Frames

Frames converts the list of commits to a Grafana DataFrame

type Datasource

type Datasource struct {
	// contains filtered or unexported fields
}

Datasource handles requests to GitHub

func NewDatasource

func NewDatasource(ctx context.Context, settings models.Settings) (*Datasource, error)

NewDatasource creates a new datasource for handling queries

func (*Datasource) CheckHealth

CheckHealth is the health check for GitHub

func (*Datasource) HandleCommitsQuery

func (d *Datasource) HandleCommitsQuery(ctx context.Context, query *models.CommitsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleCommitsQuery is the query handler for listing GitHub Commits

func (*Datasource) HandleContributorsQuery

func (d *Datasource) HandleContributorsQuery(ctx context.Context, query *models.ContributorsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleContributorsQuery is the query handler for listing GitHub Contributors

func (*Datasource) HandleGetLabels

func (d *Datasource) HandleGetLabels(w http.ResponseWriter, r *http.Request)

HandleGetLabels is the HTTP handler for the resource call for getting GitHub labels

func (*Datasource) HandleGetMilestones

func (d *Datasource) HandleGetMilestones(w http.ResponseWriter, r *http.Request)

HandleGetMilestones is the HTTP handler for the resource call for getting GitHub milestones

func (*Datasource) HandleIssuesQuery

func (d *Datasource) HandleIssuesQuery(ctx context.Context, query *models.IssuesQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleIssuesQuery is the query handler for listing GitHub Issues

func (*Datasource) HandleLabelsQuery

func (d *Datasource) HandleLabelsQuery(ctx context.Context, query *models.LabelsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleLabelsQuery is the query handler for listing GitHub Labels

func (*Datasource) HandleMilestonesQuery

func (d *Datasource) HandleMilestonesQuery(ctx context.Context, query *models.MilestonesQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleMilestonesQuery is the query handler for listing GitHub Milestones

func (*Datasource) HandlePackagesQuery

func (d *Datasource) HandlePackagesQuery(ctx context.Context, query *models.PackagesQuery, req backend.DataQuery) (dfutil.Framer, error)

HandlePackagesQuery is the query handler for listing GitHub Packages

func (*Datasource) HandleProjectsQuery added in v1.3.0

func (d *Datasource) HandleProjectsQuery(ctx context.Context, query *models.ProjectsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleProjectsQuery is the query handler for listing GitHub Projects

func (*Datasource) HandlePullRequestsQuery

func (d *Datasource) HandlePullRequestsQuery(ctx context.Context, query *models.PullRequestsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandlePullRequestsQuery is the query handler for listing GitHub PullRequests

func (*Datasource) HandleReleasesQuery

func (d *Datasource) HandleReleasesQuery(ctx context.Context, query *models.ReleasesQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleReleasesQuery is the query handler for listing GitHub Releases

func (*Datasource) HandleRepositoriesQuery added in v1.0.1

func (d *Datasource) HandleRepositoriesQuery(ctx context.Context, query *models.RepositoriesQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleRepositoriesQuery is the query handler for listing GitHub Repositories

func (*Datasource) HandleStargazersQuery added in v1.4.0

func (d *Datasource) HandleStargazersQuery(ctx context.Context, query *models.StargazersQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleStargazersQuery is the query handler for listing stargazers of a GitHub repository

func (*Datasource) HandleTagsQuery

func (d *Datasource) HandleTagsQuery(ctx context.Context, query *models.TagsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleTagsQuery is the query handler for listing GitHub Tags

func (*Datasource) HandleVulnerabilitiesQuery added in v1.3.0

func (d *Datasource) HandleVulnerabilitiesQuery(ctx context.Context, query *models.VulnerabilityQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleVulnerabilitiesQuery is the query handler for listing GitHub Packages

func (*Datasource) HandleWorkflowUsageQuery added in v1.4.7

func (d *Datasource) HandleWorkflowUsageQuery(ctx context.Context, query *models.WorkflowUsageQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleWorkflowUsageQuery is the query handler for getting the usage information of a specific workflow

func (*Datasource) HandleWorkflowsQuery added in v1.4.7

func (d *Datasource) HandleWorkflowsQuery(ctx context.Context, query *models.WorkflowsQuery, req backend.DataQuery) (dfutil.Framer, error)

HandleWorkflowsQuery is the query handler for listing workflows of a GitHub repository

func (*Datasource) QueryData added in v1.3.0

QueryData runs the query

type GitActor

type GitActor struct {
	Name  string
	Email string
	User  models.User
	Date  githubv4.GitTimestamp
}

A GitActor is a user that has performed a git action, like a commit

type GitActors

type GitActors []GitActor

GitActors is a list of GitHub users

func (GitActors) Frames

func (g GitActors) Frames() data.Frames

Frames converts the list of actors to a grafana data frame

type Issue

type Issue struct {
	Number    int64
	Title     string
	ClosedAt  githubv4.DateTime
	CreatedAt githubv4.DateTime
	UpdatedAt githubv4.DateTime
	Closed    bool
	Author    struct {
		models.User `graphql:"... on User"`
	}
	Repository Repository
}

Issue represents a GitHub issue in a repository

type Issues

type Issues []Issue

Issues is a slice of GitHub issues

func GetIssuesInRange

func GetIssuesInRange(ctx context.Context, client models.Client, opts models.ListIssuesOptions, from time.Time, to time.Time) (Issues, error)

GetIssuesInRange lists issues in a project given a time range.

func (Issues) Frames

func (c Issues) Frames() data.Frames

Frames converts the list of issues to a Grafana DataFrame

type Label

type Label struct {
	Color       string `json:"color"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

Label is a GitHub label used in Issues / Pull Requests

type Labels

type Labels []Label

Labels is a list of GitHub labels

func GetAllLabels

func GetAllLabels(ctx context.Context, client models.Client, opts models.ListLabelsOptions) (Labels, error)

GetAllLabels gets all labels from a GitHub repository

func (Labels) Frames

func (a Labels) Frames() data.Frames

Frames converts the list of labels to a Grafana DataFrame

type Milestones

type Milestones []models.Milestone

Milestones is a list of GitHub milestones

func GetAllMilestones

func GetAllMilestones(ctx context.Context, client models.Client, opts models.ListMilestonesOptions) (Milestones, error)

GetAllMilestones lists milestones in a repository

func (Milestones) Frames

func (m Milestones) Frames() data.Frames

Frames converts the list of GitHub Milestones to a Grafana data frame

type Organization

type Organization struct {
	Name string
}

An Organization is a single GitHub organization

func GetAllOrganizations

func GetAllOrganizations(ctx context.Context, client models.Client) ([]Organization, error)

GetAllOrganizations lists the available organizations for the client

type Organizations

type Organizations []Organization

Organizations is a slice of GitHub Organizations

func (Organizations) Frames

func (c Organizations) Frames() data.Frames

Frames converts the list of Organizations to a Grafana DataFrame

type Package

type Package struct {
	Name        string
	PackageType githubv4.PackageType
	Statistics  PackageStatistics
	Versions    []PackageVersion
}

Package represents a GitHub Package

type PackageStatistics

type PackageStatistics struct {
	DownloadsTotalCount int64
}

PackageStatistics is a common object used in package versions and packages themselves

type PackageVersion

type PackageVersion struct {
	PreRelease bool
	Platform   string
	Version    string
	Statistics PackageStatistics
}

PackageVersion is the version of a package. A package can have several versions.

type Packages

type Packages []Package

Packages is a list of GitHub packages

func GetAllPackages

func GetAllPackages(ctx context.Context, client models.Client, opts models.ListPackagesOptions) (Packages, error)

GetAllPackages lists packages in a repository

func (Packages) Frames

func (p Packages) Frames() data.Frames

Frames converts a list of Packages to a Grafana Data Frame

type PullRequest

type PullRequest struct {
	Number     int64
	Title      string
	URL        string
	State      githubv4.PullRequestState
	Author     PullRequestAuthor
	Closed     bool
	IsDraft    bool
	Locked     bool
	Merged     bool
	ClosedAt   githubv4.DateTime
	CreatedAt  githubv4.DateTime
	UpdatedAt  githubv4.DateTime
	MergedAt   githubv4.DateTime
	Mergeable  githubv4.MergeableState
	MergedBy   *PullRequestAuthor
	Repository Repository
}

PullRequest is a GitHub pull request

type PullRequestAuthor

type PullRequestAuthor struct {
	User models.User `graphql:"... on User"`
}

PullRequestAuthor is the structure of the Author object in a Pull Request (which requires a graphQL object expansion on `User`)

type PullRequests

type PullRequests []PullRequest

PullRequests is a list of GitHub Pull Requests

func GetAllPullRequests

func GetAllPullRequests(ctx context.Context, client models.Client, opts models.ListPullRequestsOptions) (PullRequests, error)

GetAllPullRequests uses the graphql search endpoint API to search all pull requests in the repository

func GetPullRequestsInRange

func GetPullRequestsInRange(ctx context.Context, client models.Client, opts models.ListPullRequestsOptions, from time.Time, to time.Time) (PullRequests, error)

GetPullRequestsInRange uses the graphql search endpoint API to find pull requests in the given time range.

func (PullRequests) Frames

func (p PullRequests) Frames() data.Frames

Frames converts the list of Pull Requests to a Grafana DataFrame

type QueryHandler added in v1.3.0

type QueryHandler struct {
	Datasource Datasource
}

QueryHandler is the main handler for datasource queries.

func (*QueryHandler) HandleCommits added in v1.3.0

HandleCommits handles the plugin query for github Commits

func (*QueryHandler) HandleContributors added in v1.3.0

func (s *QueryHandler) HandleContributors(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error)

HandleContributors handles the plugin query for github Contributors

func (*QueryHandler) HandleIssues added in v1.3.0

HandleIssues handles the plugin query for github Issues

func (*QueryHandler) HandleLabels added in v1.3.0

HandleLabels handles the plugin query for github Labels

func (*QueryHandler) HandleMilestones added in v1.3.0

HandleMilestones handles the plugin query for github Milestones

func (*QueryHandler) HandlePackages added in v1.3.0

HandlePackages handles the plugin query for github Packages

func (*QueryHandler) HandleProjects added in v1.3.0

HandleProjects handles the plugin query for github Projects

func (*QueryHandler) HandlePullRequests added in v1.3.0

func (s *QueryHandler) HandlePullRequests(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error)

HandlePullRequests handles the plugin query for github PullRequests

func (*QueryHandler) HandleReleases added in v1.3.0

HandleReleases handles the plugin query for github Releases

func (*QueryHandler) HandleRepositories added in v1.3.0

func (s *QueryHandler) HandleRepositories(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error)

HandleRepositories handles the plugin query for github tags

func (*QueryHandler) HandleStargazers added in v1.4.0

HandleStargazers handles the plugin query for GitHub stargazers

func (*QueryHandler) HandleTags added in v1.3.0

HandleTags handles the plugin query for github tags

func (*QueryHandler) HandleVulnerabilities added in v1.3.1

func (s *QueryHandler) HandleVulnerabilities(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error)

HandleVulnerabilities handles the plugin query for github Vulnerabilities

func (*QueryHandler) HandleWorkflowUsage added in v1.4.7

func (s *QueryHandler) HandleWorkflowUsage(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error)

HandleWorkflowUsage handles the plugin query for GitHub workflows

func (*QueryHandler) HandleWorkflows added in v1.4.7

HandleWorkflows handles the plugin query for GitHub workflows

type QueryHandlerFunc added in v1.3.0

type QueryHandlerFunc func(context.Context, backend.DataQuery) backend.DataResponse

QueryHandlerFunc is the function signature used for mux.HandleFunc

type QueryListCommits

type QueryListCommits struct {
	Repository struct {
		Object struct {
			Commit struct {
				History struct {
					Nodes    []Commit
					PageInfo models.PageInfo
				} `graphql:"history(first: 100, after: $cursor)"`
			} `graphql:"... on Commit"`
		} `graphql:"object(expression: $ref)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListCommits is the object representation of the graphql query for retrieving a paginated list of commits for a project

query {
	repository(name:"$name", owner:"$owner") {
		object(expression: "master") {
			... on Commit {
				history {
					nodes {
						committedDate
					}
					pageInfo{
						hasNextPage
						hasPreviousPage
					}
				}
			}
		}
	}
}

type QueryListCommitsInRange

type QueryListCommitsInRange struct {
	Repository struct {
		Object struct {
			Commit struct {
				History struct {
					Nodes    []Commit
					PageInfo models.PageInfo
				} `graphql:"history(first: 100, after: $cursor, since: $since, until: $until)"`
			} `graphql:"... on Commit"`
		} `graphql:"object(expression: $ref)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListCommitsInRange is the graphql query for retrieving a paginated list of commits within a time range

type QueryListContributors

type QueryListContributors struct {
	Repository struct {
		Users struct {
			Nodes    Users
			PageInfo models.PageInfo
		} `graphql:"mentionableUsers(query: $query, first: 100, after: $cursor)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListContributors is the GraphQL query for listing contributors (or rather, mentionable users in a repository)

type QueryListLabels

type QueryListLabels struct {
	Repository struct {
		Labels struct {
			Nodes    Labels
			PageInfo models.PageInfo
		} `graphql:"labels(first: 100, after: $cursor, query: $query)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListLabels lists all labels in a repository

{
  repository(name: "grafana", owner: "grafana") {
    labels(first: 100) {
      nodes {
        color
        description
        name
      }
    }
  }
}

type QueryListMilestones

type QueryListMilestones struct {
	Repository struct {
		Milestones struct {
			Nodes    Milestones
			PageInfo models.PageInfo
		} `graphql:"milestones(first: 100, after: $cursor, query: $query)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListMilestones lists all milestones in a repository

{
  repository(name: "grafana", owner: "grafana") {
    milestones(first: 100) {
      nodes {
        color
        description
        name
      }
    }
  }
}

type QueryListOrganizations

type QueryListOrganizations struct {
	Viewer struct {
		Organizations struct {
			Nodes    []Organization
			PageInfo models.PageInfo
		} `graphql:"organizations(first: 100, after: $cursor)"`
	}
}

QueryListOrganizations is the GraphQL query for listing organizations

type QueryListPackages

type QueryListPackages struct {
	Repository struct {
		Packages struct {
			Nodes []struct {
				Name        string
				PackageType githubv4.PackageType
				Statistics  PackageStatistics
				Versions    struct {
					Nodes    []PackageVersion
					PageInfo models.PageInfo
				} `graphql:"versions(first: 100, after: $versionsCursor)"`
			}
			PageInfo models.PageInfo
		} `graphql:"packages(names: $names, packageType: $packageType, first: 100, after: $cursor)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListPackages is the GraphQL query for listing GitHub packages

{
  repository(name: "grafana", owner: "grafana") {
    packages(names: "", packageType: "", first: 10) {
      nodes {
        id
        name
        packageType
        statistics {
          downloadsTotalCount
        }
        versions(first: 10) {
          nodes {
            preRelease
            platform
            version
            statistics {
              downloadsTotalCount
            }
          }
          pageInfo {
            hasNextPage
            endCursor
          }
        }
      }
      totalCount
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

type QueryListPullRequests

type QueryListPullRequests struct {
	Search struct {
		Nodes []struct {
			PullRequest PullRequest `graphql:"... on PullRequest"`
		}
		PageInfo models.PageInfo
	} `graphql:"search(query: $query, type: ISSUE, first: 100, after: $cursor)"`
}

QueryListPullRequests lists all pull requests in a repository

{
  search(query: "is:pr repo:grafana/grafana merged:2020-08-19..*", type: ISSUE, first: 100) {
    nodes {
      ... on PullRequest {
        id
        title
      }
  }
}

type QueryListReleases

type QueryListReleases struct {
	Repository struct {
		Releases struct {
			Nodes    []Release
			PageInfo models.PageInfo
		} `graphql:"releases(first: 100, after: $cursor)"`
	} `graphql:"repository(owner: $owner, name: $name)"`
}

QueryListReleases is the GraphQL query for listing GitHub releases in a repository

type QueryListRepositories

type QueryListRepositories struct {
	Search struct {
		Nodes []struct {
			Repository Repository `graphql:"... on Repository"`
		}
		PageInfo models.PageInfo
	} `graphql:"search(query: $query, type: REPOSITORY, first: 100, after: $cursor)"`
}

QueryListRepositories is the GraphQL query for retrieving a list of repositories for an organization

{
  search(query: "is:pr repo:grafana/grafana merged:2020-08-19..*", type: ISSUE, first: 100) {
    nodes {
      ... on PullRequest {
        id
        title
      }
  }
}

type QueryListTags

type QueryListTags struct {
	Repository struct {
		Refs struct {
			Nodes []struct {
				Name   string
				Target struct {
					TypeName string `graphql:"__typename"`
					Tag      tag    `graphql:"... on Tag"`
					Commit   commit `graphql:"... on Commit"`
				}
			}
			PageInfo models.PageInfo
		} `graphql:"refs(refPrefix: \"refs/tags/\", orderBy: {field: TAG_COMMIT_DATE, direction: DESC}, first: 100, after: $cursor)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListTags is the GraphQL query for listing GitHub tags in a repository

{
	repository(name: "grafana", owner: "grafana") {
	  refs(
		refPrefix: "refs/tags/"
		orderBy: {field: TAG_COMMIT_DATE, direction: DESC}
		first: 30
		query: ""
	  ) {
		nodes {
		  name
		  target {
			__typename
			... on Commit {
			  oid
			  author {
				date
				email
				user {
				  login
				  name
				  company
				}
			  }
			}
			... on Tag {
			  oid
			  tagger {
				date
				email
				user {
				  login
				  name
				  company
				}
			  }
			}
		  }
		}
	  }
	}
  }

type QueryListVulnerabilities added in v1.3.0

type QueryListVulnerabilities struct {
	Repository struct {
		VulnerabilityAlerts struct {
			Nodes    Vulnerabilities
			PageInfo models.PageInfo
		} `graphql:"vulnerabilityAlerts(first: 100, after: $cursor)"`
	} `graphql:"repository(name: $name, owner: $owner)"`
}

QueryListVulnerabilities lists all vulnerability alerts in a repository

{
    repository(name: "repo-name", owner: "repo-owner") {
        vulnerabilityAlerts(first: 100) {
            nodes {
                createdAt
                dismissedAt
                securityVulnerability {
                    package {
                        name
                    }
                    advisory {
                        description
                    }
                }
            }
        }
    }
}

type QuerySearchIssues

type QuerySearchIssues struct {
	Search struct {
		Nodes []struct {
			Issue Issue `graphql:"... on Issue"`
		}
		PageInfo models.PageInfo
	} `graphql:"search(query: $query, type: ISSUE, first: 100, after: $cursor)"`
}

QuerySearchIssues is the object representation of the graphql query for retrieving a paginated list of issues using the search query

{
  search(query: "is:issue repo:grafana/grafana opened:2020-08-19..*", type: ISSUE, first: 100) {
    nodes {
      ... on PullRequest {
        id
        title
      }
  }
}

type QueryStargazers added in v1.4.0

type QueryStargazers struct {
	Repository struct {
		Stargazers struct {
			TotalCount int64
			PageInfo   models.PageInfo
			Edges      []Stargazer
		} `graphql:"stargazers(first: 100, orderBy: {field: STARRED_AT, direction: DESC}, after: $cursor)"`
	} `graphql:"repository(owner: $owner, name: $name)"`
}

QueryStargazers is the object representation of the graphql query for retrieving a paginated list of stargazers for a repository

query {
	repository(owner: $owner, name: $name) {
		stargazers(first: 100, orderBy: {field: STARRED_AT, direction: DESC}, after: $cursor) {
			totalCount
			pageInfo {
				hasNextPage
				startCursor
				endCursor
			}
			edges {
				starredAt
				node {
					id
					login
					name
					company
					email
					url
				}
			}
		}
	}
}

type Release

type Release struct {
	ID           string
	Name         string
	Author       models.User
	IsDraft      bool
	IsPrerelease bool
	CreatedAt    githubv4.DateTime
	PublishedAt  githubv4.DateTime
	TagName      string
	URL          string
}

Release is a GitHub release. Every release has an associated tag.

type Releases

type Releases []Release

Releases is a slice of GitHub releases

func GetAllReleases

func GetAllReleases(ctx context.Context, client models.Client, opts models.ListReleasesOptions) (Releases, error)

GetAllReleases retrieves every release from a repository

func GetReleasesInRange

func GetReleasesInRange(ctx context.Context, client models.Client, opts models.ListReleasesOptions, from time.Time, to time.Time) (Releases, error)

GetReleasesInRange retrieves every release from the repository and then returns the ones that fall within the given time range.

func (Releases) Frames

func (c Releases) Frames() data.Frames

Frames converts the list of Releases to a Grafana DataFrame

type Repositories added in v1.0.1

type Repositories []Repository

Repositories is a list of GitHub repositories

func GetAllRepositories

func GetAllRepositories(ctx context.Context, client models.Client, opts models.ListRepositoriesOptions) (Repositories, error)

GetAllRepositories retrieves all available repositories for an organization

func (Repositories) Frames added in v1.0.1

func (r Repositories) Frames() data.Frames

Frames converts the list of GitHub repositories to a Grafana Dataframe

type Repository

type Repository struct {
	Name  string
	Owner struct {
		Login string
	}
	NameWithOwner string
	URL           string
	ForkCount     int64
	IsFork        bool
	IsMirror      bool
	IsPrivate     bool
	CreatedAt     githubv4.DateTime
}

Repository is a code repository

type SecurityAdvisory added in v1.3.0

type SecurityAdvisory struct {
	Description string
	Cvss        CVSS
	Permalink   string
	Severity    githubv4.SecurityAdvisorySeverity
	WithdrawnAt githubv4.DateTime
}

SecurityAdvisory is the main security report for a vulnerability in a repository

type SecurityAdvisoryPackage added in v1.3.0

type SecurityAdvisoryPackage struct {
	Name string
}

SecurityAdvisoryPackage is an object to share the name of the package that is impacted

type SecurityAdvisoryPackageVersion added in v1.3.0

type SecurityAdvisoryPackageVersion struct {
	Identifier string
}

SecurityAdvisoryPackageVersion is a struct with an identifier to identify the package

type Stargazer added in v1.4.0

type Stargazer struct {
	StarredAt githubv4.DateTime
	Node      models.User
}

Stargazer a GitHub user tied to when they starred the repository

type StargazerWrapper added in v1.4.0

type StargazerWrapper struct {
	Stargazer
	StarCount int64
}

StargazerWrapper is a mapping of a GitHub stargazer to what the total count of stars roughly would've been when they starred the repository

type StargazersWrapper added in v1.4.0

type StargazersWrapper []StargazerWrapper

StargazersWrapper is a list of GitHub wrapped stargazers

func GetStargazers added in v1.4.0

func GetStargazers(ctx context.Context, client models.Client, opts models.ListStargazersOptions, timeRange backend.TimeRange) (StargazersWrapper, error)

GetStargazers gets all stargazers for a GitHub repository

func (StargazersWrapper) Frames added in v1.4.0

func (a StargazersWrapper) Frames() data.Frames

Frames converts the list of stargazers to a Grafana DataFrame

type Tags

type Tags []tagDTO

Tags is a list of GitHub tags

func GetAllTags

func GetAllTags(ctx context.Context, client models.Client, opts models.ListTagsOptions) (Tags, error)

GetAllTags retrieves every tag from a repository

func GetTagsInRange

func GetTagsInRange(ctx context.Context, client models.Client, opts models.ListTagsOptions, from time.Time, to time.Time) (Tags, error)

GetTagsInRange retrieves every tag from the repository and then returns the ones that fall within the given time range.

func (Tags) Frames

func (t Tags) Frames() data.Frames

Frames converts the list of tags to a Grafana DataFrame

type Users

type Users []models.User

Users is a slice of GitHub users

func GetAllContributors

func GetAllContributors(ctx context.Context, client models.Client, opts models.ListContributorsOptions) (Users, error)

GetAllContributors lists all of the git contributors in a a repository

func (Users) Frames

func (u Users) Frames() data.Frames

Frames converts the list of GitHub users to a Grafana Data Frame

type Vulnerabilities added in v1.3.0

type Vulnerabilities []Vulnerability

Vulnerabilities is a list of GitHub vulnerabilities

func GetAllVulnerabilities added in v1.3.0

func GetAllVulnerabilities(ctx context.Context, client models.Client, opts models.ListVulnerabilitiesOptions) (Vulnerabilities, error)

GetAllVulnerabilities gets all vulnerabilities from a GitHub repository

func (Vulnerabilities) Frames added in v1.3.0

func (a Vulnerabilities) Frames() data.Frames

Frames converts the list of vulnerabilities to a Grafana DataFrame

type Vulnerability added in v1.3.0

type Vulnerability struct {
	CreatedAt             githubv4.DateTime
	DismissedAt           githubv4.DateTime
	DismissReason         string
	SecurityVulnerability securityVulnerability
	State                 string
}

Vulnerability is used to collect Vulnerability information about GitHub

type WorkflowUsageWrapper added in v1.4.7

type WorkflowUsageWrapper models.WorkflowUsage

WorkflowUsageWrapper is wraps the workflow usage.

func GetWorkflowUsage added in v1.4.7

func GetWorkflowUsage(ctx context.Context, client models.Client, opts models.WorkflowUsageOptions, timeRange backend.TimeRange) (WorkflowUsageWrapper, error)

GetWorkflowUsage return the usage for a specific workflow.

func (WorkflowUsageWrapper) Frames added in v1.4.7

func (usage WorkflowUsageWrapper) Frames() data.Frames

Frames converts the workflow usage to a Grafana DataFrame

type WorkflowsWrapper added in v1.4.7

type WorkflowsWrapper []*googlegithub.Workflow

WorkflowsWrapper is a list of GitHub workflows

func GetWorkflows added in v1.4.7

func GetWorkflows(ctx context.Context, client models.Client, opts models.ListWorkflowsOptions, timeRange backend.TimeRange) (WorkflowsWrapper, error)

GetWorkflows gets all workflows for a GitHub repository

func (WorkflowsWrapper) Frames added in v1.4.7

func (workflows WorkflowsWrapper) Frames() data.Frames

Frames converts the list of workflows to a Grafana DataFrame

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL