Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-27 00:30 UTC

nextcord / nextcord

A Python wrapper for the Discord API forked from discord.py

PythonMIT★ 1,266 stars⑂ 206 forkssince Aug 2021View on GitHub ↗

nextcord/nextcord holds a health index of 72 out of 100, placing it in the Good band. It scores highest on Community & Adoption (76/100) and lowest on AI Readiness (46/100). It was last updated 6 days ago. A single contributor accounts for most of its recent work.

72
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

72
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

nextcordOrganization
47 followers11 public repossince Aug 2021

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publish
PyPInextcord3.2.0-3566 days ago

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

73Good · 22% of overall
How it's scored
36/36Push recency — last push 6 days ago
6.9/36Commit cadence — 10/52 weeks with commits
12.9/18Commit volume — 26 commits in the last year
10/10OpenSSF Scorecard: Maintained — 22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year26
human_commit_share0.94
days_since_last_push6
active_weeks_last_year10
How it's scored
27/27Ships releases — 33 releases published
36/36Release recency — latest release 66 days ago
12.6/27Release cadence — a release every ~129.5 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count33
latest_release_tagv3.2.0
releases_from_tagsno
days_since_latest_release66
mean_days_between_releases129.5
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

76Good · 18% of overall
How it's scored
50.3/60Stars — 1,266 stars
19.3/25Forks — 206 forks
5.3/15Watchers — 10 watchers
Inputs used
forks206
stars1,266
watchers10
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductno
has_pull_request_templateyes

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

68Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
9/22.5Commit distribution — top contributor authored 60% of commits
13.5/13.5Contributor breadth — 99 contributors
10/10OpenSSF Scorecard: Contributors — project has 52 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled99
top_contributor_share0.598
How it's scored
41.7/46.8Issue resolution — 89% of issues closed
29.5/38.3PR acceptance — 604/783 decided PRs merged
10.5/15OpenSSF Scorecard: Code-Review — Found 19/27 approved changesets -- score normalized to 7
Inputs used
merged_prs604
open_issues41
closed_issues335
issue_closed_ratio0.891
closed_unmerged_prs179
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
12.1/25Owner reach — 47 followers of nextcord
17.7/25Track record — 11 public repos, account ~4 yr old
Inputs used
followers47
owner_typeOrganization
is_verified
owner_loginnextcord
public_repos11
account_age_days1,793
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 66 days ago
20/20Version history — 35 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesnextcord
ecosystemspypi
any_deprecatedno
min_days_since_publish66

Engineering Quality

Are baseline engineering and documentation practices in place?

76Good · 20% of overall
How it's scored
24/24CI workflows — 4 workflow(s)
0/24Tests present
16/16Linter config
9.6/9.6Pre-commit hooks
0/6.4.editorconfig
16/20OpenSSF Scorecard: CI-Tests — 19 out of 22 merged PRs checked by a CI test -- score normalized to 8
Inputs used
has_ciyes
has_testsno
has_editorconfigno
has_linter_configyes
has_precommit_configyes

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://docs.nextcord.dev
10/10Repository description
10/10Topics — 12 topics
0/10Wiki
Inputs used
topicsdiscord, discordpy, api-wrapper, bot-framework, bots, discord-api, discord-bot, discord-py, discordbot, python, python3, hacktoberfest
has_wikino
homepagehttps://docs.nextcord.dev
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

67Moderate · 16% of overall
How it's scored
6/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — no data
2/2.5CI-Tests — 19 out of 22 merged PRs checked by a CI test -- score normalized to 8
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
5.2/7.5Code-Review — Found 19/27 approved changesets -- score normalized to 7
2.5/2.5Contributors — project has 52 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
4.5/5SAST — SAST tool detected but not run on all commits
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5.9
Excluded from scoring (no data or not applicable): branch_protection, signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages11
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:nextcord@3.2.0 runtime dependency closure — what installing the published package pulls in — 11 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

46At risk · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 94 of 94 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
How it's scored
18/18One-command bootstrap — docs/Makefile
0/22Automated tests
11/11Lint / format config
11/11Static type checking — nextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed
0/10Reproducible environment
0/10Demonstrated agent practice — no agent-authored commits among the last 100
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsno
lockfiles
has_dockerfileno
typed_languageno
bootstrap_filesdocs/Makefile
has_devcontainerno
has_linter_configyes
typecheck_configsnextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
How it's scored
27/45Type-checkable code — Python with type-check config (nextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed)
51.4/55Manageable file sizes — 11/168 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes159,297
source_files_sampled168
oversized_source_files11
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_files

Key facts

1,266GitHub stars
99contributors
26commits, last 12 months
6days since last push
33releases
1bus factor
41open issues
PyPIpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

More detail

Star and fork history 0 ★ / 206 ⇿
0Stars
206Forks
33Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

0408012016020024020392021-082024-022026-07
Major 2Minor 8Patch 9

Each point covers 5 days.

OpenSSF Scorecard 5.9 / 10
5.9aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-27 00:30 UTC

8Binary-Artifactsbinaries present in source code
n/aBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
8CI-Tests19 out of 22 merged PRs checked by a CI test -- score normalized to 8
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
7Code-ReviewFound 19/27 approved changesets -- score normalized to 7
10Contributorsproject has 52 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
9SASTSAST tool detected but not run on all commits
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direct dependencies 9
RegistryPackageVersion constraintManifest
PyPIaiohttp^3.8.0pyproject.toml
PyPItyping_extensions^4.2.0pyproject.toml
PyPIaudioop-lts^0.2.1pyproject.toml
PyPIPyNaCl>=1.5.0,<1.6pyproject.toml
PyPIorjson>=3.5.4pyproject.toml
PyPIaiodns>1.1pyproject.toml
PyPIBrotli*pyproject.toml
PyPIbrotlicffi*pyproject.toml
PyPIdave-py^0.1.2pyproject.toml
All dependencies 69

Full resolved dependency set from the GitHub dependency graph: 9 direct and 60 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
PyPIaiodns4.0.4direct
PyPIaiohttp3.13.5direct
PyPIaudioop-lts0.2.2direct
PyPIbrotli1.2.0direct
PyPIbrotlicffi1.2.0.1direct
PyPIdave-py0.1.2direct
PyPIorjson3.11.9direct
PyPIpynacl1.5.0direct
PyPItyping-extensions4.15.0direct
PyPIaiohappyeyeballs2.6.2indirect
PyPIaiosignal1.4.0indirect
PyPIalabaster1.0.0indirect
PyPIanyio4.13.0indirect
PyPIattrs26.1.0indirect
PyPIbabel2.18.0indirect
PyPIcertifi2026.5.20indirect
PyPIcffi2.0.0indirect
PyPIcfgv3.5.0indirect
PyPIcharset-normalizer3.4.7indirect
PyPIclick8.4.0indirect
PyPIcolorama0.4.6indirect
PyPIdistlib0.4.0indirect
PyPIdocutils0.22.4indirect
PyPIfilelock3.29.0indirect
PyPIfrozenlist1.8.0indirect
PyPIh110.16.0indirect
PyPIidentify2.6.19indirect
PyPIidna3.15indirect
PyPIimagesize1.5.0indirect
PyPIjinja23.1.6indirect
PyPImarkupsafe3.0.3indirect
PyPImslex1.3.0indirect
PyPImultidict6.7.1indirect
PyPInodeenv1.10.0indirect
PyPIpackaging26.2indirect
PyPIplatformdirs4.9.6indirect
PyPIpre-commit3.5.0indirect
PyPIpropcache0.5.2indirect
PyPIpsutil6.1.1indirect
PyPIpycares5.0.1indirect
PyPIpycparser3.0indirect
PyPIpygments2.20.0indirect
PyPIpyright1.1.391indirect
PyPIpython-discovery1.3.1indirect
PyPIpython-dotenv0.20.0indirect
PyPIpyyaml6.0.3indirect
PyPIrequests2.34.2indirect
PyPIroman-numerals4.1.0indirect
PyPIslotscheck0.19.1indirect
PyPIsnowballstemmer3.0.1indirect
PyPIsphinx9.1.0indirect
PyPIsphinx-autobuild2025.8.25indirect
PyPIsphinxcontrib-applehelp2.0.0indirect
PyPIsphinxcontrib-devhelp2.0.0indirect
PyPIsphinxcontrib-htmlhelp2.1.0indirect
PyPIsphinxcontrib-jsmath1.0.1indirect
PyPIsphinxcontrib-qthelp2.0.0indirect
PyPIsphinxcontrib-serializinghtml2.0.0indirect
PyPIsphinxcontrib-trio1.2.0indirect
PyPIsphinxcontrib-websupport2.0.0indirect
PyPIstarlette1.0.0indirect
PyPItaskipy1.14.1indirect
PyPItomli2.4.1indirect
PyPIurllib32.7.0indirect
PyPIuvicorn0.47.0indirect
PyPIvirtualenv21.3.3indirect
PyPIwatchfiles1.2.0indirect
PyPIwebsockets16.0indirect
PyPIyarl1.24.2indirect
Dependency advisories 0

