[Schema Inaccuracy] verification.verified_at marked as required but not present in API response

オープン
#4,995 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
json, openapi
領域
api

調査の方向性

api.github.com.2022-11-28.json から始め、Verification スキーマの properties と required 配列を確認します。これを、issue で説明されている commits および git commits エンドポイントが返す verification オブジェクトと比較します。スキーマがドキュメント化された API レスポンスと一致し、生成されたクライアントが verified_at のないレスポンスを拒否しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

documentation

Schema Inaccuracy

The verification schema incorrectly lists verified_at as a required field, but GitHub's API does not return this field in the actual response. This causes validation errors in generated client libraries that strictly enforce the schema.

Expected

The verified_at property in the verification schema should either:

  1. Be removed from the required array (since it's not actually returned by the API), or
  2. Be removed entirely from the schema properties if it's not part of the API response

Current schema definition in api.github.com.2022-11-28.json:

{
  "title": "Verification",
  "type": "object",
  "properties": {
    "verified": {
      "type": "boolean"
    },
    "reason": {
      "type": "string"
    },
    "payload": {
      "type": "string",
      "nullable": true
    },
    "signature": {
      "type": "string",
      "nullable": true
    },
    "verified_at": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "verified",
    "reason",
    "payload",
    "signature",
    "verified_at"  // <-- This field is not returned by the API
  ]
}

Reproduction Steps

  1. Make a request to get commit details with verification information:
$ curl -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  https://api.github.com/repos/OWNER/REPO/commits/COMMIT_SHA
  1. Observe the actual verification object returned:
{
  "sha": "example_sha",
  "commit": {
    "message": "Example commit message",
    "author": {...},
    "verification": {
      "verified": false,
      "reason": "unsigned",
      "signature": null,
      "payload": null
      // Note: No "verified_at" field is present
    }
  }
}
  1. The same issue occurs when using the git commits endpoint:
$ curl -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  https://api.github.com/repos/OWNER/REPO/git/commits/COMMIT_SHA

Impact

This schema inaccuracy causes validation errors in strongly-typed client libraries generated from the OpenAPI specification. For example, Python libraries using Pydantic validation will fail with:


pydantic.error_wrappers.ValidationError: 1 validation error for Verification
verified_at
field required (type=value_error.missing)
主要言語
言語のデータがありません
スター
1.6k
フォーク
342
平均マージ
3時間 33分
マージ済み PR(30日)
51

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

github/rest-api-description のほかの issue

github/rest-api-description の issue をすべて見る

似ている issue

Backend & API Design の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。