You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by so...@apache.org on 2017/05/08 17:07:30 UTC
[trafficserver] branch master updated: Make sure we only capture
merged PRs
This is an automated email from the ASF dual-hosted git repository.
sorber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new f6df9a7 Make sure we only capture merged PRs
f6df9a7 is described below
commit f6df9a719fc2182df0dec1734b731d2d3cf3eade
Author: Phil Sorber <so...@apache.org>
AuthorDate: Fri May 5 16:50:54 2017 -0600
Make sure we only capture merged PRs
---
Makefile.am | 2 +-
tools/changelog.pl | 86 +++++++++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 77 insertions(+), 11 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 00ab1f9..c88f27b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -57,7 +57,7 @@ doxygen:
@cd doc && $(MAKE) $(AM_MAKEFLAGS) $@
changelog:
- ./tools/changelog.pl apache trafficserver $(VERSION) > CHANGELOG-$(VERSION)
+ ./tools/changelog.pl apache trafficserver $(VERSION) $(AUTHTOKEN) > CHANGELOG-$(VERSION)
asf-dist: asf-distdir
tardir=$(distdir) && $(am__tar) --mtime=./configure.ac | bzip2 -9 -c >$(distdir).tar.bz2
diff --git a/tools/changelog.pl b/tools/changelog.pl
index b151a69..195e030 100755
--- a/tools/changelog.pl
+++ b/tools/changelog.pl
@@ -25,23 +25,28 @@ use JSON;
my $owner = shift;
my $repo = shift;
my $milestone = shift;
+my $auth = shift;
my $url = "https://api.github.com";
+sub rate_fail
+{
+ print STDERR "You have exceeded your rate limit. Try using an auth token.\n";
+ exit 2;
+}
+
sub milestone_lookup
{
+ my $curl = shift;
my $url = shift;
my $owner = shift;
my $repo = shift;
my $milestone_title = shift;
my $endpoint = "/repos/$owner/$repo/milestones";
- my $params = "state=all";
+ my $params = "state=closed";
my $resp_body;
- my $curl = WWW::Curl::Easy->new;
- #$curl->setopt(CURLOPT_VERBOSE, 1);
- $curl->setopt(CURLOPT_HTTPHEADER, ['Accept: application/vnd.github.v3+json', 'User-Agent: Awesome-Octocat-App']);
$curl->setopt(CURLOPT_WRITEDATA, \$resp_body);
$curl->setopt(CURLOPT_URL, $url . $endpoint . '?' . $params);
@@ -57,12 +62,43 @@ sub milestone_lookup
}
}
}
+ elsif ($retcode == 0 && $curl->getinfo(CURLINFO_HTTP_CODE) == 403)
+ {
+ rate_fail();
+ }
+
+ undef;
+}
+
+sub is_merged
+{
+ my $curl = shift;
+ my $url = shift;
+ my $owner = shift;
+ my $repo = shift;
+ my $issue_id = shift;
+ my $endpoint = "/repos/$owner/$repo/pulls/$issue_id/merge";
+
+ my $resp_body;
+
+ $curl->setopt(CURLOPT_WRITEDATA, \$resp_body);
+ $curl->setopt(CURLOPT_URL, $url . $endpoint);
+
+ my $retcode = $curl->perform();
+ if ($retcode == 0 && $curl->getinfo(CURLINFO_HTTP_CODE) == 204) {
+ return 1;
+ }
+ elsif ($retcode == 0 && $curl->getinfo(CURLINFO_HTTP_CODE) == 403)
+ {
+ rate_fail();
+ }
- return undef;
+ undef;
}
sub issue_search
{
+ my $curl = shift;
my $url = shift;
my $owner = shift;
my $repo = shift;
@@ -73,10 +109,7 @@ sub issue_search
my $params = "milestone=$milestone_id&state=closed&page=$page";
my $resp_body;
- my $curl = WWW::Curl::Easy->new;
- #$curl->setopt(CURLOPT_VERBOSE, 1);
- $curl->setopt(CURLOPT_HTTPHEADER, ['Accept: application/vnd.github.v3+json', 'User-Agent: Awesome-Octocat-App']);
$curl->setopt(CURLOPT_WRITEDATA, \$resp_body);
$curl->setopt(CURLOPT_URL, $url . $endpoint . '?' . $params);
@@ -84,14 +117,29 @@ sub issue_search
if ($retcode == 0 && $curl->getinfo(CURLINFO_HTTP_CODE) == 200) {
return from_json($resp_body);
}
+ elsif ($retcode == 0 && $curl->getinfo(CURLINFO_HTTP_CODE) == 403)
+ {
+ rate_fail();
+ }
undef;
}
-my $milestone_id = milestone_lookup($url, $owner, $repo, $milestone);
+my $curl = WWW::Curl::Easy->new;
+
+#$curl->setopt(CURLOPT_VERBOSE, 1);
+$curl->setopt(CURLOPT_HTTPHEADER, ['Accept: application/vnd.github.v3+json', 'User-Agent: Awesome-Octocat-App']);
+
+if (defined($auth))
+{
+ $curl->setopt(CURLOPT_USERPWD, $auth);
+}
+
+my $milestone_id = milestone_lookup($curl, $url, $owner, $repo, $milestone);
if (!defined($milestone_id))
{
+ print STDERR "Milestone not found!\n";
exit 1;
}
@@ -99,12 +147,30 @@ my $issues;
my $changelog;
my $page = 1;
+print STDERR "Looking for issues from Milestone $milestone\n";
+
do {
- $issues = issue_search($url, $owner, $repo, $milestone_id, $page);
+ print STDERR "Page $page\n";
+ $issues = issue_search($curl, $url, $owner, $repo, $milestone_id, $page);
foreach my $issue (@{ $issues })
{
if (defined($issue))
{
+ print STDERR "Issue #" . $issue->{number} . " - " . $issue->{title} . " ";
+
+ if (!exists($issue->{pull_request}))
+ {
+ print STDERR "not a PR.\n";
+ next;
+ }
+
+ if (!is_merged($curl, $url, $owner, $repo, $issue->{number}))
+ {
+ print STDERR "not merged.\n";
+ next;
+ }
+
+ print STDERR "added.\n";
push @{ $changelog }, {number => $issue->{number}, title => $issue->{title}};
}
}
--
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].