Skip to content

feat: Add --category flag to docs search command#603

Open
lukegalbraithrussell wants to merge 1 commit into
mainfrom
add-docs-search-category
Open

feat: Add --category flag to docs search command#603
lukegalbraithrussell wants to merge 1 commit into
mainfrom
add-docs-search-category

Conversation

@lukegalbraithrussell

@lukegalbraithrussell lukegalbraithrussell commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

What

Adds a --category flag to slack docs search so results can be filtered by category:

slack docs search "chat.postMessage" --category=reference

The docs site search modal lets you filter by category (Guides, Reference, Changelog, the SDK/library docs, etc.), and the /api/v1/search endpoint the CLI calls now supports a category param (see slackapi/docs#634). This brings the CLI to parity with both.

Categories

The 9 valid categories match the docs search endpoint / site modal:

guides, reference, changelog, python, javascript, java, slack_cli, slack_github_action, deno_slack_sdk

Changes

  • internal/api/docs.go — thread category through DocsSearch, the DocsClient interface, and buildDocsSearchURL (appends &category= only when set). Added DocsSearchCategories as the single source of truth for valid values.
  • internal/api/api_mock.go — updated mock signature.
  • cmd/docs/search.go — added the --category flag, validated against DocsSearchCategories (same pattern as --output), passed to the API for text/json output. For browser output, appends &filter=<category> to the search page URL so the opened page matches.
  • Tests updated/added at both the API and command layers.

An empty --category (the default) preserves the current search-everything behavior, so this is backward-compatible.

Note

The generated command reference (docs/reference/commands/slack_docs_search.md) is intentionally not included — slack docgen runs at release time, not per-PR.

🤖 Generated with Claude Code

Add a --category flag to `slack docs search` so results can be filtered
by category, matching the filters offered by the docs site search modal:
guides, reference, changelog, python, javascript, java, slack_cli,
slack_github_action, deno_slack_sdk.

- internal/api: thread category through DocsSearch, the DocsClient
  interface, the URL builder (appends &category= when set), and the
  mock. Add DocsSearchCategories as the shared source of valid values.
- cmd/docs: add the --category flag, validate it against
  DocsSearchCategories (like --output), and pass it to the API for text
  and json output. For browser output, append &filter= to the search
  page URL for parity with the site.

An empty category preserves the existing search-everything behavior.

Docs reference regeneration (slack docgen) happens at release, not here.

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@lukegalbraithrussell lukegalbraithrussell requested a review from a team as a code owner June 24, 2026 18:38
@codecov

codecov Bot commented Jun 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.67%. Comparing base (f0d20ad) to head (b335541).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #603      +/-   ##
==========================================
+ Coverage   71.64%   71.67%   +0.03%     
==========================================
  Files         226      226              
  Lines       19176    19191      +15     
==========================================
+ Hits        13739    13756      +17     
- Misses       4222     4223       +1     
+ Partials     1215     1212       -3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant