Skip to content

Commit 1cf55c6

Browse files
committed
swagger ui, old frontend removed, spring updated
1 parent 855867a commit 1cf55c6

File tree

8 files changed

+141
-303
lines changed

8 files changed

+141
-303
lines changed

pom.xml

Lines changed: 62 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,70 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3-
<modelVersion>4.0.0</modelVersion>
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
44

5-
<groupId>com.open-elements</groupId>
6-
<artifactId>issue-service</artifactId>
7-
<version>0.0.1-SNAPSHOT</version>
5+
<groupId>com.open-elements</groupId>
6+
<artifactId>issue-service</artifactId>
7+
<version>0.0.1-SNAPSHOT</version>
88

9-
<properties>
10-
<maven.compiler.source>17</maven.compiler.source>
11-
<maven.compiler.target>17</maven.compiler.target>
12-
</properties>
9+
<properties>
10+
<maven.compiler.source>17</maven.compiler.source>
11+
<maven.compiler.target>17</maven.compiler.target>
12+
</properties>
1313

14+
<dependencyManagement>
1415
<dependencies>
15-
<dependency>
16-
<groupId>org.springframework.boot</groupId>
17-
<artifactId>spring-boot-starter-web</artifactId>
18-
<version>3.3.2</version>
19-
</dependency>
20-
<dependency>
21-
<groupId>org.jspecify</groupId>
22-
<artifactId>jspecify</artifactId>
23-
<version>1.0.0</version>
24-
<scope>compile</scope>
25-
</dependency>
26-
<dependency>
27-
<groupId>org.springframework.boot</groupId>
28-
<artifactId>spring-boot-starter-test</artifactId>
29-
<version>3.3.2</version>
30-
<scope>test</scope>
31-
</dependency>
16+
<dependency>
17+
<groupId>org.springframework.boot</groupId>
18+
<artifactId>spring-boot-dependencies</artifactId>
19+
<version>3.4.4</version>
20+
<type>pom</type>
21+
<scope>import</scope>
22+
</dependency>
3223
</dependencies>
24+
</dependencyManagement>
3325

34-
<build>
35-
<plugins>
36-
<plugin>
37-
<groupId>org.apache.maven.plugins</groupId>
38-
<artifactId>maven-compiler-plugin</artifactId>
39-
<version>3.11.0</version>
40-
<configuration>
41-
<parameters>true</parameters>
42-
</configuration>
43-
</plugin>
44-
<plugin>
45-
<groupId>org.springframework.boot</groupId>
46-
<artifactId>spring-boot-maven-plugin</artifactId>
47-
<version>3.3.2</version>
48-
<executions>
49-
<execution>
50-
<id>repackage</id>
51-
<goals>
52-
<goal>repackage</goal>
53-
</goals>
54-
</execution>
55-
</executions>
56-
</plugin>
57-
</plugins>
58-
</build>
26+
<dependencies>
27+
<dependency>
28+
<groupId>org.springframework.boot</groupId>
29+
<artifactId>spring-boot-starter-web</artifactId>
30+
</dependency>
31+
<dependency>
32+
<groupId>org.springdoc</groupId>
33+
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
34+
<version>2.8.5</version>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.jspecify</groupId>
38+
<artifactId>jspecify</artifactId>
39+
<version>1.0.0</version>
40+
<scope>compile</scope>
41+
</dependency>
42+
<dependency>
43+
<groupId>org.springframework.boot</groupId>
44+
<artifactId>spring-boot-starter-test</artifactId>
45+
<scope>test</scope>
46+
</dependency>
47+
</dependencies>
48+
49+
<build>
50+
<plugins>
51+
<plugin>
52+
<groupId>org.apache.maven.plugins</groupId>
53+
<artifactId>maven-compiler-plugin</artifactId>
54+
<version>3.14.0</version>
55+
</plugin>
56+
<plugin>
57+
<groupId>org.springframework.boot</groupId>
58+
<artifactId>spring-boot-maven-plugin</artifactId>
59+
<executions>
60+
<execution>
61+
<id>repackage</id>
62+
<goals>
63+
<goal>repackage</goal>
64+
</goals>
65+
</execution>
66+
</executions>
67+
</plugin>
68+
</plugins>
69+
</build>
5970
</project>

