I think self._repo_counter should be a generator and we should use the next() method to get the next value and increase the counter with no way to do forget about updating the counter.
I like this idea. I will change it today.
I think we should either use Python's id() function (if we are really interested in the object ID) or change addon_repo_id to repo_id and add it to pyanaconda.kickstart.RepoData (our "overrides" for kickstart objects).
Yeah I was thinking about it and I don't want to use Python's id() because from time to time the repositories are changing (I don't know why but they are recreated) and recreation change the Python's id(). I think changing the name to `repo_id` is good idea. About the RepoData I was thinking about this too but I didn't want to add `repo_id` to Pykickstart when It's used only in SourceSpoke. What do you think should this be in pykickstart instead of this injection?