diff --git a/tools/autoupdate_app_sources/rest_api.py b/tools/autoupdate_app_sources/rest_api.py index f5193180..7ef3a1aa 100644 --- a/tools/autoupdate_app_sources/rest_api.py +++ b/tools/autoupdate_app_sources/rest_api.py @@ -42,6 +42,10 @@ class GithubAPI: """Get a list of releases for project.""" return self.internal_api(f"repos/{self.upstream_repo}/releases?per_page=100") + def archived(self) -> bool: + """Return the archival status for the repository""" + return self.internal_api(f"repos/{self.upstream_repo}")["archived"] + def url_for_ref(self, ref: str, ref_type: RefType) -> str: """Get a URL for a ref.""" if ref_type == RefType.tags or ref_type == RefType.releases: @@ -145,6 +149,10 @@ class GitlabAPI: return retval + def archived(self) -> bool: + """Return the archival status for the repository""" + return self.internal_api(f"projects/{self.project_id}")["archived"] + def url_for_ref(self, ref: str, _: RefType) -> str: name = self.project_path.split("/")[-1] clean_ref = ref.replace("/", "-") @@ -196,6 +204,10 @@ class GiteaForgejoAPI: """Get a list of releases for project.""" return self.internal_api(f"repos/{self.project_path}/releases") + def archived(self) -> bool: + """Return the archival status for the repository""" + return self.internal_api(f"repos/{self.project_path}")["archived"] + def url_for_ref(self, ref: str, _: RefType) -> str: """Get a URL for a ref.""" return f"{self.forge_root}/{self.project_path}/archive/{ref}.tar.gz" diff --git a/tools/find_deprecated.py b/tools/find_deprecated.py index d860ac20..b81cd038 100755 --- a/tools/find_deprecated.py +++ b/tools/find_deprecated.py @@ -39,7 +39,6 @@ def get_github() -> tuple[Optional[tuple[str, str]], Optional[github.Github], Op return None, None, None - def upstream_last_update_ago(app: str) -> tuple[str, int | None]: manifest_toml = app_cache_folder(app) / "manifest.toml" manifest_json = app_cache_folder(app) / "manifest.json" @@ -75,6 +74,10 @@ def upstream_last_update_ago(app: str) -> tuple[str, int | None]: api = GiteaForgejoAPI(upstream) if api: + if api.archived(): + # A stupid value that we know to be higher than the trigger value + return app, 1000 + last_commit = api.commits()[0] date = last_commit["commit"]["author"]["date"] date = datetime.datetime.fromisoformat(date)