94 mode = MailingListUpdater.Mode.PR;
95 break;
96 case "pr-only":
97 mode = MailingListUpdater.Mode.PR_ONLY;
98 break;
99 default:
100 throw new RuntimeException("Unknown mode");
101 }
102 }
103
104 Map<String, String> headers = mailinglist.contains("headers") ?
105 mailinglist.get("headers").fields().stream()
106 .collect(Collectors.toMap(JSONObject.Field::name, field -> field.value().asString())) :
107 Map.of();
108 var author = mailinglist.contains("author") ? EmailAddress.parse(mailinglist.get("author").asString()) : null;
109 var allowedDomains = author == null ? Pattern.compile(mailinglist.get("domains").asString()) : null;
110 updaters.add(new MailingListUpdater(listServer.getList(recipient), recipientAddress, sender, author,
111 includeBranchNames, mode, headers, allowedDomains));
112 }
113 }
114
115 if (updaters.isEmpty()) {
116 log.warning("No consumers configured for notify bot repository: " + repoName);
117 continue;
118 }
119
120 var baseName = repo.value().contains("basename") ? repo.value().get("basename").asString() : configuration.repositoryName(repoName);
121
122 var tagStorageBuilder = new StorageBuilder<Tag>(baseName + ".tags.txt")
123 .remoteRepository(databaseRepo, databaseRef, databaseName, databaseEmail, "Added tag for " + repoName);
124 var branchStorageBuilder = new StorageBuilder<ResolvedBranch>(baseName + ".branches.txt")
125 .remoteRepository(databaseRepo, databaseRef, databaseName, databaseEmail, "Added branch hash for " + repoName);
126 var bot = new JNotifyBot(configuration.repository(repoName), configuration.storageFolder(), branchPattern, tagStorageBuilder, branchStorageBuilder, updaters);
127 ret.add(bot);
128 }
129
130 return ret;
131 }
132 }
|
94 mode = MailingListUpdater.Mode.PR;
95 break;
96 case "pr-only":
97 mode = MailingListUpdater.Mode.PR_ONLY;
98 break;
99 default:
100 throw new RuntimeException("Unknown mode");
101 }
102 }
103
104 Map<String, String> headers = mailinglist.contains("headers") ?
105 mailinglist.get("headers").fields().stream()
106 .collect(Collectors.toMap(JSONObject.Field::name, field -> field.value().asString())) :
107 Map.of();
108 var author = mailinglist.contains("author") ? EmailAddress.parse(mailinglist.get("author").asString()) : null;
109 var allowedDomains = author == null ? Pattern.compile(mailinglist.get("domains").asString()) : null;
110 updaters.add(new MailingListUpdater(listServer.getList(recipient), recipientAddress, sender, author,
111 includeBranchNames, mode, headers, allowedDomains));
112 }
113 }
114 if (repo.value().contains("issues")) {
115 var issueProject = configuration.issueProject(repo.value().get("issues").asString());
116 updaters.add(new IssueUpdater(issueProject));
117 }
118
119 if (updaters.isEmpty()) {
120 log.warning("No consumers configured for notify bot repository: " + repoName);
121 continue;
122 }
123
124 var baseName = repo.value().contains("basename") ? repo.value().get("basename").asString() : configuration.repositoryName(repoName);
125
126 var tagStorageBuilder = new StorageBuilder<Tag>(baseName + ".tags.txt")
127 .remoteRepository(databaseRepo, databaseRef, databaseName, databaseEmail, "Added tag for " + repoName);
128 var branchStorageBuilder = new StorageBuilder<ResolvedBranch>(baseName + ".branches.txt")
129 .remoteRepository(databaseRepo, databaseRef, databaseName, databaseEmail, "Added branch hash for " + repoName);
130 var bot = new JNotifyBot(configuration.repository(repoName), configuration.storageFolder(), branchPattern, tagStorageBuilder, branchStorageBuilder, updaters);
131 ret.add(bot);
132 }
133
134 return ret;
135 }
136 }
|