-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Pipelines 1.22, Pipelines 1.21
-
2
-
False
-
-
False
-
-
-
Customer Reported
Description of problem:
When a Gitlab Merge Request exceeds the Gitlab instance's Diff Limits checks such as "some/path".pathChanged() or files.all.any(f, f.matches(".tekton/")) do not compare against any changed files in excess of the Diff Limit.
Workaround
The only workaround is to split up the Merge Request
Prerequisites (if any, like setup, operators/versions):
Steps to Reproduce
# <steps>
- In a repository, write a pipelinerun that triggers on the CEL expression size(files.all) > 3000
- Create a Gitlab Merge request which updates more 3k files
Actual results:
The pipelinerun is not triggered
Expected results:
The pipelinerun is triggered
Reproducibility (Always/Intermittent/Only Once):
Always
Acceptance criteria:
The PipelineRun should match and start the pipelinerun
Definition of Done:
Build Details:
Additional info (Such as Logs, Screenshots, etc):
This can be worked around by switching from the MergeRequestDiffs API to using the Repository-Compare API. The consequence though is that the compare API does not page; it sends the entire diff. This may cause memory issues for very large changes. When using the Compare API the comparison should be from the target branch to /refs/merge-requests/<id>/head or the commit sha. The commit sha doesn't "exist" on the repo but appears to still work during comparison.