Как получить полезную нагрузку события GitHub по идентификатору события?

Я могу получить список публичных мероприятий для организации через GitHub API: GET /orgs/:org/events

Как получить полезную нагрузку события (например, PushEvent), зная его идентификатор ?


person Skyblade    schedule 15.02.2017    source источник


Ответы (1)


API GitHub не позволяет получить конкретное событие по его идентификатору.

Внутри каждого события есть payload. Например

{
    "actor": {
        "avatar_url": "https://avatars.githubusercontent.com/u/240830?",
        "display_login": "sigmavirus24",
        "gravatar_id": "",
        "id": 240830,
        "login": "sigmavirus24",
        "url": "https://api.github.com/users/sigmavirus24"
    },
    "created_at": "2017-01-27T23:50:12Z",
    "id": "5227100855",
    "org": {
        "avatar_url": "https://avatars.githubusercontent.com/u/1782156?",
        "gravatar_id": "",
        "id": 1782156,
        "login": "github3py",
        "url": "https://api.github.com/orgs/github3py"
    },
    "payload": {
        "before": "7d52c200d80d86f70fbda3e9ebf48060867f9f65",
        "commits": [
            {
                "author": {
                    "email": "[email protected]",
                    "name": "Ian Cordasco"
                },
                "distinct": true,
                "message": "Create test.txt",
                "sha": "a623ca5974523ec35fd83909dd99b220e498ef58",
                "url": "https://api.github.com/repos/github3py/delete_contents/commits/a623ca5974523ec35fd83909dd99b220e498ef58"
            }
        ],
        "distinct_size": 1,
        "head": "a623ca5974523ec35fd83909dd99b220e498ef58",
        "push_id": 1525269783,
        "ref": "refs/heads/master",
        "size": 1
    },
    "public": true,
    "repo": {
        "id": 50486230,
        "name": "github3py/delete_contents",
        "url": "https://api.github.com/repos/github3py/delete_contents"
    },
    "type": "PushEvent"
}

Событие из списка после выполнения GET /orgs/github3py/events. Если вы присмотритесь, вы увидите

    "payload": {
        "before": "7d52c200d80d86f70fbda3e9ebf48060867f9f65",
        "commits": [
            {
                "author": {
                    "email": "[email protected]",
                    "name": "Ian Cordasco"
                },
                "distinct": true,
                "message": "Create test.txt",
                "sha": "a623ca5974523ec35fd83909dd99b220e498ef58",
                "url": "https://api.github.com/repos/github3py/delete_contents/commits/a623ca5974523ec35fd83909dd99b220e498ef58"
            }
        ],
        "distinct_size": 1,
        "head": "a623ca5974523ec35fd83909dd99b220e498ef58",
        "push_id": 1525269783,
        "ref": "refs/heads/master",
        "size": 1
    },

Это полезная нагрузка от события. Это единственный способ получить эту полезную нагрузку (из списка событий).

person Ian Stapleton Cordasco    schedule 15.02.2017