slack-ruby / slack-ruby/slack-ruby-client

Unclear support for `markdown_text` option.

Open
#579 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug?
Dominant language
Ruby
Stars
1.3k
Forks
222
Avg merge
1d 14h
Merged PRs (30d)
3

Description

I was attempting to send markdown_text ref to the chat_postMessage but am encountering some issues.

The reference docs indicate that when passing markdown_text, text should be omitted:

Accepts message text formatted in markdown. This argument should not be used in conjunction with blocks or text. Limit this field to 12,000 characters.

If I do so, eg. .chat_postMessage({ markdown_text: "*Hello*"}), an ArgumentError is raised as I haven't passed text.

https://github.com/slack-ruby/slack-ruby-client/blob/adfde852d1a40aaa05fc976164897ce83e0812d0/lib/slack/web/api/endpoints/chat.rb#L196

If I pass text and markdown_text, eg. .chat_postMessage({ markdown_text: "*Hello*", text: "*Hello*", mrkdwn: false}), the request goes through to the API but then fails with a Slack::Web::Api::Errors::MarkdownTextConflict error.

I believe the current workaround is to use Slack::Messages::Formatting.markdown or some other conversion process.

Is this an intentional gap in the API? Happy to raise a PR to amend if not.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at lib/slack/web/api/endpoints/chat.rb around line 196 and inspect the chat_postMessage argument handling alongside the linked Slack API reference. Reproduce the requests with markdown_text alone and with both markdown_text and text; done means the client behavior and documented Slack constraints agree, with the resulting behavior covered or clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
api
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.