jroddev / android-oss-release-tracker

Android Application to keep track of updates to Open Source Applications directly from the Repository
MIT License
99 stars 5 forks source link

Excessive API calls to GitHub / GitLab #5

Open jroddev opened 2 years ago

jroddev commented 2 years ago

Hitting rate limiting issues during development. Users may experience the same while tracking many apps. Every time the Apps page loads all information is re-fetched. This involves multiple calls:

At the moment only the repo url is saved. Change this to be a json array that also contains the package name and icon url. I could also make these values configurable by the user in cases where my packageName detection logic fails.

jroddev commented 2 years ago

Rate limit looks to be 60/hr for unauthenticated user https://api.github.com/rate_limit

    "rate": {
        "limit": 60,
        "remaining": 60,
        "reset": 1668498567,
        "used": 0,
        "resource": "core"
    }

The calls that use api.github.com are actually

Fetching files uses raw, not API so getting the icon is also OK. I can probably switch determine android root to using raw and get a 30% improvement here.

Currently - best case is we can load the Apps page once per hour with 20 GitHub trackers (3 api requests per app). The rate limiting is based on IP address so switching from WiFi to cellular, or using a VPN can help to work around this.