[go: up one dir, main page]

Tagging a blob or tree results in weird behavior

Git is technically able to tag tree and blob objects as well as branches and commits. If a user tags a blob and pushes it to gitlab we do some unexpected stuff.

We are unable to extract the target_commit so the tag object doesn't contain a dereferenced_target and the target value is the sha of the tag not the blob.

This then results in us using the project.repository.root_ref in place of the SHA value so we trigger a pipeline for ref: tag.name, sha: project.repository.root_ref.dereferenced_target.sha. We have no way of knowing this is the correct SHA and we also shouldn't be triggering a pipeline anyway as this isn't a commit, we can't run a pipeline against a specific tree or blob.

We also show the root_ref commit in the UI when viewing the list of tags. The commit message shows when we should really be displaying an empty UI.