Set and store prerelease during category data generation (#3961)

* Set and store prerelease during category data generation

* log out the version
This commit is contained in:
Joakim Sørensen
2024-08-13 09:04:09 +02:00
committed by GitHub
parent 16c29a6e74
commit cf25082897
4 changed files with 17 additions and 4 deletions

View File

@ -82,7 +82,7 @@ def dicts_are_equal(a: dict, b: dict, ignore: set[str]) -> bool:
def repository_has_missing_keys( def repository_has_missing_keys(
repository: HacsRepository, repository: HacsRepository,
stage: Literal["update"] | Literal["store"], stage: Literal["update", "store"],
) -> bool: ) -> bool:
"""Check if repository has missing keys.""" """Check if repository has missing keys."""
retval = False retval = False
@ -220,18 +220,22 @@ class AdjustedHacs(HacsBase):
release_count = len(releases) release_count = len(releases)
repository.data.etag_releases = response.etag repository.data.etag_releases = response.etag
repository.data.prerelease = None
if release_count != 0: if release_count != 0:
for release in releases: for release in releases:
if release.draft: if release.draft:
repository.logger.warning( repository.logger.warning(
"%s Found draft", repository.string) "%s Found draft %s", repository.string, release.tag_name)
elif release.prerelease: elif release.prerelease:
repository.logger.info( repository.logger.info(
"%s Found prerelease", repository.string) "%s Found prerelease %s", repository.string, release.tag_name)
repository.data.prerelease = release.tag_name
else: else:
repository.logger.info(
"%s Found release %s", repository.string, release.tag_name)
repository.data.releases = True repository.data.releases = True
repository.releases.objects = releases repository.releases.objects = releases
repository.data.published_tags = [ repository.data.published_tags = [
@ -267,6 +271,12 @@ class AdjustedHacs(HacsBase):
repository.data.last_version = next_version repository.data.last_version = next_version
repository.data.etag_repository = None repository.data.etag_repository = None
if (
repository.data.prerelease
and repository.data.prerelease == repository.data.last_version
):
repository.data.prerelease = None
except GitHubNotModifiedException: except GitHubNotModifiedException:
repository.data.releases = True repository.data.releases = True
repository.logger.info( repository.logger.info(
@ -490,7 +500,7 @@ async def generate_category_data(category: str, repository_name: str = None):
or len(updated_data) == 0 or len(updated_data) == 0
or not isinstance(updated_data, dict) or not isinstance(updated_data, dict)
): ):
print_error_and_exit(f"Updated data is empty", category) print_error_and_exit("Updated data is empty", category)
did_raise = True did_raise = True
try: try:

View File

@ -160,6 +160,7 @@ async def test_generate_category_data_with_prior_content(
"full_name": category_test_data["repository"], "full_name": category_test_data["repository"],
"last_updated": "2011-01-26T19:06:43Z", "last_updated": "2011-01-26T19:06:43Z",
"last_version": category_test_data["version_base"], "last_version": category_test_data["version_base"],
"prerelease": "0.0.0",
"stargazers_count": 0, "stargazers_count": 0,
"topics": ["api", "atom", "electron", "octocat"], "topics": ["api", "atom", "electron", "octocat"],
**category_data.get(category_test_data["category"], {}), **category_data.get(category_test_data["category"], {}),

View File

@ -12,6 +12,7 @@
"name": "Proxy manifest" "name": "Proxy manifest"
}, },
"manifest_name": "Proxy manifest", "manifest_name": "Proxy manifest",
"prerelease": "3.0.0",
"stargazers_count": 80, "stargazers_count": 80,
"topics": [ "topics": [
"api", "api",

View File

@ -13,6 +13,7 @@
"name": "Proxy manifest" "name": "Proxy manifest"
}, },
"manifest_name": "Proxy manifest", "manifest_name": "Proxy manifest",
"prerelease": "3.0.0",
"stargazers_count": 80, "stargazers_count": 80,
"topics": [ "topics": [
"api", "api",