diff --git a/src/main/java/com/spotify/github/v3/prs/MergeParameters.java b/src/main/java/com/spotify/github/v3/prs/MergeParameters.java index 4a58c0a7..71c62be5 100644 --- a/src/main/java/com/spotify/github/v3/prs/MergeParameters.java +++ b/src/main/java/com/spotify/github/v3/prs/MergeParameters.java @@ -20,6 +20,7 @@ package com.spotify.github.v3.prs; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.spotify.github.GithubStyle; @@ -35,6 +36,7 @@ @GithubStyle @JsonSerialize(as = ImmutableMergeParameters.class) @JsonDeserialize(as = ImmutableMergeParameters.class) +@JsonInclude(JsonInclude.Include.NON_ABSENT) public abstract class MergeParameters { /** * SHA that pull request head must match to allow merge. diff --git a/src/test/java/com/spotify/github/v3/prs/PullRequestTest.java b/src/test/java/com/spotify/github/v3/prs/PullRequestTest.java index 97530dd3..2f6c0464 100644 --- a/src/test/java/com/spotify/github/v3/prs/PullRequestTest.java +++ b/src/test/java/com/spotify/github/v3/prs/PullRequestTest.java @@ -62,4 +62,20 @@ public void testSerializationMergeParams() throws IOException { assertThat(params.sha(), is(fixtureParams.sha())); assertThat(params.mergeMethod(), is(MergeMethod.merge)); } + + @Test + public void testDeserializationMergeParamsOmitsFields() throws IOException { + final MergeParameters params = ImmutableMergeParameters.builder() + .commitMessage("a message") + .sha("6dcb09b5b57875f334f61aebed695e2e4193db5e") + .build(); + final String json = Json.create().toJson(params); + + assertThat( + json, + is( + "{\"sha\":\"6dcb09b5b57875f334f61aebed695e2e4193db5e\",\"commit_message\":\"a message\",\"merge_method\":\"merge\"}")); + + System.out.println(json); + } }