@homeflare/config 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"repo-shape.d.ts","sourceRoot":"","sources":["../src/repo-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"repo-shape.d.ts","sourceRoot":"","sources":["../src/repo-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,uBAAuB,CAAC"}
@@ -1,106 +1,4 @@
1
1
  // @bun
2
- // src/repo-shape/dependabot.ts
3
- var HOMEFLARE_GROUP = "homeflare";
4
- var HOMEFLARE_PATTERN = "@homeflare/*";
5
- var THIRD_PARTY_COOLDOWN_DAYS = 7;
6
- function renderDependabot(shape) {
7
- const bunDirs = shape.publishes ? ["/", "/packages/*"] : ["/"];
8
- return `# Dependabot for ${shape.repository}.
9
- #
10
- # \uD83E\uDD16 RENDERED BY @homeflare/config \u2014 DO NOT EDIT THIS FILE BY HAND.
11
- # Refresh with \`bun run repo-shape:refresh\`.
12
- #
13
- # \u26D4 THIS FILE LIVES AT .github/dependabot.yml, NOT IN .github/workflows/. Dependabot is a
14
- # platform feature, not an Action \u2014 a config placed among the workflows is silently
15
- # ignored, and the symptom is simply that no pull requests ever arrive. Measured
16
- # 2026-09-22: 13 of 14 HomeFlare repositories had no dependabot config at all, so their
17
- # Actions and their toolchain went stale invisibly, which is exactly how nothing fails.
18
- #
19
- # \u2605 WHY GROUPED RATHER THAN ONE PR PER DEPENDENCY. The default opens a pull request per
20
- # outdated package; that is a trickle nobody reviews properly. Each group below is a set
21
- # that is either safe to take together or needs deciding together.
22
- #
23
- # \u2605 THE BILLING LOCK DOES NOT STOP THIS FILE. Dependabot runs as a GitHub-hosted "dynamic"
24
- # workflow that GitHub's docs say "does not count towards your included GitHub Actions
25
- # minutes"; measured 2026-09-22, a private estate repository's Dependabot job got a hosted
26
- # runner 86 minutes after that account's ordinary hosted jobs were refused for billing.
27
- # It cannot use the mini anyway: a self-hosted Dependabot runner must be Linux x64 with
28
- # Docker, and the mini's runners are arm64 containers with no Docker socket.
29
- version: 2
30
-
31
- updates:
32
- # \u2500\u2500 The toolchain (bun.lock) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
33
- # \u26A0\uFE0F BLOCKED UPSTREAM, 2026-09-22: bun 1.4 writes bun.lock \`lockfileVersion\` 2 and
34
- # Dependabot's updater bundles bun 1.3.14, which reads up to 1, so this block fails in
35
- # every estate repository with "Unsupported bun.lock 'lockfileVersion' 2". The fix is
36
- # dependabot/dependabot-core pull request 16071. The github-actions block is unaffected.
37
- # \u26D4 ONE BUN BLOCK, SO ONE SCHEDULE. Dependabot refuses two blocks for one ecosystem and
38
- # target branch whose directories overlap, so the \`homeflare\` group cannot be daily
39
- # while the rest stays weekly. The block is daily; \`cooldown\` slows the rest.
40
- - package-ecosystem: bun
41
- directories:
42
- ${bunDirs.map((dir) => ` - ${dir}`).join(`
43
- `)}
44
- schedule:
45
- # \u26A0\uFE0F Dependabot's \`daily\` is Monday to Friday; a weekend kit release lands on Monday.
46
- interval: daily
47
- time: '09:00'
48
- timezone: America/New_York
49
- # \u26D4 THE EXCLUDE IS NOT OPTIONAL. Dependabot applies a 3-day cooldown to every version
50
- # update even when this key is absent, so without it a kit release would wait three
51
- # days before its bump opened \u2014 and "daily" would quietly mean "three days late".
52
- cooldown:
53
- default-days: ${THIRD_PARTY_COOLDOWN_DAYS}
54
- exclude: ['${HOMEFLARE_PATTERN}']
55
- open-pull-requests-limit: 5
56
- commit-message:
57
- prefix: 'chore'
58
- include: scope
59
- labels: [dependencies]
60
- groups:
61
- # \u2605 FIRST, AND EVERY UPDATE TYPE. A kit release is one set of packages built to work
62
- # together, so they move as one pull request; \`bun run check\` is what reads it, and
63
- # .github/workflows/dependabot-automerge.yml merges it when that is green.
64
- # \u26A0\uFE0F A release that changes what @homeflare/config renders fails the drift test here
65
- # by design; \`bun run repo-shape:refresh\` on the branch is the one-command fix.
66
- ${HOMEFLARE_GROUP}:
67
- patterns: ['${HOMEFLARE_PATTERN}']
68
-
69
- # oxfmt and oxlint move together and only affect style. Minor and patch bumps are
70
- # noise unless they fail CI, which is what CI is for.
71
- lint-and-format:
72
- patterns: ['oxfmt', 'oxlint']
73
- update-types: [minor, patch]
74
-
75
- # \u26A0\uFE0F MAJORS EXCLUDED DELIBERATELY. TypeScript majors change what typechecks;
76
- # changesets majors have renamed inputs and dropped compatibility (the action's v2
77
- # did both). These want reading, not merging on green.
78
- build-tooling:
79
- patterns: ['typescript', '@changesets/*', '@types/bun']
80
- update-types: [minor, patch]
81
-
82
- # \u2500\u2500 The workflows themselves \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
83
- # \u2605 Actions go stale invisibly: nothing fails, they just keep running old code. The
84
- # estate's first workflows pinned checkout@v5 (current: v7) and changesets/action@v1
85
- # (current: v2, with every input renamed) \u2014 measured 2026-09-15.
86
- - package-ecosystem: github-actions
87
- directory: /
88
- schedule:
89
- interval: weekly
90
- day: monday
91
- time: '09:00'
92
- timezone: America/New_York
93
- open-pull-requests-limit: 5
94
- commit-message:
95
- prefix: 'ci'
96
- labels: [dependencies, github-actions]
97
- groups:
98
- actions:
99
- patterns: ['*']
100
- update-types: [minor, patch]
101
- `;
102
- }
103
-
104
2
  // src/repo-shape/guards.ts
105
3
  var SENTENCE = 12;
106
4
  function requireNonEmpty(field, value) {
@@ -191,8 +89,14 @@ function scalar(value) {
191
89
  function renderMapping(entries, depth) {
192
90
  return Object.entries(entries).map(([key, value]) => `${indent(depth)}${key}: ${scalar(value)}`);
193
91
  }
92
+ function trimTrailingNewlines(value) {
93
+ let end = value.length;
94
+ while (end > 0 && value.charCodeAt(end - 1) === 10)
95
+ end--;
96
+ return value.slice(0, end);
97
+ }
194
98
  function renderRun(command, depth) {
195
- const lines = command.replace(/\n+$/, "").split(`
99
+ const lines = trimTrailingNewlines(command).split(`
196
100
  `);
197
101
  if (lines.length === 1)
198
102
  return [`${indent(depth)}run: ${scalar(lines[0] ?? "")}`];
@@ -221,92 +125,6 @@ function renderSteps(steps, depth) {
221
125
  `);
222
126
  }
223
127
 
224
- // src/repo-shape/automerge.ts
225
- var GROUP_BRANCH_PREFIX = `dependabot/bun/${HOMEFLARE_GROUP}-`;
226
- var GROUP_BRANCH = `^${GROUP_BRANCH_PREFIX}[0-9a-f]{10}$`;
227
- var HEADER = `# Arms auto-merge on Dependabot's @homeflare/* group, and on nothing else.
228
- #
229
- # \uD83E\uDD16 RENDERED BY @homeflare/config \u2014 DO NOT EDIT THIS FILE BY HAND.
230
- # Its input is this repository's \`repo-shape.ts\`; refresh with \`bun run repo-shape:refresh\`.
231
- #
232
- # \u2605 HOW A KIT RELEASE ARRIVES: the \`${HOMEFLARE_GROUP}\` group in .github/dependabot.yml opens one
233
- # pull request; this arms GitHub's auto-merge on it; the ruleset's required checks decide.
234
- # Nothing here merges anything itself, and merging deploys nothing.
235
- # \u26D4 NO THIRD-PARTY ACTION. GitHub's own example uses dependabot/fetch-metadata, which its
236
- # docs mark "not certified by GitHub"; the group is recognised by its branch name instead.
237
- # \u26D4 NO REQUIRED CHECK ON THE BASE BRANCH, NO ARMING: there \`gh pr merge --auto\` would merge
238
- # at once, unchecked. The job fails instead, so the pull request waits for a person.
239
- # \u26A0\uFE0F A RENDERER CHANGE STILL NEEDS A PERSON. When a kit release changes what @homeflare/config
240
- # renders, the bump fails \`check\` (the drift test) and never goes green. Run
241
- # \`bun run repo-shape:refresh\` on Dependabot's branch and push. \u26D4 This workflow does not do
242
- # it for you: a push made with GITHUB_TOKEN starts no workflow run, so a refreshed commit
243
- # would never get the required checks and the pull request would wait forever.
244
- `;
245
- var TRIGGER = `name: dependabot auto-merge
246
-
247
- on:
248
- pull_request:
249
-
250
- # \u26D4 NOTHING AT THE TOP; the one job asks for exactly what \`gh pr merge --auto\` needs.
251
- permissions: {}
252
-
253
- concurrency:
254
- group: automerge-\${{ github.ref }}
255
- cancel-in-progress: true
256
- `;
257
- var JOB_NOTE = ` # \u26D4 BOTH LOGINS, NOT EITHER. \`user.login\` is who opened the pull request; \`github.actor\` is
258
- # who started this run. A person pushing to Dependabot's branch changes the actor, so
259
- # their commit never arms anything; only Dependabot's own rebases do.`;
260
- var PERMISSIONS_NOTE = ` # \u2605 WHAT GitHub'S OWN EXAMPLE GRANTS FOR THIS STEP, AND NO MORE. A run Dependabot starts gets
261
- # a read-only GITHUB_TOKEN unless the workflow raises it ("Troubleshooting Dependabot on
262
- # GitHub Actions" \u2192 "Changing GITHUB_TOKEN permissions").`;
263
- var ARM = `set -euo pipefail
264
- if [[ ! "$HEAD_REF" =~ ${GROUP_BRANCH} ]]; then
265
- echo "::notice::$HEAD_REF is not the ${HOMEFLARE_GROUP} group's branch; auto-merge not armed"
266
- exit 0
267
- fi
268
- # \u26D4 gh merges a CLEAN or UNSTABLE pull request at once rather than arming it. Only a branch
269
- # rule that requires a status check keeps it BLOCKED until the checks have passed.
270
- required=$(gh api "repos/$GITHUB_REPOSITORY/rules/branches/$BASE_REF" \\
271
- --jq '[.[] | select(.type == "required_status_checks")] | length')
272
- if [ "$required" = 0 ]; then
273
- echo "::error::$BASE_REF requires no status check, so gh would merge at once; auto-merge not armed"
274
- exit 1
275
- fi
276
- # \u2605 --squash: the house repositories allow squash merges only (declareRepoPolicy).
277
- gh pr merge --auto --squash "$PR_URL"`;
278
- function renderAutomerge(shape) {
279
- const headRef = "${{ github.head_ref }}";
280
- const baseRef = "${{ github.base_ref }}";
281
- const prUrl = "${{ github.event.pull_request.html_url }}";
282
- const token = "${{ secrets.GITHUB_TOKEN }}";
283
- const condition = [
284
- "github.event.pull_request.user.login == 'dependabot[bot]'",
285
- "github.actor == 'dependabot[bot]'",
286
- `startsWith(github.head_ref, '${GROUP_BRANCH_PREFIX}')`
287
- ].join(" && ");
288
- return `${HEADER}
289
- ${TRIGGER}
290
- jobs:
291
- ${JOB_NOTE}
292
- arm:
293
- name: arm auto-merge
294
- if: ${condition}
295
- runs-on: ${runsOn(shape.runner)}
296
- ${PERMISSIONS_NOTE}
297
- permissions:
298
- contents: write
299
- pull-requests: write
300
- steps:
301
- ${renderSteps([
302
- {
303
- env: { BASE_REF: baseRef, GH_TOKEN: token, HEAD_REF: headRef, PR_URL: prUrl },
304
- name: "Arm auto-merge on the homeflare group",
305
- run: ARM
306
- }
307
- ], 3)}
308
- `;
309
- }
310
128
  // src/repo-shape/ci.ts
311
129
  var BUN_VERSION = "1.4.0";
312
130
  var ACTIONLINT_VERSION = "1.7.12";
@@ -327,7 +145,7 @@ function runnerNote(shape) {
327
145
  ].join(`
328
146
  `);
329
147
  }
330
- var HEADER2 = `# Pull requests: is this code correct?
148
+ var HEADER = `# Pull requests: is this code correct?
331
149
  #
332
150
  # \uD83E\uDD16 RENDERED BY @homeflare/config \u2014 DO NOT EDIT THIS FILE BY HAND.
333
151
  # Its input is this repository's \`repo-shape.ts\`. Change that, then:
@@ -340,7 +158,7 @@ var HEADER2 = `# Pull requests: is this code correct?
340
158
  # share a prologue are steps inside \`check\`, so the install is paid once.
341
159
  # \u26D4 EVERY ACTION IS FIRST-PARTY OR THE VENDOR'S OWN, PINNED TO A MAJOR TAG.
342
160
  `;
343
- var TRIGGER2 = `name: ci
161
+ var TRIGGER = `name: ci
344
162
 
345
163
  on:
346
164
  # \u26D4 NO \`push: branches: [main]\`. Every commit reaches main through a pull request whose
@@ -471,7 +289,7 @@ function renderCi(shape) {
471
289
  const on = runsOn(shape.runner);
472
290
  const extras = shape.extraJobs ?? [];
473
291
  const needs = ["check", "workflows", ...extras.map((job) => job.id)];
474
- return `${HEADER2}${runnerNote(shape)}${TRIGGER2}
292
+ return `${HEADER}${runnerNote(shape)}${TRIGGER}
475
293
  jobs:
476
294
  ${CHECK_NOTE}
477
295
  check:
@@ -538,9 +356,101 @@ self-hosted-runner:
538
356
  - homeflare-mini
539
357
  `;
540
358
  }
359
+ // src/repo-shape/dependabot.ts
360
+ var HOMEFLARE_PATTERN = "@homeflare/*";
361
+ var THIRD_PARTY_COOLDOWN_DAYS = 7;
362
+ function renderDependabot(shape) {
363
+ const bunDirs = shape.publishes ? ["/", "/packages/*"] : ["/"];
364
+ return `# Dependabot for ${shape.repository}.
365
+ #
366
+ # \uD83E\uDD16 RENDERED BY @homeflare/config \u2014 DO NOT EDIT THIS FILE BY HAND.
367
+ # Refresh with \`bun run repo-shape:refresh\`.
368
+ #
369
+ # \u26D4 THIS FILE LIVES AT .github/dependabot.yml, NOT IN .github/workflows/. Dependabot is a
370
+ # platform feature, not an Action \u2014 a config placed among the workflows is silently
371
+ # ignored, and the symptom is simply that no pull requests ever arrive. Measured
372
+ # 2026-09-22: 13 of 14 HomeFlare repositories had no dependabot config at all, so their
373
+ # Actions and their toolchain went stale invisibly, which is exactly how nothing fails.
374
+ #
375
+ # \u2605 WHY GROUPED RATHER THAN ONE PR PER DEPENDENCY. The default opens a pull request per
376
+ # outdated package; that is a trickle nobody reviews properly. Each group below is a set
377
+ # that is either safe to take together or needs deciding together.
378
+ #
379
+ # \u2605 THE BILLING LOCK DOES NOT STOP THIS FILE. Dependabot runs as a GitHub-hosted "dynamic"
380
+ # workflow that GitHub's docs say "does not count towards your included GitHub Actions
381
+ # minutes"; measured 2026-09-22, a private estate repository's Dependabot job got a hosted
382
+ # runner 86 minutes after that account's ordinary hosted jobs were refused for billing.
383
+ # It cannot use the mini anyway: a self-hosted Dependabot runner must be Linux x64 with
384
+ # Docker, and the mini's runners are arm64 containers with no Docker socket.
385
+ version: 2
386
+
387
+ updates:
388
+ # \u2500\u2500 The toolchain (bun.lock) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
389
+ # \u26A0\uFE0F STILL BLOCKED UPSTREAM, 2026-09-22 \u2014 unrelated to the ignore below. bun 1.4 writes
390
+ # bun.lock \`lockfileVersion\` 2 and Dependabot's updater bundles bun 1.3.14, which reads
391
+ # up to 1, so this whole block fails in every estate repository with "Unsupported
392
+ # bun.lock 'lockfileVersion' 2" before it reads a single manifest. The fix is
393
+ # dependabot/dependabot-core pull request 16071. The github-actions block is unaffected.
394
+ - package-ecosystem: bun
395
+ directories:
396
+ ${bunDirs.map((dir) => ` - ${dir}`).join(`
397
+ `)}
398
+ schedule:
399
+ interval: weekly
400
+ day: monday
401
+ time: '09:00'
402
+ timezone: America/New_York
403
+ cooldown:
404
+ default-days: ${THIRD_PARTY_COOLDOWN_DAYS}
405
+ # \u26D4 NEVER PROPOSED HERE. \`homeflare-bumper\` opens the one pull request that bumps
406
+ # \`@homeflare/*\` (kit auto-bumper design, Tim 2026-09-23) \u2014 a Dependabot
407
+ # update for the same package would race it and, on the weeks they disagree, leave
408
+ # two open pull requests fighting over the same \`package.json\` line.
409
+ ignore:
410
+ - dependency-name: '${HOMEFLARE_PATTERN}'
411
+ open-pull-requests-limit: 5
412
+ commit-message:
413
+ prefix: 'chore'
414
+ include: scope
415
+ labels: [dependencies]
416
+ groups:
417
+ # oxfmt and oxlint move together and only affect style. Minor and patch bumps are
418
+ # noise unless they fail CI, which is what CI is for.
419
+ lint-and-format:
420
+ patterns: ['oxfmt', 'oxlint']
421
+ update-types: [minor, patch]
422
+
423
+ # \u26A0\uFE0F MAJORS EXCLUDED DELIBERATELY. TypeScript majors change what typechecks;
424
+ # changesets majors have renamed inputs and dropped compatibility (the action's v2
425
+ # did both). These want reading, not merging on green.
426
+ build-tooling:
427
+ patterns: ['typescript', '@changesets/*', '@types/bun']
428
+ update-types: [minor, patch]
429
+
430
+ # \u2500\u2500 The workflows themselves \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
431
+ # \u2605 Actions go stale invisibly: nothing fails, they just keep running old code. The
432
+ # estate's first workflows pinned checkout@v5 (current: v7) and changesets/action@v1
433
+ # (current: v2, with every input renamed) \u2014 measured 2026-09-15.
434
+ - package-ecosystem: github-actions
435
+ directory: /
436
+ schedule:
437
+ interval: weekly
438
+ day: monday
439
+ time: '09:00'
440
+ timezone: America/New_York
441
+ open-pull-requests-limit: 5
442
+ commit-message:
443
+ prefix: 'ci'
444
+ labels: [dependencies, github-actions]
445
+ groups:
446
+ actions:
447
+ patterns: ['*']
448
+ update-types: [minor, patch]
449
+ `;
450
+ }
541
451
  // src/repo-shape/security.ts
542
452
  var CRON = "41 6 * * 1";
543
- var HEADER3 = `# Secret scanning, on its own schedule and its own check.
453
+ var HEADER2 = `# Secret scanning, on its own schedule and its own check.
544
454
  #
545
455
  # \uD83E\uDD16 RENDERED BY @homeflare/config \u2014 DO NOT EDIT THIS FILE BY HAND.
546
456
  # Its input is this repository's \`repo-shape.ts\`; refresh with \`bun run repo-shape:refresh\`.
@@ -550,7 +460,7 @@ var HEADER3 = `# Secret scanning, on its own schedule and its own check.
550
460
  # tomorrow can find a secret committed today), and it needs full history, which the CI
551
461
  # jobs deliberately do not fetch.
552
462
  `;
553
- var TRIGGER3 = `name: security
463
+ var TRIGGER2 = `name: security
554
464
 
555
465
  on:
556
466
  # \u26D4 NO \`push: branches: [main]\`, for the reason ci.yml gives: main only moves by
@@ -601,7 +511,7 @@ function renderSecurity(shape) {
601
511
  # \u26D4 THE SCHEDULED RUN GOES TO THE MINI TOO: if the runner daemon is down this queues
602
512
  # rather than failing, so a missed weekly scan is silent. homeflare-mini's
603
513
  # \`ci-runner\` vmalert group is what notices that, not this workflow.` : "";
604
- return `${HEADER3}${TRIGGER3}
514
+ return `${HEADER2}${TRIGGER2}
605
515
  jobs:
606
516
  secrets:
607
517
  name: secret scan${scheduled}
@@ -621,7 +531,6 @@ function renderRepoShape(shape) {
621
531
  ".changeset/config.json": renderChangesetConfig(shape),
622
532
  ".github/dependabot.yml": renderDependabot(shape),
623
533
  ".github/workflows/ci.yml": renderCi(shape),
624
- ".github/workflows/dependabot-automerge.yml": renderAutomerge(shape),
625
534
  ".github/workflows/security.yml": renderSecurity(shape)
626
535
  };
627
536
  const actionlint = renderActionlintConfig(shape);
@@ -637,7 +546,6 @@ var RENDERED_PATHS = [
637
546
  ".github/actionlint.yaml",
638
547
  ".github/dependabot.yml",
639
548
  ".github/workflows/ci.yml",
640
- ".github/workflows/dependabot-automerge.yml",
641
549
  ".github/workflows/security.yml"
642
550
  ];
643
551
 
@@ -751,9 +659,6 @@ async function repoShapeCli(projectDir, shape, argv) {
751
659
  export {
752
660
  ACTIONLINT_VERSION,
753
661
  BUN_VERSION,
754
- GROUP_BRANCH,
755
- GROUP_BRANCH_PREFIX,
756
- HOMEFLARE_GROUP,
757
662
  HOMEFLARE_PATTERN,
758
663
  REFRESH_COMMAND,
759
664
  RENDERED_PATHS,
@@ -765,7 +670,6 @@ export {
765
670
  isExcepted,
766
671
  refreshRepoShape,
767
672
  renderActionlintConfig,
768
- renderAutomerge,
769
673
  renderChangesetConfig,
770
674
  renderCi,
771
675
  renderDependabot,
@@ -775,5 +679,5 @@ export {
775
679
  runsOn
776
680
  };
777
681
 
778
- //# debugId=2943BDDA9944E35364756E2164756E21
682
+ //# debugId=27828123E35E339964756E2164756E21
779
683
  //# sourceMappingURL=repo-shape.js.map