octokit / webhooks.net

GitHub webhook events toolset for .NET
MIT License
49 stars 31 forks source link

[BUG]: Exceptions thrown when processing `package` events #178

Closed PromoFaux closed 1 year ago

PromoFaux commented 1 year ago

What happened?

Spotted some errors processing package events this morning

image

I have not dug into this yet as I am at work - but posting here for tracking. I'm not currently consuming these payloads - we're just set up to send everything

Example payload from `package.published` ```json { "action": "published", "package": { "id": 1118375, "name": "pihole", "namespace": "pi-hole", "description": "", "ecosystem": "CONTAINER", "package_type": "CONTAINER", "html_url": "https://github.com/pi-hole/packages/1118375", "created_at": "2021-11-18T01:15:49Z", "updated_at": "2021-11-18T01:15:49Z", "owner": { "login": "pi-hole", "id": 16827203, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2ODI3MjAz", "avatar_url": "https://avatars.githubusercontent.com/u/16827203?v=4", "gravatar_id": "", "url": "https://api.github.com/users/pi-hole", "html_url": "https://github.com/pi-hole", "followers_url": "https://api.github.com/users/pi-hole/followers", "following_url": "https://api.github.com/users/pi-hole/following{/other_user}", "gists_url": "https://api.github.com/users/pi-hole/gists{/gist_id}", "starred_url": "https://api.github.com/users/pi-hole/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/pi-hole/subscriptions", "organizations_url": "https://api.github.com/users/pi-hole/orgs", "repos_url": "https://api.github.com/users/pi-hole/repos", "events_url": "https://api.github.com/users/pi-hole/events{/privacy}", "received_events_url": "https://api.github.com/users/pi-hole/received_events", "type": "Organization", "site_admin": false }, "package_version": { "id": 57755790, "version": "sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef", "name": "sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef", "description": "Pi-hole in a docker container", "summary": "Pi-hole in a docker container", "body": { "repository": { "repository": { "id": 50894333, "name": "docker-pi-hole", "owner_id": 16827203, "parent_id": null, "sandbox": null, "updated_at": "2022-12-08T01:18:24.000Z", "created_at": "2016-02-02T04:33:35.000Z", "public": true, "description": "Pi-hole in a docker container", "homepage": "https://pi-hole.net", "source_id": 122035788, "public_push": null, "disk_usage": 1503, "locked": false, "pushed_at": "2022-11-30T22:40:28.000Z", "watcher_count": 5955, "public_fork_count": 1001, "primary_language_name_id": 139, "has_issues": true, "has_wiki": true, "has_downloads": true, "raw_data": { "data": { "created_by_user_id": 868002, "primary_language_name": "Shell", "completed_onboarding_tasks": [ ] } }, "organization_id": 16827203, "disabled_at": null, "disabled_by": null, "disabling_reason": null, "health_status": "ok", "pushed_at_usec": 57989, "active": true, "reflog_sync_enabled": false, "made_public_at": null, "user_hidden": 0, "maintained": true, "template": false, "owner_login": "pi-hole", "world_writable_wiki": false, "refset_updated_at": "2022-11-30T22:38:31.361Z", "disabling_detail": null, "archived_at": null } }, "info": { "type": "blob", "oid": "326b0e08c815245a11be4b399c51e419f334f569", "mode": 33188, "name": "README.md", "path": "README.md", "size": null, "collection": true }, "attributes": { }, "_formatted": true }, "manifest": "", "html_url": "https://github.com/orgs/pi-hole/packages/container/pihole/57755790", "target_commitish": "master", "target_oid": "a787e29aad4604a42eee6f553fd6df6f08461b1e", "created_at": "0001-01-01T00:00:00Z", "updated_at": "0001-01-01T00:00:00Z", "metadata": [ ], "container_metadata": { "tag": { "name": "", "digest": "sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef" }, "labels": { "description": "Pi-hole in a docker container", "source": "https://github.com/pi-hole/docker-pi-hole", "revision": "", "image_url": "https://github.com/pi-hole/docker-pi-hole", "licenses": "", "all_labels": { "org.opencontainers.image.url": "https://github.com/pi-hole/docker-pi-hole", "org.opencontainers.image.licenses": "", "org.opencontainers.image.title": "docker-pi-hole", "org.opencontainers.image.revision": "a787e29aad4604a42eee6f553fd6df6f08461b1e", "org.opencontainers.image.created": "2022-12-08T02:26:18.143Z", "org.opencontainers.image.version": "nightly", "org.opencontainers.image.description": "Pi-hole in a docker container", "org.opencontainers.image.source": "https://github.com/pi-hole/docker-pi-hole" } }, "manifest": { "digest": "sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef", "media_type": "application/vnd.docker.distribution.manifest.v2+json", "uri": "repositories/pi-hole/pihole/manifests/sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef", "size": 1782, "config": { "digest": "sha256:37e1478a8ffb0513113dbbb172bfafdf56ba24014a671921a2593d83da7a0608", "media_type": "application/vnd.docker.container.image.v1+json", "size": 7205 }, "layers": [ { "digest": "sha256:fd18d0201d0ce0c5e103902d894f5d601fc5dde76688aa7dae786840141d23e4", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 26576195 }, { "digest": "sha256:0fa20a868a60ceb7bc8a95981a4bd56fac4c2d9de1f8745eae546146e48a8e0f", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 51166445 }, { "digest": "sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 32 }, { "digest": "sha256:2ad7497455cdab76764a94c36fa2fc898c146b4d996bbd01beda28ca303e8a62", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 130 }, { "digest": "sha256:f09600ea01bd4ba5ef2a7d3690c7d46147b924e680cc9034194263b86f3d6bd7", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 12202 }, { "digest": "sha256:783c2f94749191f27129ee0bb80ff4db26f49af8a82aa67c85fc9444ce189d0c", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 727 }, { "digest": "sha256:3d98f361b22ebdff75986009b3077e5590d90ea81c9df95d0cf9e311436add74", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 41670773 } ] } }, "package_files": [ ], "installation_command": "docker pull ghcr.io/pi-hole/pihole:", "package_url": "ghcr.io/pi-hole/pihole:" }, "registry": { "about_url": "https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages", "name": "GitHub CONTAINER registry", "type": "CONTAINER", "url": "https://CONTAINER.pkg.github.com/pi-hole", "vendor": "GitHub Inc" } }, "repository": { "id": 50894333, "node_id": "MDEwOlJlcG9zaXRvcnk1MDg5NDMzMw==", "name": "docker-pi-hole", "full_name": "pi-hole/docker-pi-hole", "private": false, "owner": { "login": "pi-hole", "id": 16827203, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2ODI3MjAz", "avatar_url": "https://avatars.githubusercontent.com/u/16827203?v=4", "gravatar_id": "", "url": "https://api.github.com/users/pi-hole", "html_url": "https://github.com/pi-hole", "followers_url": "https://api.github.com/users/pi-hole/followers", "following_url": "https://api.github.com/users/pi-hole/following{/other_user}", "gists_url": "https://api.github.com/users/pi-hole/gists{/gist_id}", "starred_url": "https://api.github.com/users/pi-hole/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/pi-hole/subscriptions", "organizations_url": "https://api.github.com/users/pi-hole/orgs", "repos_url": "https://api.github.com/users/pi-hole/repos", "events_url": "https://api.github.com/users/pi-hole/events{/privacy}", "received_events_url": "https://api.github.com/users/pi-hole/received_events", "type": "Organization", "site_admin": false }, "html_url": "https://github.com/pi-hole/docker-pi-hole", "description": "Pi-hole in a docker container", "fork": false, "url": "https://api.github.com/repos/pi-hole/docker-pi-hole", "forks_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/forks", "keys_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/teams", "hooks_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/hooks", "issue_events_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/issues/events{/number}", "events_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/events", "assignees_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/assignees{/user}", "branches_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/branches{/branch}", "tags_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/tags", "blobs_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/refs{/sha}", "trees_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/statuses/{sha}", "languages_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/languages", "stargazers_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/stargazers", "contributors_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/contributors", "subscribers_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/subscribers", "subscription_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/subscription", "commits_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/commits{/sha}", "git_commits_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/commits{/sha}", "comments_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/comments{/number}", "issue_comment_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/issues/comments{/number}", "contents_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/contents/{+path}", "compare_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/merges", "archive_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/downloads", "issues_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/issues{/number}", "pulls_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/pulls{/number}", "milestones_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/milestones{/number}", "notifications_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/labels{/name}", "releases_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/releases{/id}", "deployments_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/deployments", "created_at": "2016-02-02T04:33:35Z", "updated_at": "2022-12-08T01:18:24Z", "pushed_at": "2022-11-30T22:40:28Z", "git_url": "git://github.com/pi-hole/docker-pi-hole.git", "ssh_url": "git@github.com:pi-hole/docker-pi-hole.git", "clone_url": "https://github.com/pi-hole/docker-pi-hole.git", "svn_url": "https://github.com/pi-hole/docker-pi-hole", "homepage": "https://pi-hole.net", "size": 1503, "stargazers_count": 5955, "watchers_count": 5955, "language": "Shell", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": false, "has_discussions": true, "forks_count": 1001, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 32, "license": null, "allow_forking": true, "is_template": false, "web_commit_signoff_required": true, "topics": [ "ad-blocker", "dns", "docker-container", "hacktoberfest", "pi-hole", "web-app" ], "visibility": "public", "forks": 1001, "open_issues": 32, "watchers": 5955, "default_branch": "master" }, "organization": { "login": "pi-hole", "id": 16827203, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2ODI3MjAz", "url": "https://api.github.com/orgs/pi-hole", "repos_url": "https://api.github.com/orgs/pi-hole/repos", "events_url": "https://api.github.com/orgs/pi-hole/events", "hooks_url": "https://api.github.com/orgs/pi-hole/hooks", "issues_url": "https://api.github.com/orgs/pi-hole/issues", "members_url": "https://api.github.com/orgs/pi-hole/members{/member}", "public_members_url": "https://api.github.com/orgs/pi-hole/public_members{/member}", "avatar_url": "https://avatars.githubusercontent.com/u/16827203?v=4", "description": "A black hole for Internet advertisements" }, "sender": { "login": "github-actions[bot]", "id": 41898282, "node_id": "MDM6Qm90NDE4OTgyODI=", "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", "gravatar_id": "", "url": "https://api.github.com/users/github-actions%5Bbot%5D", "html_url": "https://github.com/apps/github-actions", "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", "type": "Bot", "site_admin": false } } ```

