- All Implemented Interfaces:
Cloneable
GitHub
.- Since:
- 1.59
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
Builds aGitHub
instance.clone()
Clone.static GitHubBuilder
CreatesGitHubBuilder
by picking up coordinates from environment variables.static GitHubBuilder
fromProperties
(Properties props) From properties GitHubBuilder.static GitHubBuilder
From property file GitHubBuilder.static GitHubBuilder
fromPropertyFile
(String propertyFileName) From property file GitHubBuilder.Adds aGitHubAbuseLimitHandler
to thisGitHubBuilder
.withAppInstallationToken
(String appInstallationToken) ConfiguresGitHubBuilder
with Installation Token generated by the GitHub Application.withAuthorizationProvider
(AuthorizationProvider authorizationProvider) Configures aAuthorizationProvider
for this builder There can be only one authorization provider per client instance.withConnector
(GitHubConnector connector) With connector GitHubBuilder.withEndpoint
(String endpoint) With endpoint GitHubBuilder.withJwtToken
(String jwtToken) With jwt token GitHubBuilder.withOAuthToken
(String oauthToken) With o auth token GitHubBuilder.withOAuthToken
(String oauthToken, String user) With o auth token GitHubBuilder.withRateLimitChecker
(RateLimitChecker coreRateLimitChecker) Adds aRateLimitChecker
for the Core API for thisGitHubBuilder
.withRateLimitChecker
(RateLimitChecker rateLimitChecker, RateLimitTarget rateLimitTarget) Adds aRateLimitChecker
to thisGitHubBuilder
.Adds aGitHubRateLimitHandler
to thisGitHubBuilder
.
-
Constructor Details
-
GitHubBuilder
public GitHubBuilder()Instantiates a new Git hub builder.
-
-
Method Details
-
fromEnvironment
CreatesGitHubBuilder
by picking up coordinates from environment variables.The following environment variables are recognized:
- GITHUB_LOGIN: username like 'kohsuke'
- GITHUB_OAUTH: OAuth token to login
- GITHUB_ENDPOINT: URL of the API endpoint
- GITHUB_JWT: JWT token to login
See class javadoc for the relationship between these coordinates.
- Returns:
- the GitHubBuilder
- Throws:
IOException
- the io exception
-
fromPropertyFile
From property file GitHubBuilder.- Returns:
- the GitHubBuilder
- Throws:
IOException
- the io exception
-
fromPropertyFile
From property file GitHubBuilder.- Parameters:
propertyFileName
- the property file name- Returns:
- the GitHubBuilder
- Throws:
IOException
- the io exception
-
fromProperties
From properties GitHubBuilder.- Parameters:
props
- the props- Returns:
- the GitHubBuilder
-
withEndpoint
With endpoint GitHubBuilder.- Parameters:
endpoint
- The URL of GitHub (or GitHub enterprise) API endpoint, such as "https://api.github.com" or "https://ghe.acme.com/api/v3". Note that GitHub Enterprise has/api/v3
in the URL. For historical reasons, this parameter still accepts the bare domain name, but that's considered deprecated.- Returns:
- the GitHubBuilder
-
withOAuthToken
With o auth token GitHubBuilder.- Parameters:
oauthToken
- the oauth token- Returns:
- the GitHubBuilder
-
withOAuthToken
With o auth token GitHubBuilder.- Parameters:
oauthToken
- the oauth tokenuser
- the user- Returns:
- the GitHubBuilder
-
withAuthorizationProvider
Configures aAuthorizationProvider
for this builder There can be only one authorization provider per client instance.- Parameters:
authorizationProvider
- the authorization provider- Returns:
- the GitHubBuilder
-
withAppInstallationToken
ConfiguresGitHubBuilder
with Installation Token generated by the GitHub Application.- Parameters:
appInstallationToken
- A string containing the GitHub App installation token- Returns:
- the configured Builder from given GitHub App installation token.
- See Also:
-
withJwtToken
With jwt token GitHubBuilder.- Parameters:
jwtToken
- the jwt token- Returns:
- the GitHubBuilder
-
withConnector
With connector GitHubBuilder.- Parameters:
connector
- the connector- Returns:
- the GitHubBuilder
-
withRateLimitHandler
Adds aGitHubRateLimitHandler
to thisGitHubBuilder
.GitHub allots a certain number of requests to each user or application per period of time (usually per hour). The number of requests remaining is returned in the response header and can also be requested using
GitHub.getRateLimit()
. This requests per interval is referred to as the "rate limit".When the remaining number of requests reaches zero, the next request will return an error. If this happens,
GitHubRateLimitHandler.onError(GitHubConnectorResponse)
will be called.NOTE: GitHub treats clients that exceed their rate limit very harshly. If possible, clients should avoid exceeding their rate limit. Consider adding a
RateLimitChecker
to automatically check the rate limit for each request and wait if needed.- Parameters:
handler
- the handler- Returns:
- the GitHubBuilder
- See Also:
-
withAbuseLimitHandler
Adds aGitHubAbuseLimitHandler
to thisGitHubBuilder
.When a client sends too many requests in a short time span, GitHub may return an error and set a header telling the client to not make any more request for some period of time. If this happens,
GitHubAbuseLimitHandler.onError(GitHubConnectorResponse)
will be called.- Parameters:
handler
- the handler- Returns:
- the GitHubBuilder
-
withRateLimitChecker
Adds aRateLimitChecker
for the Core API for thisGitHubBuilder
.- Parameters:
coreRateLimitChecker
- theRateLimitChecker
for core GitHub API requests- Returns:
- the GitHubBuilder
- See Also:
-
withRateLimitChecker
public GitHubBuilder withRateLimitChecker(@Nonnull RateLimitChecker rateLimitChecker, @Nonnull RateLimitTarget rateLimitTarget) Adds aRateLimitChecker
to thisGitHubBuilder
.GitHub allots a certain number of requests to each user or application per period of time (usually per hour). The number of requests remaining is returned in the response header and can also be requested using
GitHub.getRateLimit()
. This requests per interval is referred to as the "rate limit".GitHub prefers that clients stop before exceeding their rate limit rather than stopping after they exceed it. The
RateLimitChecker
is called before each request to check the rate limit and wait if the checker criteria are met.Checking your rate limit using
GitHub.getRateLimit()
does not effect your rate limit, but eachGitHub
instance will attempt to cache and reuse the last seen rate limit rather than making a new request.- Parameters:
rateLimitChecker
- theRateLimitChecker
for requestsrateLimitTarget
- theRateLimitTarget
specifying which rate limit record to check- Returns:
- the GitHubBuilder
-
build
Builds aGitHub
instance.- Returns:
- the github
- Throws:
IOException
- the io exception
-
clone
Clone.
-