diff --git a/src/plugins/publish/__init__.py b/src/plugins/publish/__init__.py index a14e4d25..5a22bf48 100644 --- a/src/plugins/publish/__init__.py +++ b/src/plugins/publish/__init__.py @@ -134,7 +134,7 @@ async def check_rule( event: IssuesOpened | IssuesReopened | IssuesEdited | IssueCommentCreated, publish_type: PublishType | None = Depends(get_type_by_labels), ) -> bool: - logger.info(f"评论来自: {event.payload.model_dump()}") + logger.info(f"评论来自: {event.model_dump()}") if ( isinstance(event, IssueCommentCreated) and event.payload.comment.user diff --git a/src/plugins/publish/validation.py b/src/plugins/publish/validation.py index 381f30f7..a921d015 100644 --- a/src/plugins/publish/validation.py +++ b/src/plugins/publish/validation.py @@ -48,7 +48,7 @@ def strip_ansi(text: str | None) -> str: async def validate_plugin_info_from_issue(issue: "Issue") -> ValidationDict: """从议题中获取插件信息,并且运行插件测试加载且获取插件元信息后进行验证""" body = issue.body if issue.body else "" - author = issue.user.id if issue.user else "" + author = issue.user.login if issue.user else "" author_id = issue.user.id if issue.user else None # 从议题里提取插件所需信息 diff --git a/src/utils/validation/models.py b/src/utils/validation/models.py index 3c2925d3..2f8b9a0e 100644 --- a/src/utils/validation/models.py +++ b/src/utils/validation/models.py @@ -57,6 +57,11 @@ class ValidationDict(BaseModel): def data_validator(cls, v: dict[str, Any] | BaseModel) -> dict[str, Any]: if isinstance(v, BaseModel): return v.model_dump() + elif isinstance(v, dict): + return { + key: value.model_dump() if isinstance(value, BaseModel) else value + for key, value in v.items() + } return v