Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add `dkit components`: look up Discord message component types

Open
#64 4 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@gtref is already working on this.

Since Oct 25, 2026.

  • #66 by @gtref — open

Assessment

This issue has not been assessed yet.

Description

enhancement new command

Problem

Discord's component type table includes interactive elements and layout/content components, but dkit has no offline lookup for their numeric type values or documented usage.

Proposed behaviour

Add dkit components to list and look up entries from the official Component Types table.

$ dkit components 2
Button

$ dkit components Container
17

$ dkit --json components --list
  • Support lookup by numeric type or case-insensitive name, listing all documented types, and searching names/descriptions.
  • Include the documented name, description, style, and usage for each entry.
  • Unknown values should exit with code 2 and a useful hint.
  • Support --json with stable fields and provenance.
  • Include only rows in the official Component Types table; preserve gaps in the documented numeric values. Do not add component limits or message flags.

Data

  • Add src/dkit/data/component_types.json with source, source_rendered, and last_verified.
  • Copy the component type rows from developers/components/reference.mdx, “Component Types”: https://discord.com/developers/docs/components/reference#component-types.
  • Examples above are documented: type 2 is Button; type 17 is Container.
  • Register the dataset in src/dkit/core/data.py and increase the exact JSON-file count in .github/workflows/ci.yml by one from the current base branch count.

Acceptance criteria

  • Tests cover numeric/name lookups, documented gaps, listing, search, JSON output, and invalid input.
  • Tests fail if component names, values, or documented metadata are mismatched.
  • 100% line and branch coverage; ruff check and ruff format --check pass.
  • Update the README and add one bullet to the existing ### Added block under [Unreleased] in CHANGELOG.md; do not remove existing changelog lines.
  • Please comment on this issue before starting, as required by CONTRIBUTING.md. AI-assisted contributions are welcome; disclose AI use in the PR description.
Dominant language
Python
Stars
1
Forks
7
Avg merge
11h 50m
Merged PRs (30d)
35

Getting set up

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.

More from Bytewave1/dkit

All issues in Bytewave1/dkit

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.