New error with CompatHelper

The log info of CompatHelper is here. It says that github can’t find my repository, but the referenced link is actually working.

Have you set up the GitHub secrets correctly? The error message seems to suggests that there is not sufficient permission to make a git push?

Thanks a lot. I do not understand what are GitHub secrets. How should I set them up ? Why does CompatHelper need to push code to my repository if I have already updated the packages before the last commit?
PS: The only thing I remember to have set is a personal acces token in order to push to Github. I was forced to do that because the classic password authentication stopped working. I do not know if this has something to do with secrets.

I was referring to this line of setting:

I guess it could be that you simply don’t have a DOCUMENTER_KEY, which is supposed to be saved in something called GitHub secrets, a place in your repo for storing confidential keys that can be controlled in the “secrets” tab in GitHub repo settings. The reason why CompatHelper needs that is that it will make a pull request to your repo when it detects a new breaking release of one of the dependencies. The error message in your log file pops out when it was trying to make a PR to your repo and was rejected by GitHub. So, that makes me think that the cause for that is that CompatHelper doesn’t have a key that grants it the permission for making that PR. The way how such a key can be set up is explained in more details in the documentation for Documenter.jl here: SSH Deploy Keys Walkthrough · Documenter.jl (juliadocs.org)

Thanks. I have understood why GitHub needs to make a PR but haven’t understood the relation between secrets and ssh-keygen. I do not want to upload the ssh-key of my personal computers to GitHub. Is this needed?

I think that’s needed for the way how CompatHelper interacts with GitHub to work. However, it doesn’t matter where you generate that SSH. The only thing matters is the SSH public key in the GitHub deploy keys (another setting in GitHub repo) matches the SSH private key in the GitHub secrets. So, I guess you could use another computer for generating the SSH, although I am not a security expert.

Thanks, could you tell me how you have configured the file from CompatHelper built by PkgTemplates and how you have configured GitHub keys and secrets?

The CompatHelper setting is basically the same and can be found here: JuliaRegistries/CompatHelper.jl: Automatically update the [compat] entries for your Julia package’s dependencies (github.com) The GitHub keys and secrets configurations are also explained in the documentation for Documenter.jl somewhere (although the details may be scattered around).

Thanks, I found in the Documenter.jl they talk about ssh keys, but not about secrets in GitHub.

There are also documentation for GitHub secrets and GitHub deploy keys from GitHub documentation. For that part, it’s really just copying and pasting the public and private keys generated into the corresponding places in the repo settings, with the public one used as deploy key and private one as GitHub secret. (The latter also have a name that matches the setting for CompatHelper, in this case DOCUMENTER_KEY or anything else you set for the COMPATHELPER_PRIV field in the yml file.

Thank you very much, I have understood your explanation and proceeded as suggested. Nevertheless, there is still a problem with CompatHelper that I do not understand. Here is my last Action attempt. Thank you very much in advance.

I was able to have no error in CompatHelper but I had to change manually the following Actions settings:
Workflow permissions:

  • Read and write permission (Yes)
  • Allow Github actions to create and approve pull requests. (Yes)

Is this right and recommended?
Best.

3 Likes