OSCI icon indicating copy to clipboard operation
OSCI copied to clipboard

Breaking OSCI: GitHub's latest changes in event data model

Open ihrigb opened this issue 2 months ago • 0 comments

GitHub recently introduced changes to some event models that cause the OSCI to break: https://github.blog/changelog/2025-08-08-upcoming-changes-to-github-events-api-payloads/

The commits field (and others) of $.payload was removed. Therefore author's emails are no longer available and OSCI is broken.

An alternative could be the "Compare two commits" API (https://docs.github.com/en/rest/commits/commits?apiVersion=2022-11-28#compare-two-commits), but that would cause a lot of API calls with the problem of authorization, throttling, rate limiting and all that.

Example for old JSON model:

{
    "actor": {
        "avatar_url": "https://avatars.githubusercontent.com/u/3818096?",
        "display_login": "trungnd1",
        "gravatar_id": "",
        "id": 3818096,
        "login": "trungnd1",
        "url": "https://api.github.com/users/trungnd1"
    },
    "created_at": "2025-10-07T14:00:00Z",
    "id": "55724142856",
    "payload": {
        "before": "61bd13403c1677be260b32ed1a61de586475aeb3",
        "commits": [
            {
                "author": {
                    "email": "[email protected]",
                    "name": "trungnd1"
                },
                "distinct": true,
                "message": "feat: Improve debug info panel layout\n\nRefactors the debug info panel to use a fixed, bottom-aligned layout with improved styling. This makes the panel more accessible and less obtrusive while still providing essential debugging information.",
                "sha": "7d0cba3af297f201f34a2cfa2bb3c972c04f5309",
                "url": "https://api.github.com/repos/trungnd1/ai-business-portrait-generator/commits/7d0cba3af297f201f34a2cfa2bb3c972c04f5309"
            }
        ],
        "distinct_size": 1,
        "head": "7d0cba3af297f201f34a2cfa2bb3c972c04f5309",
        "push_id": 27325310385,
        "ref": "refs/heads/main",
        "repository_id": 1070079734,
        "size": 1
    },
    "public": true,
    "repo": {
        "id": 1070079734,
        "name": "trungnd1/ai-business-portrait-generator",
        "url": "https://api.github.com/repos/trungnd1/ai-business-portrait-generator"
    },
    "type": "PushEvent"
}

Example for new JSON model (missing the commits field in payload:

{
    "actor": {
        "avatar_url": "https://avatars.githubusercontent.com/u/108220804?",
        "display_login": "abujobayer0",
        "gravatar_id": "",
        "id": 108220804,
        "login": "abujobayer0",
        "url": "https://api.github.com/users/abujobayer0"
    },
    "created_at": "2025-10-30T00:00:00Z",
    "id": "5570150627",
    "payload": {
        "before": "098c0d7cee2fb852e1042e85568b98e64fde886c",
        "head": "b564050fdde40ec4a501dbf997ebd1410bfebbdc",
        "push_id": 27861402499,
        "ref": "refs/heads/main",
        "repository_id": 965587249
    },
    "public": true,
    "repo": {
        "id": 965587249,
        "name": "abujobayer0/Abu-Talha-Portfolio-Frontend",
        "url": "https://api.github.com/repos/abujobayer0/Abu-Talha-Portfolio-Frontend"
    },
    "type": "PushEvent"
}

ihrigb avatar Nov 10 '25 08:11 ihrigb