loadTicketPublishState function
The ticket-wide run state of ticketDir — currently the
delete-the-ticket answer, which belongs to no single repository.
<ticket>/.gg/publish_state.json wins; a legacy ticket-level
gg-publish.json fills in, so a run that asked the question before the
split does not ask it again.
Implementation
gg.PublishState loadTicketPublishState(Directory ticketDir) {
final own = gg.PublishState.tryLoad(ticketDir);
if (own != null) {
return own;
}
final legacy = legacyTicketPublishConfigFile(ticketDir);
if (!legacy.existsSync()) {
return gg.PublishState();
}
try {
return gg.PublishConfig.load(
configArg: legacy.path,
fallbackDir: ticketDir.path,
).legacySplit(path.basename(ticketDir.path)).state;
} on FormatException {
return gg.PublishState();
}
}