Skip to content

Commit 082bb98

Browse files
committedJun 11, 2018
Add landingsystem
Amend telemetry.mozilla.org pings with data about the automated system used to land a commit.
1 parent 0b8da79 commit 082bb98

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed
 

‎committelemetry/telemetry.py

+19-15
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"""
77

88
import logging
9+
from typing import Dict
910

1011
import requests
1112

@@ -16,7 +17,7 @@
1617
log = logging.getLogger(__name__)
1718

1819

19-
def payload_for_changeset(changesetid, repo_url):
20+
def payload_for_changeset(changesetid: str, repo_url: str) -> Dict:
2021
"""Build a telemetry.mozilla.org ping payload for the given changeset ID.
2122
2223
The payload conforms to https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/dev/schemas/eng-workflow/hgpush/hgpush.1.schema.json
@@ -33,28 +34,31 @@ def payload_for_changeset(changesetid, repo_url):
3334
NoSuchChangeset: the requested changeset ID does not exist in the given
3435
mercurial repository.
3536
"""
37+
changeset = fetch_changeset(changesetid, repo_url)
38+
39+
reviewsystem = determine_review_system(changeset)
40+
landingsystem = changeset.get('landingsystem')
41+
utc_pushdate = utc_hgwebdate(changeset['pushdate'])
42+
43+
return {
44+
'changesetID': changesetid,
45+
'landingSystem': landingsystem,
46+
'reviewSystemUsed': reviewsystem.value,
47+
'repository': repo_url,
48+
'pushDate': utc_pushdate,
49+
}
50+
51+
52+
def fetch_changeset(changeset_id, repo_url):
3653
# Example URL: https://hg.mozilla.org/mozilla-central/json-rev/deafa2891c61
3754
response = requests_retry_session(
3855
).get(f'{repo_url}/json-rev/{changesetid}')
39-
4056
if response.status_code == 404:
4157
raise NoSuchChangeset(
4258
f'The changeset {changesetid} does not exist in repository {repo_url}'
4359
)
44-
4560
response.raise_for_status()
46-
pushdata = response.json()
47-
48-
system = determine_review_system(pushdata)
49-
50-
utc_pushdate = utc_hgwebdate(pushdata['pushdate'])
51-
52-
return {
53-
'changesetID': changesetid,
54-
'reviewSystemUsed': system.value,
55-
'repository': repo_url,
56-
'pushDate': utc_pushdate
57-
}
61+
return response.json()
5862

5963

6064
def send_ping(ping_id, payload):

0 commit comments

Comments
 (0)
Failed to load comments.