<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d26263368ccf0e6dc8550b271c758d4ab3072a92">https://github.com/macports/macports-ports/commit/d26263368ccf0e6dc8550b271c758d4ab3072a92</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new d262633 buildbot: Backport upstream patch for GitHubStatus context field
</span>d262633 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit d26263368ccf0e6dc8550b271c758d4ab3072a92
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Mon Mar 12 21:57:02 2018 -0500
<span style='display:block; white-space:pre;color:#404040;'> buildbot: Backport upstream patch for GitHubStatus context field
</span>---
devel/buildbot/Portfile | 5 +-
devel/buildbot/files/GitHubStatus-context.patch | 161 ++++++++++++++++++++++++
2 files changed, 164 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot/Portfile b/devel/buildbot/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 20698b0..f3c08c8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/buildbot/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup python 1.0
</span>
name buildbot
version 0.8.12
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 8
</span> categories devel python
platforms darwin
supported_archs noarch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,7 +35,8 @@ depends_lib-append port:py${python.version}-dateutil \
</span> port:py${python.version}-sqlalchemy-migrate \
port:py${python.version}-twisted
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append patch-allowRecent_SQA_Migrate.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append GitHubStatus-context.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-allowRecent_SQA_Migrate.diff \
</span> patch-buildbot-status-web-console.py.diff \
patch-buildbot-status-web-grid.py.diff \
patch-buildbot-status-web-waterfall.py.diff \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/buildbot/files/GitHubStatus-context.patch b/devel/buildbot/files/GitHubStatus-context.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9013989
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/buildbot/files/GitHubStatus-context.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,161 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Add context field to GitHubStatus updates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/buildbot/buildbot/pull/1721
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/status/github.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/status/github.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,7 +60,7 @@ class GitHubStatus(StatusReceiverMultiService):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def __init__(self, token, repoOwner, repoName, sha=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ startDescription=None, endDescription=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- baseURL=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ baseURL=None, context=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Token for GitHub API.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -71,6 +72,7 @@ def __init__(self, token, repoOwner, repoName, sha=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._sha = sha or Interpolate("%(src::revision)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._repoOwner = repoOwner
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._repoName = repoName
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ self._context = context or Interpolate("buildbot/%(prop:buildername)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._startDescription = startDescription or "Build started."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self._endDescription = endDescription or "Build done."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,10 +168,11 @@ def _getGitHubRepoProperties(self, build):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Return a dictionary with GitHub related properties from `build`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- repoOwner, repoName, sha = yield defer.gatherResults([
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ repoOwner, repoName, sha, context = yield defer.gatherResults([
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.render(self._repoOwner),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.render(self._repoName),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.render(self._sha),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ build.render(self._context),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not repoOwner or not repoName:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -185,6 +188,7 @@ def _getGitHubRepoProperties(self, build):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': sha,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': self._status.getURLForThing(build),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': str(build.getNumber()),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ defer.returnValue(result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,6 +204,7 @@ def _sendGitHubStatus(self, status):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ state=status['state'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_url=status['targetURL'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description=status['description'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context=status['context'].encode('utf-8'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ success_message = (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- buildbot/test/unit/test_status_github.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ buildbot/test/unit/test_status_github.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,6 +132,8 @@ def test_initialization_required_arguments(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertEqual(status._sha, Interpolate("%(src::revision)s"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertEqual(status._startDescription, "Build started.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertEqual(status._endDescription, "Build done.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ self.assertEqual(status._context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Interpolate("buildbot/%(prop:buildername)s"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def test_custom_github_url(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,6 +273,7 @@ def test_sendStartStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._sendGitHubStatus = Mock(return_value=defer.succeed(None))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.build.getTimes = lambda: (1, None)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -286,6 +289,7 @@ def test_sendStartStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Augmented arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': 'pending',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': 'Build started.',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -330,6 +334,7 @@ def test_sendFinishStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._sendGitHubStatus = Mock(return_value=defer.succeed(None))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.build.getTimes = lambda: (1, 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -346,6 +351,7 @@ def test_sendFinishStatus_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': '123',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.tld',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'buildNumber': '1',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Augmented arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': 'success',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': 'Build done.',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -398,6 +404,7 @@ def test_getGitHubRepoProperties_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._repoOwner = Interpolate('owner')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._repoName = Interpolate('name')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._sha = Interpolate('sha')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ self.status._context = Interpolate('context')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._status = Mock()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._status.getURLForThing = lambda build: 'http://example.org'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.build.getNumber = lambda: 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -411,8 +418,8 @@ def test_getGitHubRepoProperties_ok(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'repoOwner': 'owner',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'sha': 'sha',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': 'http://example.org',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': 'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }, result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def test_getGitHubState(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -435,6 +442,7 @@ def test_sendGitHubStatus_success(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': u'state-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': u'targetURL-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': u'description-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': u'context-resum\xe9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._github.repos.createStatus = Mock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return_value=defer.succeed(None))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -450,6 +458,7 @@ def test_sendGitHubStatus_success(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ state='state-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_url='targetURL-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description='description-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context='context-resum\xc3\xa9',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.assertLog(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -468,6 +477,7 @@ def test_sendGitHubStatus_error(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'state': u'state',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'targetURL': u'targetURL',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'description': u'description',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'context': u'context',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error = MarkerError('fail-send-status')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.status._github.repos.createStatus = Mock(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- docs/manual/cfg-statustargets.rst.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ docs/manual/cfg-statustargets.rst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1564,10 +1564,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoOwner = util.Interpolate("%(prop:github_repo_owner)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoName = util.Interpolate("%(prop:github_repo_name)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha = util.Interpolate("%(src::revision)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context = util.Interpolate("buildbot/%(prop:buildername)s")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gs = status.GitHubStatus(token='githubAPIToken',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoOwner=repoOwner,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ repoName=repoName,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha=sha,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ context=context,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ startDescription='Build started.',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endDescription='Build done.')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ buildbot_bbtools = util.BuilderConfig(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1599,6 +1601,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ In case any of `repoOwner`, `repoName` or `sha` returns `None`, `False` or empty string, the plugin will skip sending the status.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The `context` argument is passed to GitHub to differentiate between statuses. A static string can be passed or :class:`Interpolate` for dynamic substitution.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The default context is `buildbot/%(prop:buildername)s`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ You can define custom start and end build messages using the `startDescription` and `endDescription` optional interpolation arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Starting with Buildbot version 0.8.11, :class:`GitHubStatus` supports additional parameter -- ``baseURL`` -- that allows to specify a different API base endpoint.
</span></pre><pre style='margin:0'>
</pre>