summaryrefslogtreecommitdiffstats
path: root/extensions/PhabBugz
diff options
context:
space:
mode:
authorDavid Lawrence <dkl@mozilla.com>2017-12-01 23:48:37 +0100
committerDylan William Hardison <dylan@hardison.net>2017-12-01 23:49:57 +0100
commit357528ba856fd85aee5967e5d7d8f4426bc8d5b6 (patch)
treee6879cc383e595ff3c9887249f70a65e7c252f8e /extensions/PhabBugz
parentf9950d225c4d7f9830012de57c5e41750675a2cf (diff)
downloadbugzilla-357528ba856fd85aee5967e5d7d8f4426bc8d5b6.tar.gz
bugzilla-357528ba856fd85aee5967e5d7d8f4426bc8d5b6.tar.xz
Bug 1422329 - The phabricator conduit API method feed.query_id return data format has changed so the phabbugz_feed.pl daemon needs to be updated
Diffstat (limited to 'extensions/PhabBugz')
-rw-r--r--extensions/PhabBugz/lib/Feed.pm26
-rw-r--r--extensions/PhabBugz/lib/Revision.pm4
-rw-r--r--extensions/PhabBugz/lib/Util.pm4
3 files changed, 13 insertions, 21 deletions
diff --git a/extensions/PhabBugz/lib/Feed.pm b/extensions/PhabBugz/lib/Feed.pm
index d178f249b..b2b681bbd 100644
--- a/extensions/PhabBugz/lib/Feed.pm
+++ b/extensions/PhabBugz/lib/Feed.pm
@@ -76,7 +76,7 @@ sub feed_query {
foreach my $story_data (@$transactions) {
my $skip = 0;
my $story_id = $story_data->{id};
- my $story_phid = $story_data->{storyPHID};
+ my $story_phid = $story_data->{phid};
my $author_phid = $story_data->{authorPHID};
my $object_phid = $story_data->{objectPHID};
my $story_text = $story_data->{text};
@@ -296,25 +296,13 @@ sub feed_transactions {
my $data = { view => 'text' };
$data->{after} = $after if $after;
my $result = request('feed.query_id', $data);
-
- # Stupid Conduit. If the feed results are empty it returns
- # an empty list ([]). If there is data it returns it in a
- # hash ({}) so we have adjust to be consistent.
- my $stories = ref $result->{result}{data} eq 'HASH'
- ? $result->{result}{data}
- : {};
-
- # PHP array retain key order but Perl does not. So we will
- # loop over the data and place the stories into a list instead
- # of a hash. We will then sort the list by id.
- my @story_list;
- foreach my $story_phid (keys %$stories) {
- my $story_data = $stories->{$story_phid};
- $story_data->{storyPHID} = $story_phid;
- push(@story_list, $story_data);
+ unless (ref $result->{result}{data} eq 'ARRAY'
+ && @{ $result->{result}{data} })
+ {
+ return [];
}
-
- return [ sort { $a->{id} <=> $b->{id} } @story_list ];
+ # Guarantee that the data is in ascending ID order
+ return [ sort { $a->{id} <=> $b->{id} } @{ $result->{result}{data} } ];
}
1;
diff --git a/extensions/PhabBugz/lib/Revision.pm b/extensions/PhabBugz/lib/Revision.pm
index 29d665009..f3a56a656 100644
--- a/extensions/PhabBugz/lib/Revision.pm
+++ b/extensions/PhabBugz/lib/Revision.pm
@@ -30,7 +30,11 @@ my $SearchResult = Dict[
authorPHID => Str,
dateCreated => Int,
dateModified => Int,
+ diffPHID => Str,
policy => Dict[ view => Str, edit => Str ],
+ repositoryPHID => Maybe[Str],
+ status => HashRef,
+ summary => Str,
"bugzilla.bug-id" => Int,
],
attachments => Dict[
diff --git a/extensions/PhabBugz/lib/Util.pm b/extensions/PhabBugz/lib/Util.pm
index a00e20551..1f2b21d55 100644
--- a/extensions/PhabBugz/lib/Util.pm
+++ b/extensions/PhabBugz/lib/Util.pm
@@ -327,7 +327,7 @@ sub get_members_by_bmo_id {
my $result = get_phab_bmo_ids({ ids => [ map { $_->id } @$users ] });
my @phab_ids;
- foreach my $user (@{ $result->{result} }) {
+ foreach my $user (@$result) {
push(@phab_ids, $user->{phid})
if ($user->{phid} && $user->{phid} =~ /^PHID-USER/);
}
@@ -341,7 +341,7 @@ sub get_members_by_phid {
my $result = get_phab_bmo_ids({ phids => $phids });
my @bmo_ids;
- foreach my $user (@{ $result->{result} }) {
+ foreach my $user (@$result) {
push(@bmo_ids, $user->{id})
if ($user->{phid} && $user->{phid} =~ /^PHID-USER/);
}