Versions

Octokit.Webhooks.AspNetCore v1.3.5

Relevant log output

2022-12-08T02:33:06.037353338Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:06.037386381Z       Exception processing GitHub event.
2022-12-08T02:33:06.037391178Z       System.Text.Json.JsonException: Unable to deserialize event
2022-12-08T02:33:06.037396873Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:06.037401123Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:06.037405235Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:06.037410055Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:06.037414052Z       Exception processing GitHub event.
2022-12-08T02:33:06.037417961Z       System.Text.Json.JsonException: Unable to deserialize event
2022-12-08T02:33:06.037421900Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:06.037425981Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:06.037430005Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:06.038401753Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:06.038422502Z       Exception processing GitHub event.
2022-12-08T02:33:06.038427401Z       System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.package.package_version.body | LineNumber: 0 | BytePositionInLine: 1499.
2022-12-08T02:33:06.038431771Z        ---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
2022-12-08T02:33:06.038436355Z          at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
2022-12-08T02:33:06.038440547Z          at System.Text.Json.Utf8JsonReader.GetString()
2022-12-08T02:33:06.038467633Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:06.038472009Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038476020Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038479869Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:06.038483556Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038487293Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038491033Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:06.038494672Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038499059Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038502940Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.038506687Z          --- End of inner exception stack trace ---
2022-12-08T02:33:06.038510093Z          at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
2022-12-08T02:33:06.038513725Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.038517339Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.038520981Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:06.038524517Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:06.038528001Z          at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
2022-12-08T02:33:06.038531507Z          at Octokit.Webhooks.Converter.WebhookConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
2022-12-08T02:33:06.038539123Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.038542979Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.038546594Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:06.038550133Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:06.038553645Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:06.038561231Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:06.038564772Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:06.903409720Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:06.903439744Z       Exception processing GitHub event.
2022-12-08T02:33:06.903444546Z       System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.package.package_version.body | LineNumber: 0 | BytePositionInLine: 1499.
2022-12-08T02:33:06.903448712Z        ---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
2022-12-08T02:33:06.903452956Z          at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
2022-12-08T02:33:06.903456716Z          at System.Text.Json.Utf8JsonReader.GetString()
2022-12-08T02:33:06.903460324Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:06.903464325Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903468346Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903472306Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:06.903476138Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903480057Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903483990Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:06.903501309Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903506154Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903510084Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.903513952Z          --- End of inner exception stack trace ---
2022-12-08T02:33:06.903517460Z          at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
2022-12-08T02:33:06.903521240Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.903524963Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.903528739Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:06.903532445Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:06.903536059Z          at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
2022-12-08T02:33:06.903539690Z          at Octokit.Webhooks.Converter.WebhookConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
2022-12-08T02:33:06.903543431Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:06.903547199Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:06.903550935Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:06.903554579Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:06.903558181Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:06.903561728Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:06.903565337Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:07.007236129Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:07.007264222Z       Exception processing GitHub event.
2022-12-08T02:33:07.007269459Z       System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.package.package_version.body | LineNumber: 0 | BytePositionInLine: 1499.
2022-12-08T02:33:07.007288436Z        ---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
2022-12-08T02:33:07.007293103Z          at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
2022-12-08T02:33:07.007297166Z          at System.Text.Json.Utf8JsonReader.GetString()
2022-12-08T02:33:07.007301049Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:07.007305821Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007310498Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007326900Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:07.007331545Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007335661Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007339467Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:07.007343222Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007348075Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007352010Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:07.007355840Z          --- End of inner exception stack trace ---
2022-12-08T02:33:07.007359283Z          at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
2022-12-08T02:33:07.007362990Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:07.007366614Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:07.007370223Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:07.007377881Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:07.007381714Z          at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
2022-12-08T02:33:07.007385267Z          at Octokit.Webhooks.Converter.WebhookConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
2022-12-08T02:33:07.007388946Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:07.007392693Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:07.007396349Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:07.007399948Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:07.007403445Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:07.007406917Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:07.007410424Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:07.042903479Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:07.042940029Z       Exception processing GitHub event.
2022-12-08T02:33:07.042944414Z       System.Text.Json.JsonException: Unable to deserialize event
2022-12-08T02:33:07.042948223Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:07.042952193Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:07.042956123Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:07.213504686Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:07.213531560Z       Exception processing GitHub event.
2022-12-08T02:33:07.213536305Z       System.Text.Json.JsonException: Unable to deserialize event
2022-12-08T02:33:07.213540861Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:07.213545258Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:07.213549565Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:07.876018590Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:07.876063183Z       Exception processing GitHub event.
2022-12-08T02:33:07.876067687Z       System.Text.Json.JsonException: Unable to deserialize event
2022-12-08T02:33:07.876071282Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:07.876074793Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:07.876078277Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:08.149588450Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:08.149618512Z       Exception processing GitHub event.
2022-12-08T02:33:08.149627724Z       System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.package.package_version.body | LineNumber: 0 | BytePositionInLine: 1499.
2022-12-08T02:33:08.149632177Z        ---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
2022-12-08T02:33:08.149636702Z          at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
2022-12-08T02:33:08.149640459Z          at System.Text.Json.Utf8JsonReader.GetString()
2022-12-08T02:33:08.149644177Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.149649697Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149654940Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149658963Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.149662836Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149666725Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149670535Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.149674376Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149679359Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149699996Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.149703874Z          --- End of inner exception stack trace ---
2022-12-08T02:33:08.149707306Z          at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
2022-12-08T02:33:08.149710982Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.149714616Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.149718274Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:08.149721882Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:08.149725392Z          at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
2022-12-08T02:33:08.149729452Z          at Octokit.Webhooks.Converter.WebhookConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
2022-12-08T02:33:08.149733155Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.149736897Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.149740581Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:08.149744147Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:08.149747763Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:08.149752303Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:08.149757304Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:08.202677775Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:08.202704590Z       Exception processing GitHub event.
2022-12-08T02:33:08.202709153Z       System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.package.package_version.body | LineNumber: 0 | BytePositionInLine: 1499.
2022-12-08T02:33:08.202713574Z        ---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
2022-12-08T02:33:08.202717675Z          at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
2022-12-08T02:33:08.202735696Z          at System.Text.Json.Utf8JsonReader.GetString()
2022-12-08T02:33:08.202739362Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.202743127Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202747041Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202750817Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.202754527Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202758329Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202762061Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.202765722Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202770144Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202774000Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.202777738Z          --- End of inner exception stack trace ---
2022-12-08T02:33:08.202781154Z          at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
2022-12-08T02:33:08.202784816Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.202788474Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.202792105Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:08.202795866Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:08.202799409Z          at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
2022-12-08T02:33:08.202802906Z          at Octokit.Webhooks.Converter.WebhookConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
2022-12-08T02:33:08.202810332Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.202814133Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.202817794Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:08.202821352Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:08.202824864Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:08.202828343Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:08.202831815Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:08.673262062Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:08.673304568Z       Exception processing GitHub event.
2022-12-08T02:33:08.673309284Z       System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.package.package_version.body | LineNumber: 0 | BytePositionInLine: 1441.
2022-12-08T02:33:08.673317163Z        ---> System.InvalidOperationException: Cannot get the value of a token type 'StartObject' as a string.
2022-12-08T02:33:08.673321518Z          at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
2022-12-08T02:33:08.673325076Z          at System.Text.Json.Utf8JsonReader.GetString()
2022-12-08T02:33:08.673328610Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.673332674Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673336617Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673340465Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.673344395Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673348193Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673351953Z          at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
2022-12-08T02:33:08.673372336Z          at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673381127Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673385000Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.673388855Z          --- End of inner exception stack trace ---
2022-12-08T02:33:08.673445221Z          at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, Utf8JsonReader& reader, Exception ex)
2022-12-08T02:33:08.673465199Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.673469961Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.673473800Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:08.673477614Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:08.673481156Z          at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
2022-12-08T02:33:08.673484716Z          at Octokit.Webhooks.Converter.WebhookConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
2022-12-08T02:33:08.673488818Z          at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
2022-12-08T02:33:08.673492812Z          at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
2022-12-08T02:33:08.673496653Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
2022-12-08T02:33:08.673500222Z          at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
2022-12-08T02:33:08.673503685Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:08.673507147Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:08.673510651Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()
2022-12-08T02:33:08.747449740Z fail: Octokit.Webhooks.WebhookEventProcessor[3]
2022-12-08T02:33:08.747463814Z       Exception processing GitHub event.
2022-12-08T02:33:08.747480805Z       System.Text.Json.JsonException: Unable to deserialize event
2022-12-08T02:33:08.747484831Z          at Octokit.Webhooks.WebhookEventProcessor.DeserializeWebhookEvent(WebhookHeaders headers, String body)
2022-12-08T02:33:08.747488598Z          at Octokit.Webhooks.WebhookEventProcessor.ProcessWebhookAsync(IDictionary`2 headers, String body)
2022-12-08T02:33:08.747492392Z          at Octokit.Webhooks.AspNetCore.GitHubWebhookExtensions.<>c__DisplayClass0_0.<<MapGitHubWebhooks>b__0>d.MoveNext()

Code of Conduct

PromoFaux commented 1 year ago

And because the issue body was too long....

Example payload from `registry_package.publshed` ```json { "action": "published", "registry_package": { "id": 1118375, "name": "pihole", "namespace": "pi-hole", "description": "", "ecosystem": "CONTAINER", "package_type": "CONTAINER", "html_url": "https://github.com/pi-hole/packages/1118375", "created_at": "2021-11-18T01:15:49Z", "updated_at": "2021-11-18T01:15:49Z", "owner": { "login": "pi-hole", "id": 16827203, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2ODI3MjAz", "avatar_url": "https://avatars.githubusercontent.com/u/16827203?v=4", "gravatar_id": "", "url": "https://api.github.com/users/pi-hole", "html_url": "https://github.com/pi-hole", "followers_url": "https://api.github.com/users/pi-hole/followers", "following_url": "https://api.github.com/users/pi-hole/following{/other_user}", "gists_url": "https://api.github.com/users/pi-hole/gists{/gist_id}", "starred_url": "https://api.github.com/users/pi-hole/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/pi-hole/subscriptions", "organizations_url": "https://api.github.com/users/pi-hole/orgs", "repos_url": "https://api.github.com/users/pi-hole/repos", "events_url": "https://api.github.com/users/pi-hole/events{/privacy}", "received_events_url": "https://api.github.com/users/pi-hole/received_events", "type": "Organization", "site_admin": false }, "package_version": { "id": 57755791, "version": "sha256:340490f9a892325f81b0af12228a44626a469909a835048cc10c690423d2ece7", "name": "sha256:340490f9a892325f81b0af12228a44626a469909a835048cc10c690423d2ece7", "description": "Pi-hole in a docker container", "summary": "Pi-hole in a docker container", "body": { "repository": { "repository": { "id": 50894333, "name": "docker-pi-hole", "owner_id": 16827203, "parent_id": null, "sandbox": null, "updated_at": "2022-12-08T01:18:24.000Z", "created_at": "2016-02-02T04:33:35.000Z", "public": true, "description": "Pi-hole in a docker container", "homepage": "https://pi-hole.net", "source_id": 122035788, "public_push": null, "disk_usage": 1503, "locked": false, "pushed_at": "2022-11-30T22:40:28.000Z", "watcher_count": 5955, "public_fork_count": 1001, "primary_language_name_id": 139, "has_issues": true, "has_wiki": true, "has_downloads": true, "raw_data": { "data": { "created_by_user_id": 868002, "primary_language_name": "Shell", "completed_onboarding_tasks": [ ] } }, "organization_id": 16827203, "disabled_at": null, "disabled_by": null, "disabling_reason": null, "health_status": "ok", "pushed_at_usec": 57989, "active": true, "reflog_sync_enabled": false, "made_public_at": null, "user_hidden": 0, "maintained": true, "template": false, "owner_login": "pi-hole", "world_writable_wiki": false, "refset_updated_at": "2022-11-30T22:38:31.361Z", "disabling_detail": null, "archived_at": null } }, "info": { "type": "blob", "oid": "326b0e08c815245a11be4b399c51e419f334f569", "mode": 33188, "name": "README.md", "path": "README.md", "size": null, "collection": true }, "attributes": { }, "_formatted": true }, "manifest": "", "html_url": "https://github.com/orgs/pi-hole/packages/container/pihole/57755791", "target_commitish": "master", "target_oid": "a787e29aad4604a42eee6f553fd6df6f08461b1e", "created_at": "0001-01-01T00:00:00Z", "updated_at": "0001-01-01T00:00:00Z", "metadata": [ ], "container_metadata": { "tag": { "name": "", "digest": "sha256:340490f9a892325f81b0af12228a44626a469909a835048cc10c690423d2ece7" }, "labels": { "description": "Pi-hole in a docker container", "source": "https://github.com/pi-hole/docker-pi-hole", "revision": "", "image_url": "https://github.com/pi-hole/docker-pi-hole", "licenses": "", "all_labels": { "org.opencontainers.image.url": "https://github.com/pi-hole/docker-pi-hole", "org.opencontainers.image.source": "https://github.com/pi-hole/docker-pi-hole", "org.opencontainers.image.title": "docker-pi-hole", "org.opencontainers.image.revision": "a787e29aad4604a42eee6f553fd6df6f08461b1e", "org.opencontainers.image.created": "2022-12-08T02:26:18.143Z", "org.opencontainers.image.version": "nightly", "org.opencontainers.image.description": "Pi-hole in a docker container", "org.opencontainers.image.licenses": "" } }, "manifest": { "digest": "sha256:340490f9a892325f81b0af12228a44626a469909a835048cc10c690423d2ece7", "media_type": "application/vnd.docker.distribution.manifest.v2+json", "uri": "repositories/pi-hole/pihole/manifests/sha256:340490f9a892325f81b0af12228a44626a469909a835048cc10c690423d2ece7", "size": 1782, "config": { "digest": "sha256:3487c3af0a818825fcc16941b09cadfc26bf71367b41b21e8a78f7ab018b2f72", "media_type": "application/vnd.docker.container.image.v1+json", "size": 7190 }, "layers": [ { "digest": "sha256:f6a1e975b34444ecb7c6a2b537403fd6b94d2ff3225944ac2ac3b292466e4078", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 32392982 }, { "digest": "sha256:804992efd25afe71988b0d60d00e847c3a4f527fac6700c79c5f2a199e09770a", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 59087665 }, { "digest": "sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 32 }, { "digest": "sha256:23e6de900bd0fdf00d9294b35d3d94e4ad7e16a98d2fb7b17c11adf1935dceb6", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 130 }, { "digest": "sha256:f09600ea01bd4ba5ef2a7d3690c7d46147b924e680cc9034194263b86f3d6bd7", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 12202 }, { "digest": "sha256:783c2f94749191f27129ee0bb80ff4db26f49af8a82aa67c85fc9444ce189d0c", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 727 }, { "digest": "sha256:0c86090b397cb5355907017e8b74c99bcf8a873db850a6e951c90982b7774c3f", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 41805224 } ] } }, "package_files": [ ], "installation_command": "docker pull ghcr.io/pi-hole/pihole:", "package_url": "ghcr.io/pi-hole/pihole:" }, "registry": { "about_url": "https://docs.github.com/packages/learn-github-packages/introduction-to-github-packages", "name": "GitHub CONTAINER registry", "type": "CONTAINER", "url": "https://CONTAINER.pkg.github.com/pi-hole", "vendor": "GitHub Inc" } }, "repository": { "id": 50894333, "node_id": "MDEwOlJlcG9zaXRvcnk1MDg5NDMzMw==", "name": "docker-pi-hole", "full_name": "pi-hole/docker-pi-hole", "private": false, "owner": { "login": "pi-hole", "id": 16827203, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2ODI3MjAz", "avatar_url": "https://avatars.githubusercontent.com/u/16827203?v=4", "gravatar_id": "", "url": "https://api.github.com/users/pi-hole", "html_url": "https://github.com/pi-hole", "followers_url": "https://api.github.com/users/pi-hole/followers", "following_url": "https://api.github.com/users/pi-hole/following{/other_user}", "gists_url": "https://api.github.com/users/pi-hole/gists{/gist_id}", "starred_url": "https://api.github.com/users/pi-hole/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/pi-hole/subscriptions", "organizations_url": "https://api.github.com/users/pi-hole/orgs", "repos_url": "https://api.github.com/users/pi-hole/repos", "events_url": "https://api.github.com/users/pi-hole/events{/privacy}", "received_events_url": "https://api.github.com/users/pi-hole/received_events", "type": "Organization", "site_admin": false }, "html_url": "https://github.com/pi-hole/docker-pi-hole", "description": "Pi-hole in a docker container", "fork": false, "url": "https://api.github.com/repos/pi-hole/docker-pi-hole", "forks_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/forks", "keys_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/teams", "hooks_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/hooks", "issue_events_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/issues/events{/number}", "events_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/events", "assignees_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/assignees{/user}", "branches_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/branches{/branch}", "tags_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/tags", "blobs_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/refs{/sha}", "trees_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/statuses/{sha}", "languages_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/languages", "stargazers_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/stargazers", "contributors_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/contributors", "subscribers_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/subscribers", "subscription_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/subscription", "commits_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/commits{/sha}", "git_commits_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/git/commits{/sha}", "comments_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/comments{/number}", "issue_comment_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/issues/comments{/number}", "contents_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/contents/{+path}", "compare_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/merges", "archive_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/downloads", "issues_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/issues{/number}", "pulls_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/pulls{/number}", "milestones_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/milestones{/number}", "notifications_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/labels{/name}", "releases_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/releases{/id}", "deployments_url": "https://api.github.com/repos/pi-hole/docker-pi-hole/deployments", "created_at": "2016-02-02T04:33:35Z", "updated_at": "2022-12-08T01:18:24Z", "pushed_at": "2022-11-30T22:40:28Z", "git_url": "git://github.com/pi-hole/docker-pi-hole.git", "ssh_url": "git@github.com:pi-hole/docker-pi-hole.git", "clone_url": "https://github.com/pi-hole/docker-pi-hole.git", "svn_url": "https://github.com/pi-hole/docker-pi-hole", "homepage": "https://pi-hole.net", "size": 1503, "stargazers_count": 5955, "watchers_count": 5955, "language": "Shell", "has_issues": true, "has_projects": true, "has_downloads": true, "has_wiki": true, "has_pages": false, "has_discussions": true, "forks_count": 1001, "mirror_url": null, "archived": false, "disabled": false, "open_issues_count": 32, "license": null, "allow_forking": true, "is_template": false, "web_commit_signoff_required": true, "topics": [ "ad-blocker", "dns", "docker-container", "hacktoberfest", "pi-hole", "web-app" ], "visibility": "public", "forks": 1001, "open_issues": 32, "watchers": 5955, "default_branch": "master" }, "organization": { "login": "pi-hole", "id": 16827203, "node_id": "MDEyOk9yZ2FuaXphdGlvbjE2ODI3MjAz", "url": "https://api.github.com/orgs/pi-hole", "repos_url": "https://api.github.com/orgs/pi-hole/repos", "events_url": "https://api.github.com/orgs/pi-hole/events", "hooks_url": "https://api.github.com/orgs/pi-hole/hooks", "issues_url": "https://api.github.com/orgs/pi-hole/issues", "members_url": "https://api.github.com/orgs/pi-hole/members{/member}", "public_members_url": "https://api.github.com/orgs/pi-hole/public_members{/member}", "avatar_url": "https://avatars.githubusercontent.com/u/16827203?v=4", "description": "A black hole for Internet advertisements" }, "sender": { "login": "github-actions[bot]", "id": 41898282, "node_id": "MDM6Qm90NDE4OTgyODI=", "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", "gravatar_id": "", "url": "https://api.github.com/users/github-actions%5Bbot%5D", "html_url": "https://github.com/apps/github-actions", "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", "type": "Bot", "site_admin": false } } ```
nickfloyd commented 1 year ago

@PromoFaux, thanks for catching and tracking this. It looks like there's potentially a model//schema change given you're getting a serialization error - i.e., what is coming back does not match what octokit expects for deserialization.

I'll get this prioritized and in our backlog; in the meantime, Is this something you'd be interested in following through on and cutting a PR with a fix?

PromoFaux commented 1 year ago

Sure, if I get a chance to dig deep, then happy to take a look (don't let that dissuade anyone else from doing it if they can do it quicker than me!)

JamieMagee commented 1 year ago

Looks like body was updated recently to be string | object

PromoFaux commented 1 year ago

So I think this is where I start to get a bit out of my depth - certainly in terms of how the project is structured, and knowing where to start!

`body` from payload ```json "body": { "repository": { "repository": { "id": 50894333, "name": "docker-pi-hole", "owner_id": 16827203, "parent_id": null, "sandbox": null, "updated_at": "2022-12-08T01:18:24.000Z", "created_at": "2016-02-02T04:33:35.000Z", "public": true, "description": "Pi-hole in a docker container", "homepage": "https://pi-hole.net", "source_id": 122035788, "public_push": null, "disk_usage": 1503, "locked": false, "pushed_at": "2022-11-30T22:40:28.000Z", "watcher_count": 5955, "public_fork_count": 1001, "primary_language_name_id": 139, "has_issues": true, "has_wiki": true, "has_downloads": true, "raw_data": { "data": { "created_by_user_id": 868002, "primary_language_name": "Shell", "completed_onboarding_tasks": [ ] } }, "organization_id": 16827203, "disabled_at": null, "disabled_by": null, "disabling_reason": null, "health_status": "ok", "pushed_at_usec": 57989, "active": true, "reflog_sync_enabled": false, "made_public_at": null, "user_hidden": 0, "maintained": true, "template": false, "owner_login": "pi-hole", "world_writable_wiki": false, "refset_updated_at": "2022-11-30T22:38:31.361Z", "disabling_detail": null, "archived_at": null } }, "info": { "type": "blob", "oid": "326b0e08c815245a11be4b399c51e419f334f569", "mode": 33188, "name": "README.md", "path": "README.md", "size": null, "collection": true }, "attributes": { }, "_formatted": true }, ```

While I was looking at PackageVersion.cs to start looking into this, I noticed also that docker_metadata has been changed to container_metadata, and the contents of that property also do not fit the currently published schema

`container_metadata` from payload ```json "container_metadata": { "tag": { "name": "", "digest": "sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef" }, "labels": { "description": "Pi-hole in a docker container", "source": "https://github.com/pi-hole/docker-pi-hole", "revision": "", "image_url": "https://github.com/pi-hole/docker-pi-hole", "licenses": "", "all_labels": { "org.opencontainers.image.url": "https://github.com/pi-hole/docker-pi-hole", "org.opencontainers.image.licenses": "", "org.opencontainers.image.title": "docker-pi-hole", "org.opencontainers.image.revision": "a787e29aad4604a42eee6f553fd6df6f08461b1e", "org.opencontainers.image.created": "2022-12-08T02:26:18.143Z", "org.opencontainers.image.version": "nightly", "org.opencontainers.image.description": "Pi-hole in a docker container", "org.opencontainers.image.source": "https://github.com/pi-hole/docker-pi-hole" } }, "manifest": { "digest": "sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef", "media_type": "application/vnd.docker.distribution.manifest.v2+json", "uri": "repositories/pi-hole/pihole/manifests/sha256:16bdd656f9e81ba610c21bcf3878384965cfdab2465cbc1fc350f6cfe1e0e8ef", "size": 1782, "config": { "digest": "sha256:37e1478a8ffb0513113dbbb172bfafdf56ba24014a671921a2593d83da7a0608", "media_type": "application/vnd.docker.container.image.v1+json", "size": 7205 }, "layers": [ { "digest": "sha256:fd18d0201d0ce0c5e103902d894f5d601fc5dde76688aa7dae786840141d23e4", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 26576195 }, { "digest": "sha256:0fa20a868a60ceb7bc8a95981a4bd56fac4c2d9de1f8745eae546146e48a8e0f", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 51166445 }, { "digest": "sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 32 }, { "digest": "sha256:2ad7497455cdab76764a94c36fa2fc898c146b4d996bbd01beda28ca303e8a62", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 130 }, { "digest": "sha256:f09600ea01bd4ba5ef2a7d3690c7d46147b924e680cc9034194263b86f3d6bd7", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 12202 }, { "digest": "sha256:783c2f94749191f27129ee0bb80ff4db26f49af8a82aa67c85fc9444ce189d0c", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 727 }, { "digest": "sha256:3d98f361b22ebdff75986009b3077e5590d90ea81c9df95d0cf9e311436add74", "media_type": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 41670773 } ] } }, ```

What is the usual course of action here? Wait until the schema is updated to follow it's guidance, or make a best-guess based on the above payloads? (Or just both to dynamic and sweep it under the carpet for a bit....? 😬)

JamieMagee commented 1 year ago

Unfortunately, C# doesn't have support for union types, though it is being discussed for a future language version. So what is easy in TypeScript (string | { ... }) is a lot harder in C#.

I think there are a couple of possibilities here:

  1. Use a 3rd-party library, like OneOf to provide union types
  2. Deserialize to something like object, dynamic, or JsonElement

What do you think?

JamieMagee commented 1 year ago

I decided to go with dynamic as I use it elsewhere in the package.