A merge says which files it changed
Every module built from a repository was rebuilt for a change to any of them: one merge in this repository meant twenty-six builds, which is what exhausted a public registry's pull limit. The forge lists the files a merge changed and the event carries them, from the watcher and from the merge tool alike; a merge that changed more files than were asked for says so, and the mesh then treats the whole repository as changed rather than guessing.
This commit is contained in:
@@ -95,6 +95,10 @@ async function pollMerged(client: GiteaClient): Promise<void> {
|
||||
// at once.
|
||||
const fresh = !!pull.merged_at && !!since && pull.merged_at > since;
|
||||
if (primedMerges && fresh) {
|
||||
// What it changed, asked for only now: a module is rebuilt because a file inside its own
|
||||
// directory moved, and without this every module built from a repository is rebuilt for a
|
||||
// change to any of them (novox/hq 04-ISSUES/131).
|
||||
const changed = await client.listPullFiles(repo.owner, repo.name, pull.number);
|
||||
await emit("pull.merged", {
|
||||
owner: repo.owner,
|
||||
repo: repo.name,
|
||||
@@ -106,6 +110,8 @@ async function pollMerged(client: GiteaClient): Promise<void> {
|
||||
merged_at: pull.merged_at,
|
||||
clone_url: repo.clone_url,
|
||||
html_url: pull.html_url,
|
||||
paths: changed.paths,
|
||||
paths_truncated: changed.truncated,
|
||||
});
|
||||
// Said, because a trigger that fires silently is indistinguishable from one that did not
|
||||
// fire (novox/hq 04-ISSUES/131) — this line is how an operator knows the mesh was told.
|
||||
|
||||
Reference in New Issue
Block a user