Interface WebhookService
- All Known Implementing Classes:
WebhookServiceImpl
@Service
public interface WebhookService
-
Method Summary
Modifier and TypeMethodDescriptioncreateWebhook(String organizationName, String accessToken, String currentUser) create github organization hook.voiddeleteWebhook(long organizationId, String currentUser) delete gitHub webhookvoidForce update the stored github organization webhooks if there is a change to the remote webhooks, such as an entity deletion or the update eventgetWebhookId(long webhookId) Retrieves a webHook identified by its technical identifier.getWebhookId(long webhookId, String username) Retrieves a webHook identified by its technical identifier accessed by a userorg.springframework.data.domain.Page<WebHook> getWebhooks(String currentUser, org.springframework.data.domain.Pageable pageable) Get available github hooks using offset and limit.booleanisWebHookRepositoryEnabled(long organizationRemoteId, long repositoryRemoteId) Check if webhook repository is enabledbooleanisWebHookRepositoryEnabled(String payload) Check if webhook repository is enabledbooleanisWebHookWatchLimitEnabled(long organizationRemoteId) Check if webhook watch limit is enabledretrieveOrganizationRepos(long organizationRemoteId, String currentUser, int page, int perPage, String keyword) Retrieve available github organization repositories.voidsetWebHookRepositoryEnabled(long organizationRemoteId, long repositoryRemoteId, boolean enabled, String currentUser) enables/disables repositoryvoidupdateWebHookAccessToken(long webHookId, String accessToken, String currentUser) Update github organization hook.booleanverifyWebhookSecret(String payload, String signature)
-
Method Details
-
getWebhooks
org.springframework.data.domain.Page<WebHook> getWebhooks(String currentUser, org.springframework.data.domain.Pageable pageable) throws IllegalAccessException Get available github hooks using offset and limit.- Parameters:
currentUser- user name attempting to access connector hookspageable-Pageablethe page to be returned.- Returns:
PageableofWebHook- Throws:
IllegalAccessException- when user is not authorized to access github hooks
-
getWebhookId
Retrieves a webHook identified by its technical identifier.- Parameters:
webhookId- WebHook technical identifier- Returns:
- found
WebHook
-
getWebhookId
WebHook getWebhookId(long webhookId, String username) throws IllegalAccessException, org.exoplatform.commons.exception.ObjectNotFoundException Retrieves a webHook identified by its technical identifier accessed by a user- Parameters:
webhookId- WebHook technical identifierusername- user name attempting to access connector webhook- Returns:
- found
WebHook - Throws:
IllegalAccessException- when user is not authorized to access webhookorg.exoplatform.commons.exception.ObjectNotFoundException- webhook not found
-
createWebhook
WebHook createWebhook(String organizationName, String accessToken, String currentUser) throws org.exoplatform.commons.ObjectAlreadyExistsException, IllegalAccessException, org.exoplatform.commons.exception.ObjectNotFoundException create github organization hook.- Parameters:
organizationName- github organization nameaccessToken- gitHub personal access tokencurrentUser- user name attempting to create github hook- Returns:
WebHook- Throws:
org.exoplatform.commons.ObjectAlreadyExistsException- when webhook already existsIllegalAccessException- when user is not authorized to create github webhookorg.exoplatform.commons.exception.ObjectNotFoundException- when the github organization identified by its technical name is not found
-
updateWebHookAccessToken
void updateWebHookAccessToken(long webHookId, String accessToken, String currentUser) throws IllegalAccessException, org.exoplatform.commons.exception.ObjectNotFoundException Update github organization hook.- Parameters:
webHookId- webHook IdaccessToken- gitHub personal access tokencurrentUser- user name attempting to update github hook- Throws:
IllegalAccessExceptionorg.exoplatform.commons.exception.ObjectNotFoundException
-
deleteWebhook
void deleteWebhook(long organizationId, String currentUser) throws IllegalAccessException, org.exoplatform.commons.exception.ObjectNotFoundException delete gitHub webhook- Parameters:
organizationId- github remote organization idcurrentUser- user name attempting to delete gitHub hook- Throws:
IllegalAccessException- when user is not authorized to delete the gitHub hookorg.exoplatform.commons.exception.ObjectNotFoundException
-
verifyWebhookSecret
- Parameters:
payload- payload The raw payload of the webhook request.signature- The signature received from the external system.- Returns:
- true if the computed signature matches the provided signature.
-
isWebHookRepositoryEnabled
Check if webhook repository is enabled- Parameters:
payload- payload The raw payload of the webhook request.- Returns:
- true if the intended repository is enabled, else false.
-
isWebHookRepositoryEnabled
boolean isWebHookRepositoryEnabled(long organizationRemoteId, long repositoryRemoteId) Check if webhook repository is enabled- Parameters:
organizationRemoteId- gitHub organization remote IdrepositoryRemoteId- gitHub repository remote Id- Returns:
- true if the intended repository is enabled, else false.
-
setWebHookRepositoryEnabled
void setWebHookRepositoryEnabled(long organizationRemoteId, long repositoryRemoteId, boolean enabled, String currentUser) throws IllegalAccessException enables/disables repository- Parameters:
organizationRemoteId- gitHub organization remote IdrepositoryRemoteId- gitHub repository remote Idenabled- true to enabled, else falsecurrentUser- user name attempting to enables/disables repository.- Throws:
IllegalAccessException- when user is not authorized enables/disables repository
-
isWebHookWatchLimitEnabled
boolean isWebHookWatchLimitEnabled(long organizationRemoteId) Check if webhook watch limit is enabled- Parameters:
organizationRemoteId- gitHub organization remote Id- Returns:
- true if webHook watch limit is enabled, else false.
-
retrieveOrganizationRepos
List<RemoteRepository> retrieveOrganizationRepos(long organizationRemoteId, String currentUser, int page, int perPage, String keyword) throws IllegalAccessException, org.exoplatform.commons.exception.ObjectNotFoundException Retrieve available github organization repositories.- Parameters:
organizationRemoteId- gitHub organization remote IdcurrentUser- user name attempting to access remote organization repositoriespage- pageperPage- perPagekeyword- to search in repositories title- Returns:
ListofRemoteRepository- Throws:
IllegalAccessException- when user is not authorized to access remote organization repositoriesorg.exoplatform.commons.exception.ObjectNotFoundException
-
forceUpdateWebhooks
void forceUpdateWebhooks()Force update the stored github organization webhooks if there is a change to the remote webhooks, such as an entity deletion or the update event
-