src/main/java/com/openelements/issues/ApiEndpoint.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
import java.util.stream.Collectors;
99
import org.jspecify.annotations.NonNull;
1010
import org.slf4j.Logger;
11-
import org.springframework.web.bind.annotation.CrossOrigin;
1211
import org.springframework.web.bind.annotation.GetMapping;
1312
import org.springframework.web.bind.annotation.RequestParam;
1413
import org.springframework.web.bind.annotation.RestController;
1514

1615
@RestController
17-
@CrossOrigin
1816
public class ApiEndpoint {
1917

2018
private final static Logger log = org.slf4j.LoggerFactory.getLogger(ApiEndpoint.class);
@@ -40,19 +38,23 @@ public long getContributorCount() {
4038

4139
@GetMapping("/api/v2/issues")
4240
public Set<Issue> getIssues(
43-
@RequestParam(name = "isAssigned", required = false) Boolean isAssigned,
44-
@RequestParam(name = "isClosed", required = false) Boolean isClosed,
45-
@RequestParam(name = "filteredLabels", required = false) Set<String> filteredLabels,
46-
@RequestParam(name = "excludedLabels", required = false) Set<String> excludedLabels,
41+
@RequestParam(name = "isAssigned", required = false) Boolean isAssigned,
42+
@RequestParam(name = "isClosed", required = false) Boolean isClosed,
43+
@RequestParam(name = "filteredLabels", required = false) Set<String> filteredLabels,
44+
@RequestParam(name = "excludedLabels", required = false) Set<String> excludedLabels,
4745
@RequestParam(name = "filteredLanguages", required = false) Set<String> filteredLanguages) {
48-
log.info("Getting issues with filters - isAssigned: {}, isClosed: {}, filteredLabels: {}, excludedLabels: {}, filteredLanguages: {}",
49-
isAssigned, isClosed, filteredLabels, excludedLabels, filteredLanguages);
46+
log.info(
47+
"Getting issues with filters - isAssigned: {}, isClosed: {}, filteredLabels: {}, excludedLabels: {}, filteredLanguages: {}",
48+
isAssigned, isClosed, filteredLabels, excludedLabels, filteredLanguages);
5049
return issueCache.getAllIssues().stream()
5150
.filter(issue -> isAssigned == null || issue.isAssigned() == isAssigned)
5251
.filter(issue -> isClosed == null || issue.isClosed() == isClosed)
53-
.filter(issue -> filteredLabels == null || filteredLabels.isEmpty() || issue.labels().containsAll(filteredLabels))
54-
.filter(issue -> excludedLabels == null || excludedLabels.isEmpty() || issue.labels().stream().noneMatch(excludedLabels::contains))
55-
.filter(issue -> filteredLanguages == null || filteredLanguages.isEmpty() || issue.repository().languages().containsAll(filteredLanguages))
52+
.filter(issue -> filteredLabels == null || filteredLabels.isEmpty() || issue.labels()
53+
.containsAll(filteredLabels))
54+
.filter(issue -> excludedLabels == null || excludedLabels.isEmpty() || issue.labels().stream()
55+
.noneMatch(excludedLabels::contains))
56+
.filter(issue -> filteredLanguages == null || filteredLanguages.isEmpty() || issue.repository()
57+
.languages().containsAll(filteredLanguages))
5658
.collect(Collectors.toUnmodifiableSet());
5759
}
5860

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.openelements.issues;
2+
3+
import org.jspecify.annotations.NonNull;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
import org.springframework.context.annotation.Configuration;
7+
import org.springframework.web.servlet.config.annotation.CorsRegistry;
8+
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
9+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
10+
11+
// SPDX-License-Identifier: Apache-2.0
12+
13+
@Configuration
14+
public class WebConfiguration implements WebMvcConfigurer {
15+
16+
/**
17+
* Logger for this class.
18+
*/
19+
private final Logger log = LoggerFactory.getLogger(getClass());
20+
21+
/**
22+
* Default constructor.
23+
*/
24+
@Override
25+
public void addViewControllers(ViewControllerRegistry registry) {
26+
registry.addRedirectViewController("/", "/swagger-ui/index.html");
27+
}
28+
29+
/**
30+
* Configure CORS settings for the application.
31+
*
32+
* @param registry the CorsRegistry to configure
33+
*/
34+
@Override
35+
public void addCorsMappings(@NonNull final CorsRegistry registry) {
36+
log.info("Configuring CORS mappings");
37+
registry.addMapping("/**")
38+
.allowedOrigins("*")
39+
.allowedMethods("*")
40+
.allowedHeaders("*")
41+
.exposedHeaders("*");
42+
}
43+
}

src/main/java/com/openelements/issues/LabelConstants.java renamed to src/main/java/com/openelements/issues/data/LabelConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.openelements.issues;
1+
package com.openelements.issues.data;
22

33
public interface LabelConstants {
44
String GOOD_FIRST_ISSUE_LABEL = "good first issue";

src/main/java/com/openelements/issues/services/GitHubCache.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.openelements.issues.services;
22

3-
import static com.openelements.issues.LabelConstants.GOOD_FIRST_ISSUE_CANDIDATE_LABEL;
4-
import static com.openelements.issues.LabelConstants.GOOD_FIRST_ISSUE_LABEL;
5-
import static com.openelements.issues.LabelConstants.HACKTOBERFEST_LABEL;
6-
import static com.openelements.issues.LabelConstants.HELP_WANTED_LABEL;
3+
import static com.openelements.issues.data.LabelConstants.GOOD_FIRST_ISSUE_CANDIDATE_LABEL;
4+
import static com.openelements.issues.data.LabelConstants.GOOD_FIRST_ISSUE_LABEL;
5+
import static com.openelements.issues.data.LabelConstants.HACKTOBERFEST_LABEL;
6+
import static com.openelements.issues.data.LabelConstants.HELP_WANTED_LABEL;
77

88
import com.openelements.issues.config.IssueServiceProperties;
99
import com.openelements.issues.config.RepositoryProperty;
@@ -54,11 +54,16 @@ public GitHubCache(@NonNull final IssueServiceProperties properties, final GitHu
5454
final List<RepositoryProperty> repos = properties.getRepositories();
5555
repos.forEach(repo -> updateRepo(repo.org(), repo.repo()));
5656
repos.forEach(repo -> updateContributors(repo.org(), repo.repo()));
57-
repos.forEach(repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(), GOOD_FIRST_ISSUE_LABEL));
58-
repos.forEach(repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(), GOOD_FIRST_ISSUE_CANDIDATE_LABEL));
59-
repos.forEach(repo -> updateIssues(repo.org(), repo.repo(),repo.excludeIdentifiers(), HACKTOBERFEST_LABEL));
60-
repos.forEach(repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(), HELP_WANTED_LABEL));
61-
log.info("Cache updated. Found {} contributors and {} issues", getContributors().size(), getAllIssues().size());
57+
repos.forEach(repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(),
58+
GOOD_FIRST_ISSUE_LABEL));
59+
repos.forEach(repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(),
60+
GOOD_FIRST_ISSUE_CANDIDATE_LABEL));
61+
repos.forEach(
62+
repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(), HACKTOBERFEST_LABEL));
63+
repos.forEach(
64+
repo -> updateIssues(repo.org(), repo.repo(), repo.excludeIdentifiers(), HELP_WANTED_LABEL));
65+
log.info("Cache updated. Found {} contributors and {} issues", getContributors().size(),
66+
getAllIssues().size());
6267
} catch (final Exception e) {
6368
log.error("Failed to update cache", e);
6469
}
@@ -84,7 +89,8 @@ private void updateContributors(@NonNull final String org, @NonNull final String
8489
}
8590
}
8691

87-
private void updateIssues(@NonNull final String org, @NonNull final String repo, @Nullable List<String> excludedIdentifiers, @NonNull final String label) {
92+
private void updateIssues(@NonNull final String org, @NonNull final String repo,
93+
@Nullable List<String> excludedIdentifiers, @NonNull final String label) {
8894
try {
8995
log.info("Updating issues cache for repo '{}/{}' with label '{}'", org, repo, label);
9096
final Repository repository = gitHubClient.getRepository(org, repo);

src/main/resources/application.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
server:
22
port=${PORT:8080}
3+
forward-headers-strategy=framework
34
hacktoberfest:
4-
repositories:
5-
- org: ClyCites
6-
repo: ClyCites-Frontend
7-
- org: ClyCites
8-
repo: ClyCites-api
5+
repositories:
6+
- org: ClyCites
7+
repo: ClyCites-Frontend
8+
- org: ClyCites
9+
repo: ClyCites-api
910

1011
github:
1112
token: ${GITHUB_TOKEN:}
12-
13-

src/main/resources/static/contributors.html

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)