Add `dkit webhooks`: look up Discord webhook types
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 58/100
Research direction
Start with the existing dataset registration in src/dkit/core/data.py and related CLI commands, then inspect developers/resources/webhook.mdx for the “Webhook Types” rows. Add the documented data and command behavior, with tests covering every type, lookups, search, JSON output, and invalid input. Update the README, the [Unreleased] Added block in CHANGELOG.md, and the JSON-file count in .github/workflows/ci.yml; done means the stated coverage and Ruff checks pass.
Written by the indexing model from the issue text.
Description
Problem
Discord has several webhook types with different roles, but dkit does not provide an offline lookup for their documented values.
Proposed behaviour
Add dkit webhooks to list and look up documented webhook types by numeric value or case-insensitive name.
$ dkit webhooks 1
Incoming
$ dkit webhooks Application
3
$ dkit --json webhooks
- List all documented types when no value is supplied.
- Include the value, name, and description in text and JSON output.
- Support
--searchacross the documented type, name, and description. - Unknown values should exit with code 2 and a useful hint.
- Make clear that this table describes webhook objects, not outgoing webhook events.
Data
- Add
src/dkit/data/webhook_types.jsonwithsource,source_rendered, andlast_verified. - Copy the rows from “Webhook Types” in
developers/resources/webhook.mdx:
https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types. - The documented examples are type
1=Incomingand type3=Application. - Register the dataset in
src/dkit/core/data.pyand increase the exact JSON-file count in.github/workflows/ci.ymlby one from the current base branch count.
Acceptance criteria
- Tests cover each documented type, numeric/name lookups, search, JSON output, and invalid input.
- Tests fail if a type value, name, or description is changed incorrectly.
- 100% line and branch coverage;
ruff checkandruff format --checkpass. - Update the README and add one bullet to the existing
### Addedblock under[Unreleased]inCHANGELOG.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
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Bytewave1/dkit
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement good first issue new command
Difficulty 3/5 1-2 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
-
enhancement good first issue new command
Difficulty 3/5 1-2 days Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
enhancement new command
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
vllm-project/vllm#64845 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
dekobon/big-code-analysis#1729 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
pydantic/pydantic-ai#12091 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100