[gitiles] Add parse_repo_url function
Add a function to parse a Gitiles repo URL supporting various edge cases. R=tandrii@chromium.org Bug: 877161 Change-Id: Ib4d6a28a2ace2e594f1a4ca31460a446fc6fa052 Reviewed-on: https://chromium-review.googlesource.com/1204914 Commit-Queue: Nodir Turakulov <nodir@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>changes/14/1204914/4
parent
e323bd9d22
commit
f215ae6ed0
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"host",
|
||||
"path/to/project"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"host",
|
||||
"path/to/project"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"host",
|
||||
"path/to/project"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"host",
|
||||
"path/to/project"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"host",
|
||||
"path/to/project"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"host",
|
||||
"path/to/project"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"None",
|
||||
"None"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,15 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"echo",
|
||||
"None",
|
||||
"None"
|
||||
],
|
||||
"name": "build"
|
||||
},
|
||||
{
|
||||
"name": "$result",
|
||||
"recipe_result": null,
|
||||
"status_code": 0
|
||||
}
|
||||
]
|
@ -0,0 +1,30 @@
|
||||
# Copyright 2018 The LUCI Authors. All rights reserved.
|
||||
# Use of this source code is governed under the Apache License, Version 2.0
|
||||
# that can be found in the LICENSE file.
|
||||
|
||||
DEPS = [
|
||||
'gitiles',
|
||||
'recipe_engine/properties',
|
||||
'recipe_engine/step',
|
||||
]
|
||||
|
||||
|
||||
def RunSteps(api):
|
||||
repo_url = api.properties['repo_url']
|
||||
host, project = api.gitiles.parse_repo_url(repo_url)
|
||||
api.step('build', ['echo', str(host), str(project)])
|
||||
|
||||
|
||||
def GenTests(api):
|
||||
|
||||
def case(name, repo_url):
|
||||
return api.test(name) + api.properties(repo_url=repo_url)
|
||||
|
||||
yield case('basic', 'https://host/path/to/project')
|
||||
yield case('http', 'http://host/path/to/project')
|
||||
yield case('a prefix', 'https://host/a/path/to/project')
|
||||
yield case('git suffix', 'https://host/path/to/project.git')
|
||||
yield case('http and a prefix', 'http://host/a/path/to/project')
|
||||
yield case('no scheme', 'host/a/path/to/project')
|
||||
yield case('query string param', 'https://host/a/path/to/project?a=b')
|
||||
yield case('plus', 'https://host/path/to/project/+/master')
|
Loading…
Reference in New Issue