From c08e8a1ab966e56a102a2ade341c9f6c745bb67e Mon Sep 17 00:00:00 2001 From: Martin Lowe <martin.lowe@eclipse-foundation.org> Date: Fri, 6 Jun 2025 11:58:50 -0400 Subject: [PATCH] feat: Add optional sustainer_commitment field to working group resources Resolves https://gitlab.eclipse.org/eclipsefdn/it/websites/eclipse.org/-/issues/816#note_4108962 --- spec/openapi.yaml | 5 + .../wg/models/WorkingGroup.java | 112 +++++++++--------- src/main/resources/working_groups.json | 3 +- 3 files changed, 63 insertions(+), 57 deletions(-) diff --git a/spec/openapi.yaml b/spec/openapi.yaml index 2d2fee8..118664e 100644 --- a/spec/openapi.yaml +++ b/spec/openapi.yaml @@ -279,6 +279,11 @@ components: website: type: string description: the URL for the homepage of this working group + sustainer_commitment: + type: + - string + - "null" + description: the URL for the sustainer commitment for the working group, optional WorkingGroupParticipationAgreements: type: object diff --git a/src/main/java/org/eclipsefoundation/wg/models/WorkingGroup.java b/src/main/java/org/eclipsefoundation/wg/models/WorkingGroup.java index 1bc8573..4fc7d97 100644 --- a/src/main/java/org/eclipsefoundation/wg/models/WorkingGroup.java +++ b/src/main/java/org/eclipsefoundation/wg/models/WorkingGroup.java @@ -18,75 +18,75 @@ import com.fasterxml.jackson.annotation.JsonProperty; * Entity representing a working group. */ public record WorkingGroup(String alias, String title, String status, String logo, String description, String parentOrganization, - WorkingGroupResources resources, List<WorkingGroupParticipationLevel> levels) { + WorkingGroupResources resources, List<WorkingGroupParticipationLevel> levels) { - public WorkingGroup { - Objects.requireNonNull(alias); - Objects.requireNonNull(title); - Objects.requireNonNull(status); - Objects.requireNonNull(logo); - Objects.requireNonNull(description); - Objects.requireNonNull(parentOrganization); - Objects.requireNonNull(resources); - Objects.requireNonNull(levels); - } + public WorkingGroup { + Objects.requireNonNull(alias); + Objects.requireNonNull(title); + Objects.requireNonNull(status); + Objects.requireNonNull(logo); + Objects.requireNonNull(description); + Objects.requireNonNull(parentOrganization); + Objects.requireNonNull(resources); + Objects.requireNonNull(levels); + } - /** - * Entity representing a Working Group committee - */ - public record WorkingGroupCommittee(String groupPrefix, String workingGroup, CommitteeRole appointedPrimary, - CommitteeRole appointedAlternate, CommitteeRole electedPrimary, CommitteeRole electedAlternate, CommitteeRole invitedGuest, - CommitteeRole committerRepresentative) { + /** + * Entity representing a Working Group committee + */ + public record WorkingGroupCommittee(String groupPrefix, String workingGroup, CommitteeRole appointedPrimary, + CommitteeRole appointedAlternate, CommitteeRole electedPrimary, CommitteeRole electedAlternate, CommitteeRole invitedGuest, + CommitteeRole committerRepresentative) { - public WorkingGroupCommittee { - Objects.requireNonNull(groupPrefix); - Objects.requireNonNull(workingGroup); - } + public WorkingGroupCommittee { + Objects.requireNonNull(groupPrefix); + Objects.requireNonNull(workingGroup); } + } - /** - * Entity representing a working group participation agreement. - */ - public record WorkingGroupParticipationAgreement(@JsonProperty("document_id") String documentId, String pdf) { + /** + * Entity representing a working group participation agreement. + */ + public record WorkingGroupParticipationAgreement(@JsonProperty("document_id") String documentId, String pdf) { - public WorkingGroupParticipationAgreement { - Objects.requireNonNull(documentId); - Objects.requireNonNull(pdf); - } + public WorkingGroupParticipationAgreement { + Objects.requireNonNull(documentId); + Objects.requireNonNull(pdf); } + } - /** - * Entity representing a working group's participation agreements. - */ - public record WorkingGroupParticipationAgreements(WorkingGroupParticipationAgreement individual, - WorkingGroupParticipationAgreement organization) { + /** + * Entity representing a working group's participation agreements. + */ + public record WorkingGroupParticipationAgreements(WorkingGroupParticipationAgreement individual, + WorkingGroupParticipationAgreement organization) { - } + } - /** - * Entity representing a working group's resources. - */ - public record WorkingGroupResources(String charter, String website, String members, String sponsorship, String contactForm, - WorkingGroupParticipationAgreements participationAgreements) { + /** + * Entity representing a working group's resources. + */ + public record WorkingGroupResources(String charter, String website, String members, String sponsorship, String contactForm, + String sustainerCommitment, WorkingGroupParticipationAgreements participationAgreements) { - public WorkingGroupResources { - Objects.requireNonNull(charter); - Objects.requireNonNull(website); - Objects.requireNonNull(members); - Objects.requireNonNull(sponsorship); - Objects.requireNonNull(contactForm); - Objects.requireNonNull(participationAgreements); - } + public WorkingGroupResources { + Objects.requireNonNull(charter); + Objects.requireNonNull(website); + Objects.requireNonNull(members); + Objects.requireNonNull(sponsorship); + Objects.requireNonNull(contactForm); + Objects.requireNonNull(participationAgreements); } + } - /** - * Entity representing a working group participation level. - */ - public record WorkingGroupParticipationLevel(String relation, String description) { + /** + * Entity representing a working group participation level. + */ + public record WorkingGroupParticipationLevel(String relation, String description) { - public WorkingGroupParticipationLevel { - Objects.requireNonNull(relation); - Objects.requireNonNull(description); - } + public WorkingGroupParticipationLevel { + Objects.requireNonNull(relation); + Objects.requireNonNull(description); } + } } diff --git a/src/main/resources/working_groups.json b/src/main/resources/working_groups.json index 9aca08f..9c049d5 100644 --- a/src/main/resources/working_groups.json +++ b/src/main/resources/working_groups.json @@ -19,7 +19,8 @@ "website": "https://adoptium.net", "members": "https://adoptium.net/members.html", "sponsorship": "https://www.eclipse.org/org/workinggroups/sponsorship/working-group-sponsorship-agreement.pdf", - "contact_form": "https://accounts.eclipse.org/contact/membership" + "contact_form": "https://accounts.eclipse.org/contact/membership", + "sustainer_commitment": "https://www.eclipse.org/org/working-groups/adoptium/eclipse-temurin-sustainer-commitment.pdf" }, "levels": [ { -- GitLab