Class GitHubEndpoint
- java.lang.Object
-
- org.apache.camel.support.service.BaseService
-
- org.apache.camel.support.service.ServiceSupport
-
- org.apache.camel.support.DefaultEndpoint
-
- org.apache.camel.support.ScheduledPollEndpoint
-
- org.apache.camel.component.github.GitHubEndpoint
-
- All Implemented Interfaces:
AutoCloseable,org.apache.camel.CamelContextAware,org.apache.camel.Endpoint,org.apache.camel.IsSingleton,org.apache.camel.Service,org.apache.camel.ShutdownableService,org.apache.camel.spi.HasId,org.apache.camel.StatefulService,org.apache.camel.SuspendableService
@UriEndpoint(firstVersion="2.15.0", scheme="github", title="GitHub", syntax="github:type/branchName", category={FILE,CLOUD,API}, headersClass=GitHubConstants.class) public class GitHubEndpoint extends org.apache.camel.support.ScheduledPollEndpointInteract with the GitHub API. The endpoint encapsulates portions of the GitHub API, relying on the org.eclipse.egit.github.core Java SDK. Available endpoint URIs include: CONSUMERS github://pullRequest (new pull requests) github://pullRequestComment (new pull request comments) github://commit/[branch] (new commits) github://tag (new tags) PRODUCERS github://pullRequestComment (create a new pull request comment; see PullRequestCommentProducer for header requirements) The endpoints will respond with org.eclipse.egit.github.core-provided POJOs (PullRequest, CommitComment, RepositoryTag, RepositoryCommit, etc.) Note: Rather than webhooks, this endpoint relies on simple polling. Reasons include: - concerned about reliability/stability if this somehow relied on an exposed, embedded server (Jetty?) - the types of payloads we're polling aren't typically large (plus, paging is available in the API) - need to support apps running somewhere not publicly accessible where a webhook would fail
-
-
Constructor Summary
Constructors Constructor Description GitHubEndpoint(String uri, GitHubComponent component)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.camel.ConsumercreateConsumer(org.apache.camel.Processor processor)org.apache.camel.ProducercreateProducer()protected voiddoInit()StringgetBranchName()StringgetEncoding()GitHubEventFetchStrategygetEventFetchStrategy()StringgetOauthToken()StringgetRepoName()StringgetRepoOwner()StringgetStartingSha()StringgetState()StringgetTargetUrl()GitHubTypegetType()voidsetBranchName(String branchName)Name of branchvoidsetEncoding(String encoding)To use the given encoding when getting a git commit filevoidsetEventFetchStrategy(GitHubEventFetchStrategy eventFetchStrategy)To specify a custom strategy that configures how the EventsConsumer fetches events.voidsetOauthToken(String oauthToken)GitHub OAuth token.voidsetRepoName(String repoName)GitHub repository namevoidsetRepoOwner(String repoOwner)GitHub repository owner (organization)voidsetStartingSha(String startingSha)The starting sha to use for polling commits with the commit consumer.voidsetState(String state)To set git commit status statevoidsetTargetUrl(String targetUrl)To set git commit status target urlvoidsetType(GitHubType type)What git operation to execute-
Methods inherited from class org.apache.camel.support.ScheduledPollEndpoint
configureConsumer, configureProperties, configureScheduledPollConsumerProperties, doConfigureConsumer, doStart, doStop, getBackoffErrorThreshold, getBackoffIdleThreshold, getBackoffMultiplier, getDefaultDelay, getDelay, getInitialDelay, getPollStrategy, getRepeatCount, getRunLoggingLevel, getScheduledExecutorService, getScheduler, getSchedulerProperties, getTimeUnit, isGreedy, isSendEmptyMessageWhenIdle, isStartScheduler, isUseFixedDelay, setBackoffErrorThreshold, setBackoffIdleThreshold, setBackoffMultiplier, setDelay, setGreedy, setInitialDelay, setPollStrategy, setRepeatCount, setRunLoggingLevel, setScheduledExecutorService, setScheduler, setSchedulerProperties, setSendEmptyMessageWhenIdle, setStartScheduler, setTimeUnit, setUseFixedDelay
-
Methods inherited from class org.apache.camel.support.DefaultEndpoint
configureExchange, configurePollingConsumer, createAsyncProducer, createEndpointUri, createExchange, createExchange, createPollingConsumer, equals, getCamelContext, getComponent, getEndpointKey, getEndpointUri, getExceptionHandler, getExchangePattern, getId, getPollingConsumerBlockTimeout, getPollingConsumerQueueSize, hashCode, isAutowiredEnabled, isBridgeErrorHandler, isLazyStartProducer, isLenientProperties, isPollingConsumerBlockWhenFull, isPollingConsumerCopy, isSingleton, setAutowiredEnabled, setBridgeErrorHandler, setCamelContext, setComponent, setEndpointUri, setEndpointUriIfNotSpecified, setExceptionHandler, setExchangePattern, setLazyStartProducer, setPollingConsumerBlockTimeout, setPollingConsumerBlockWhenFull, setPollingConsumerCopy, setPollingConsumerQueueSize, setProperties, toString
-
Methods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Constructor Detail
-
GitHubEndpoint
public GitHubEndpoint(String uri, GitHubComponent component)
-
-
Method Detail
-
createConsumer
public org.apache.camel.Consumer createConsumer(org.apache.camel.Processor processor) throws Exception- Throws:
Exception
-
getType
public GitHubType getType()
-
setType
public void setType(GitHubType type)
What git operation to execute
-
getBranchName
public String getBranchName()
-
setBranchName
public void setBranchName(String branchName)
Name of branch
-
getStartingSha
public String getStartingSha()
-
setStartingSha
public void setStartingSha(String startingSha)
The starting sha to use for polling commits with the commit consumer. The value can either be a sha for the sha to start from, or use beginning to start from the beginning, or last to start from the last commit.
-
getOauthToken
public String getOauthToken()
-
setOauthToken
public void setOauthToken(String oauthToken)
GitHub OAuth token. Must be configured on either component or endpoint.
-
getRepoOwner
public String getRepoOwner()
-
setRepoOwner
public void setRepoOwner(String repoOwner)
GitHub repository owner (organization)
-
getRepoName
public String getRepoName()
-
setRepoName
public void setRepoName(String repoName)
GitHub repository name
-
getState
public String getState()
-
setState
public void setState(String state)
To set git commit status state
-
getTargetUrl
public String getTargetUrl()
-
setTargetUrl
public void setTargetUrl(String targetUrl)
To set git commit status target url
-
getEncoding
public String getEncoding()
-
setEncoding
public void setEncoding(String encoding)
To use the given encoding when getting a git commit file
-
getEventFetchStrategy
public GitHubEventFetchStrategy getEventFetchStrategy()
-
setEventFetchStrategy
public void setEventFetchStrategy(GitHubEventFetchStrategy eventFetchStrategy)
To specify a custom strategy that configures how the EventsConsumer fetches events.
-
-