fix tag detection
Use a separate URL for testing a tag from testing a SHA, since sometimes the latter does not work for tags. Change-Id: I01e71df99b0ab81f171f9e69e5190164e20f5106 Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
parent
0289d784a2
commit
1227800a37
@ -243,7 +243,7 @@ def main():
|
|||||||
# import history and sometimes we want to make new
|
# import history and sometimes we want to make new
|
||||||
# releases.
|
# releases.
|
||||||
print('version %s ' % release['version'], end='')
|
print('version %s ' % release['version'], end='')
|
||||||
version_exists = gitutils.commit_exists(
|
version_exists = gitutils.tag_exists(
|
||||||
project['repo'], release['version'],
|
project['repo'], release['version'],
|
||||||
)
|
)
|
||||||
gitutils.clone_repo(workdir, project['repo'])
|
gitutils.clone_repo(workdir, project['repo'])
|
||||||
@ -254,9 +254,9 @@ def main():
|
|||||||
release['version'],
|
release['version'],
|
||||||
)
|
)
|
||||||
if actual_sha == project['hash']:
|
if actual_sha == project['hash']:
|
||||||
print('found and matches SHA')
|
print('found and SHAs match, ')
|
||||||
else:
|
else:
|
||||||
print('found DIFFERENT %r' % actual_sha)
|
print('found DIFFERENT %r, ' % actual_sha)
|
||||||
errors.append(
|
errors.append(
|
||||||
('Version %s in %s is on '
|
('Version %s in %s is on '
|
||||||
'commit %s instead of %s') %
|
'commit %s instead of %s') %
|
||||||
@ -265,7 +265,7 @@ def main():
|
|||||||
actual_sha,
|
actual_sha,
|
||||||
project['hash']))
|
project['hash']))
|
||||||
else:
|
else:
|
||||||
print('NEW ', end='')
|
print('NEW VERSION, ', end='')
|
||||||
new_releases[release['version']] = release
|
new_releases[release['version']] = release
|
||||||
if not prev_version:
|
if not prev_version:
|
||||||
print()
|
print()
|
||||||
|
@ -22,7 +22,8 @@ import requests
|
|||||||
from requests.packages import urllib3
|
from requests.packages import urllib3
|
||||||
urllib3.disable_warnings()
|
urllib3.disable_warnings()
|
||||||
|
|
||||||
CGIT_TEMPLATE = 'http://git.openstack.org/cgit/%s/commit/?id=%s'
|
CGIT_SHA_TEMPLATE = 'http://git.openstack.org/cgit/%s/commit/?id=%s'
|
||||||
|
CGIT_TAG_TEMPLATE = 'http://git.openstack.org/cgit/%s/tag/?h=%s'
|
||||||
|
|
||||||
|
|
||||||
def find_modified_deliverable_files():
|
def find_modified_deliverable_files():
|
||||||
@ -46,7 +47,23 @@ def commit_exists(repo, ref):
|
|||||||
someone to fool the check.
|
someone to fool the check.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
url = CGIT_TEMPLATE % (repo, ref)
|
url = CGIT_SHA_TEMPLATE % (repo, ref)
|
||||||
|
response = requests.get(url)
|
||||||
|
missing_commit = (
|
||||||
|
(response.status_code // 100 != 2) or 'Bad object id' in response.text
|
||||||
|
)
|
||||||
|
return not missing_commit
|
||||||
|
|
||||||
|
|
||||||
|
def tag_exists(repo, ref):
|
||||||
|
"""Return boolean specifying whether the reference exists in the repository.
|
||||||
|
|
||||||
|
Uses a cgit query instead of looking locally to avoid cloning a
|
||||||
|
repository or having Depends-On settings in a commit message allow
|
||||||
|
someone to fool the check.
|
||||||
|
|
||||||
|
"""
|
||||||
|
url = CGIT_TAG_TEMPLATE % (repo, ref)
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
missing_commit = (
|
missing_commit = (
|
||||||
(response.status_code // 100 != 2) or 'Bad object id' in response.text
|
(response.status_code // 100 != 2) or 'Bad object id' in response.text
|
||||||
|
Loading…
Reference in New Issue
Block a user