Skip to content
Snippets Groups Projects

feat: Implement scheduled task to reconcile private project data

5 unresolved threads

Resolves #82 (closed)

Merge request reports

Merged by Martin LoweMartin Lowe 2 years ago (Nov 17, 2022 2:57pm UTC)

Loading

Pipeline #12653 passed

Pipeline passed for ceb411b2 on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
99 });
100
101 dao.add(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class)), dtos);
102 }
103
104 MultivaluedMap<String, String> includingParams = new MultivaluedMapImpl<>();
105
106 response.get().forEach(project -> includingParams.add(GitEcaParameterNames.PROJECT_IDS.getName(),
107 Integer.toString(project.getId())));
108
109 // Get by id since project ids never change
110 List<PrivateProjectEvent> results = dao
111 .get(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class), includingParams));
112
113 if (results != null) {
114 List<PrivateProjectEvent> dtos = new ArrayList<>();
  • 79
    80 if (response.isPresent()) {
    81 RequestWrapper wrapper = new FlatRequestWrapper(URI.create("https://api.eclipse.org"));
    82
    83 // Ad ids to be reverse searched against
    84 MultivaluedMap<String, String> excludingParams = new MultivaluedMapImpl<>();
    85
    86 response.get().forEach(project -> excludingParams.add(GitEcaParameterNames.NOT_IN_PROJECT_IDS.getName(),
    87 Integer.toString(project.getId())));
    88
    89 // Get all excluding the ids found on GL
    90 List<PrivateProjectEvent> deletedResults = dao
    91 .get(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class), excludingParams));
    92
    93 if (deletedResults != null) {
    94 List<PrivateProjectEvent> dtos = new ArrayList<>();
  • 91 .get(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class), excludingParams));
    92
    93 if (deletedResults != null) {
    94 List<PrivateProjectEvent> dtos = new ArrayList<>();
    95
    96 deletedResults.forEach(event -> {
    97 event.setDeletionDate(LocalDateTime.now());
    98 dtos.add(event);
    99 });
    100
    101 dao.add(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class)), dtos);
    102 }
    103
    104 MultivaluedMap<String, String> includingParams = new MultivaluedMapImpl<>();
    105
    106 response.get().forEach(project -> includingParams.add(GitEcaParameterNames.PROJECT_IDS.getName(),
  • added 1 commit

    • d6cef0e1 - feat: Update iterations to use streams and maps

    Compare with previous version

  • Martin Lowe
  • 115 dao.add(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class)), dtos);
    116 }
    117 }
    118 } else {
    119 LOGGER.warn("Private project scan task did not run. It has been disabled through configuration.");
    120 }
    121 }
    122
    123 /**
    124 * Takes a PrivatProjectEvent, copies it, updates the deletion date, and returns
    125 * the copy.
    126 *
    127 * @param event The event to update
    128 * @return a PrivateProjectEvent with an updated deletion date
    129 */
    130 private PrivateProjectEvent createDtoWithDeletionDate(PrivateProjectEvent event) {
    • This doesn't do what you think it does. Java uses hard references, so you are modifying the base and returning it, and setting PrivateProjectEvent out = event; does nothing as its not a copy, just a pointer to the same reference. This might as well be in line code

    • Please register or sign in to reply
  • 66 InstanceHandle<DefaultHibernateDao> daoHandle = Arc.container().instance(DefaultHibernateDao.class);
    67 DefaultHibernateDao dao = daoHandle.get();
    68
    69 InstanceHandle<FilterService> filtersHandle = Arc.container().instance(FilterService.class);
    70 FilterService filters = filtersHandle.get();
    71
    72 InstanceHandle<APIMiddleware> middlewareHandle = Arc.container().instance(APIMiddleware.class);
    73 APIMiddleware middleware = middlewareHandle.get();
    74
    75 // Fetch all private projects from GL, while paginating results
    76 Optional<List<GitlabProjectResponse>> response = cache.get("all", new MultivaluedMapImpl<>(),
    77 GitlabProjectResponse.class,
    78 () -> middleware.getAll(p -> api.getPrivateProjects(p, apiToken, "private", 100),
    79 GitlabProjectResponse.class));
    80
    81 if (response.isPresent()) {
  • added 1 commit

    • f1b7bd5e - feat: Reformate task to be more concise

    Compare with previous version

  • Martin Lowe approved this merge request

    approved this merge request

  • merged

  • Martin Lowe mentioned in commit ceb411b2

    mentioned in commit ceb411b2

  • Please register or sign in to reply
    Loading