feat(membership): add inactive member detection
@JakobJingleheimer mentioned that during the collaborator's summit, it was discussed that we should be more wary of the size of the organization. This adds a daily workflow to keep a constant "activity monitor" issue open.
It requires that a `public_repo`, `read:org` token be made for this repository.
An example issue that this workflow generates is below (Note: In a real issue, these users would be pinged):
<details>
<summary>Workflow Output</summary>
```
# Organization Inactivity Audit — nodejs
_Run: 2026-04-26T16:11:12.618Z · Window: last 90 days · Inactive: 125/254_
## Summary
- Inactive members: 125
- Members with no team: 9
- Members with no recent activity: 122
- Both signals: 6
## Inactive members
| Login | Reason | Last seen | Teams |
|---|---|---|---|
| @a0viedo | no-activity | — | `documentation`, `all-members` |
| @AdamBraden | no-activity | — | `platform-windows`, `platforms`, `core`, `platform-windows-arm`, `platform-windows-arm-testing`, `all-members` |
| @agnat | no-activity | — | `addon-api`, `coreworkinggroups`, `all-members` |
| @ahmadawais | no-activity | — | `next-10`, `all-members` |
| @aixtools | no-team | — | — |
| @aks- | no-activity | — | `http`, `core`, `all-members` |
| @alexcfyung | no-activity | — | `platforms`, `core`, `platform-zos`, `all-members` |
| @alexeykuzmin | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @alexweej | no-team | — | — |
| @amiller-gh | no-activity | — | `commit-queue`, `all-members` |
| @anandsuresh | no-activity | — | `platform-freebsd`, `platforms`, `core`, `all-members` |
| @andrewbranch | no-activity | — | `typescript`, `all-members` |
| @AnnaMag | no-activity | — | `v8`, `core`, `vm`, `all-members` |
| @ashishkurmi | no-activity | — | `security-wg`, `all-members` |
| @bahamat | no-activity, no-team | — | — |
| @bajtos | no-activity | — | `all-members`, `wintercg` |
| @bmeurer | no-activity | — | `v8`, `performance`, `core`, `all-members` |
| @bradleythughes | no-activity | — | `platform-freebsd`, `platforms`, `core`, `all-members` |
| @bzoz | no-activity | — | `platform-windows`, `node-gyp`, `platforms`, `core`, `all-members` |
| @camillobruni | no-activity | — | `v8`, `core`, `all-members` |
| @charlespierce | no-activity, no-team | — | — |
| @coreybutler | no-activity | — | `version-management`, `delivery-channels`, `all-members` |
| @coreyfarrell | no-activity | — | `tooling`, `all-members` |
| @DavidCai1111 | no-activity | — | `testing`, `all-members` |
| @davidmarkclements | no-activity | — | `diagnostics`, `post-mortem`, `coreworkinggroups`, `all-members` |
| @davisjam | no-activity | — | `benchmarking`, `coreworkinggroups`, `all-members` |
| @designMoreWeb | no-activity | — | `electron-installer`, `next-10`, `all-members` |
| @dgonzalez | no-activity | — | `security-wg`, `all-members` |
| @ehsan | no-activity | — | `spidernode`, `all-members` |
| @emaste | no-activity | — | `platform-freebsd`, `platforms`, `core`, `all-members` |
| @Emuentes | no-activity | — | `package-maintenance`, `all-members` |
| @Eomm | no-activity | — | `package-maintenance`, `all-members` |
| @esarafianou | no-activity | — | `security-wg`, `all-members` |
| @evocateur | no-activity | — | `tooling`, `all-members` |
| @fed135 | no-activity | — | `all-members`, `web-server-frameworks` |
| @felixrieseberg | no-activity | — | `electron-installer`, `delivery-channels`, `embedders`, `all-members` |
| @fraxken | no-activity | — | `security-wg`, `all-members` |
| @fritzy | no-activity | — | `npm`, `core`, `all-members` |
| @gareth-ellis | no-activity | — | `benchmarking`, `performance`, `coreworkinggroups`, `core`, `all-members` |
| @gdams | no-activity | — | `testing`, `platform-macos`, `platforms`, `core`, `commit-queue`, `all-members` |
| @geek | no-activity | — | `platform-smartos`, `platforms`, `core`, `all-members` |
| @ghinks | no-activity | — | `package-maintenance`, `next-10`, `all-members` |
| @GnorTech | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @groundwater | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @gsathya | no-activity | — | `v8`, `core`, `all-members` |
| @Harkunwar | no-activity | — | `web`, `nodejs-website`, `all-members` |
| @hashseed | no-activity | — | `v8`, `core`, `v8-update`, `all-members` |
| @HinataKah0 | no-team | — | — |
| @hiroppy | no-activity | — | `core`, `path`, `console`, `all-members` |
| @hmalphettes | no-activity, no-team | — | — |
| @iansu | no-activity | — | `core`, `linting`, `tooling`, `package-maintenance`, `next-10`, `all-members` |
| @iarna | no-activity | — | `tooling`, `all-members` |
| @IgorTodorovskiIBM | no-activity | — | `platforms`, `core`, `platform-zos`, `all-members` |
| @imyller | no-activity | — | `platform-macos`, `platforms`, `core`, `all-members` |
| @jasonkarns | no-activity | — | `version-management`, `delivery-channels`, `all-members` |
| @jBarz | no-activity | — | `v8`, `core`, `all-members` |
| @jbergstroem | no-activity | — | `platform-freebsd`, `github-bot`, `platforms`, `core`, `all-members` |
| @JckXia | no-activity | — | `node-api`, `all-members` |
| @JiaLiPassion | no-activity | — | `async_hooks`, `core`, `all-members` |
| @jkleinsc | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @jlenon7 | no-activity | — | `loaders`, `all-members` |
| @joaocgreis | no-activity | — | `build`, `platform-windows`, `jenkins-release-admins`, `node-gyp`, `platforms`, `coreworkinggroups`, `core`, `jenkins-admins`, `build-infra`, `all-members` |
| @JoeDoyle23 | no-activity | — | `electron-installer`, `all-members` |
| @joesepi | no-activity | — | `security`, `tooling`, `next-10`, `all-members`, `security-stewards` |
| @john-yan | no-activity | — | `platform-s390`, `platform-aix`, `platform-ppc`, `platforms`, `core`, `all-members` |
| @JohnTitor | no-activity | — | `moderation`, `i18n`, `all-members` |
| @jperkin | no-activity | — | `platform-smartos`, `platforms`, `core`, `all-members` |
| @jschlight | no-activity | — | `node-api`, `all-members` |
| @karenyavine | no-activity | — | `security-wg`, `all-members` |
| @kjin | no-activity | — | `diagnostics`, `coreworkinggroups`, `core`, `perfetto`, `all-members` |
| @kunalspathak | no-activity | — | `benchmarking`, `coreworkinggroups`, `all-members` |
| @lance | no-activity | — | `platform-macos`, `platforms`, `core`, `all-members` |
| @larson-carter | no-activity, no-team | — | — |
| @lholmquist | no-activity | — | `package-maintenance`, `all-members` |
| @littledivy | no-activity | — | `node-api-implementer`, `all-members` |
| @lucamaraschi | no-activity | — | `diagnostics`, `post-mortem`, `coreworkinggroups`, `all-members` |
| @mafintosh | no-activity | — | `core`, `os`, `all-members` |
| @manishprivet | no-activity | — | `web`, `nodejs-website`, `all-members` |
| @marcelklehr | no-activity | — | `version-management`, `delivery-channels`, `all-members` |
| @MarcinHoppe | no-activity | — | `security-wg`, `all-members` |
| @mattpocock | no-activity, no-team | — | — |
| @MayaLekova | no-activity | — | `v8`, `core`, `all-members` |
| @mgalexander | no-activity | — | `security-wg`, `all-members` |
| @mike-kaufman | no-activity | — | `diagnostics`, `coreworkinggroups`, `all-members` |
| @MoonBall | no-activity | — | `streams`, `http-parser`, `http`, `coreworkinggroups`, `core`, `all-members` |
| @natorion | no-activity | — | `v8`, `core`, `all-members` |
| @nitsakh | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @niyas-sait | no-activity | — | `platforms`, `core`, `platform-windows-arm`, `platform-windows-arm-testing`, `all-members` |
| @nlf | no-activity | — | `npm`, `core`, `all-members` |
| @node-forward-build | no-activity | — | `build`, `jenkins-release-admins`, `coreworkinggroups`, `jenkins-admins`, `all-members` |
| @nornagon | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @nullivex | no-activity | — | `version-management`, `delivery-channels`, `all-members` |
| @o- | no-activity | — | `v8`, `core`, `all-members` |
| @obensource | no-activity | — | `i18n-api`, `i18n`, `all-members` |
| @ospencer | no-activity | — | `wasi`, `all-members` |
| @othiym23 | no-activity | — | `diagnostics`, `coreworkinggroups`, `moderation`, `all-members` |
| @pavelfeldman | no-activity | — | `v8-inspector`, `all-members` |
| @phated | no-activity | — | `wasi`, `all-members` |
| @phillipj | no-activity | — | `github-bot`, `all-members` |
| @piccoloaiutante | no-activity | — | `streams-admins`, `all-members` |
| @potham | no-activity | — | `package-maintenance`, `all-members` |
| @puzpuzpuz | no-activity | — | `benchmarking`, `async_hooks`, `coreworkinggroups`, `core`, `next-10`, `all-members` |
| @pxlpnk | no-activity | — | `security-wg`, `all-members` |
| @rexagod | no-activity | — | `streams`, `http`, `testing`, `coreworkinggroups`, `core`, `all-members` |
| @robertgzr | no-activity | — | `single-executable`, `all-members` |
| @rogerwang | no-activity | — | `delivery-channels`, `embedders`, `all-members` |
| @RReverser | no-activity | — | `buffer`, `core`, `all-members` |
| @rubys | no-activity | — | `documentation`, `core`, `repl`, `all-members` |
| @sampsongao | no-activity | — | `n-api-admins`, `all-members` |
| @shanpriyan | no-activity, no-team | — | — |
| @shigeki | no-activity | — | `http2`, `core`, `all-members` |
| @SomeoneWeird | no-activity | — | `security-wg`, `all-members` |
| @stduhpf | no-activity | — | `caritat`, `all-members` |
| @ThePrez | no-activity | — | `platforms`, `core`, `platform-ibmi`, `all-members` |
| @ThePrimeagen | no-activity | — | `benchmarking`, `coreworkinggroups`, `all-members` |
| @TooTallNate | no-activity | — | `addon-api`, `coreworkinggroups`, `all-members` |
| @uttampawar | no-activity | — | `benchmarking`, `coreworkinggroups`, `all-members` |
| @verwaest | no-activity | — | `v8`, `core`, `all-members` |
| @victorgomes | no-activity | — | `v8`, `core`, `all-members` |
| @vostrik | no-activity | — | `platform-windows`, `platforms`, `core`, `package-maintenance`, `all-members` |
| @vvalderrv | no-activity | — | `all-members`, `linuxit-infra-temp` |
| @yhwang | no-activity | — | `testing`, `all-members` |
| @yosuke-furukawa | no-activity | — | `http2`, `core`, `all-members` |
| @yunong | no-activity | — | `diagnostics`, `post-mortem`, `coreworkinggroups`, `all-members` |
| @zsw007 | no-activity | — | `platforms`, `core`, `platform-zos`, `all-members` |
## Errors
- @deian — Validation Failed: {"message":"The listed users cannot be searched either because the users do not exist or you do not have permission to view the users.","resource":"Search","field":"q","code":"invalid"} - https://docs.github.com/v3/search/
- @ebraminio — Validation Failed: {"message":"The listed users cannot be searched either because the users do not exist or you do not have permission to view the users.","resource":"Search","field":"q","code":"invalid"} - https://docs.github.com/v3/search/
- @nodejs-crowdin — Validation Failed: {"message":"The listed users cannot be searched either because the users do not exist or you do not have permission to view the users.","resource":"Search","field":"q","code":"invalid"} - https://docs.github.com/v3/search/
- @ronperris — Validation Failed: {"message":"The listed users cannot be searched either because the users do not exist or you do not have permission to view the users.","resource":"Search","field":"q","code":"invalid"} - https://docs.github.com/v3/search/
```
</details>
合并状态:未合并 16 条评论