···1616 </a>
1717 </p>
18181919- Thank you for your interest in packaging new software in Nixpkgs.
2020- Unfortunately, to mitigate the unsustainable growth of unmaintained packages, **Nixpkgs is no longer accepting package requests** via Issues.
1919+ Thank you for your interest in packaging new software in Nixpkgs. Unfortunately, to mitigate the unsustainable growth of unmaintained packages, **Nixpkgs is no longer accepting package requests** via Issues.
21202222- As a [volunteer community][community], we are always open to new contributors.
2323- If you wish to see this package in Nixpkgs, **we encourage you to [contribute] it yourself, via a Pull Request**.
2424- Anyone can [become a package maintainer][maintainers]!
2525- You can find language-specific packaging information in the [Nixpkgs Manual][nixpkgs].
2626- Should you need any help, please reach out to the community on [Matrix] or [Discourse].
2121+ As a [volunteer community][community], we are always open to new contributors. If you wish to see this package in Nixpkgs, **we encourage you to [contribute] it yourself**, via a Pull Request. Anyone can [become a package maintainer][maintainers]! You can find language-specific packaging information in the [Nixpkgs Manual][nixpkgs]. Should you need any help, please reach out to the community on [Matrix] or [Discourse].
27222823 [community]: https://nixos.org/community
2924 [contribute]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#quick-start-to-adding-a-package
+47
ci/github-script/labels.js
···171171 return prLabels
172172 }
173173174174+ // Returns true if the issue was closed. In this case, the labeling does not need to
175175+ // continue for this issue. Returns false if no action was taken.
176176+ async function handleAutoClose(item) {
177177+ const issue_number = item.number
178178+179179+ if (item.labels.some(({ name }) => name === '0.kind: packaging request')) {
180180+ const body = [
181181+ 'Thank you for your interest in packaging new software in Nixpkgs. Unfortunately, to mitigate the unsustainable growth of unmaintained packages, **Nixpkgs is no longer accepting package requests** via Issues.',
182182+ '',
183183+ 'As a [volunteer community][community], we are always open to new contributors. If you wish to see this package in Nixpkgs, **we encourage you to [contribute] it yourself**, via a Pull Request. Anyone can [become a package maintainer][maintainers]! You can find language-specific packaging information in the [Nixpkgs Manual][nixpkgs]. Should you need any help, please reach out to the community on [Matrix] or [Discourse].',
184184+ '',
185185+ '[community]: https://nixos.org/community',
186186+ '[contribute]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#quick-start-to-adding-a-package',
187187+ '[maintainers]: https://github.com/NixOS/nixpkgs/blob/master/maintainers/README.md',
188188+ '[nixpkgs]: https://nixos.org/manual/nixpkgs/unstable/',
189189+ '[Matrix]: https://matrix.to/#/#dev:nixos.org',
190190+ '[Discourse]: https://discourse.nixos.org/c/dev/14',
191191+ ].join('\n')
192192+193193+ core.info(`Issue #${item.number}: auto-closed`)
194194+195195+ if (!dry) {
196196+ await github.rest.issues.createComment({
197197+ ...context.repo,
198198+ issue_number,
199199+ body,
200200+ })
201201+202202+ await github.rest.issues.update({
203203+ ...context.repo,
204204+ issue_number,
205205+ state: 'closed',
206206+ state_reason: 'not_planned',
207207+ })
208208+ }
209209+210210+ return true
211211+ }
212212+ return false
213213+ }
214214+174215 async function handle({ item, stats }) {
175216 try {
176217 const log = (k, v, skip) => {
···190231 Object.assign(itemLabels, await handlePullRequest({ item, stats }))
191232 } else {
192233 stats.issues++
234234+ if (item.labels.some(({ name }) => name === '4.workflow: auto-close')) {
235235+ // If this returns true, the issue was closed. In this case we return, to not
236236+ // label the issue anymore. Most importantly this avoids unlabeling stale issues
237237+ // which are closed via auto-close.
238238+ if (await handleAutoClose(item)) return
239239+ }
193240 }
194241195242 const latest_event_at = new Date(