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.
Files changed (38) hide show
  1. {libmozdata-0.2.18/libmozdata.egg-info → libmozdata-0.2.20}/PKG-INFO +1 -1
  2. libmozdata-0.2.20/VERSION +1 -0
  3. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/phabricator.py +32 -3
  4. {libmozdata-0.2.18 → libmozdata-0.2.20/libmozdata.egg-info}/PKG-INFO +1 -1
  5. libmozdata-0.2.18/VERSION +0 -1
  6. {libmozdata-0.2.18 → libmozdata-0.2.20}/MANIFEST.in +0 -0
  7. {libmozdata-0.2.18 → libmozdata-0.2.20}/README.md +0 -0
  8. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/BZInfo.py +0 -0
  9. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/FXRevision.py +0 -0
  10. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/FileStats.py +0 -0
  11. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/HGFileInfo.py +0 -0
  12. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/__init__.py +0 -0
  13. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/bugzilla.py +0 -0
  14. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/buildhub.py +0 -0
  15. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/clouseau.py +0 -0
  16. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/config.py +0 -0
  17. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/connection.py +0 -0
  18. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/fx_trains.py +0 -0
  19. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/handler.py +0 -0
  20. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/hgmozilla.py +0 -0
  21. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/lando.py +0 -0
  22. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/modules.json +0 -0
  23. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/modules.py +0 -0
  24. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/patchanalysis.py +0 -0
  25. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/redash.py +0 -0
  26. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/socorro.py +0 -0
  27. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/utils.py +0 -0
  28. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/vcs_map.py +0 -0
  29. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/versions.py +0 -0
  30. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata/wiki_parser.py +0 -0
  31. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/SOURCES.txt +0 -0
  32. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/dependency_links.txt +0 -0
  33. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/not-zip-safe +0 -0
  34. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/requires.txt +0 -0
  35. {libmozdata-0.2.18 → libmozdata-0.2.20}/libmozdata.egg-info/top_level.txt +0 -0
  36. {libmozdata-0.2.18 → libmozdata-0.2.20}/requirements.txt +0 -0
  37. {libmozdata-0.2.18 → libmozdata-0.2.20}/setup.cfg +0 -0
  38. {libmozdata-0.2.18 → libmozdata-0.2.20}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: libmozdata
3
- Version: 0.2.18
3
+ Version: 0.2.20
4
4
  Summary: Library to access and aggregate several Mozilla data sources.
5
5
  Home-page: https://github.com/mozilla/libmozdata
6
6
  Author: Mozilla Release Management
@@ -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", "id, phid, patch, base_revision, commits, merged"
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
- return {"User-Agent": self.USER_AGENT}
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"], diff["phid"], patch, diff["baseRevision"], commits, merged
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: libmozdata
3
- Version: 0.2.18
3
+ Version: 0.2.20
4
4
  Summary: Library to access and aggregate several Mozilla data sources.
5
5
  Home-page: https://github.com/mozilla/libmozdata
6
6
  Author: Mozilla Release Management
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