|
@@ -0,0 +1,31 @@
|
|
|
|
|
+#!/usr/bin/env python
|
|
|
|
|
+#
|
|
|
|
|
+# internal use only for CI
|
|
|
|
|
+# get latest MR IID by source branch
|
|
|
|
|
+
|
|
|
|
|
+import argparse
|
|
|
|
|
+import os
|
|
|
|
|
+
|
|
|
|
|
+from gitlab_api import Gitlab
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def get_MR_IID_by_source_branch(source_branch):
|
|
|
|
|
+ if not source_branch:
|
|
|
|
|
+ return ''
|
|
|
|
|
+ gl = Gitlab(os.getenv('CI_PROJECT_ID'))
|
|
|
|
|
+ if not gl.project:
|
|
|
|
|
+ return ''
|
|
|
|
|
+ mrs = gl.project.mergerequests.list(state='opened', source_branch=source_branch)
|
|
|
|
|
+ if mrs:
|
|
|
|
|
+ mr = mrs[0] # one source branch can only have one opened MR at one moment
|
|
|
|
|
+ return mr.iid
|
|
|
|
|
+ return ''
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
|
+ parser = argparse.ArgumentParser(description='Get the latest MR IID by source branch, if not found, return empty string')
|
|
|
|
|
+ parser.add_argument('source_branch', nargs='?', help='source_branch') # won't fail if it's empty
|
|
|
|
|
+
|
|
|
|
|
+ args = parser.parse_args()
|
|
|
|
|
+
|
|
|
|
|
+ print(get_MR_IID_by_source_branch(args.source_branch))
|