YahnisElsts/plugin-update-checker

404 Issue when Updating (Fine grained tokens?)

TONYCRE8 opened this issue · 2 comments

I've taken a look at issues raised before, and haven't found a solution so I'm going to post it here.
I've set up my plugin updater as the documentation provides, but when I go to check for an update I get the following errors:

Could not determine if updates are available for Custom Plugin.
1. GitHub API error. Base URL: "/repos/:user/:repo/releases/latest", HTTP status code: 404. puc-github-http-error
2. GitHub API error. Base URL: "/repos/:user/:repo/tags", HTTP status code: 404. puc-github-http-error
3. GitHub API error. Base URL: "/repos/:user/:repo/branches/main", HTTP status code: 404. puc-github-http-error
4. Could not retrieve version information from the repository. This usually means that the update checker either can't connect to the repository or it's configured incorrectly. puc-no-update-source

I've just checked with our server provider, and there's nothing about the firewall blocking the ip. The repo I'm connecting to is private, but I have generated an adequate key for it. I'm curious if this is because I'm using a fine-grained token and not a generic token. But if I was to use a generic token, I would like to ask how I get this to work with a private organisation's files. With the fine-grained token, I can at least target the specific repos.

Any help would be appreciated, happy to provide context where possible.

I've only done very basic testing with fine-grained tokens, but they seem to work fine with PUC.

Here are some - probably obvious - things to check:

  • Is the repository URL that's passed to buildUpdateChecker correct? An incorrect URL could result in similar errors.
  • Is the token for the right repository?
  • Does the token have read access to code and metadata?
  • Is the token still valid (i.e. not expired)?
  • Install Debug Bar (if not already installed), go to the "PUC (your-plugin-slug)" tab. Does "Authentication enabled" say "Yes"?

Hi, think I found the issue that one of your comments hinted at.

Basically, when I was setting up the token, it seems like it wasn't updating the permissions properly, as it kept defaulting to a general token. Not sure why, but it will default like that unless I give it specific permissions.

Thanks for your help!