Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Issue
When you fetch tags from a project and try to access the builds through a tag commit object like in the following snippet:
… then python-gitlab raises an AttributeError in line 1128 in objects.py. This happens because it tries to construct the request url and cannot find
self.project_id
.What Causes the Issue?
When you fetch tags python-gitlab constructs Tag-objects which call
_set_from_dict
internally. Then this method checks if it contains data for subobjects and calls subsequently_get_object
. At this point the subobjects will be created from the gitlab response data but do not receive any "kwargs" information and as such are missing the project-id.Possible Solution
I simply passed down the kwargs to
_get_object
. It solves the specific issue although I am not exactly sure if this is the best way to go. Additionally I am not a huge fan of passing down parameters for too many levels as it feels conceptually wrong.