[3/n] [dropshot-api-manager] handle unparseable git ref files gracefully #40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Git ref files can become unparseable due to merge conflicts (conflict
markers), non-canonical formatting (backslashes on Windows, missing
trailing newlines), or corruption. Previously, these would cause errors
that blocked the tool from running.
This commit makes the tool resilient to such issues:
trailing newline. The
GitRef::needs_rewrite()method detects filesthat need normalization.
ensuring cross-platform compatibility.
load_unparseable()to track malformed local files so they canbe regenerated during
generateinstead of blocking with errors.automatically regenerated from blessed content.
Also refactor git ref/JSON filename handling into
ApiSpecFileName:git_ref_basename()/json_basename()for basename conversionto_git_ref_filename()as the inverse ofto_json_filename()This simplifies the Fix execution code in resolved.rs and consolidates
the conversion logic in one place.