buildChangelogEntries() — react Function Reference
Architecture documentation for the buildChangelogEntries() function in formatters.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 46f41443_754d_e47b_5367_c646cfbb0086["buildChangelogEntries()"] 9ea677d7_cac5_5d9f_3511_29ba3c0e3110["formatters.js"] 46f41443_754d_e47b_5367_c646cfbb0086 -->|defined in| 9ea677d7_cac5_5d9f_3511_29ba3c0e3110 style 46f41443_754d_e47b_5367_c646cfbb0086 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
scripts/tasks/generate-changelog/formatters.js lines 7–102
function buildChangelogEntries({
packageSpecs,
commitsByPackage,
summariesByPackage,
prMetadata,
}) {
const entries = [];
for (let i = 0; i < packageSpecs.length; i++) {
const spec = packageSpecs[i];
const version = spec.displayVersion || spec.version;
const commitsForPackage = commitsByPackage.get(spec.name) || [];
if (commitsForPackage.length === 0) {
entries.push({
package: spec.name,
version,
hasChanges: false,
note: NO_CHANGES_MESSAGE,
commits: [],
});
continue;
}
const summaryMap = summariesByPackage.get(spec.name) || new Map();
const commitEntries = commitsForPackage.map(commit => {
let summary = summaryMap.get(commit.sha) || commit.subject;
if (commit.prNumber) {
const prPattern = new RegExp(`\\s*\\(#${commit.prNumber}\\)$`);
summary = summary.replace(prPattern, '').trim();
}
const commitSha = commit.sha;
const commitUrl = `https://github.com/facebook/react/commit/${commitSha}`;
const prNumber = commit.prNumber || null;
const prUrl = prNumber
? `https://github.com/facebook/react/pull/${prNumber}`
: null;
const prEntry = prNumber ? prMetadata.get(prNumber) : null;
const authorLogin = prEntry?.authorLogin || null;
const authorName = commit.authorName || null;
const authorEmail = commit.authorEmail || null;
let authorUrl = null;
let authorDisplay = authorName || 'unknown author';
if (authorLogin) {
authorUrl = `https://github.com/${authorLogin}`;
authorDisplay = `[@${authorLogin}](${authorUrl})`;
} else if (authorName && authorName.startsWith('@')) {
const username = authorName.slice(1);
authorUrl = `https://github.com/${username}`;
authorDisplay = `[@${username}](${authorUrl})`;
}
const referenceType = prNumber ? 'pr' : 'commit';
const referenceId = prNumber ? `#${prNumber}` : commitSha.slice(0, 7);
const referenceUrl = prNumber ? prUrl : commitUrl;
const referenceLabel = prNumber
? `[#${prNumber}](${prUrl})`
: `commit ${commitSha.slice(0, 7)}`;
return {
summary,
prNumber,
prUrl,
commitSha,
commitUrl,
author: {
login: authorLogin,
name: authorName,
email: authorEmail,
url: authorUrl,
display: authorDisplay,
},
reference: {
type: referenceType,
id: referenceId,
url: referenceUrl,
label: referenceLabel,
Domain
Subdomains
Source
Frequently Asked Questions
What does buildChangelogEntries() do?
buildChangelogEntries() is a function in the react codebase, defined in scripts/tasks/generate-changelog/formatters.js.
Where is buildChangelogEntries() defined?
buildChangelogEntries() is defined in scripts/tasks/generate-changelog/formatters.js at line 7.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free