<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>