Installing pypi:nextcord@3.2.0 pulls in 11 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "discord",
        "discordpy",
        "api-wrapper",
        "bot-framework",
        "bots",
        "discord-api",
        "discord-bot",
        "discord-py",
        "discordbot",
        "python",
        "python3",
        "hacktoberfest"
      ],
      "is_fork": false,
      "size_kb": 21380,
      "has_wiki": false,
      "homepage": "https://docs.nextcord.dev",
      "languages": {
        "Python": 2441894
      },
      "pushed_at": "2026-07-20T20:23:57Z",
      "created_at": "2021-08-28T13:02:33Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-25T06:41:55Z",
      "description": "A Python wrapper for the Discord API forked from discord.py",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "https://nextcord.dev",
      "name": null,
      "type": "Organization",
      "login": "nextcord",
      "company": null,
      "location": null,
      "followers": 47,
      "avatar_url": "https://avatars.githubusercontent.com/u/89693200?v=4",
      "created_at": "2021-08-28T13:00:42Z",
      "is_verified": null,
      "public_repos": 11,
      "account_age_days": 1793
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v3.2.0",
          "kind": "minor",
          "published_at": "2026-05-21T18:00:26Z"
        },
        {
          "tag": "v3.1.1",
          "kind": "patch",
          "published_at": "2025-08-16T10:37:35Z"
        },
        {
          "tag": "v3.1.0",
          "kind": "minor",
          "published_at": "2025-04-18T15:06:37Z"
        },
        {
          "tag": "v3.0.1",
          "kind": "patch",
          "published_at": "2024-12-25T14:12:52Z"
        },
        {
          "tag": "v3.0.0",
          "kind": "major",
          "published_at": "2024-12-25T00:31:03Z"
        },
        {
          "tag": "v2.6.1",
          "kind": "patch",
          "published_at": "2023-09-23T23:25:56Z"
        },
        {
          "tag": "v2.6.0",
          "kind": "minor",
          "published_at": "2023-09-23T16:29:00Z"
        },
        {
          "tag": "v2.5.0",
          "kind": "minor",
          "published_at": "2023-06-13T16:14:32Z"
        },
        {
          "tag": "v2.4.2",
          "kind": "patch",
          "published_at": "2023-04-05T17:29:11Z"
        },
        {
          "tag": "v2.4.1",
          "kind": "patch",
          "published_at": "2023-03-12T19:25:44Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2023-02-20T22:49:27Z"
        },
        {
          "tag": "v2.3.3",
          "kind": "patch",
          "published_at": "2023-02-09T21:46:28Z"
        },
        {
          "tag": "v2.3.2",
          "kind": "patch",
          "published_at": "2022-11-11T20:04:04Z"
        },
        {
          "tag": "v2.3.1",
          "kind": "patch",
          "published_at": "2022-11-11T19:26:41Z"
        },
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2022-11-11T18:07:53Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2022-09-09T15:54:45Z"
        },
        {
          "tag": "v2.1.1",
          "kind": "patch",
          "published_at": "2022-09-09T12:04:29Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2022-08-08T18:45:13Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2022-06-28T11:55:52Z"
        },
        {
          "tag": "v2.0.0rc2",
          "kind": "other",
          "published_at": "2022-06-23T11:19:32Z"
        },
        {
          "tag": "v2.0.0rc1",
          "kind": "other",
          "published_at": "2022-06-20T17:16:54Z"
        },
        {
          "tag": "v2.0.0b4",
          "kind": "other",
          "published_at": "2022-06-12T17:59:09Z"
        },
        {
          "tag": "2.0.0b3",
          "kind": "other",
          "published_at": "2022-06-05T16:06:42Z"
        },
        {
          "tag": "2.0.0b2",
          "kind": "other",
          "published_at": "2022-06-03T13:18:23Z"
        },
        {
          "tag": "2.0.0b1",
          "kind": "other",
          "published_at": "2022-06-03T12:29:43Z"
        },
        {
          "tag": "2.0.0a10",
          "kind": "other",
          "published_at": "2022-03-22T16:33:30Z"
        },
        {
          "tag": "2.0.0a9",
          "kind": "other",
          "published_at": "2022-03-06T21:40:28Z"
        },
        {
          "tag": "2.0.0a8",
          "kind": "other",
          "published_at": "2022-02-14T13:31:32Z"
        },
        {
          "tag": "2.0.0a7",
          "kind": "other",
          "published_at": "2022-02-05T20:28:14Z"
        },
        {
          "tag": "2.0.0a6",
          "kind": "other",
          "published_at": "2022-01-08T14:19:35Z"
        },
        {
          "tag": "2.0.0a5",
          "kind": "other",
          "published_at": "2022-01-01T14:56:14Z"
        },
        {
          "tag": "2.0.0a4",
          "kind": "other",
          "published_at": "2021-12-15T20:33:38Z"
        },
        {
          "tag": "2.0.0a3",
          "kind": "other",
          "published_at": "2021-09-22T07:28:20Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "8ceca454c9ddc2185b5963cc49153ac4684cfd15",
          "body": "updates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.14 → v0.15.20](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.14...v0.15.20)\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(pre-commit): autoupdate hook versions (#1288)",
          "author_name": "pre-commit-ci[bot]",
          "author_login": "pre-commit-ci[bot]",
          "committed_at": "2026-07-08T23:01:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cbeb8505a5601fa7635b3357f031bfe9ae835e9",
          "body": null,
          "is_bot": false,
          "headline": "fix: string select erroring on default custom id (#1289)",
          "author_name": "Ethan",
          "author_login": "Skelmis",
          "committed_at": "2026-07-08T23:00:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c23cff0f4dddf44307c9d4b587bcb62d3938618",
          "body": "0 would be interpreted as self.min or self.max = False, so negative numbers would be allowed",
          "is_bot": false,
          "headline": "fix(app-cmds): reject negative numbers when Range min is 0 (#1290)",
          "author_name": "Ran Shaashua",
          "author_login": "ranshaa05",
          "committed_at": "2026-06-28T14:10:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5c1fedbcf173f44b1068d5f077c3ccec9f9d2fa",
          "body": "* feat(message): add `call` field\n\n* style: auto fixes from pre-commit hooks\n\n* fix(message): remove double import\n\n* fix(abc): use `call.data` for sending\n\n* refactor(message): add slots to MessageCall\n\n* docs: add MessageCall\n\n* fix: remove `call` from send\n\nI properly misunderstood the task here\n\n[…]\ns(message): update versionadded to 3.3\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "feat(message): add `call` field (#1195)",
          "author_name": "spifory",
          "author_login": "spifory",
          "committed_at": "2026-05-28T17:04:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5761bb11848a947015d5a6c91bc28053039c50de",
          "body": "* Update __main__.py\n\n* style: auto fixes from pre-commit hooks\n\n* fix: remove length check for forbidden directory names\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\nCo-authored-by: teaishealthy <76410798+teaishealthy@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: add CONIN$ and CONOUT$ to forbidden paths (#1267)",
          "author_name": "Armaan U",
          "author_login": "armup31",
          "committed_at": "2026-05-26T15:13:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f08001c3798f197f094f0d0ad8e20cac04a4332",
          "body": "updates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.13 → v0.15.14](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.13...v0.15.14)\n- [github.com/psf/black-pre-commit-mirror: 26.5.0 → 26.5.1](https://github.com/psf/black-pre-commit-mirror/compare/26.5.0...26.5.1)\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(pre-commit): autoupdate hook versions (#1286)",
          "author_name": "pre-commit-ci[bot]",
          "author_login": "pre-commit-ci[bot]",
          "committed_at": "2026-05-26T15:10:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9aafecbf9613f9542fef306e183ffdb5c96df54",
          "body": null,
          "is_bot": false,
          "headline": "docs(whats-new): add relevant changelog entries",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-21T17:54:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71e0b58924840644d8e1b4e9a832e6cea263267f",
          "body": null,
          "is_bot": false,
          "headline": "refactor(docs): solve minor type issue",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-21T17:52:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7390a57f1866d2c818dc9fa16ccdfa881fa47946",
          "body": null,
          "is_bot": false,
          "headline": "refactor(components): handle file.name/size empty",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-21T17:50:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0e84313ef1163c7ef9730e29e64a52ffbdb647a",
          "body": null,
          "is_bot": false,
          "headline": "docs(whats-new): add changelogs for 3.2.0",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-21T17:39:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f71034ecc675599b94d7a4915a803f03654232b",
          "body": null,
          "is_bot": false,
          "headline": "docs: update sphinx for enum docs",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-21T17:39:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9eaad86ca00db2b11a119fd8bad0caf44a7c93b0",
          "body": "* adds a very incomplete implementation of components v2\n\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\n\n* adds terribly implemented component buttons\n\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\n\n* remove callback running code from interactions.py, rework com\n[…]\n Ethan <47520067+Skelmis@users.noreply.github.com>\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add low level components v2 support (#1254)",
          "author_name": "Alex Schoenhofen",
          "author_login": "alentoghostflame",
          "committed_at": "2026-05-21T15:04:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0102b38b728eeb5f839cf51aa69042bda9d82198",
          "body": "* feat: add member profile automod fields\n\n* fix(enum): fix accidental merge conflict changes\n\n* docs(enums): add remaining docstrings to enum values\n\n* style: auto fixes from pre-commit hooks\n\n* fix(types): add 2 to automodevent\n\n* docs(enum): use the correct docs for event types\n\n* docs(enums): ad\n[…]\nocs(enums): update versionadded to 3.2\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "feat: add member profile automod fields (#1087)",
          "author_name": "spifory",
          "author_login": "spifory",
          "committed_at": "2026-05-19T16:37:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f2080fdb2e8c481a8b321cb55d3fddf3c49b1cac",
          "body": "* ci(pre-commit): autoupdate hook versions\n\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.7.4 → v0.11.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.4...v0.11.2)\n- [github.com/psf/black: 24.10.0 → 25.1.0](https://github.com/psf/black/compare/24.10.0...25.1.0)\n\n* style: auto fixes from pre-commit hooks\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\nCo-authored-by: Ethan <47520067+Skelmis@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(pre-commit): autoupdate hook versions (#1230)",
          "author_name": "pre-commit-ci[bot]",
          "author_login": "pre-commit-ci[bot]",
          "committed_at": "2026-05-19T15:16:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4b58533d0e58ff452f2128b36a2d9a96592a5ab",
          "body": "fix(voice): send speaking packet on reconnect (#862)\n\n`AudioPlayer` would previously not update the\n[`SPEAKING`](https://discord.com/developers/docs/topics/voice-connections#speaking)\nstate to a non-zero value after reconnecting (which happens when moving\nbetween channels, for instance). This results in the bot continuing to\nsend audio packets, which aren't processed by Discord as the speaking\nstate would still be `0`.\n\nCo-authored-by: shiftinv <8530778+shiftinv@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(voice): send speaking packet on reconnect (#1271)",
          "author_name": "teaishealthy",
          "author_login": "teaishealthy",
          "committed_at": "2026-05-17T13:34:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "396b4274193567a526234a464da28e0172df92c9",
          "body": "* feat(errors): add ChannelTypeNotFound exception\n\n* style: auto fixes from pre-commit hooks\n\n* chore: readd ThreadNotFound to errors\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(errors): add ChannelTypeNotFound exception (#1274)",
          "author_name": "teaishealthy",
          "author_login": "teaishealthy",
          "committed_at": "2026-05-17T13:24:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51aed95ebb125aac124fbc093b4dbbced9069d35",
          "body": "* feat(role): add RoleColours\n\n* docs(role): sort out RoleColours attrs\n\n* feat(role): handle colours attr\n\n* feat(guild): support colours in create_role\n\n* fix: supply proper fields in http",
          "is_bot": false,
          "headline": "feat(role): support multiple colours (#1261)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-17T13:21:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b06a891a4b4543e65264262e51c62fb0460df06",
          "body": null,
          "is_bot": false,
          "headline": "chore: update libcst and autotyping for 3.14 support",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-01T13:53:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82bd24febe89cee74d21629b1b9a5d14999c1769",
          "body": null,
          "is_bot": false,
          "headline": "refactor(voice): fix spelling mistake in transient_key",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-01T13:48:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fc8894455974a8e2304297b15bddfb821805c55",
          "body": "* typing: add reportPossiblyUnboundVariable to pyright config\n\nalso see #1252\n\n* typing: fix new types issues",
          "is_bot": false,
          "headline": "typing: add reportPossiblyUnboundVariable to pyright config (#1253)",
          "author_name": "teaishealthy",
          "author_login": "teaishealthy",
          "committed_at": "2026-05-01T07:22:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "473e9c475806f605c45480152ab3aad48a257e72",
          "body": null,
          "is_bot": false,
          "headline": "fix(http): add proxy to HTTPClient.recreate (#1257) (#1276)",
          "author_name": "teaishealthy",
          "author_login": "teaishealthy",
          "committed_at": "2026-05-01T07:07:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a62706a121eb901eeea699c9c85f7a96c565eaa0",
          "body": "* Add support for AEAD XChaCha20 Ploy1305 encryption mode\n\nCo-authored-by: Mysty <evieepy@gmail.com>\n\n* style: auto fixes from pre-commit hooks\n\n* remove deprecated encryption modes\n\n* style: auto fixes from pre-commit hooks\n\n* typing(voice): add initial dave types\n\n* refactor(voice): add dave proto\n[…]\n\n\n---------\n\nCo-authored-by: Renaud11232 <gaspardrenaud@hotmail.com>\nCo-authored-by: Mysty <evieepy@gmail.com>\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(voice): support e2ee (DAVE) (#1284)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2026-05-01T07:06:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b7bbaade7a2fac89f7863ffbd7806f66f9ddec54",
          "body": null,
          "is_bot": false,
          "headline": "fix: return in finally (#1268)",
          "author_name": "Marc Mueller",
          "author_login": "cdce8p",
          "committed_at": "2025-10-21T12:06:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fae516ed5ffe52b27acb1521b6957f1dfaaf969f",
          "body": "Replace deprecated asyncio.iscoroutinefunction",
          "is_bot": false,
          "headline": "refactor: replace deprecated asyncio.iscoroutinefunction (#1269)",
          "author_name": "Marc Mueller",
          "author_login": "cdce8p",
          "committed_at": "2025-10-18T16:10:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6549406b0d659ea0a7b9696eee19ade36aca9161",
          "body": "Upgrade to voice v8\n\nCo-authored-by: DA344 <108473820+DA-344@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(voice): upgrade to voice v8 (#1265)",
          "author_name": "Renaud GASPARD",
          "author_login": "Renaud11232",
          "committed_at": "2025-09-17T16:55:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "972693a3b574d37f14729899e230b073bb39eba1",
          "body": "Fix 4006 error when connecting to voice ws\n\nCo-authored-by: DA344 <108473820+DA-344@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(voice): 4006 voice websocket connection error (#1264)",
          "author_name": "Renaud GASPARD",
          "author_login": "Renaud11232",
          "committed_at": "2025-08-16T10:29:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d66708ca1e9b572ec522b34cf8300facf08444c9",
          "body": "* Add support for avatar decorations\n\n* Better comment\n\nCo-Authored-By: Emma Terzioglu <emreterzioglu49@gmail.com>\n\n* Add missing default size\n\n* Update according to new data\n\nhttps://github.com/discord/discord-api-docs/pull/6464\n\n* Document AvatarDecoration\n\n* Update version and remove outdated not\n[…]\ncommit hooks\n\n* Export AvatarDecoration\n\n---------\n\nCo-authored-by: Emma Terzioglu <emreterzioglu49@gmail.com>\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: avatar decorations (#941)",
          "author_name": "Soheab",
          "author_login": "Soheab",
          "committed_at": "2025-06-15T18:22:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f007a376624e7c1ce20facb1b487fad72cdc0611",
          "body": "* moved interaction resolving functions from app cmds to Interaction\n\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\n\n* removes commented out code\n\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\n\n---------\n\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>",
          "is_bot": false,
          "headline": "refactor: move resolving funcs from app cmd file to Interaction (#1256)",
          "author_name": "Alex Schoenhofen",
          "author_login": "alentoghostflame",
          "committed_at": "2025-06-04T18:28:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3612266369f64bb929c1f1fff580e08416ba400",
          "body": "* Push all additions\n\n* Add to typings too\n\n* add versionadded\n\n* add missed guild features\n\n* add missing system channel flags\n\n* add missing IntegrationType\n\n* add support for role_subscription_data field on Message\n\n* fill in system message for purchase\n\n* add missing MessageTypes\n\n* Revert doc c\n[…]\nonadded to 3.0\n\n* docs: update versionadded to 3.2\n\n---------\n\nCo-authored-by: teaishealthy <76410798+teaishealthy@users.noreply.github.com>\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "feat: role subscriptions (#940)",
          "author_name": "Soheab",
          "author_login": "Soheab",
          "committed_at": "2025-04-22T13:08:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4eb1bf5c0d42906e5f6abb4b068890818cb22f69",
          "body": null,
          "is_bot": false,
          "headline": "docs: fix version detection",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2025-04-18T14:54:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e68317cd10f7365ec08be6d592254acffd314f7",
          "body": null,
          "is_bot": false,
          "headline": "docs(whats-new): add changelogs for 3.1.0",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2025-04-18T13:59:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48219f10b84833fe45891a563e7b17494c25d120",
          "body": "…ctOptionPayload (#1252)\n\nfix(components): handle missing emoji in SelectOptionPayload",
          "is_bot": false,
          "headline": "fix(components): prevent UnboundLocalError with missing emoji in Sele…",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2025-04-18T10:38:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fde8bfd6c7453895c7695ca4862e0ad7d5ce272",
          "body": "* ci(lint): update pyright\n\n* refactor(audit-logs): type ignore entry.extra occurences\n\nThis was the best way I found without using Any or asserting/casting every instance.\nI do not want to do that as audit logs is unrealisrtically typable and needs some magic change to actually do so nicely.\n\n* ref\n[…]\ne__ is for py313+\n\n* refactor(app-cmds): add args kwargs to callbackwrapper.__new__ overloads\n\n* refactor(commands): type ignkre Greedy classgetitem return\n\n* refactor: remove unnecessary type ignores",
          "is_bot": false,
          "headline": "refactor: update pyright to 1.1.391 (#1235)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2025-04-07T10:42:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ca666c7b9ea99d313e1b654f838d7c45ea9c2344",
          "body": "fix(User): Use correct condition for default_avatar index",
          "is_bot": false,
          "headline": "fix(user): use correct condition for default_avatar index (#1237)",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2025-04-05T02:14:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21bb7fd6d00855db0debc4028e970c486756fc0c",
          "body": "fix(gateway): Handle improper 1000 closures by Discord\n\n\r\n\"Cherry picked\" from https://github.com/Rapptz/discord.py/commit/ed615887f073e0dd74de0c43d56a65934582e903",
          "is_bot": false,
          "headline": "fix(gateway): handle improper 1000 closures by Discord (#1250)",
          "author_name": "Michael Nunley",
          "author_login": "Michael-Nunley",
          "committed_at": "2025-04-05T02:10:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad10846caa7147ad2396c35cecde8cb132e68256",
          "body": "fix: specify correct types to enable using Opus on apple silicon\n\npatch derived from https://github.com/Pycord-Development/pycord/commits?author=mattabullock",
          "is_bot": false,
          "headline": "fix: specify correct types for Opus on Apple Silicon (#1251)",
          "author_name": "Arian Daneshvar",
          "author_login": "bees",
          "committed_at": "2025-04-05T02:09:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f14f716d12a9b61d20598a8a68c95a09de241d3f",
          "body": "* feat: application emojis\n\n* style: auto fixes from pre-commit hooks\n\n* fix: pass application ID to Emoji\n\n* style: auto fixes from pre-commit hooks\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: application emojis (#1240)",
          "author_name": "Soheab",
          "author_login": "Soheab",
          "committed_at": "2025-04-05T02:06:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "565487e19af8a72b9433dbcc9ba3aaacb76712e7",
          "body": "When editing an event, metadata was not being handled\ncorrectly. This was because the key for the event metadata\nwas 'event_metadata' instead of 'entity_metadata',\nhow it is stated in the API documentation.",
          "is_bot": false,
          "headline": "fix(http): corrected HTTP request keys for event editing (#1245)",
          "author_name": "Daniel Navarro Puche",
          "author_login": "hakai-vulpes",
          "committed_at": "2025-03-17T14:34:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73d8c00db90e84f6eb4dbcdd2e75f8958e636e35",
          "body": "* Revert \"docs(app-cmds): document SlashCommandMixin.options\" #986\n\n* fix: ci/cd actions with poetry 2.0\n\n* install all groups within ci/cd pipelines\n\n* install all groups within ci/cd pipelines",
          "is_bot": false,
          "headline": "fix: actions failing due to Poetry upgrades (#1243)",
          "author_name": "Ethan",
          "author_login": "Skelmis",
          "committed_at": "2025-02-03T12:40:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eaae882a6bc182a85a867c265ce9b797aaaac56c",
          "body": null,
          "is_bot": false,
          "headline": "docs(whats-new): add mention of iterator changes",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-25T14:11:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8049a7b56124dd126e0f203cb1b69be41cb86b0",
          "body": null,
          "is_bot": false,
          "headline": "ci(publish): fetch all references for all tags",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-25T00:28:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef945a8cac4aba2a23c590995c9d03418caaced9",
          "body": null,
          "is_bot": false,
          "headline": "ci(publish): fix entire action",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-25T00:25:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf77a8a475842d6c42359e5778621bf16d10a236",
          "body": null,
          "is_bot": false,
          "headline": "docs(whats-new): add changelogs for 3.0",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-24T23:53:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9083912f1fa5e62778d4b387753bbd91bc45aef8",
          "body": "* refactor!: rewrite async iterators to not use classes\r\n\r\n* refactor!: rewrite ban & audit log iterators\r\n\r\n* docs: represent changes in Reaction.users docstring\r\n\r\n* refactor!: finish iterator rewrite\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* refactor: update audit log iterators\r\n\r\n* style\n[…]\nech <50607143+EmreTech@users.noreply.github.com>\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "refactor!: rewrite async iterators (#950)",
          "author_name": "Emma Terzioglu",
          "author_login": "EmmmaTech",
          "committed_at": "2024-12-24T17:48:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "37d72bd09584076d43331ee966c52eea2f5de9e6",
          "body": "* build: set minimum python version to 3.12\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* refactor(utils): remove py310 specific code\r\n\r\n* ci(rtd): update build python version\r\n\r\n* docs: update min py version notices\r\n\r\n* ci: update slotscheck\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "build: set minimum python version to 3.12 (#1234)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-23T23:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6aa248d4bcc56364aa0c7882efe9392354f47b4",
          "body": "* feat(utils): add `integration_type` to `oauth_url` helper\r\n\r\n* not my change\r\n\r\n* fix!: don't set a default on integration_type",
          "is_bot": false,
          "headline": "feat(utils): add `integration_type` to `oauth_url` helper (#1208)",
          "author_name": "Luvuyo Khumalo-Silubane",
          "author_login": "spifory",
          "committed_at": "2024-12-23T12:25:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abb566c2ce712142da455534ae8b84d0557a8f04",
          "body": "* feat(member): add guild banners\r\n\r\n* fix(member): use private banner attr at inner user\r\n\r\n* refactor: png -> webp",
          "is_bot": false,
          "headline": "feat(member): add guild banners (#1207)",
          "author_name": "Luvuyo Khumalo-Silubane",
          "author_login": "spifory",
          "committed_at": "2024-12-23T12:24:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8d09cd0029dfe182fa49819749f67d5222c360b",
          "body": "* feat(permissions): add new all_channel perms\r\n\r\n* feat(permissions): add new general perms",
          "is_bot": false,
          "headline": "feat(permissions): update Permission classmethods (#1223)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-22T12:09:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "798e714c9751964280b8dd2e084598e0e3738b1b",
          "body": "* fix(client): remove duplication of views in views/all_views\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(client): remove duplication of views in views/all_views (#1228)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-12-22T12:08:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9c4a4db45079159d38b7ac82c3604921ad62b98",
          "body": "* feat: add voice messages\r\n\r\n* fix(message)!: make waveform read-only\r\n\r\n* fix(types): make fields NotRequired\r\n\r\nCo-authored-by: Emre Terzioglu <50607143+EmreTech@users.noreply.github.com>\r\n\r\n* fix(message): convert private attribute\r\n\r\neven I don't know what happened here\r\n\r\nCo-authored-by: Emre \n[…]\nge): use cached_slot_property\r\n\r\n---------\r\n\r\nCo-authored-by: Emre Terzioglu <50607143+EmreTech@users.noreply.github.com>\r\nCo-authored-by: teaishealthy <76410798+teaishealthy@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add voice messages (#1111)",
          "author_name": "Luvuyo Khumalo-Silubane",
          "author_login": "spifory",
          "committed_at": "2024-12-22T11:29:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10346bffe55b0f000c2047c4567a82759aa0d48a",
          "body": "* chore: Upgrade Sphinx to 6.2.0 to allow building on Python 3.13\r\n\r\n* Fix: Add a period that was missing in version string",
          "is_bot": false,
          "headline": "chore: Upgrade Sphinx to 6.2.0 to allow building on Python 3.13 (#1221)",
          "author_name": "Lev Bernstein",
          "author_login": "LevBernstein",
          "committed_at": "2024-11-25T05:31:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b7349dfa76f9dc697709c525ba1798c06fc65d8",
          "body": null,
          "is_bot": false,
          "headline": "ci(lint): Add Python 3.13 to lint version matrix (#1224)",
          "author_name": "Lev Bernstein",
          "author_login": "LevBernstein",
          "committed_at": "2024-11-25T05:29:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fac8280078ff5402b15c85e8070b49bee5ea70e7",
          "body": null,
          "is_bot": false,
          "headline": "build(player): migrate to audioop-lts on Python >= 3.13 (#1225)",
          "author_name": "Lev Bernstein",
          "author_login": "LevBernstein",
          "committed_at": "2024-11-25T05:28:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1807e5d768162312546936a1870c392933545dbe",
          "body": "updates:\r\n- [github.com/astral-sh/ruff-pre-commit: v0.6.3 → v0.7.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.6.3...v0.7.4)\r\n- [github.com/psf/black: 24.8.0 → 24.10.0](https://github.com/psf/black/compare/24.8.0...24.10.0)\r\n- [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.6.0...v5.0.0)\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(pre-commit): autoupdate hook versions (#1210)",
          "author_name": "pre-commit-ci[bot]",
          "author_login": "pre-commit-ci[bot]",
          "committed_at": "2024-11-22T16:20:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de91a42945720058199c641946d2467f51f1da24",
          "body": "…ons.create_events` (#1094)\n\n* feat(permissions): add `Permissions.create_expressions`\r\n\r\n* docs(permissions): change `the` to `a`\r\n\r\nconsistency or something\r\n\r\n* feat(permissions): add `PermissionOverwrite.create_expressions`\r\n\r\n* feat(permissions): add `create_events` flag\r\n\r\n* style: auto fixes \n[…]\ns.noreply.github.com>\r\nCo-authored-by: Ethan <47520067+Skelmis@users.noreply.github.com>\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>\r\nCo-authored-by: skelmis <skelmis.craft@gmail.com>",
          "is_bot": false,
          "headline": "feat(permissions): add `Permissions.create_expressions` and `Permissi…",
          "author_name": "Luvuyo Khumalo-Silubane",
          "author_login": "spifory",
          "committed_at": "2024-11-21T13:20:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1e10016d714b0bb4bfd24c14847b491709e29c9e",
          "body": "* feat(guild): add `bulk_ban` function\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* style: un-format Guild.afk_channel\r\n\r\nCtrl + S must've formatted the whole file, this is irrelevant to what I'm adding\r\n\r\n* docs(api): add BulkBan\r\n\r\n* docs(guild): add suggested changes\r\n\r\n* refactor(guild)!: m\n[…]\ne oopsy\r\n\r\n* docs(guild): add two colons to versionadded\r\n\r\n* fix(http): users_ids -> user_ids\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(guild): add `bulk_ban` function (#1172)",
          "author_name": "Luvuyo Khumalo-Silubane",
          "author_login": "spifory",
          "committed_at": "2024-11-21T13:06:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c5acf6343cda7c0b2c2538ed08e5be5192d873c",
          "body": "* feat(guild): add `fetch_role`\r\n\r\n* docs: add NotFound error\r\n\r\n* docs: change \"Retrieves\" into imperative form\r\n\r\n* docs: be more specific",
          "is_bot": false,
          "headline": "feat(guild): add `fetch_role` (#1206)",
          "author_name": "Luvuyo Khumalo-Silubane",
          "author_login": "spifory",
          "committed_at": "2024-11-21T13:01:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91236a756c193a615a42361ac895f6d0e8fbca84",
          "body": "…p (#1219)",
          "is_bot": false,
          "headline": "refactor(client): future-proof event loop handling with get_event_loo…",
          "author_name": "Lev Bernstein",
          "author_login": "LevBernstein",
          "committed_at": "2024-11-21T01:40:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f7e4bf0e7d8f740cb418d1105146cf583cbc677",
          "body": "* feat(enums): add new reference types\r\n\r\n* feat(types): add message snapshot types\r\n\r\n* fix(types): mention not mentions\r\n\r\n* feat: add snapshots to Message\r\n\r\n* docs: add snapshot class\r\n\r\n* fix(message): add class to dunder all\r\n\r\n* feat: add MessageReference.type\r\n\r\n* feat: add forwarding messages to bots",
          "is_bot": false,
          "headline": "feat: add message snapshots/forwarding (#1209)",
          "author_name": "spifory",
          "author_login": "spifory",
          "committed_at": "2024-10-17T02:36:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c04dd54df7298f867f4f2791769b275b88dd869b",
          "body": "Add missing error for Message.edit",
          "is_bot": false,
          "headline": "docs: missing NotFound error on Message.edit (#1217)",
          "author_name": "iyad-f",
          "author_login": "iyad-f",
          "committed_at": "2024-10-11T15:22:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7225562ece323e0b7e713cd0ed9a3699c56f9b16",
          "body": "* feat(webhook): support to create posts via webhook\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(webhook): support to create posts via webhook (#1190)",
          "author_name": "xXenvy",
          "author_login": "xXenvy",
          "committed_at": "2024-10-08T22:17:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d0661cd0eee67c4b846770c7057c66d59ee8ee2",
          "body": "… inside cogs (#1004)\n\n* Fix before and after invoke hooks not working for function inside cogs\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* Update nextcord/application_command.py\r\n\r\nCo-authored-by: teaishealthy <76410798+teaishealthy@users.noreply.github.com>\r\n\r\n* Revert previous change\r\n\r\n* s\n[…]\n[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: teaishealthy <76410798+teaishealthy@users.noreply.github.com>\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "fix(app-cmds): before and after invoke hooks not working for function…",
          "author_name": "Zackaria Ghanbari",
          "author_login": "okay1204",
          "committed_at": "2024-10-08T22:10:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bfbb02bfcf8b56146c2060b0e911cf56ff638884",
          "body": "…is not chat_input (#1212)\n\nfix(ConnectionState): do not search for subcommands if command type is not chat_input\r\nFixes context menu commands with spaces registering and unregistering with each bot startup",
          "is_bot": false,
          "headline": "fix(ConnectionState): Skip searching for subcommands if command type …",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2024-09-30T23:33:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38f61e2939e1f59a6478e150e26dd31a1426709c",
          "body": "* chore: add missing fields for stage instance\r\n\r\nhttps://discord.com/developers/docs/resources/stage-instance#create-stage-instance\r\n\r\n- guild_scheduled_event_id: https://github.com/discord/discord-api-docs/commit/67ce08b1e300c63e5a1e362838e21fb3fc7b1fcc\r\n\r\n* docs: add missing versionadded strings\r\n[…]\nageInstance.scheduled_event_id to int if possible\r\n\r\n* Fix versionadded's\r\n\r\n---------\r\n\r\nCo-authored-by: skelmis <skelmis.craft@gmail.com>\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "feat: add missing fields for stage instance (#1132)",
          "author_name": "Soheab",
          "author_login": "Soheab",
          "committed_at": "2024-09-08T05:38:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d9171911a3ca97dbe9c13d4dcff26e158aeced04",
          "body": "* revert: \"Revert \"docs(app-cmds): document SlashCommandMixin.options\" (#1040)\"\r\n\r\nThis reverts commit cd36094ba4aec4fd45e81b3267089e71bd5b796b.\r\n\r\n* fix(app-cmds): add a setter to .options",
          "is_bot": false,
          "headline": "docs(app-cmds): document SlashCommandMixin.options (#1044)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-09-07T13:10:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8da6491272f0430f865c3fa3ae2841b6cfd3dbb",
          "body": "* refactor: move listeners to the main library\r\n\r\n* fix: pyright errors\r\n\r\n* fix: TYPE_CHECKING import was used at runtime\r\n\r\n* docs: replace reference to bot w/ client\r\n\r\nCo-authored-by: spifory <luvuyosilubane50@gmail.com>\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* style: ruff fixes\r\n\r\n* fi\n[…]\n: EmreTech <50607143+EmreTech@users.noreply.github.com>\r\nCo-authored-by: spifory <luvuyosilubane50@gmail.com>\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "refactor: move listeners to the main library (#917)",
          "author_name": "Emma Terzioglu",
          "author_login": "EmmmaTech",
          "committed_at": "2024-09-07T13:04:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c618cf87801cf4123ef4e1e7675d27afed940c2e",
          "body": "…ads (#1160)\n\n* (hopefully) allow editing webhook messages in threads\r\n\r\n* (hopefully) allow webhooks to edit messages in threads\r\n\r\n* docs ! docs are important\r\n\r\n* thats not supposed to be there\r\n\r\n* that's also! not supposed to be there\r\n\r\n* i think thats supposed to be down more .\r\n\r\n* style: au\n[…]\nd version to async\r\n\r\n* add version added to sync\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(webhooks): allow editing webhook messages that were sent in thre…",
          "author_name": "Edna",
          "author_login": "Ednaordinary",
          "committed_at": "2024-09-07T12:54:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e51193cd3a6860f8631e8feefe075c9e527d329",
          "body": "* ci(pre-commit): autoupdate hook versions\r\n\r\n\r\nupdates:\r\n- [github.com/astral-sh/ruff-pre-commit: v0.1.11 → v0.6.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.11...v0.6.3)\r\n- [github.com/psf/black: 23.12.1 → 24.8.0](https://github.com/psf/black/compare/23.12.1...24.8.0)\r\n- [github.co\n[…]\n-commit/pre-commit-hooks/compare/v4.5.0...v4.6.0)\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(pre-commit): autoupdate hook versions (#1161)",
          "author_name": "pre-commit-ci[bot]",
          "author_login": "pre-commit-ci[bot]",
          "committed_at": "2024-09-07T12:30:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eb1b80198c7073a1e0a592f3968b7c47c51d1fd3",
          "body": "* feat(app-cmds): Implement User-Installed Apps\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* style: Fix failing check\r\n\r\n* docs(enums): Add missing periods in enum docstrings\r\n\r\n* feat(Client): Implement new application commands parameters\r\n\r\n* feat(Interaction & Message & AppInfo): Implement m\n[…]\npre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: teaishealthy <76410798+teaishealthy@users.noreply.github.com>\r\nCo-authored-by: Emma Terzioglu <50607143+EmreTech@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(app-cmds): Implement User-Installed Apps (#1181)",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2024-09-02T21:03:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0a5cef87d4e33f9bce5fbcd665330d0f5604aca2",
          "body": "* Revert \"docs(app-cmds): document SlashCommandMixin.options\" #986\r\n\r\n* fix: NameError within isinstance check\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* chore: PR feedback\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* chore: PR feedback\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: NameError within slash command isinstance check (#1204)",
          "author_name": "Ethan",
          "author_login": "Skelmis",
          "committed_at": "2024-08-31T17:56:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "943e60bd0f393ddda41f50e1d5fe9ccaef3f51c5",
          "body": "…201)\n\n* chore(abc): Add SupportsStr ABC\r\n\r\nSupportsStr allows the typechecker to see if a class has implemented the __str__ magic method\r\n\r\n* typing(embeds): Change method typing to include SupportsStr were needed\r\n\r\nEmbed methods can now accept classs instances that have implemented the __str__ ma\n[…]\nns, Internal str() conversions have also been removed as requested.\r\n\r\n* fix(custom-interaction): Resolves an issue due to a typing change, icon_url now gets passed the url instead of the Asset object",
          "is_bot": false,
          "headline": "typing(embeds): Retype embed methods to accept str instead of any (#1…",
          "author_name": "Jodenee",
          "author_login": "Jodenee",
          "committed_at": "2024-08-29T15:31:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "676ae52f17d169591032867ddecf1153fee4749b",
          "body": "* fix: apply new user global_name on user update\r\n\r\n* fix: remove unintended backtick",
          "is_bot": false,
          "headline": "fix(User): apply new user global_name on user update (#1203)",
          "author_name": "green.",
          "author_login": "greeeen-dev",
          "committed_at": "2024-08-23T14:25:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8757ed13e13ab5b149ca0cbc0a0af155f62f7f9",
          "body": "* modify Client.run()\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\r\n\r\n* change Client.run() args\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\r\n\r\n* document _cleanup_loop, rea-add sigterm handling.\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@\n[…]\n, add tiny sleep to allow cancelled tasks to cancel\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\r\n\r\n---------\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>",
          "is_bot": false,
          "headline": "refactor: simplify Client.run() (#1196)",
          "author_name": "Alex Schoenhofen",
          "author_login": "alentoghostflame",
          "committed_at": "2024-08-12T22:34:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59bb2ec1fbf1351c91151087d27e1594fbd94881",
          "body": "…ge (#1157)\n\n* fix: check View.prevent_update in Webhook.send and Webhook.edit\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: check View.prevent_update in Webhook.send and Webhook.edit_messa…",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2024-08-11T04:17:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b87b0a70ebf3f95e5f27cbb04e4c0e9bb7b8fda5",
          "body": "* fix(enums): Add `InviteType` to __all__\r\n\r\n* docs(enums): Add `InviteType`to the Enumerations section",
          "is_bot": false,
          "headline": "docs(enums): Add `InviteType` to the Enumerations section (#1200)",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2024-07-26T08:08:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9785cb70be9659ecca193b76ca755bb6929dd696",
          "body": "* docs(AuditLogEntry): document missing attribute\r\n\r\n* Apply ooliver solution\r\n\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "docs(audit-logs): document missing attribute (#1188)",
          "author_name": "xXenvy",
          "author_login": "xXenvy",
          "committed_at": "2024-06-26T21:53:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eaa782b73ccf4b1e1969f04199ea4f94fd24597b",
          "body": "Fix typo",
          "is_bot": false,
          "headline": "docs(automod): fix typo of intents.message_content (#1194)",
          "author_name": "MaskDuck",
          "author_login": "MaskDuck",
          "committed_at": "2024-06-26T04:27:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c4522b0059b756c8cffdbfd956bf4864b013a6c",
          "body": null,
          "is_bot": false,
          "headline": "doc: add clarification to executable param (#1165)",
          "author_name": "Ethan",
          "author_login": "Skelmis",
          "committed_at": "2024-06-14T09:36:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0b7f9f183dc9fc9c4f2f898c9d30ed0c3a12a92",
          "body": "* feat: add list of webhooks to forum, stage, and voice channels\r\n\r\n* fix docstring (version)\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* Update version per review\r\n\r\nCo-authored-by: Emma Terzioglu <50607143+EmreTech@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Acco <contact@acco4321.com>\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: Emma Terzioglu <50607143+EmreTech@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add list of webhooks to forum, stage, and voice channels (#1177)",
          "author_name": "acco4321",
          "author_login": "acco4321",
          "committed_at": "2024-06-14T07:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79d756d179fba450c5e5d44e7198789900ce6086",
          "body": "* feat(invite): add `type` attribute\r\n\r\n* docs(enums): add remaning period to group_dm\r\n\r\nCo-authored-by: Arjun Sharda <77706434+ArjunSharda@users.noreply.github.com>\r\n\r\n* docs(enums): change versionadded to 3.0\r\n\r\nNo more python 3.10 support, sorry guys :(\r\n\r\n* docs(invite): add newline between ver\n[…]\nTech@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Arjun Sharda <77706434+ArjunSharda@users.noreply.github.com>\r\nCo-authored-by: Emma Terzioglu <50607143+EmreTech@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(invite): add `type` attribute (#1173)",
          "author_name": "spifory",
          "author_login": "spifory",
          "committed_at": "2024-06-14T07:31:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cc64fb197c9eeefecfbc0c1e4d57f73b26e2270e",
          "body": "feat(WidgetMember): update display_name method to include global_name\r\n\r\nCo-authored-by: skelmis <skelmis.craft@gmail.com>",
          "is_bot": false,
          "headline": "feat(widget): update display_name method to include global_name (#1183)",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2024-06-14T06:50:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e497474d61517df50e9e450ef8f94babccd8c294",
          "body": "feat(auto_moderation): Add custom_message support (#1192)",
          "is_bot": false,
          "headline": "feat(auto_moderation): Add custom_message support (#1192)",
          "author_name": "Gloria",
          "author_login": "yeah-its-gloria",
          "committed_at": "2024-06-14T06:31:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d97d5d91910d84280c129d3bf7bb647ee4ce7fb",
          "body": null,
          "is_bot": false,
          "headline": "fix: name version metadata properly in __main__",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-06-13T10:40:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67be9b938560c5377eb448ca980f29f96ed0f2ee",
          "body": null,
          "is_bot": false,
          "headline": "fix: use importlib.metadata for version finding",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-06-13T10:39:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e339f197768c5778b25490238bc2911ce0dc1ac4",
          "body": "* removal!: deprecations from 2.0\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n---------\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "removal!: deprecations from 2.0 (#1129)",
          "author_name": "Emma Terzioglu",
          "author_login": "EmmmaTech",
          "committed_at": "2024-06-12T18:47:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "017cb3699e0bf395b8dbe821f2409e479a3bd3b2",
          "body": null,
          "is_bot": false,
          "headline": "chore: add 3.12 to supported lists (#1135)",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-06-12T18:42:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5321e860b2c2bb65aa4d0d4db24d31e9aa013cf7",
          "body": null,
          "is_bot": false,
          "headline": "refactor: remove _InteractionMessageState hack (#1186)",
          "author_name": "teaishealthy",
          "author_login": "teaishealthy",
          "committed_at": "2024-05-22T21:23:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d4eea08e6b493cb7309275355c5dd7348d92696",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove old autogen excludes (#1184)",
          "author_name": "Luvuyo Khumalo",
          "author_login": "spifory",
          "committed_at": "2024-05-21T16:56:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "570c64008767041371efd9d30ad93f019c553d9b",
          "body": "* feat(user): add `banner` param to ClientUser.edit\r\n\r\n* docs(user): give `banner` a description like `avatar`",
          "is_bot": false,
          "headline": "feat(user): add `banner` param to ClientUser.edit (#1171)",
          "author_name": "Luvuyo Khumalo",
          "author_login": "spifory",
          "committed_at": "2024-05-21T16:28:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "108e9577e6bbfb143f8331473d97f5d6a51110b4",
          "body": "…s (#1180)\n\nPrevents the bot from crashing with aiohttp.http_websocket.WebSocketError: Received fragmented control frame\r\nPorted from Discord.py : https://github.com/Rapptz/discord.py/commit/163a86c4a031f7ecd856f45a74da47e63b17bb16",
          "is_bot": false,
          "headline": "fix(DiscordWebSocket): Raise WebSocketClosure on protocol level error…",
          "author_name": "Kevin_OVI",
          "author_login": "Kevin-OVI",
          "committed_at": "2024-05-18T00:50:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf81368144ec36fe87dadd8dd8e1d5aaaa0eedf7",
          "body": "* Initial Commit\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\r\n\r\n* style: auto fixes from pre-commit hooks\r\n\r\n* Removes some commented code, attempts to fix some pyright concerns by raising errors instead.\r\n\r\nSigned-off-by: Alex Schoenhofen <alexanderschoenhofen@gmail.com>\r\n\r\n\n[…]\nreply.github.com>\r\nCo-authored-by: Alex <alex@darkkingdom.lan>\r\nCo-authored-by: Emre Terzioglu <50607143+EmreTech@users.noreply.github.com>\r\nCo-authored-by: Oliver Wilkes <oliverwilkes2006@icloud.com>",
          "is_bot": false,
          "headline": "refactor: HTTPClient Re-Core (#1057)",
          "author_name": "Alex Schoenhofen",
          "author_login": "alentoghostflame",
          "committed_at": "2024-05-17T22:05:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2b6c44114362b2f5a78fe02d9e17733894be88c6",
          "body": null,
          "is_bot": false,
          "headline": "ci(pre-commit): run autotyping first",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-05-16T19:01:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50dd5d5c16ce27411bdc129e78e744ffd5417312",
          "body": null,
          "is_bot": false,
          "headline": "refactor: run pre-commit again",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-05-16T18:59:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "891869ac9c0933069c065e4007807e02686570e4",
          "body": null,
          "is_bot": false,
          "headline": "ci(pre-commit): libcst 1.3 does not detect modules properly",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-05-16T18:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db8d3f9043a264fb5dc25c747e144436cbabcc5a",
          "body": null,
          "is_bot": false,
          "headline": "ci(pre-commit): update autotyping dependencies",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-05-16T18:40:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0216fa8911f33bd4fb3c6324ef1925fbec8496d1",
          "body": "…e (#1123)",
          "is_bot": false,
          "headline": "feat(User & Member): update display_name method to include global_nam…",
          "author_name": "ToasterUwU",
          "author_login": "ToasterUwU",
          "committed_at": "2024-04-23T22:30:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c11817e86a36dc3514fd20ad427c510e06fefe3a",
          "body": null,
          "is_bot": false,
          "headline": "ci(readthedocs): resolve poetry install errors",
          "author_name": "Oliver Wilkes",
          "author_login": "ooliver1",
          "committed_at": "2024-03-23T19:41:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "315852cccd4f07500f8664f465e68bb8563b8ee8",
          "body": "* docs: update required permissions for prune\n\n* docs: mention kick_members too\n\n* docs: final syntactic fixes :)",
          "is_bot": false,
          "headline": "docs: update required permissions for prune (#1169)",
          "author_name": "vcokltfre",
          "author_login": "vcokltfre",
          "committed_at": "2024-03-22T17:12:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c860268afc42f4bc770f1abd0a137e0ce41d006",
          "body": "updates:\r\n- [github.com/astral-sh/ruff-pre-commit: v0.1.6 → v0.1.11](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.6...v0.1.11)\r\n- [github.com/psf/black: 23.11.0 → 23.12.1](https://github.com/psf/black/compare/23.11.0...23.12.1)\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(pre-commit): autoupdate hook versions (#1153)",
          "author_name": "pre-commit-ci[bot]",
          "author_login": "pre-commit-ci[bot]",
          "committed_at": "2024-01-15T10:20:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d050c2540d6085cfca2efe35db839680de53808",
          "body": "Co-authored-by: Ethan <47520067+Skelmis@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(commands): add extras kwarg to bot.reload_extension (#1158)",
          "author_name": "Jodenee",
          "author_login": "Jodenee",
          "committed_at": "2024-01-01T15:34:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 33,
      "commits_last_year": 26,
      "latest_release_at": "2026-05-21T18:00:26Z",
      "latest_release_tag": "v3.2.0",
      "releases_from_tags": false,
      "days_since_last_push": 6,
      "active_weeks_last_year": 10,
      "days_since_latest_release": 66,
      "mean_days_between_releases": 129.5
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "nextcord",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "Development Status :: 5 - Production/Stable",
            "Framework :: AsyncIO",
            "Framework :: aiohttp",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Natural Language :: English",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14",
            "Topic :: Internet",
            "Topic :: Software Development :: Libraries",
            "Topic :: Software Development :: Libraries :: Python Modules",
            "Topic :: Utilities",
            "Typing :: Typed"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/nextcord/",
          "is_deprecated": false,
          "latest_version": "3.2.0",
          "repository_url": "https://github.com/nextcord/nextcord",
          "versions_count": 35,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2021-08-28T13:33:34.441827Z",
          "latest_published_at": "2026-05-21T18:01:18.234807Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 66
        }
      ]
    },
    "popularity": {
      "forks": 206,
      "stars": 1266,
      "watchers": 10,
      "fork_history": {
        "days": [
          {
            "date": "2021-08-28",
            "count": 1
          },
          {
            "date": "2021-08-29",
            "count": 5
          },
          {
            "date": "2021-08-30",
            "count": 2
          },
          {
            "date": "2021-09-01",
            "count": 1
          },
          {
            "date": "2021-09-02",
            "count": 1
          },
          {
            "date": "2021-09-04",
            "count": 2
          },
          {
            "date": "2021-09-14",
            "count": 1
          },
          {
            "date": "2021-09-21",
            "count": 2
          },
          {
            "date": "2021-10-05",
            "count": 2
          },
          {
            "date": "2021-10-06",
            "count": 3
          },
          {
            "date": "2021-10-10",
            "count": 1
          },
          {
            "date": "2021-10-20",
            "count": 1
          },
          {
            "date": "2021-10-23",
            "count": 1
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-10-29",
            "count": 2
          },
          {
            "date": "2021-10-30",
            "count": 3
          },
          {
            "date": "2021-10-31",
            "count": 1
          },
          {
            "date": "2021-11-05",
            "count": 1
          },
          {
            "date": "2021-11-06",
            "count": 1
          },
          {
            "date": "2021-11-13",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-18",
            "count": 1
          },
          {
            "date": "2021-11-19",
            "count": 1
          },
          {
            "date": "2021-11-23",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2021-11-29",
            "count": 1
          },
          {
            "date": "2021-12-08",
            "count": 2
          },
          {
            "date": "2021-12-09",
            "count": 1
          },
          {
            "date": "2021-12-10",
            "count": 1
          },
          {
            "date": "2021-12-16",
            "count": 2
          },
          {
            "date": "2021-12-22",
            "count": 1
          },
          {
            "date": "2021-12-23",
            "count": 1
          },
          {
            "date": "2021-12-26",
            "count": 1
          },
          {
            "date": "2021-12-29",
            "count": 1
          },
          {
            "date": "2021-12-31",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-23",
            "count": 1
          },
          {
            "date": "2022-01-26",
            "count": 2
          },
          {
            "date": "2022-01-28",
            "count": 1
          },
          {
            "date": "2022-01-30",
            "count": 1
          },
          {
            "date": "2022-02-12",
            "count": 1
          },
          {
            "date": "2022-02-13",
            "count": 1
          },
          {
            "date": "2022-02-15",
            "count": 2
          },
          {
            "date": "2022-02-21",
            "count": 1
          },
          {
            "date": "2022-03-01",
            "count": 1
          },
          {
            "date": "2022-03-05",
            "count": 2
          },
          {
            "date": "2022-03-07",
            "count": 1
          },
          {
            "date": "2022-03-09",
            "count": 1
          },
          {
            "date": "2022-03-16",
            "count": 2
          },
          {
            "date": "2022-03-18",
            "count": 1
          },
          {
            "date": "2022-03-19",
            "count": 1
          },
          {
            "date": "2022-03-23",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 1
          },
          {
            "date": "2022-03-26",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 1
          },
          {
            "date": "2022-04-05",
            "count": 1
          },
          {
            "date": "2022-04-08",
            "count": 1
          },
          {
            "date": "2022-04-10",
            "count": 2
          },
          {
            "date": "2022-04-12",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-17",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-25",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-05-07",
            "count": 1
          },
          {
            "date": "2022-05-08",
            "count": 1
          },
          {
            "date": "2022-05-09",
            "count": 1
          },
          {
            "date": "2022-05-10",
            "count": 1
          },
          {
            "date": "2022-05-13",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-05-26",
            "count": 1
          },
          {
            "date": "2022-06-02",
            "count": 2
          },
          {
            "date": "2022-06-08",
            "count": 1
          },
          {
            "date": "2022-06-10",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 1
          },
          {
            "date": "2022-06-18",
            "count": 1
          },
          {
            "date": "2022-06-22",
            "count": 1
          },
          {
            "date": "2022-06-23",
            "count": 1
          },
          {
            "date": "2022-06-25",
            "count": 1
          },
          {
            "date": "2022-06-27",
            "count": 1
          },
          {
            "date": "2022-06-30",
            "count": 1
          },
          {
            "date": "2022-07-09",
            "count": 1
          },
          {
            "date": "2022-08-09",
            "count": 2
          },
          {
            "date": "2022-08-11",
            "count": 1
          },
          {
            "date": "2022-08-14",
            "count": 1
          },
          {
            "date": "2022-08-15",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 1
          },
          {
            "date": "2022-08-23",
            "count": 1
          },
          {
            "date": "2022-08-26",
            "count": 2
          },
          {
            "date": "2022-09-04",
            "count": 1
          },
          {
            "date": "2022-09-06",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-09-12",
            "count": 1
          },
          {
            "date": "2022-09-15",
            "count": 1
          },
          {
            "date": "2022-09-27",
            "count": 1
          },
          {
            "date": "2022-10-01",
            "count": 1
          },
          {
            "date": "2022-10-04",
            "count": 1
          },
          {
            "date": "2022-10-05",
            "count": 1
          },
          {
            "date": "2022-10-10",
            "count": 1
          },
          {
            "date": "2022-10-16",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 1
          },
          {
            "date": "2022-10-29",
            "count": 1
          },
          {
            "date": "2022-11-09",
            "count": 1
          },
          {
            "date": "2022-11-13",
            "count": 1
          },
          {
            "date": "2022-11-21",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 1
          },
          {
            "date": "2022-11-25",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-15",
            "count": 1
          },
          {
            "date": "2022-12-20",
            "count": 1
          },
          {
            "date": "2022-12-24",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 1
          },
          {
            "date": "2023-01-09",
            "count": 1
          },
          {
            "date": "2023-02-22",
            "count": 3
          },
          {
            "date": "2023-03-10",
            "count": 1
          },
          {
            "date": "2023-03-18",
            "count": 1
          },
          {
            "date": "2023-03-26",
            "count": 1
          },
          {
            "date": "2023-03-30",
            "count": 1
          },
          {
            "date": "2023-04-06",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-04-16",
            "count": 1
          },
          {
            "date": "2023-05-04",
            "count": 1
          },
          {
            "date": "2023-06-29",
            "count": 1
          },
          {
            "date": "2023-07-09",
            "count": 1
          },
          {
            "date": "2023-07-27",
            "count": 1
          },
          {
            "date": "2023-08-15",
            "count": 1
          },
          {
            "date": "2023-09-19",
            "count": 1
          },
          {
            "date": "2023-09-23",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 1
          },
          {
            "date": "2023-12-27",
            "count": 1
          },
          {
            "date": "2024-01-03",
            "count": 1
          },
          {
            "date": "2024-01-12",
            "count": 1
          },
          {
            "date": "2024-02-05",
            "count": 1
          },
          {
            "date": "2024-02-16",
            "count": 1
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 1
          },
          {
            "date": "2024-06-01",
            "count": 1
          },
          {
            "date": "2024-06-02",
            "count": 1
          },
          {
            "date": "2024-06-11",
            "count": 1
          },
          {
            "date": "2024-08-13",
            "count": 1
          },
          {
            "date": "2024-10-19",
            "count": 1
          },
          {
            "date": "2024-11-02",
            "count": 1
          },
          {
            "date": "2024-11-13",
            "count": 1
          },
          {
            "date": "2024-11-16",
            "count": 1
          },
          {
            "date": "2024-12-01",
            "count": 1
          },
          {
            "date": "2024-12-29",
            "count": 1
          },
          {
            "date": "2025-01-04",
            "count": 1
          },
          {
            "date": "2025-02-10",
            "count": 1
          },
          {
            "date": "2025-02-16",
            "count": 1
          },
          {
            "date": "2025-02-17",
            "count": 1
          },
          {
            "date": "2025-03-23",
            "count": 1
          },
          {
            "date": "2025-04-01",
            "count": 2
          },
          {
            "date": "2025-04-11",
            "count": 1
          },
          {
            "date": "2025-04-15",
            "count": 1
          },
          {
            "date": "2025-04-16",
            "count": 1
          },
          {
            "date": "2025-04-26",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-08-13",
            "count": 1
          },
          {
            "date": "2025-08-17",
            "count": 1
          },
          {
            "date": "2025-08-18",
            "count": 1
          },
          {
            "date": "2025-08-30",
            "count": 1
          },
          {
            "date": "2025-09-14",
            "count": 1
          },
          {
            "date": "2025-10-23",
            "count": 1
          },
          {
            "date": "2025-10-26",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-11-07",
            "count": 1
          },
          {
            "date": "2025-11-19",
            "count": 1
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-02-04",
            "count": 1
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-06-21",
            "count": 1
          },
          {
            "date": "2026-07-24",
            "count": 1
          },
          {
            "date": "2026-07-26",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 203,
        "total_forks": 206
      },
      "star_history": null,
      "open_issues_and_prs": 65
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "docs/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "nextcord/ext/application_checks/py.typed",
        "nextcord/ext/commands/py.typed",
        "nextcord/ext/slash_utils/py.typed",
        "nextcord/ext/tasks/py.typed",
        "nextcord/py.typed"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 159297,
      "source_files_sampled": 168,
      "oversized_source_files": 11,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 11,
        "malicious_count": 0,
        "assessed_package": "pypi:nextcord@3.2.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "aiohttp",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^3.8.0"
        },
        {
          "name": "typing_extensions",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^4.2.0"
        },
        {
          "name": "audioop-lts",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^0.2.1"
        },
        {
          "name": "PyNaCl",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.5.0,<1.6"
        },
        {
          "name": "orjson",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.5.4"
        },
        {
          "name": "aiodns",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">1.1"
        },
        {
          "name": "Brotli",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "*"
        },
        {
          "name": "brotlicffi",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "*"
        },
        {
          "name": "dave-py",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^0.1.2"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "aiodns",
            "direct": true,
            "version": "4.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": true,
            "version": "3.13.5",
            "ecosystem": "pypi"
          },
          {
            "name": "audioop-lts",
            "direct": true,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": true,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "brotlicffi",
            "direct": true,
            "version": "1.2.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dave-py",
            "direct": true,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": true,
            "version": "3.11.9",
            "ecosystem": "pypi"
          },
          {
            "name": "pynacl",
            "direct": true,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": true,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "alabaster",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "babel",
            "direct": false,
            "version": "2.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.5.20",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.7",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.29.0",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.19",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.15",
            "ecosystem": "pypi"
          },
          {
            "name": "imagesize",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mslex",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.9.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pycares",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyright",
            "direct": false,
            "version": "1.1.391",
            "ecosystem": "pypi"
          },
          {
            "name": "python-discovery",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.34.2",
            "ecosystem": "pypi"
          },
          {
            "name": "roman-numerals",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "slotscheck",
            "direct": false,
            "version": "0.19.1",
            "ecosystem": "pypi"
          },
          {
            "name": "snowballstemmer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx",
            "direct": false,
            "version": "9.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-autobuild",
            "direct": false,
            "version": "2025.8.25",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-applehelp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-devhelp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-htmlhelp",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-jsmath",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-qthelp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-serializinghtml",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-trio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-websupport",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "taskipy",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.47.0",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "21.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": false,
            "version": "16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.24.2",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 69,
        "direct_count": 9,
        "indirect_count": 60
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 24,
        "merged_prs": 604,
        "open_issues": 41,
        "closed_ratio": 0.891,
        "closed_issues": 335,
        "closed_unmerged_prs": 179
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "Rapptz",
          "commits": 2386,
          "avatar_url": "https://avatars.githubusercontent.com/u/1695103?v=4"
        },
        {
          "type": "User",
          "login": "ooliver1",
          "commits": 172,
          "avatar_url": "https://avatars.githubusercontent.com/u/34910574?v=4"
        },
        {
          "type": "User",
          "login": "NCPlayz",
          "commits": 136,
          "avatar_url": "https://avatars.githubusercontent.com/u/26068884?v=4"
        },
        {
          "type": "User",
          "login": "DenverCoder1",
          "commits": 110,
          "avatar_url": "https://avatars.githubusercontent.com/u/20955511?v=4"
        },
        {
          "type": "User",
          "login": "TAG-Epic",
          "commits": 92,
          "avatar_url": "https://avatars.githubusercontent.com/u/35035079?v=4"
        },
        {
          "type": "User",
          "login": "bijij",
          "commits": 87,
          "avatar_url": "https://avatars.githubusercontent.com/u/8677174?v=4"
        },
        {
          "type": "User",
          "login": "khazhyk",
          "commits": 69,
          "avatar_url": "https://avatars.githubusercontent.com/u/1542025?v=4"
        },
        {
          "type": "User",
          "login": "Hornwitser",
          "commits": 42,
          "avatar_url": "https://avatars.githubusercontent.com/u/14362102?v=4"
        },
        {
          "type": "User",
          "login": "SebbyLaw",
          "commits": 38,
          "avatar_url": "https://avatars.githubusercontent.com/u/44045823?v=4"
        },
        {
          "type": "User",
          "login": "EmmmaTech",
          "commits": 36,
          "avatar_url": "https://avatars.githubusercontent.com/u/50607143?v=4"
        }
      ],
      "contributors_sampled": 99,
      "top_contributor_share": 0.598
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": false,
      "ci_workflows": [
        "codeql-analysis.yml",
        "docs.yml",
        "lint.yml",
        "publish.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 8,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 8,
            "reason": "19 out of 22 merged PRs checked by a CI test -- score normalized to 8",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 7,
            "reason": "Found 19/27 approved changesets -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 52 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 9,
            "reason": "SAST tool detected but not run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "8ceca454c9ddc2185b5963cc49153ac4684cfd15",
        "ran_at": "2026-07-27T00:30:30Z",
        "aggregate_score": 5.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T21:55:16Z",
      "oldest_open_prs": [
        {
          "number": 970,
          "created_at": "2023-01-09T22:13:25Z",
          "last_comment_at": "2023-07-26T12:32:42Z",
          "last_comment_author": "teaishealthy"
        },
        {
          "number": 1052,
          "created_at": "2023-04-30T15:52:50Z",
          "last_comment_at": "2025-06-15T16:01:39Z",
          "last_comment_author": "Soheab"
        },
        {
          "number": 1053,
          "created_at": "2023-04-30T16:26:51Z",
          "last_comment_at": "2025-06-15T16:08:43Z",
          "last_comment_author": "Soheab"
        },
        {
          "number": 1070,
          "created_at": "2023-06-16T20:38:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1078,
          "created_at": "2023-07-06T03:33:10Z",
          "last_comment_at": "2024-01-15T10:32:01Z",
          "last_comment_author": "Skelmis"
        },
        {
          "number": 1079,
          "created_at": "2023-07-06T17:27:14Z",
          "last_comment_at": "2024-01-15T10:30:45Z",
          "last_comment_author": "Skelmis"
        },
        {
          "number": 1082,
          "created_at": "2023-07-06T23:56:57Z",
          "last_comment_at": "2025-06-19T14:34:01Z",
          "last_comment_author": "ooliver1"
        },
        {
          "number": 1083,
          "created_at": "2023-07-07T09:52:36Z",
          "last_comment_at": "2025-07-01T08:14:23Z",
          "last_comment_author": "Soheab"
        },
        {
          "number": 1112,
          "created_at": "2023-08-17T13:54:37Z",
          "last_comment_at": "2024-09-06T00:55:12Z",
          "last_comment_author": "teaishealthy"
        },
        {
          "number": 1113,
          "created_at": "2023-08-17T20:16:36Z",
          "last_comment_at": "2025-04-17T18:36:39Z",
          "last_comment_author": "ooliver1"
        },
        {
          "number": 1117,
          "created_at": "2023-09-02T06:02:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1122,
          "created_at": "2023-09-23T00:28:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1138,
          "created_at": "2023-10-22T04:45:21Z",
          "last_comment_at": "2025-04-25T14:20:01Z",
          "last_comment_author": "epsilonion-liam"
        },
        {
          "number": 1140,
          "created_at": "2023-10-24T16:38:04Z",
          "last_comment_at": "2026-05-22T09:23:44Z",
          "last_comment_author": "Soheab"
        },
        {
          "number": 1189,
          "created_at": "2024-06-03T07:34:17Z",
          "last_comment_at": "2025-02-03T12:56:07Z",
          "last_comment_author": "MaskDuck"
        },
        {
          "number": 1197,
          "created_at": "2024-06-27T01:14:31Z",
          "last_comment_at": "2024-06-27T01:33:41Z",
          "last_comment_author": "EmmmaTech"
        },
        {
          "number": 1199,
          "created_at": "2024-06-29T19:45:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1248,
          "created_at": "2025-02-21T12:34:41Z",
          "last_comment_at": "2026-05-01T20:59:26Z",
          "last_comment_author": "FlunseyTheFox"
        },
        {
          "number": 1259,
          "created_at": "2025-06-25T15:04:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1260,
          "created_at": "2025-06-25T22:06:35Z",
          "last_comment_at": "2025-06-27T23:12:11Z",
          "last_comment_author": "ooliver1"
        }
      ],
      "last_merged_pr_at": "2026-07-08T23:01:12Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 54,
          "created_at": "2021-08-29T19:33:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 98,
          "created_at": "2021-09-01T17:59:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 100,
          "created_at": "2021-09-01T18:01:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 113,
          "created_at": "2021-09-02T17:27:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 118,
          "created_at": "2021-09-02T17:37:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 124,
          "created_at": "2021-09-02T17:55:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 126,
          "created_at": "2021-09-02T17:58:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 127,
          "created_at": "2021-09-02T18:00:10Z",
          "last_comment_at": "2023-03-31T08:49:38Z",
          "last_comment_author": "spifory"
        },
        {
          "number": 173,
          "created_at": "2021-09-20T14:44:19Z",
          "last_comment_at": "2022-04-19T19:15:23Z",
          "last_comment_author": "DeveloperAnonymous"
        },
        {
          "number": 214,
          "created_at": "2021-10-12T07:37:29Z",
          "last_comment_at": "2022-02-18T08:00:13Z",
          "last_comment_author": "MaskDuck"
        },
        {
          "number": 393,
          "created_at": "2022-01-28T13:56:41Z",
          "last_comment_at": "2022-04-10T12:11:11Z",
          "last_comment_author": "Skelmis"
        },
        {
          "number": 400,
          "created_at": "2022-01-28T22:44:01Z",
          "last_comment_at": "2026-02-01T04:02:32Z",
          "last_comment_author": "riverpaper"
        },
        {
          "number": 474,
          "created_at": "2022-02-16T20:37:24Z",
          "last_comment_at": "2022-04-09T16:21:30Z",
          "last_comment_author": "ooliver1"
        },
        {
          "number": 633,
          "created_at": "2022-05-02T11:50:40Z",
          "last_comment_at": "2022-12-06T13:50:42Z",
          "last_comment_author": "ArjunSharda"
        },
        {
          "number": 748,
          "created_at": "2022-07-21T14:31:04Z",
          "last_comment_at": "2022-08-04T22:25:17Z",
          "last_comment_author": "ooliver1"
        },
        {
          "number": 768,
          "created_at": "2022-08-11T21:37:43Z",
          "last_comment_at": "2023-10-08T20:13:20Z",
          "last_comment_author": "teaishealthy"
        },
        {
          "number": 824,
          "created_at": "2022-09-19T21:08:59Z",
          "last_comment_at": "2023-03-26T17:34:50Z",
          "last_comment_author": "elenakrittik"
        },
        {
          "number": 865,
          "created_at": "2022-10-25T17:45:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 874,
          "created_at": "2022-10-28T16:20:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 875,
          "created_at": "2022-10-29T12:31:54Z",
          "last_comment_at": "2022-11-06T19:46:03Z",
          "last_comment_author": "spifory"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/nextcord/nextcord",
    "host": "github.com",
    "name": "nextcord",
    "owner": "nextcord"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 72,
      "inputs": {
        "security": 67,
        "vitality": 73,
        "community": 76,
        "governance": 68,
        "engineering": 76
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 73,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "commits_last_year": 26,
              "human_commit_share": 0.94,
              "days_since_last_push": 6,
              "active_weeks_last_year": 10
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "10/52 weeks with commits",
                "points": 6.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "26 commits in the last year",
                "points": 12.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 26
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 84,
            "inputs": {
              "releases_count": 33,
              "latest_release_tag": "v3.2.0",
              "releases_from_tags": false,
              "days_since_latest_release": 66,
              "mean_days_between_releases": 129.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "33 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 33
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 66 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 66
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~129.5 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 129.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 18,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 18 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 18
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 76,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "forks": 206,
              "stars": 1266,
              "watchers": 10,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,266 stars",
                "points": 50.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1266
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "206 forks",
                "points": 19.3,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 206
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "10 watchers",
                "points": 5.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 68,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 42,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 99,
              "top_contributor_share": 0.598
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 60% of commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 60
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "99 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 99
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 52 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "merged_prs": 604,
              "open_issues": 41,
              "closed_issues": 335,
              "issue_closed_ratio": 0.891,
              "closed_unmerged_prs": 179
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "89% of issues closed",
                "points": 41.7,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 89
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "604/783 decided PRs merged",
                "points": 29.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 604,
                      "decided": 783
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 19/27 approved changesets -- score normalized to 7",
                "points": 10.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "followers": 47,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "nextcord",
              "public_repos": 11,
              "account_age_days": 1793
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "47 followers of nextcord",
                "points": 12.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 47,
                      "login": "nextcord"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "11 public repos, account ~4 yr old",
                "points": 17.7,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 11
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 4
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "nextcord"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 66
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 66 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 66
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "35 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 35
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 76,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_ci": true,
              "has_tests": false,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "19 out of 22 merged PRs checked by a CI test -- score normalized to 8",
                "points": 16,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "discord",
                "discordpy",
                "api-wrapper",
                "bot-framework",
                "bots",
                "discord-api",
                "discord-bot",
                "discord-py",
                "discordbot",
                "python",
                "python3",
                "hacktoberfest"
              ],
              "has_wiki": false,
              "homepage": "https://docs.nextcord.dev",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://docs.nextcord.dev",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "12 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 67,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "19 out of 22 merged PRs checked by a CI test -- score normalized to 8",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 19/27 approved changesets -- score normalized to 7",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 52 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected but not run on all commits",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:nextcord@3.2.0 runtime dependency closure — what installing the published package pulls in — 11 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:nextcord@3.2.0",
                  "assessed": 11
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 11,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 11,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 12
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "at_risk",
        "name": "AI Readiness",
        "value": 46,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "94 of 94 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 94,
                      "sampled": 94
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_nix": false,
              "has_tests": false,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [
                "docs/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "nextcord/ext/application_checks/py.typed",
                "nextcord/ext/commands/py.typed",
                "nextcord/ext/slash_utils/py.typed",
                "nextcord/ext/tasks/py.typed",
                "nextcord/py.typed"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "docs/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "docs/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "nextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "nextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 159297,
              "source_files_sampled": 168,
              "oversized_source_files": 11
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (nextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "nextcord/ext/application_checks/py.typed, nextcord/ext/commands/py.typed, nextcord/ext/slash_utils/py.typed, nextcord/ext/tasks/py.typed, nextcord/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "11/168 source files over 60KB",
                "points": 51.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 168,
                      "oversized": 11
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T00:30:56.482189Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/nextcord/nextcord.svg",
  "full_name": "nextcord/nextcord",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsPyPI.