MCPcopy Create free account
hub / github.com/TanStack/cli / writeChangesetFile

Function writeChangesetFile

scripts/generate-semantic-changeset.mjs:140–165  ·  view source on GitHub ↗
(packageNames, bump, commits)

Source from the content-addressed store, hash-verified

138}
139
140async function writeChangesetFile(packageNames, bump, commits) {
141 const changesetDir = path.resolve('.changeset')
142 if (!existsSync(changesetDir)) {
143 await mkdir(changesetDir, { recursive: true })
144 }
145
146 const branchName = process.env.GITHUB_REF_NAME || runGit('branch --show-current') || 'branch'
147 const shortSha = runGit('rev-parse --short HEAD')
148 const fileName = `auto-semantic-${branchName}-${shortSha}.md`.replace(/[^a-zA-Z0-9._-]/g, '-')
149 const filePath = path.join(changesetDir, fileName)
150
151 const frontmatter = packageNames
152 .sort((a, b) => a.localeCompare(b))
153 .map((pkgName) => `'${pkgName}': ${bump}`)
154 .join('\n')
155
156 const bullets = commits
157 .slice(0, 6)
158 .map((commit) => `- ${commit.subject} (${commit.sha.slice(0, 7)})`)
159 .join('\n')
160
161 const content = `---\n${frontmatter}\n---\n\nAuto-generated changeset from semantic commits on ${branchName}.\n\n${bullets}\n`
162
163 await writeFile(filePath, content, 'utf8')
164 return fileName
165}
166
167async function main() {
168 const pendingChangesets = await getPendingChangesetFiles()

Callers 1

mainFunction · 0.85

Calls 2

runGitFunction · 0.85
replaceMethod · 0.65

Tested by

no test coverage detected