loadTicketPublishState function

PublishState loadTicketPublishState(
  1. Directory ticketDir
)

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();
  }
}