|
1 | 1 | package com.recuencojones.bitbucket.log;
|
2 | 2 |
|
| 3 | +import com.recuencojones.bitbucket.log.dao.*; |
| 4 | + |
3 | 5 | import com.atlassian.bitbucket.event.repository.RepositoryCloneEvent;
|
4 | 6 | import com.atlassian.bitbucket.repository.Repository;
|
5 | 7 | import com.atlassian.event.api.EventListener;
|
| 8 | +import com.atlassian.event.api.EventPublisher; |
6 | 9 | import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
|
7 | 10 |
|
8 | 11 | import com.atlassian.sal.api.net.*;
|
|
14 | 17 | import org.slf4j.Logger;
|
15 | 18 | import org.slf4j.LoggerFactory;
|
16 | 19 |
|
17 |
| -import javax.inject.Named; |
| 20 | +import org.springframework.stereotype.Component; |
| 21 | +import org.springframework.beans.factory.DisposableBean; |
| 22 | +import org.springframework.beans.factory.InitializingBean; |
| 23 | + |
18 | 24 | import javax.inject.Inject;
|
| 25 | +import javax.inject.Named; |
19 | 26 |
|
20 |
| -@Named("onRepositoryClone") |
| 27 | +@Named |
21 | 28 | public class OnRepositoryClone {
|
22 | 29 | private static final Logger log = LoggerFactory.getLogger(OnRepositoryClone.class);
|
23 | 30 |
|
24 | 31 | @ComponentImport
|
25 | 32 | private final RequestFactory requestFactory;
|
26 | 33 |
|
27 |
| - @ComponentImport |
28 |
| - private final PluginSettingsFactory pluginSettingsFactory; |
| 34 | + private final RepositoryCloneSettingsDAO repositoryCloneSettingsDAO; |
29 | 35 |
|
30 | 36 | @Inject
|
31 | 37 | public OnRepositoryClone(
|
32 | 38 | final RequestFactory requestFactory,
|
33 |
| - final PluginSettingsFactory pluginSettingsFactory |
| 39 | + final RepositoryCloneSettingsDAO repositoryCloneSettingsDAO |
34 | 40 | ) {
|
35 | 41 | this.requestFactory = requestFactory;
|
36 |
| - this.pluginSettingsFactory = pluginSettingsFactory; |
| 42 | + this.repositoryCloneSettingsDAO = repositoryCloneSettingsDAO; |
37 | 43 | }
|
38 | 44 |
|
39 | 45 | @EventListener
|
40 |
| - public void onCloneEvent(final RepositoryCloneEvent cloneEvent) { |
41 |
| - final Repository repository = cloneEvent.getRepository(); |
42 |
| - final String projectKey = repository.getProject().getKey(); |
| 46 | + public void onCloneEvent(final RepositoryCloneEvent event) { |
| 47 | + final Repository repository = event.getRepository(); |
| 48 | + final int repositoryID = repository.getId(); |
43 | 49 | final String repositorySlug = repository.getSlug();
|
| 50 | + final String projectKey = repository.getProject().getKey(); |
| 51 | + |
| 52 | + final RepositoryCloneSettings settings = repositoryCloneSettingsDAO.get(repositoryID); |
44 | 53 |
|
45 |
| - log.info("Repository {}/{} cloned", projectKey, repositorySlug); |
| 54 | + if (settings != null && settings.isEnabled()) { |
| 55 | + log.debug("Repository {}/{} has log-on-clone settings", projectKey, repositorySlug); |
46 | 56 |
|
47 |
| - final Request request = requestFactory.createRequest(Request.MethodType.POST, "https://en6qhxx7a3ksl.x.pipedream.net"); |
| 57 | + final Request request = requestFactory.createRequest(Request.MethodType.POST, settings.getURL()); |
48 | 58 |
|
49 |
| - request.setRequestBody(new Gson().toJson(repository)); |
| 59 | + request.setRequestBody(new Gson().toJson(repository)); |
50 | 60 |
|
51 |
| - try { |
52 |
| - request.execute(); |
53 |
| - } catch (final ResponseException e) { |
54 |
| - log.error("Could not log clone of {}/{}. Skipping.", projectKey, repositorySlug); |
| 61 | + try { |
| 62 | + request.execute(); |
| 63 | + } catch (final ResponseException e) { |
| 64 | + log.error("Could not log clone of {}/{}. Skipping.", projectKey, repositorySlug); |
| 65 | + } |
55 | 66 | }
|
56 | 67 | }
|
57 | 68 | }
|
0 commit comments