【问题标题】:Git show --color not preserving color when posting to Microsoft TeamsGit show --color 在发布到 Microsoft Teams 时不保留颜色
【发布时间】:2022-01-11 21:50:31
【问题描述】:

我正在使用 gitpython 和 pymsteams 向 Microsoft Teams 发布 git commit 消息。本地日志输出按预期显示颜色差异。但是,无论我指定的 --color 参数如何,Teams 都不会显示颜色。

有谁知道如何保留此处的颜色以完整发布到 Teams?

代码:

import pymsteams
from git import Repo

myTeamsMessage = pymsteams.connectorcard("Teams Webhook URL")

repo = Repo(os.environ[ "OX_REPO_NAME" ])
diff = repo.git.show("--color",os.environ[ "OX_REPO_COMMITREF" ])

msg = '''\
Changes to `%s`:

```diff
%s```
''' % ( os.environ[ "OX_NODE_NAME" ],
diff, 
)

myTeamsMessage.text(msg)
myTeamsMessage.send()

更新自适应卡

我尝试使用 Microsoft 的自适应卡片示例,但在 Teams 中获得了完全相同的输出。 [没有颜色,而是显示了奇怪的格式 33m][1]

url="Teams Webhook URL"

payload2 = {
    "type":"message",
    "attachments":[
       {
          "contentType":"application/vnd.microsoft.card.adaptive",
          "content":{
             "$schema":"http://adaptivecards.io/schemas/adaptive-card.json",
             "type":"AdaptiveCard",
             "version":"1.2",
             "body":[
                 {
                 "type": "TextBlock",
                 "text": msg
                 },
                 
             ]
          }
       }
    ]
 }

headers = {
    'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=json.dumps(payload2))


  [1]: https://i.stack.imgur.com/mv0t4.png

【问题讨论】:

  • 也许您分享您想要突出显示的输出?
  • 您能否分享一下重现步骤并截取您想要实现的目标?
  • 使用连接卡无法显示颜色。请看看这个doc。相反,您可以使用在 TextBlock 中具有颜色属性的自适应卡片 - link
  • 我只想显示 git commit 差异(红色表示减去,绿色表示添加配置)。这是一个例子。 dropbox.com/s/swu3wj8svadow5n/…
  • 重现的步骤仅包括运行该脚本并查看 Teams 中的输出未着色。

标签: python git colors microsoft-teams


【解决方案1】:

您可以使用RichTextBlock 获得不同的颜色。无法发布带有颜色的 git commit 消息。您必须明确提及颜色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2014-02-27
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多