Skip to content

Commit 0c7b00a

Browse files
committed
feat: improve includePrerelease and excludeMajor
chore: wip chore: wip chore: adjust `prsNeedingRebase`
1 parent 302fb91 commit 0c7b00a

File tree

11 files changed

+178
-59
lines changed

11 files changed

+178
-59
lines changed

bin/cli.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -724,8 +724,8 @@ cli
724724

725725
// Helper function to check if rebase checkbox is checked
726726
function checkRebaseCheckbox(body: string): boolean {
727-
// Look for the checked rebase checkbox pattern
728-
const checkedPattern = /- \[x\] <!-- rebase-check -->If you want to rebase\/retry this PR, check this box/i
727+
// Look for the checked rebase checkbox pattern - handle both "rebase/retry" and "update/retry"
728+
const checkedPattern = /- \[x\] <!-- rebase-check -->If you want to (?:rebase|update)\/retry this PR, check this box/i
729729
return checkedPattern.test(body)
730730
}
731731

@@ -987,7 +987,7 @@ cli
987987
const logger = options.verbose ? Logger.verbose() : Logger.quiet()
988988

989989
try {
990-
const registryClient = new RegistryClient(process.cwd(), logger)
990+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
991991

992992
if (options.json) {
993993
// Output raw JSON from bun info
@@ -1069,7 +1069,7 @@ cli
10691069
const logger = options.verbose ? Logger.verbose() : Logger.quiet()
10701070

10711071
try {
1072-
const registryClient = new RegistryClient(process.cwd(), logger)
1072+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
10731073
const metadata = await registryClient.getPackageMetadata(packageName)
10741074

10751075
if (!metadata) {
@@ -1114,7 +1114,7 @@ cli
11141114
const logger = options.verbose ? Logger.verbose() : Logger.quiet()
11151115

11161116
try {
1117-
const registryClient = new RegistryClient(process.cwd(), logger)
1117+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
11181118
const exists = await registryClient.packageExists(packageName)
11191119

11201120
if (exists) {
@@ -1142,7 +1142,7 @@ cli
11421142
const logger = options.verbose ? Logger.verbose() : Logger.quiet()
11431143

11441144
try {
1145-
const registryClient = new RegistryClient(process.cwd(), logger)
1145+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
11461146
const latestVersion = await registryClient.getLatestVersion(packageName)
11471147

11481148
if (latestVersion) {
@@ -1173,7 +1173,7 @@ cli
11731173
const logger = options.verbose ? Logger.verbose() : Logger.quiet()
11741174

11751175
try {
1176-
const registryClient = new RegistryClient(process.cwd(), logger)
1176+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
11771177
const metadata = await registryClient.getPackageMetadata(packageName)
11781178

11791179
if (!metadata) {
@@ -1251,7 +1251,7 @@ cli
12511251

12521252
// Get package metadata to validate versions exist
12531253
const { RegistryClient } = await import('../src/registry/registry-client')
1254-
const registryClient = new RegistryClient(process.cwd(), logger)
1254+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
12551255
const metadata = await registryClient.getPackageMetadata(packageName)
12561256

12571257
if (!metadata) {
@@ -1328,7 +1328,7 @@ cli
13281328
console.log('📡 Using npm registry API search...')
13291329
try {
13301330
const { RegistryClient } = await import('../src/registry/registry-client')
1331-
const registryClient = new RegistryClient(process.cwd(), logger)
1331+
const registryClient = new RegistryClient(process.cwd(), logger, undefined)
13321332
const results = await registryClient.searchPackages(query, limit)
13331333

13341334
if (results.length === 0) {

buddy-bot.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ const config: BuddyBotConfig = {
44
verbose: true,
55
packages: {
66
strategy: 'all',
7-
ignore: [],
7+
ignore: ['typescript', 'bun-plugin-dtsx'],
8+
includePrerelease: false, // Don't include alpha, beta, rc versions by default
9+
excludeMajor: false, // Allow major updates (controlled by ignore list)
810
},
911

1012
// Repository settings for PR creation

bun.lock

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
},
1313
"devDependencies": {
1414
"@stacksjs/docs": "^0.70.23",
15-
"@stacksjs/eslint-config": "^4.14.0-beta.3",
15+
"@stacksjs/eslint-config": "^4.10.2-beta.3",
1616
"@types/bun": "^1.2.17",
1717
"bun-plugin-dtsx": "^0.9.5",
1818
"typescript": "^5.8.3",
@@ -495,22 +495,14 @@
495495

496496
"@sindresorhus/is": ["@sindresorhus/[email protected]", "", {}, "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw=="],
497497

498-
"@stacksjs/cli": ["@stacksjs/[email protected]", "", {}, "sha512-pbu6xESAtRIppcEQlhmRq0yZa1lnYAwtQHh7DmfDcUgVjvahQGe7PXoX+m2dhdFDRthFIVuLeHvrAf1JYv/JOQ=="],
499-
500498
"@stacksjs/docs": ["@stacksjs/[email protected]", "", { "dependencies": { "@iconify-json/carbon": "^1.2.8", "@shikijs/vitepress-twoslash": "^3.2.1", "@vite-pwa/assets-generator": "^1.0.0", "@vite-pwa/vitepress": "^1.0.0", "unocss": "^66.0.0", "unplugin-icons": "^22.1.0", "unplugin-vue-components": "^28.4.1", "vite-plugin-pwa": "^1.0.0", "vitepress": "1.6.3" } }, "sha512-kRk/aza/wQAAgF0fhUhG8bUHhqk3RnjBkZyoRW0fvYs3dLaAArJYX/uVquZixlQnqgizGeGZT986tEFjs5Ly+A=="],
501499

502500
"@stacksjs/dtsx": ["@stacksjs/[email protected]", "", { "bin": { "dtsx": "dist/bin/cli.js" } }, "sha512-nvAnS/xtYfFTStFfKJXvnzv6IJSUvY4c/o7RltUvnQqIVyZjHX3a0R0Gp2J5m7gkYO+6sneQs1WcY7e9NQyAsg=="],
503501

504-
"@stacksjs/error-handling": ["@stacksjs/[email protected]", "", {}, "sha512-rQcgyum8eZnVjaF+eb6ip/IHK4GuOidwy1GcbAOqXeDwbc7oUxWFlpT7pKMeYbYa+DWZjV1WdolLxSL/orQeCw=="],
505-
506-
"@stacksjs/eslint-config": ["@stacksjs/[email protected]", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@clack/prompts": "^0.10.1", "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0", "@eslint/markdown": "^6.4.0", "@stacksjs/cli": "^0.70.23", "@stacksjs/error-handling": "^0.70.23", "@stacksjs/eslint-plugin": "^0.2.4", "@stacksjs/logging": "^0.70.23", "@stacksjs/path": "^0.70.23", "@stylistic/eslint-plugin": "^4.2.0", "@typescript-eslint/eslint-plugin": "^8.32.1", "@typescript-eslint/parser": "^8.32.1", "@vitest/eslint-plugin": "^1.1.44", "eslint-config-flat-gitignore": "^2.1.0", "eslint-flat-config-utils": "^2.0.1", "eslint-merge-processors": "^2.0.0", "eslint-plugin-antfu": "^3.1.1", "eslint-plugin-command": "^3.2.0", "eslint-plugin-import-x": "^4.11.1", "eslint-plugin-jsdoc": "^50.6.14", "eslint-plugin-jsonc": "^2.20.0", "eslint-plugin-n": "^17.18.0", "eslint-plugin-no-only-tests": "^3.3.0", "eslint-plugin-perfectionist": "^4.13.0", "eslint-plugin-pnpm": "^0.3.1", "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-toml": "^0.12.0", "eslint-plugin-unicorn": "^57.0.0", "eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-vue": "^10.1.0", "eslint-plugin-vuejs-accessibility": "^2.4.1", "eslint-plugin-yml": "^1.18.0", "eslint-processor-vue-blocks": "^2.0.0", "globals": "^16.1.0", "jsonc-eslint-parser": "^2.4.0", "local-pkg": "^1.1.1", "parse-gitignore": "^2.0.0", "toml-eslint-parser": "^0.10.0", "vue-eslint-parser": "^10.1.3", "yaml-eslint-parser": "^1.3.0" } }, "sha512-D7iSPoZcTwHSOG6T2SdngwNbgqx/2gSoLpFC4Qy/1NCSPZEEcACYCC8GjovZ/rRrod0B+KbCa5sDu5JIrrkfaw=="],
502+
"@stacksjs/eslint-config": ["@stacksjs/[email protected]", "", { "dependencies": { "@antfu/install-pkg": "^1.0.0", "@clack/prompts": "^0.10.0", "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/markdown": "^6.3.0", "@stacksjs/eslint-plugin": "^0.2.4", "@stylistic/eslint-plugin": "^4.2.0", "@typescript-eslint/eslint-plugin": "^8.27.0", "@typescript-eslint/parser": "^8.27.0", "@vitest/eslint-plugin": "^1.1.38", "eslint-config-flat-gitignore": "^2.1.0", "eslint-flat-config-utils": "^2.0.1", "eslint-merge-processors": "^2.0.0", "eslint-plugin-antfu": "^3.1.1", "eslint-plugin-command": "^3.2.0", "eslint-plugin-import-x": "^4.9.1", "eslint-plugin-jsdoc": "^50.6.8", "eslint-plugin-jsonc": "^2.19.1", "eslint-plugin-n": "^17.16.2", "eslint-plugin-no-only-tests": "^3.3.0", "eslint-plugin-perfectionist": "^4.10.1", "eslint-plugin-pnpm": "^0.3.1", "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-toml": "^0.12.0", "eslint-plugin-unicorn": "^57.0.0", "eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-vue": "^10.0.0", "eslint-plugin-yml": "^1.17.0", "eslint-processor-vue-blocks": "^2.0.0", "globals": "^16.0.0", "jsonc-eslint-parser": "^2.4.0", "local-pkg": "^1.1.1", "parse-gitignore": "^2.0.0", "toml-eslint-parser": "^0.10.0", "vue-eslint-parser": "^10.1.1", "yaml-eslint-parser": "^1.3.0" } }, "sha512-Jnz6z/tGjfKUToZXgCF8XRBqZlEXlkLTymJgD2O2CzYfG58uUV/7cqtn2ABPs+SJ5t8O4qYwbC6WDOMQjP+M2Q=="],
507503

508504
"@stacksjs/eslint-plugin": ["@stacksjs/[email protected]", "", { "dependencies": { "@stacksjs/eslint-config": "^4.10.2-beta.1", "@typescript-eslint/utils": "^8.27.0", "@unocss/config": "66.0.0", "@unocss/core": "66.0.0", "magic-string": "^0.30.17", "synckit": "^0.10.0", "unocss": "^66.0.0" } }, "sha512-cPCi9eTeXIXI6RTNvK1QmUFNpT3aTnhLsBXpuD8hs8d+2CSn7mNZBZDn61+Se6nzy3Ot/grKc4uua3uD/+m1cQ=="],
509505

510-
"@stacksjs/logging": ["@stacksjs/[email protected]", "", {}, "sha512-rm/XGj7z+one5mQqwrgxRq/ulusyz2eWVe3QUP3/V9kKkDtEhI9tnmx4PLvVQZbxJgsVzcZeuyJ12OfxfpKFdg=="],
511-
512-
"@stacksjs/path": ["@stacksjs/[email protected]", "", {}, "sha512-HqgtHcnhIVGahTR2OdzZxe0iSZwR+yKm/kwCeyjQHkW5hBhPrwcpuuVvIrJDoZ2CusC/vS7hSr5U6L8BEU+0vw=="],
513-
514506
"@stylistic/eslint-plugin": ["@stylistic/[email protected]", "", { "dependencies": { "@typescript-eslint/utils": "^8.32.1", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "estraverse": "^5.3.0", "picomatch": "^4.0.2" }, "peerDependencies": { "eslint": ">=9.0.0" } }, "sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ=="],
515507

516508
"@surma/rollup-plugin-off-main-thread": ["@surma/[email protected]", "", { "dependencies": { "ejs": "^3.1.6", "json5": "^2.2.0", "magic-string": "^0.25.0", "string.prototype.matchall": "^4.0.6" } }, "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ=="],
@@ -739,8 +731,6 @@
739731

740732
"argparse": ["[email protected]", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
741733

742-
"aria-query": ["[email protected]", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
743-
744734
"array-buffer-byte-length": ["[email protected]", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="],
745735

746736
"arraybuffer.prototype.slice": ["[email protected]", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="],
@@ -915,8 +905,6 @@
915905

916906
"electron-to-chromium": ["[email protected]", "", {}, "sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ=="],
917907

918-
"emoji-regex": ["[email protected]", "", {}, "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw=="],
919-
920908
"emoji-regex-xs": ["[email protected]", "", {}, "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg=="],
921909

922910
"end-of-stream": ["[email protected]", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
@@ -991,8 +979,6 @@
991979

992980
"eslint-plugin-vue": ["[email protected]", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", "nth-check": "^2.1.1", "postcss-selector-parser": "^6.0.15", "semver": "^7.6.3", "xml-name-validator": "^4.0.0" }, "peerDependencies": { "@typescript-eslint/parser": "^7.0.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "vue-eslint-parser": "^10.0.0" }, "optionalPeers": ["@typescript-eslint/parser"] }, "sha512-A0u9snqjCfYaPnqqOaH6MBLVWDUIN4trXn8J3x67uDcXvR7X6Ut8p16N+nYhMCQ9Y7edg2BIRGzfyZsY0IdqoQ=="],
993981

994-
"eslint-plugin-vuejs-accessibility": ["[email protected]", "", { "dependencies": { "aria-query": "^5.3.0", "emoji-regex": "^10.0.0", "vue-eslint-parser": "^9.0.1" }, "peerDependencies": { "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" } }, "sha512-ZRZhPdslplZXSF71MtSG+zXYRAT5KiHR4JVuo/DERQf9noAkDvi5W418VOE1qllmJd7wTenndxi1q8XeDMxdHw=="],
995-
996982
"eslint-plugin-yml": ["[email protected]", "", { "dependencies": { "debug": "^4.3.2", "escape-string-regexp": "4.0.0", "eslint-compat-utils": "^0.6.0", "natural-compare": "^1.4.0", "yaml-eslint-parser": "^1.2.1" }, "peerDependencies": { "eslint": ">=6.0.0" } }, "sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA=="],
997983

998984
"eslint-processor-vue-blocks": ["[email protected]", "", { "peerDependencies": { "@vue/compiler-sfc": "^3.3.0", "eslint": ">=9.0.0" } }, "sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q=="],
@@ -1935,8 +1921,6 @@
19351921

19361922
"@shikijs/twoslash/@shikijs/types": ["@shikijs/[email protected]", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg=="],
19371923

1938-
"@stacksjs/eslint-plugin/@stacksjs/eslint-config": ["@stacksjs/[email protected]", "", { "dependencies": { "@antfu/install-pkg": "^1.0.0", "@clack/prompts": "^0.10.0", "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/markdown": "^6.3.0", "@stacksjs/eslint-plugin": "^0.2.4", "@stylistic/eslint-plugin": "^4.2.0", "@typescript-eslint/eslint-plugin": "^8.27.0", "@typescript-eslint/parser": "^8.27.0", "@vitest/eslint-plugin": "^1.1.38", "eslint-config-flat-gitignore": "^2.1.0", "eslint-flat-config-utils": "^2.0.1", "eslint-merge-processors": "^2.0.0", "eslint-plugin-antfu": "^3.1.1", "eslint-plugin-command": "^3.2.0", "eslint-plugin-import-x": "^4.9.1", "eslint-plugin-jsdoc": "^50.6.8", "eslint-plugin-jsonc": "^2.19.1", "eslint-plugin-n": "^17.16.2", "eslint-plugin-no-only-tests": "^3.3.0", "eslint-plugin-perfectionist": "^4.10.1", "eslint-plugin-pnpm": "^0.3.1", "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-toml": "^0.12.0", "eslint-plugin-unicorn": "^57.0.0", "eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-vue": "^10.0.0", "eslint-plugin-yml": "^1.17.0", "eslint-processor-vue-blocks": "^2.0.0", "globals": "^16.0.0", "jsonc-eslint-parser": "^2.4.0", "local-pkg": "^1.1.1", "parse-gitignore": "^2.0.0", "toml-eslint-parser": "^0.10.0", "vue-eslint-parser": "^10.1.1", "yaml-eslint-parser": "^1.3.0" } }, "sha512-Jnz6z/tGjfKUToZXgCF8XRBqZlEXlkLTymJgD2O2CzYfG58uUV/7cqtn2ABPs+SJ5t8O4qYwbC6WDOMQjP+M2Q=="],
1939-
19401924
"@stacksjs/eslint-plugin/@unocss/core": ["@unocss/[email protected]", "", {}, "sha512-PdVbSMHNDDkr++9nkqzsZRAkaU84gxMTEgYbqI7dt2p1DXp/5tomVtmMsr2/whXGYKRiUc0xZ3p4Pzraz8TcXA=="],
19411925

19421926
"@surma/rollup-plugin-off-main-thread/magic-string": ["[email protected]", "", { "dependencies": { "sourcemap-codec": "^1.4.8" } }, "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="],
@@ -1985,8 +1969,6 @@
19851969

19861970
"eslint-plugin-unicorn/globals": ["[email protected]", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="],
19871971

1988-
"eslint-plugin-vuejs-accessibility/vue-eslint-parser": ["[email protected]", "", { "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", "eslint-visitor-keys": "^3.3.0", "espree": "^9.3.1", "esquery": "^1.4.0", "lodash": "^4.17.21", "semver": "^7.3.6" }, "peerDependencies": { "eslint": ">=6.0.0" } }, "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg=="],
1989-
19901972
"filelist/minimatch": ["[email protected]", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
19911973

19921974
"glob/minimatch": ["[email protected]", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
@@ -2059,12 +2041,6 @@
20592041

20602042
"electron/@types/node/undici-types": ["[email protected]", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
20612043

2062-
"eslint-plugin-vuejs-accessibility/vue-eslint-parser/eslint-scope": ["[email protected]", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg=="],
2063-
2064-
"eslint-plugin-vuejs-accessibility/vue-eslint-parser/eslint-visitor-keys": ["[email protected]", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
2065-
2066-
"eslint-plugin-vuejs-accessibility/vue-eslint-parser/espree": ["[email protected]", "", { "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } }, "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ=="],
2067-
20682044
"eslint/ajv/json-schema-traverse": ["[email protected]", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
20692045

20702046
"eslint/minimatch/brace-expansion": ["[email protected]", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="],

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
},
5656
"devDependencies": {
5757
"@stacksjs/docs": "^0.70.23",
58-
"@stacksjs/eslint-config": "^4.14.0-beta.3",
58+
"@stacksjs/eslint-config": "^4.10.2-beta.3",
5959
"@types/bun": "^1.2.17",
6060
"bun-plugin-dtsx": "^0.9.5",
6161
"typescript": "^5.8.3"

src/buddy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class Buddy {
2929
) {
3030
this.logger = new Logger(false) // Will be configurable
3131
this.scanner = new PackageScanner(this.projectPath, this.logger)
32-
this.registryClient = new RegistryClient(this.projectPath, this.logger)
32+
this.registryClient = new RegistryClient(this.projectPath, this.logger, this.config)
3333
this.dashboardGenerator = new DashboardGenerator()
3434
}
3535

src/git/github-provider.ts

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,38 @@ export class GitHubProvider implements GitProvider {
5555
// // Ignore config errors if already set
5656
// }
5757

58-
// Checkout the branch
59-
await this.runCommand('git', ['fetch', 'origin', branchName])
60-
await this.runCommand('git', ['checkout', branchName])
58+
// Fetch latest changes
59+
await this.runCommand('git', ['fetch', 'origin'])
60+
61+
// For rebase operations, reset the branch to main and apply changes fresh
62+
// This prevents merge conflicts by starting with a clean slate
63+
console.log(`🔄 Resetting ${branchName} to main for clean rebase...`)
64+
65+
// Checkout main first
66+
await this.runCommand('git', ['checkout', 'main'])
67+
68+
// Reset the branch to main (delete and recreate)
69+
try {
70+
await this.runCommand('git', ['branch', '-D', branchName])
71+
}
72+
catch {
73+
// Branch might not exist locally, that's ok
74+
}
75+
76+
// Create fresh branch from main
77+
await this.runCommand('git', ['checkout', '-b', branchName])
6178

6279
// Apply file changes
6380
for (const file of files) {
6481
const cleanPath = file.path.replace(/^\.\//, '').replace(/^\/+/, '')
6582

6683
if (file.type === 'delete') {
67-
await this.runCommand('git', ['rm', cleanPath])
84+
try {
85+
await this.runCommand('git', ['rm', cleanPath])
86+
}
87+
catch {
88+
// File might not exist, that's ok for delete operations
89+
}
6890
}
6991
else {
7092
// Write file content
@@ -88,10 +110,10 @@ export class GitHubProvider implements GitProvider {
88110
// Commit changes
89111
await this.runCommand('git', ['commit', '-m', message])
90112

91-
// Push changes
92-
await this.runCommand('git', ['push', 'origin', branchName])
113+
// Force push changes to overwrite the existing branch
114+
await this.runCommand('git', ['push', 'origin', branchName, '--force'])
93115

94-
console.log(`✅ Committed changes to ${branchName}: ${message}`)
116+
console.log(`✅ Successfully rebased ${branchName} with fresh changes: ${message}`)
95117
}
96118
else {
97119
console.log(`ℹ️ No changes to commit for ${branchName}`)

0 commit comments

Comments
 (0)