ImranR98 / Obtainium

Get Android app updates straight from the source.
https://obtainium.imranr.dev
GNU General Public License v3.0
7.14k stars 160 forks source link

Check if repository got archived and add visual indicator or notification #1753

Open genericusername87 opened 1 month ago

genericusername87 commented 1 month ago

Prerequisites

Describe the feature

It would be great, if Obtainium could check and inform the user whether an app repository got archived for GitHub / Gitlab / etc. sources during update checking. Since this is a clear indicator that an app got unmaintained, continued usage might result in potential security issues in the medium term. When the user knows about the archival, he can look for replacements.

Since Obtainium provides the ability to view changelogs / release notes in-app, I rarely visit repository pages after adding them to Obtainium. For example, when ProtonMail open sourced their remade Android client, they created a new repo for it and archived the old one. I only realized this by chance several weeks later. [https://github.com/ProtonMail/proton-mail-android]() [https://github.com/ProtonMail/android-mail]()

Regarding user information, I believe the best way would be to add an icon or badge for affected apps on the app list overview. An alternative would be using a notification, but this might be obstrusive for users who purposefully use such apps.

If rate limits are a concern, maybe make this an optional setting or repeat the 'archived' check just on every 5th or 10th update check. You could add an counter variable per app and assign it a random starting value to distribute the requests.

Describe alternatives you've considered (if applicable)

1.) Don't check if repository is 'archived'.

2.) Evaluate commit history and inform user if there hasn't been a commit in X months, that development might have stalled.

I assume this might be much harder to implement, because of the many different project structures, development branches, etc. and will cause more requests.

Additional context

From my quick research, the Github and Gitlab Project REST API's provide an 'archived' value, but I haven't found something for Codeberg yet.

https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#get-a-repository

https://docs.gitlab.com/ee/api/projects.html

DJCrashdummy commented 1 month ago

i really like this idea! :+1: especially the UX with the badge. perhaps a notification at the first time when noticing the repo got archived, is ok, but not more frequent if it isn't optional. because you don't know to which timespan the user set the background update... if i would get a notification about an archived repo every 15 min., i would go bonkers.