Documentation
¶
Index ¶
- Constants
- func GenerateOAuthTokenFromApp(baseURL, appID, appInstallationID, pemData string) (string, error)
- func NewEtagTransport(rt http.RoundTripper) *etagTransport
- func OwnerOrOrgEnvDefaultFunc() (interface{}, error)
- func Provider() terraform.ResourceProvider
- func RateLimitedHTTPClient(client *http.Client, writeDelay time.Duration, readDelay time.Duration) *http.Client
- type Config
- func (c *Config) Anonymous() bool
- func (c *Config) AnonymousHTTPClient() *http.Client
- func (c *Config) AuthenticatedHTTPClient() *http.Client
- func (c *Config) ConfigureOwner(owner *Owner) (*Owner, error)
- func (c *Config) Meta() (interface{}, error)
- func (c *Config) NewGraphQLClient(client *http.Client) (*githubv4.Client, error)
- func (c *Config) NewRESTClient(client *http.Client) (*github.Client, error)
- type Owner
- type PageInfo
- type RateLimitTransport
- type RateLimitTransportOption
- type TeamsQuery
Constants ¶
const ( PROTECTION_ALLOWS_DELETIONS = "allows_deletions" PROTECTION_ALLOWS_FORCE_PUSHES = "allows_force_pushes" PROTECTION_DISMISSES_STALE_REVIEWS = "dismiss_stale_reviews" PROTECTION_IS_ADMIN_ENFORCED = "enforce_admins" PROTECTION_PATTERN = "pattern" PROTECTION_REQUIRED_APPROVING_REVIEW_COUNT = "required_approving_review_count" PROTECTION_REQUIRED_STATUS_CHECK_CONTEXTS = "contexts" PROTECTION_REQUIRES_APPROVING_REVIEWS = "required_pull_request_reviews" PROTECTION_REQUIRES_CODE_OWNER_REVIEWS = "require_code_owner_reviews" PROTECTION_REQUIRES_COMMIT_SIGNATURES = "require_signed_commits" PROTECTION_REQUIRES_LINEAR_HISTORY = "required_linear_history" PROTECTION_REQUIRES_CONVERSATION_RESOLUTION = "require_conversation_resolution" PROTECTION_REQUIRES_STATUS_CHECKS = "required_status_checks" PROTECTION_REQUIRES_STRICT_STATUS_CHECKS = "strict" PROTECTION_RESTRICTS_PUSHES = "push_restrictions" PROTECTION_RESTRICTS_REVIEW_DISMISSALS = "restrict_dismissals" PROTECTION_RESTRICTS_REVIEW_DISMISSERS = "dismissal_restrictions" PROTECTION_PULL_REQUESTS_BYPASSERS = "pull_request_bypassers" REPOSITORY_ID = "repository_id" )
Variables ¶
This section is empty.
Functions ¶
func GenerateOAuthTokenFromApp ¶
GenerateOAuthTokenFromApp generates a GitHub OAuth access token from a set of valid GitHub App credentials. The returned token can be used to interact with both GitHub's REST and GraphQL APIs.
func NewEtagTransport ¶
func NewEtagTransport(rt http.RoundTripper) *etagTransport
func OwnerOrOrgEnvDefaultFunc ¶
func OwnerOrOrgEnvDefaultFunc() (interface{}, error)
func Provider ¶
func Provider() terraform.ResourceProvider
Types ¶
type Config ¶
type Config struct { Token string Owner string BaseURL string Insecure bool WriteDelay time.Duration ReadDelay time.Duration }
func (*Config) AnonymousHTTPClient ¶
func (*Config) AuthenticatedHTTPClient ¶
func (*Config) Meta ¶
Meta returns the meta parameter that is passed into subsequent resources https://godoc.org/github.com/hashicorp/terraform-plugin-sdk/helper/schema#ConfigureFunc
func (*Config) NewGraphQLClient ¶
type RateLimitTransport ¶
type RateLimitTransport struct {
// contains filtered or unexported fields
}
RateLimitTransport implements GitHub's best practices for avoiding rate limits https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits
func NewRateLimitTransport ¶
func NewRateLimitTransport(rt http.RoundTripper, options ...RateLimitTransportOption) *RateLimitTransport
NewRateLimitTransport takes in an http.RoundTripper and a variadic list of optional functions that modify the RateLimitTransport struct itself. This may be used to alter the write delay in between requests, for example.
type RateLimitTransportOption ¶
type RateLimitTransportOption func(*RateLimitTransport)
func WithReadDelay ¶
func WithReadDelay(d time.Duration) RateLimitTransportOption
WithReadDelay is used to set the delay between read requests
func WithWriteDelay ¶
func WithWriteDelay(d time.Duration) RateLimitTransportOption
WithWriteDelay is used to set the write delay between requests
type TeamsQuery ¶
type TeamsQuery struct { Organization struct { ID githubv4.String Teams struct { Nodes []struct { ID githubv4.String DatabaseID githubv4.Int Slug githubv4.String Name githubv4.String Description githubv4.String Privacy githubv4.String Members struct { Nodes []struct { Login githubv4.String } } Repositories struct { Nodes []struct { Name githubv4.String } } } PageInfo PageInfo } `graphql:"teams(first:$first, after:$cursor, rootTeamsOnly:$rootTeamsOnly)"` } `graphql:"organization(login:$login)"` }