(releases: PackageRelease[])
| 181 | * Generates the PR body for a release PR |
| 182 | */ |
| 183 | export function generatePrBody(releases: PackageRelease[]): string { |
| 184 | let header = generateHeader(); |
| 185 | let releasesTable = generateReleasesTable(releases); |
| 186 | let changelogs = generateChangelogs(releases); |
| 187 | |
| 188 | let fullBody = [header, releasesTable, changelogs].join("\n\n"); |
| 189 | |
| 190 | // If under limit, return full body |
| 191 | if (fullBody.length <= maxBodyLength) { |
| 192 | return fullBody; |
| 193 | } |
| 194 | |
| 195 | // Truncate changelogs section to fit |
| 196 | let baseLength = header.length + releasesTable.length + 100; // buffer for truncation notice |
| 197 | let availableForChangelogs = maxBodyLength - baseLength; |
| 198 | let truncatedChangelogs = truncateChangelogs( |
| 199 | releases, |
| 200 | availableForChangelogs, |
| 201 | ); |
| 202 | |
| 203 | return [header, releasesTable, truncatedChangelogs].join("\n\n"); |
| 204 | } |
| 205 | |
| 206 | function generateHeader(): string { |
| 207 | return ( |
no test coverage detected