in src/shipit/ShipItSync.php [70:105]
private async function genFilteredChangesets(
): Awaitable<vec<ShipItChangeset>> {
$manifest = $this->manifest;
$skipped_ids = $this->syncConfig->getSkippedSourceCommits();
$gen_filter = $this->syncConfig->getFilter();
$source_changesets = await $this->genSourceChangesets();
return await Vec\map_async(
$source_changesets,
async $changeset ==> {
$skip_match = null;
foreach ($skipped_ids as $skip_id) {
if (Str\search($changeset->getID(), $skip_id) === 0) {
$skip_match = $skip_id;
break;
}
}
if ($skip_match !== null) {
return $changeset
->skip(Str\format(
'USER SKIPPED COMMIT: id "%s" matches "%s"',
$changeset->getID(),
$skip_match,
));
}
$changeset = await $gen_filter($manifest, $changeset);
if (!$this->isValidChangeToSync($changeset)) {
return
$changeset->withDebugMessage('SKIPPED COMMIT: no matching files');
} else {
return self::addTrackingData($manifest, $changeset);
}
},
);
}