Simplify getChangelogEntry (#632)

This commit is contained in:
Bjorn Lu
2026-05-27 15:41:11 +00:00
committed by GitHub
parent 031358f743
commit 1d54b9e660
6 changed files with 61 additions and 390 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@changesets/action": patch
---
Simplify internal implementation to get changelog entries for a package version
+1 -6
View File
@@ -26,12 +26,7 @@
"@manypkg/get-packages": "^1.1.3",
"@octokit/core": "^7.0.6",
"@octokit/plugin-throttling": "^11.0.3",
"@types/mdast": "^3.0.15",
"mdast-util-to-string": "^1.1.0",
"remark-parse": "^7.0.2",
"remark-stringify": "^7.0.4",
"semver": "^7.8.0",
"unified": "^8.4.2"
"semver": "^7.8.0"
},
"devDependencies": {
"@changesets/changelog-github": "^0.7.0",
-318
View File
@@ -40,24 +40,9 @@ importers:
'@octokit/plugin-throttling':
specifier: ^11.0.3
version: 11.0.3(@octokit/core@7.0.6)
'@types/mdast':
specifier: ^3.0.15
version: 3.0.15
mdast-util-to-string:
specifier: ^1.1.0
version: 1.1.0
remark-parse:
specifier: ^7.0.2
version: 7.0.2
remark-stringify:
specifier: ^7.0.4
version: 7.0.4
semver:
specifier: ^7.8.0
version: 7.8.0
unified:
specifier: ^8.4.2
version: 8.4.2
devDependencies:
'@changesets/changelog-github':
specifier: ^0.7.0
@@ -518,9 +503,6 @@ packages:
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
'@types/mdast@3.0.15':
resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -530,9 +512,6 @@ packages:
'@types/semver@7.7.1':
resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
'@vitest/expect@4.1.6':
resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==}
@@ -595,9 +574,6 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
bail@1.0.5:
resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==}
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -630,34 +606,16 @@ packages:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'}
ccount@1.1.0:
resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==}
chai@6.2.2:
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
engines: {node: '>=18'}
character-entities-html4@1.1.4:
resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==}
character-entities-legacy@1.1.4:
resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
character-entities@1.2.4:
resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
character-reference-invalid@1.1.4:
resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
chardet@2.1.1:
resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==}
clean-git-ref@2.0.1:
resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==}
collapse-white-space@1.0.6:
resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==}
content-type@2.0.0:
resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==}
engines: {node: '>=18'}
@@ -743,9 +701,6 @@ packages:
resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
engines: {node: '>=12.0.0'}
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
extendable-error@0.1.7:
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
@@ -856,27 +811,10 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
is-alphabetical@1.0.4:
resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
is-alphanumeric@1.0.0:
resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==}
engines: {node: '>=0.10.0'}
is-alphanumerical@1.0.4:
resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
is-buffer@2.0.5:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
is-decimal@1.0.4:
resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -885,17 +823,10 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
is-hexadecimal@1.0.4:
resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
is-plain-obj@2.1.0:
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
engines: {node: '>=8'}
is-subdir@1.2.0:
resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
engines: {node: '>=4'}
@@ -904,16 +835,10 @@ packages:
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines: {node: '>= 0.4'}
is-whitespace-character@1.0.4:
resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==}
is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
is-word-character@1.0.4:
resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==}
isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -946,28 +871,13 @@ packages:
lodash.startcase@4.4.0:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
longest-streak@2.0.4:
resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==}
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
markdown-escapes@1.0.4:
resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==}
markdown-table@1.1.3:
resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==}
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
mdast-util-compact@1.0.4:
resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==}
mdast-util-to-string@1.1.0:
resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==}
merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@@ -1039,9 +949,6 @@ packages:
pako@1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
parse-entities@1.2.2:
resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==}
path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@@ -1099,16 +1006,6 @@ packages:
resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
remark-parse@7.0.2:
resolution: {integrity: sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==}
remark-stringify@7.0.4:
resolution: {integrity: sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg==}
repeat-string@1.6.1:
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
engines: {node: '>=0.10'}
resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
@@ -1179,18 +1076,12 @@ packages:
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
state-toggle@1.0.3:
resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==}
std-env@4.1.0:
resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==}
string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
stringify-entities@2.0.0:
resolution: {integrity: sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==}
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -1233,16 +1124,6 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
trim-trailing-lines@1.1.4:
resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==}
trim@0.0.1:
resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==}
deprecated: Use String.prototype.trim() instead
trough@1.0.5:
resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -1266,27 +1147,6 @@ packages:
resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==}
engines: {node: '>=18.17'}
unherit@1.1.3:
resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==}
unified@8.4.2:
resolution: {integrity: sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==}
unist-util-is@3.0.0:
resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==}
unist-util-remove-position@1.1.4:
resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==}
unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
unist-util-visit-parents@2.1.2:
resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==}
unist-util-visit@1.4.1:
resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==}
universal-user-agent@7.0.3:
resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==}
@@ -1294,15 +1154,6 @@ packages:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
vfile-location@2.0.6:
resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==}
vfile-message@2.0.4:
resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
vfile@4.2.1:
resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==}
vite@8.0.13:
resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -1410,10 +1261,6 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
xtend@4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
snapshots:
'@actions/core@3.0.1':
@@ -1858,10 +1705,6 @@ snapshots:
'@types/estree@1.0.9': {}
'@types/mdast@3.0.15':
dependencies:
'@types/unist': 2.0.11
'@types/node@12.20.55': {}
'@types/node@24.12.4':
@@ -1870,8 +1713,6 @@ snapshots:
'@types/semver@7.7.1': {}
'@types/unist@2.0.11': {}
'@vitest/expect@4.1.6':
dependencies:
'@standard-schema/spec': 1.1.0
@@ -1937,8 +1778,6 @@ snapshots:
dependencies:
possible-typed-array-names: 1.1.0
bail@1.0.5: {}
base64-js@1.5.1: {}
before-after-hook@4.0.0: {}
@@ -1975,24 +1814,12 @@ snapshots:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
ccount@1.1.0: {}
chai@6.2.2: {}
character-entities-html4@1.1.4: {}
character-entities-legacy@1.1.4: {}
character-entities@1.2.4: {}
character-reference-invalid@1.1.4: {}
chardet@2.1.1: {}
clean-git-ref@2.0.1: {}
collapse-white-space@1.0.6: {}
content-type@2.0.0: {}
convert-source-map@2.0.0: {}
@@ -2060,8 +1887,6 @@ snapshots:
expect-type@1.3.0: {}
extend@3.0.2: {}
extendable-error@0.1.7: {}
fast-content-type-parse@3.0.0: {}
@@ -2175,33 +2000,16 @@ snapshots:
inherits@2.0.4: {}
is-alphabetical@1.0.4: {}
is-alphanumeric@1.0.0: {}
is-alphanumerical@1.0.4:
dependencies:
is-alphabetical: 1.0.4
is-decimal: 1.0.4
is-buffer@2.0.5: {}
is-callable@1.2.7: {}
is-decimal@1.0.4: {}
is-extglob@2.1.1: {}
is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
is-hexadecimal@1.0.4: {}
is-number@7.0.0: {}
is-plain-obj@2.1.0: {}
is-subdir@1.2.0:
dependencies:
better-path-resolve: 1.0.0
@@ -2210,12 +2018,8 @@ snapshots:
dependencies:
which-typed-array: 1.1.20
is-whitespace-character@1.0.4: {}
is-windows@1.0.2: {}
is-word-character@1.0.4: {}
isarray@2.0.5: {}
isexe@2.0.0: {}
@@ -2255,24 +2059,12 @@ snapshots:
lodash.startcase@4.4.0: {}
longest-streak@2.0.4: {}
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
markdown-escapes@1.0.4: {}
markdown-table@1.1.3: {}
math-intrinsics@1.1.0: {}
mdast-util-compact@1.0.4:
dependencies:
unist-util-visit: 1.4.1
mdast-util-to-string@1.1.0: {}
merge2@1.4.1: {}
micromatch@4.0.8:
@@ -2348,15 +2140,6 @@ snapshots:
pako@1.0.11: {}
parse-entities@1.2.2:
dependencies:
character-entities: 1.2.4
character-entities-legacy: 1.1.4
character-reference-invalid: 1.1.4
is-alphanumerical: 1.0.4
is-decimal: 1.0.4
is-hexadecimal: 1.0.4
path-exists@4.0.0: {}
path-key@3.1.1: {}
@@ -2398,43 +2181,6 @@ snapshots:
process: 0.11.10
string_decoder: 1.3.0
remark-parse@7.0.2:
dependencies:
collapse-white-space: 1.0.6
is-alphabetical: 1.0.4
is-decimal: 1.0.4
is-whitespace-character: 1.0.4
is-word-character: 1.0.4
markdown-escapes: 1.0.4
parse-entities: 1.2.2
repeat-string: 1.6.1
state-toggle: 1.0.3
trim: 0.0.1
trim-trailing-lines: 1.1.4
unherit: 1.1.3
unist-util-remove-position: 1.1.4
vfile-location: 2.0.6
xtend: 4.0.2
remark-stringify@7.0.4:
dependencies:
ccount: 1.1.0
is-alphanumeric: 1.0.0
is-decimal: 1.0.4
is-whitespace-character: 1.0.4
longest-streak: 2.0.4
markdown-escapes: 1.0.4
markdown-table: 1.1.3
mdast-util-compact: 1.0.4
parse-entities: 1.2.2
repeat-string: 1.6.1
state-toggle: 1.0.3
stringify-entities: 2.0.0
unherit: 1.1.3
xtend: 4.0.2
repeat-string@1.6.1: {}
resolve-from@5.0.0: {}
reusify@1.1.0: {}
@@ -2514,22 +2260,12 @@ snapshots:
stackback@0.0.2: {}
state-toggle@1.0.3: {}
std-env@4.1.0: {}
string_decoder@1.3.0:
dependencies:
safe-buffer: 5.2.1
stringify-entities@2.0.0:
dependencies:
character-entities-html4: 1.1.4
character-entities-legacy: 1.1.4
is-alphanumerical: 1.0.4
is-decimal: 1.0.4
is-hexadecimal: 1.0.4
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
@@ -2563,12 +2299,6 @@ snapshots:
tr46@0.0.3: {}
trim-trailing-lines@1.1.4: {}
trim@0.0.1: {}
trough@1.0.5: {}
tslib@2.8.1:
optional: true
@@ -2586,56 +2316,10 @@ snapshots:
undici@6.25.0: {}
unherit@1.1.3:
dependencies:
inherits: 2.0.4
xtend: 4.0.2
unified@8.4.2:
dependencies:
'@types/unist': 2.0.11
bail: 1.0.5
extend: 3.0.2
is-plain-obj: 2.1.0
trough: 1.0.5
vfile: 4.2.1
unist-util-is@3.0.0: {}
unist-util-remove-position@1.1.4:
dependencies:
unist-util-visit: 1.4.1
unist-util-stringify-position@2.0.3:
dependencies:
'@types/unist': 2.0.11
unist-util-visit-parents@2.1.2:
dependencies:
unist-util-is: 3.0.0
unist-util-visit@1.4.1:
dependencies:
unist-util-visit-parents: 2.1.2
universal-user-agent@7.0.3: {}
universalify@0.1.2: {}
vfile-location@2.0.6: {}
vfile-message@2.0.4:
dependencies:
'@types/unist': 2.0.11
unist-util-stringify-position: 2.0.3
vfile@4.2.1:
dependencies:
'@types/unist': 2.0.11
is-buffer: 2.0.5
unist-util-stringify-position: 2.0.3
vfile-message: 2.0.4
vite@8.0.13(@types/node@24.12.4):
dependencies:
picomatch: 4.0.4
@@ -2699,5 +2383,3 @@ snapshots:
stackback: 0.0.2
wrappy@1.0.2: {}
xtend@4.0.2: {}
+9 -16
View File
@@ -12,8 +12,7 @@ exports[`version > creates a draft PR when prDraft is "create" 1`] = `
### Minor Changes
- Awesome feature
",
- Awesome feature",
"draft": true,
"head": "changeset-release/some-branch",
"owner": "changesets",
@@ -35,19 +34,17 @@ exports[`version > creates simple PR 1`] = `
### Minor Changes
- Awesome feature
- Awesome feature
### Patch Changes
- Updated dependencies
- changesets-dev-simple-project-pkg-b@1.1.0
- Updated dependencies
- changesets-dev-simple-project-pkg-b@1.1.0
## changesets-dev-simple-project-pkg-b@1.1.0
### Minor Changes
- Awesome feature
",
- Awesome feature",
"draft": false,
"head": "changeset-release/some-branch",
"owner": "changesets",
@@ -111,8 +108,7 @@ exports[`version > doesn't include ignored package that got a dependency update
### Minor Changes
- Awesome feature
",
- Awesome feature",
"draft": false,
"head": "changeset-release/some-branch",
"owner": "changesets",
@@ -134,8 +130,7 @@ exports[`version > only includes bumped packages in the PR body 1`] = `
### Minor Changes
- Awesome feature
",
- Awesome feature",
"draft": false,
"head": "changeset-release/some-branch",
"owner": "changesets",
@@ -187,8 +182,7 @@ exports[`version > updates an existing PR via GraphQL and converts it to draft w
### Minor Changes
- Awesome feature
",
- Awesome feature",
"pullRequestId": "PR_kwDOA",
"title": "Version Packages",
},
@@ -228,8 +222,7 @@ exports[`version > updates an existing PR via GraphQL without converting it to d
### Minor Changes
- Awesome feature
",
- Awesome feature",
"pullRequestId": "PR_kwDOA",
"title": "Version Packages",
},
+6 -8
View File
@@ -23,23 +23,21 @@ exports[`it sorts the things right 1`] = `
exports[`it works 1`] = `
"### Major Changes
- [2164a779](https://github.com/keystonejs/keystone-5/commit/2164a779):
- [2164a779](https://github.com/keystonejs/keystone-5/commit/2164a779):
- Replace jade with pug because Jade was renamed to Pug, and \`jade\` package is outdated
- Replace jade with pug because Jade was renamed to Pug, and \`jade\` package is outdated
### Patch Changes
- [81dc0be5](https://github.com/keystonejs/keystone-5/commit/81dc0be5):
- [81dc0be5](https://github.com/keystonejs/keystone-5/commit/81dc0be5):
- Update dependencies
"
- Update dependencies"
`;
exports[`it works 2`] = `
"### Patch Changes
- [19fe6c1b](https://github.com/keystonejs/keystone-5/commit/19fe6c1b):
- [19fe6c1b](https://github.com/keystonejs/keystone-5/commit/19fe6c1b):
Move frontmatter in docs into comments
"
Move frontmatter in docs into comments"
`;
+40 -42
View File
@@ -1,11 +1,5 @@
import fs from "node:fs/promises";
import { getPackages, type Package } from "@manypkg/get-packages";
import type { Root } from "mdast";
// @ts-ignore
import mdastToString from "mdast-util-to-string";
import remarkParse from "remark-parse";
import remarkStringify from "remark-stringify";
import unified from "unified";
export const BumpLevels = {
dep: 0,
@@ -37,51 +31,55 @@ export async function getChangedPackages(
}
export function getChangelogEntry(changelog: string, version: string) {
let ast = unified().use(remarkParse).parse(changelog) as Root;
let highestLevel: number = BumpLevels.dep;
let nodes = ast.children;
let headingStartInfo:
| {
index: number;
depth: number;
}
| undefined;
let headingStartInfo: { index: number; depth: number } | undefined;
let endIndex: number | undefined;
for (let i = 0; i < nodes.length; i++) {
let node = nodes[i];
if (node.type === "heading") {
let stringified: string = mdastToString(node);
let match = stringified.toLowerCase().match(/(major|minor|patch)/);
if (match !== null) {
let level = BumpLevels[match[0] as "major" | "minor" | "patch"];
highestLevel = Math.max(level, highestLevel);
}
if (headingStartInfo === undefined && stringified === version) {
headingStartInfo = {
index: i,
depth: node.depth,
};
// Iterate through each headings and code blocks (for skipping its contents)
const regex = /^(#{1,6})\s(.*)$|^(`{3,})/gm;
let match: RegExpExecArray | null;
while ((match = regex.exec(changelog)) != null) {
// Skip over code blocks so we don't match any headings inside of them
if (match[3]) {
const endOfCodeBlockRegex = new RegExp(`^${match[3]}`, "gm");
endOfCodeBlockRegex.lastIndex = regex.lastIndex;
const endMatch = endOfCodeBlockRegex.exec(changelog);
if (endMatch) {
// Start next search for headings after the end of the code block
regex.lastIndex = endOfCodeBlockRegex.lastIndex;
continue;
}
if (
endIndex === undefined &&
headingStartInfo !== undefined &&
headingStartInfo.depth === node.depth
) {
endIndex = i;
} else {
// Can't find end of code block, probably malformed
break;
}
}
const headingDepth = match[1].length;
const headingText = match[2].trim();
// Search for the highest bump level in the entire changelog
const levelMatch = /(major|minor|patch)/.exec(headingText.toLowerCase());
if (levelMatch != null) {
const level = BumpLevels[levelMatch[0] as "major" | "minor" | "patch"];
highestLevel = Math.max(level, highestLevel);
}
// Search for heading of the entry
if (headingText === version) {
headingStartInfo = { index: regex.lastIndex, depth: headingDepth };
continue;
}
// If we've found the entry heading, search for the closing heading with the same depth
if (headingStartInfo && headingDepth === headingStartInfo.depth) {
endIndex = match.index;
break;
}
}
if (headingStartInfo) {
ast.children = ast.children.slice(headingStartInfo.index + 1, endIndex);
}
return {
content: unified().use(remarkStringify).stringify(ast),
highestLevel: highestLevel,
content: changelog.slice(headingStartInfo?.index, endIndex).trim(),
highestLevel,
};
}