class
Github::Subject
- Github::Subject
- Reference
- Object
Included Modules
- JSON::Serializable
Defined in:
github/models.crConstant Summary
-
BODY_TYPES =
{Type::PULL_REQUEST, Type::ISSUE} -
subject.url / latest_comment_url を取得すると本文(body)付きのオブジェクトが 返る type。Commit / CheckSuite 等は body が無くコメントとして解釈できないため、 コメント URL が無ければ本文取得の対象にしない(CI 完了通知等に本文を付けない)。
-
NUMBERED_TYPES =
{Type::PULL_REQUEST, Type::ISSUE, Type::DISCUSSION} -
subject.url 末尾が GitHub 上の番号として意味を持つ type。Release / CheckSuite のように末尾が数値 ID でも #番号 表示は誤解を招くため、これらに限定する。
-
UPDATE_TYPES =
{Type::PULL_REQUEST, Type::ISSUE, Type::COMMIT, Type::DISCUSSION}
Constructors
Instance Method Summary
- #color : String
-
#comment_url : String
本文取得に使う URL。コメントがあればその URL、無ければ本文を持つ type に 限り subject.url にフォールバックする。対象外(CI 等)は空文字を返し、 呼び出し側で本文なし扱いにする(issue #96)。
-
#commented? : Bool
スレッドにコメントが 1 件以上付いているか。latest_comment_url はスレッドの 最新コメントの URL だが、コメントがまだ無いスレッドでは subject.url と同じ 値が入る。よって url と異なる値のときだけコメントありと判断できる。
- #latest_comment_url : String
-
#number : String | Nil
subject.url 末尾の PR / Issue / Discussion 番号。番号が意味を持つ type に 限り、末尾セグメントが数値なら返す。Commit(末尾が SHA)や末尾スラッシュ、 URL が無い場合などは nil を返す(issue #96)。
- #title : String | Nil
- #type : String
- #update? : Bool
- #url : String
Constructor Detail
Instance Method Detail
本文取得に使う URL。コメントがあればその URL、無ければ本文を持つ type に 限り subject.url にフォールバックする。対象外(CI 等)は空文字を返し、 呼び出し側で本文なし扱いにする(issue #96)。
スレッドにコメントが 1 件以上付いているか。latest_comment_url はスレッドの 最新コメントの URL だが、コメントがまだ無いスレッドでは subject.url と同じ 値が入る。よって url と異なる値のときだけコメントありと判断できる。
あくまで「コメントが存在するか」であって「今回の通知の起点がコメントか」では ない点に注意。通知 payload にイベント種別が無く、追加の API 呼び出し無しでは 区別できないので、これを「初回ではない=その後の動き」の目安として使い、 文言側はコメントに限定しない表現にしている(issue #104 / PR #106 レビュー指摘)。
ただし真になるのは片道で、これが偽でもコメントが無いとは限らない。 latest_comment_url は通知を発生させたイベント側を反映することがあり、 コメント済みでも push などが起点の通知では subject.url に戻る。よって 「コメントが無い」側の確定には使えず、Notification#followup? では subject 本体のコメント数と併用する(issue #116)。
subject.url 末尾の PR / Issue / Discussion 番号。番号が意味を持つ type に 限り、末尾セグメントが数値なら返す。Commit(末尾が SHA)や末尾スラッシュ、 URL が無い場合などは nil を返す(issue #96)。