libmozdata 0.2.18__tar.gz → 0.2.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {libmozdata-0.2.18/libmozdata.egg-info → libmozdata-0.2.20}/PKG-INFO +1 -1
- libmozdata-0.2.20/VERSION +1 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/phabricator.py +32 -3
- {libmozdata-0.2.18 → libmozdata-0.2.20/libmozdata.egg-info}/PKG-INFO +1 -1
- libmozdata-0.2.18/VERSION +0 -1
- {libmozdata-0.2.18 → libmozdata-0.2.20}/MANIFEST.in +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/README.md +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/BZInfo.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/FXRevision.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/FileStats.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/HGFileInfo.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/__init__.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/bugzilla.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/buildhub.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/clouseau.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/config.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/connection.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/fx_trains.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/handler.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/hgmozilla.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/lando.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/modules.json +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/modules.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/patchanalysis.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/redash.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/socorro.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/utils.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/vcs_map.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/versions.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/wiki_parser.py +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/SOURCES.txt +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/dependency_links.txt +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/not-zip-safe +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/requires.txt +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/top_level.txt +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/requirements.txt +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/setup.cfg +0 -0
- {libmozdata-0.2.18 → libmozdata-0.2.20}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.20
|
|
@@ -7,6 +7,7 @@ import collections
|
|
|
7
7
|
import enum
|
|
8
8
|
import json
|
|
9
9
|
import logging
|
|
10
|
+
import os
|
|
10
11
|
from functools import cached_property
|
|
11
12
|
from urllib.parse import urlencode, urlparse
|
|
12
13
|
|
|
@@ -19,7 +20,9 @@ HGMO_JSON_REV_URL_TEMPLATE = "https://hg.mozilla.org/mozilla-central/json-rev/{}
|
|
|
19
20
|
MOZILLA_PHABRICATOR_PROD = "https://phabricator.services.mozilla.com/api/"
|
|
20
21
|
|
|
21
22
|
PhabricatorPatch = collections.namedtuple(
|
|
22
|
-
"PhabricatorPatch",
|
|
23
|
+
"PhabricatorPatch",
|
|
24
|
+
"id, phid, patch, base_revision, commits, merged, first_public_parent",
|
|
25
|
+
defaults=[None],
|
|
23
26
|
)
|
|
24
27
|
|
|
25
28
|
logger = logging.getLogger(__name__)
|
|
@@ -228,7 +231,13 @@ class PhabricatorAPI(object):
|
|
|
228
231
|
|
|
229
232
|
def get_header(self):
|
|
230
233
|
"""Get the header to use each query"""
|
|
231
|
-
|
|
234
|
+
headers = {"User-Agent": self.USER_AGENT}
|
|
235
|
+
|
|
236
|
+
edge_key = os.environ.get("PHABRICATOR_EDGE_KEY")
|
|
237
|
+
if edge_key:
|
|
238
|
+
headers["Mozilla-Edge-Key"] = edge_key
|
|
239
|
+
|
|
240
|
+
return headers
|
|
232
241
|
|
|
233
242
|
def search_diffs(
|
|
234
243
|
self,
|
|
@@ -705,13 +714,33 @@ class PhabricatorAPI(object):
|
|
|
705
714
|
diff_phid=diff["phid"], attachments={"commits": True}
|
|
706
715
|
)
|
|
707
716
|
commits = diffs[0]["attachments"]["commits"].get("commits", [])
|
|
717
|
+
query_diffs = self.request("differential.querydiffs", ids=[diff["id"]])
|
|
718
|
+
properties = query_diffs.get(str(diff["id"]), {}).get("properties", {})
|
|
719
|
+
local_commits = properties.get("local:commits") or {}
|
|
720
|
+
if not local_commits:
|
|
721
|
+
logger.warn("Diff %s has no local:commits property", diff["id"])
|
|
722
|
+
|
|
723
|
+
first_public_parent = None
|
|
724
|
+
# local:commits is keyed by the local commit node, which may differ from
|
|
725
|
+
# the public commit identifier exposed by Phabricator's commits attachment
|
|
726
|
+
# hence iterating over values (there is only one in the dict but key unknown).
|
|
727
|
+
for local_commit in local_commits.values():
|
|
728
|
+
first_public_parent = local_commit.get("firstPublicParent")
|
|
729
|
+
if first_public_parent:
|
|
730
|
+
break
|
|
708
731
|
logger.info(
|
|
709
732
|
"Adding patch #{} to stack ({})".format(
|
|
710
733
|
diff["id"], "merged" if merged else "non-merged"
|
|
711
734
|
)
|
|
712
735
|
)
|
|
713
736
|
return PhabricatorPatch(
|
|
714
|
-
diff["id"],
|
|
737
|
+
diff["id"],
|
|
738
|
+
diff["phid"],
|
|
739
|
+
patch,
|
|
740
|
+
diff["baseRevision"],
|
|
741
|
+
commits,
|
|
742
|
+
merged,
|
|
743
|
+
first_public_parent,
|
|
715
744
|
)
|
|
716
745
|
|
|
717
746
|
# Load full diff when not provided by user
|
libmozdata-0.2.18/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.2.18
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|