danger / kotlin

⚠️ Stop saying "you forgot to …" in code review
MIT License
489 stars 48 forks source link

GitHubCommit: author and commiter can be empty objects #249

Open Vacxe opened 1 year ago

Vacxe commented 1 year ago
14:59:34   kotlinx.serialization.MissingFieldException: Fields [id, login, type, avatar_url] are required for type with serial name 'systems.danger.kotlin.models.github.GitHubUser', but they were missing
14:59:34   
14:59:34     at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
14:59:34     at systems.danger.kotlin.models.github.GitHubUser.<init>(GitHub.kt:294)
14:59:34     at systems.danger.kotlin.models.github.GitHubUser$$serializer.deserialize(GitHub.kt:294)
14:59:34     at systems.danger.kotlin.models.github.GitHubUser$$serializer.deserialize(GitHub.kt:294)
14:59:34     at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
14:59:34     at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
14:59:34     at systems.danger.kotlin.models.github.GitHubCommit$$serializer.deserialize(GitHub.kt:195)
14:59:34     at systems.danger.kotlin.models.github.GitHubCommit$$serializer.deserialize(GitHub.kt:195)
14:59:34     at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
14:59:34     at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
14:59:34     at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:535)
14:59:34   
14:59:34     at kotlinx.serialization.internal.ListLikeSerializer.readElement(CollectionSerializers.kt:80)
14:59:34     at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
14:59:34     at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
14:59:34     at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
14:59:34     at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
14:59:34     at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
14:59:34   
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
14:59:34     at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt:13)
14:59:34     at systems.danger.kotlin.models.github.GitHub$$serializer.deserialize(GitHub.kt:13)
14:59:34   
14:59:34     at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
14:59:34     at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
14:59:34   
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)
14:59:34     at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:15)
14:59:34     at systems.danger.kotlin.models.danger.DangerDSL$$serializer.deserialize(DangerDSL.kt:15)
14:59:34   
14:59:34     at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
14:59:34     at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
14:59:34     at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
14:59:34   
14:59:34     at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:10)
14:59:34     at systems.danger.kotlin.models.danger.DSL$$serializer.deserialize(DangerDSL.kt:10)
14:59:34     at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
14:59:34   
14:59:34     at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36)
14:59:34     at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100)
14:59:34     at systems.danger.kotlin.MainDangerRunner.<init>(MainDangerRunner.kt:131)
14:59:34     at systems.danger.kotlin.MainScriptKt.Danger(MainScript.kt:50)
14:59:34   
14:59:34     at Pr_df.<init>(pr.df.kts:40)

For Commit object author and committer can be empty

 {
    ...
    "author": {},
    "committer": {},
..
  }

That can happens if commit verification have usigned status when git configuration missed --global user.email parameter

Vacxe commented 1 year ago

Ref: https://github.com/orgs/community/discussions/57497