Add attachment_mention rich text element (currently parsed as RichTextUnknownElement, losing url and text)
还没有人认领这个 Issue。
评估
调研方向
Start in GsonRichTextElementFactory, which has no case for attachment_mention and so falls back to RichTextUnknownElement, and follow the existing Canvas element as the pattern for a typed rich text element. Add an AttachmentMention model with url, text, app_id, entity_id, icon_url and the other fields in the issue's JSON sample, register it in the factory, then add a JSON parse test. Done when the sample message parses to the typed element and serializes back with its fields intact.
由索引模型根据 Issue 内容生成。
描述
Summary
Messages that contain an app-unfurled link (e.g. a Jira Cloud issue link) carry an attachment_mention element inside the rich_text block. GsonRichTextElementFactory has no case for it, so it is deserialized as RichTextUnknownElement. The SDK keeps only type; url, text and the other fields are lost. The element is documented here: https://docs.slack.dev/reference/block-kit/block-elements/attachment-mention-element
Reproduce
Fetch a message that contains a pasted Jira issue link:
GET https://slack.com/api/conversations.replies?channel=C…&ts=…&limit=1
Authorization: Bearer xoxb-…
The raw response contains:
{
"type": "rich_text",
"elements": [{
"type": "rich_text_section",
"elements": [
{ "type": "text", "text": "read this => " },
{
"type": "attachment_mention",
"url": "https://example.atlassian.net/browse/ABC-5",
"text": "Issue title",
"app_id": "A…",
"entity_id": "W:A…:…",
"icon_url": "https://product-integrations-cdn.atl-paas.net/jira-issuetype/large/new/task.png",
"icon_name": "brand-jira-filled",
"product_name": "Jira Cloud",
"channel_id": "C…",
"ts": "…"
}
]
}]
}
With slack-api-model 1.52.0 the element is parsed as RichTextUnknownElement and serializes back as {"type":"attachment_mention"}. message.text still contains <https://example.atlassian.net/browse/ABC-5|Issue title>, but nothing in blocks carries the link.
Expected
A typed RichTextSectionElement.AttachmentMention (url, text, app_id, entity_id, icon_url, ...) registered in GsonRichTextElementFactory, like Canvas.
Notes
slack_sdk(Python) 3.45.0 and@slack/types3.2.0 don't model it either. The Python SDK has an open draft PR: https://github.com/slackapi/python-slack-sdk/pull/1948- I'm happy to open a PR with the model class, the factory entry and a JSON parse test if this is something you'd accept.
Category (place an x in each of the [ ])
- bolt (Bolt for Java)
- bolt-{sub modules} (Bolt for Java - optional modules)
- slack-api-client (Slack API Clients)
- slack-api-model (Slack API Data Models)
- slack-api-*-kotlin-extension (Kotlin Extensions for Slack API Clients)
- slack-app-backend (The primitive layer of Bolt for Java)
Requirements
-
Please make sure if this topic is specific to this SDK. For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. 🙇
-
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.
- 主要语言
- Java
- 星标
- 602
- 派生
- 235
- 平均合并
- 2 天 1 小时
- 30 天内合并 PR
- 7
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
slackapi/java-slack-sdk 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 74/100
slackapi/java-slack-sdk#1653 · 2 条评论 ·
-
Upgrade Jetty可能已有人在做 @skrcode 于 45 天前认领。 未关闭auto-triage-skip dependencies good first issue
难度 4/5 3-5 天 新手友好度 45/100
slackapi/java-slack-sdk#1567 · 4 条评论 ·
-
auto-triage-skip discussion enhancement
难度 3/5 1-2 天 新手友好度 35/100
slackapi/java-slack-sdk#1535 · 5 条评论 ·
-
auto-triage-skip question untriaged
难度 5/5 一周以上 新手友好度 25/100
slackapi/java-slack-sdk#1528 · 7 条评论 ·
-
auto-triage-skip dependencies project:slack-api-client project:slack-app-backend
难度 4/5 3-5 天 新手友好度 48/100
slackapi/java-slack-sdk#1500 · 11 条评论 · 1 个 reaction ·
查看 slackapi/java-slack-sdk 的全部 Issue
相似的 Issue
-
Triage
难度 2/5 1-3 小时 新手友好度 75/100
MinecraftForge/MinecraftForge#10902 · 1 条评论 ·
-
bug
难度 2/5 1-3 小时 新手友好度 74/100
refinedmods/refinedstorage2#1421 ·
-
StepExamBenchmarkTest runs a loop and prints a timing but asserts nothing可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭jules
难度 1/5 1 小时以内 新手友好度 82/100
open-learning-exchange/myplanet#18199 · 1 条评论 ·
维护者通常 4 天内回复
-
难度 1/5 1 小时以内 新手友好度 82/100
wikipathways/GPML2RDF#126 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 1 天内回复