It strikes me as odd to pull repo-id from **kwargs instead of requiring it in the function parameters, since it is a required parameter and will cause a failure if it is not included. I was trying to think of why you might want to do it this way, and the only thing I can think of was that the name you are using has a dash (which wouldn't be allowed in python for a variable?) Is there another reason? Would it be a pain to pass it differently?

If we must keep this pattern for whatever reason, I suggest not calling it kwargs because that name generally implies "not required" in the Python world. If we go this route, we should probably rename it to "named_params" or something, and the docstring should mention that 'repo-id' is required to be included.