Skip to content

Commit

Permalink
Fix PullRequest.repository for GitHub Enterprise
Browse files Browse the repository at this point in the history
The repository that owns this PR is also the source of the PR's base, so
use that value instead of pulling a value from a URL.

Fixes #333.
  • Loading branch information
bluekeyes committed May 17, 2016
1 parent f6948ac commit 91dbff7
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
5 changes: 1 addition & 4 deletions github3/pulls.py
Expand Up @@ -8,7 +8,6 @@
"""
from __future__ import unicode_literals

from re import match
from json import dumps

from . import models
Expand Down Expand Up @@ -178,10 +177,8 @@ def _update_attributes(self, pull):
#: GitHub.com url for review comments (not a template)
self.review_comments_url = pull.get('review_comments_url')

m = match('https?://[\w\d\-\.\:]+/(\S+)/(\S+)/(?:issues|pull)?/\d+',
self.issue_url)
#: Returns ('owner', 'repository') this issue was filed on.
self.repository = m.groups()
self.repository = self.base.repo
#: The state of the pull
self.state = pull.get('state')
#: The title of the request
Expand Down
1 change: 1 addition & 0 deletions tests/cassettes/PullRequest_single.json
@@ -0,0 +1 @@
{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Charset": "utf-8", "Content-Type": "application/json", "Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "User-Agent": "github3.py/1.0.0"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py"}, "response": {"body": {"string": "", "base64_string": "H4sIAAAAAAAAA62YTY+jOBCG/0rEddNxgKTzcZmd0+ze5jB72UtkwASrASPbJEqj/u/7GgOBrDZJt1dqRQntevy6XGWq3Hg88fbhxl9ufH/ulbRg3t47cp3VUbioLt7cS+s8P3T/UPxY0BOXtQpWZDJKnEsmvX3j5eLISzDGQ0Ex0wSr5TZczj16oprKQy1zjMu0rtSeEPtQLSy1VkzGotSs1ItYFKQm1vgbUEfZAQzTi/3VNly/JttdugvW7HUX+JttxJif7EIapxsY3ExU8W4SS8ZMityozXSR3+izulqTm8GpyHNxBuV2RY8mIoOlcXNL4eXxixRYNkTojMGxWNKHcRRX+vOiWqsGu6v0gSeGo7BbkiWfFtbZQZYJjo+GSFaJFlhHKpa80lyUnxc4sQZNyCMt+Tv9Gg3WChAj7fNSWitYsxMC9fPm1qwhleQnGl+MaySLGT/B2V9E3tiDqC+Vyem/EBTG9VyzA00Kk6MpzRX7mHvt9BqD2gdzpOSz0T89AxI27Com/HnRmShnOY8klZdZKuSMI6FlSmPE6uyMM2aGcJ394PqPOpp9//nnKYRAjHsblNzN3Nb5k2ScyjGkB3tyF4H0BACS3tjFiWPsG4LPLp9ipDqNhKRaPDo07gucgBoy/mliSTNaOAlvAQBlQrh5sgUAxJWq2VOhfX/hLUeRPn/KuojskfdM1txHWwK0UoVzvmTMyYMDpCH9qYx0KOPMDdszGmK/tbtNj05SjT0wUS4iJw5elKSFNERl1L6H9MFVnaEaxgQqWeos1TAGqJaO+93KNJABiZegxtY76ewZpOk8mtPyWNOjG3WAYNfNq/pI3x8WMfdz50oB0pRvkke1+yF35RiltnZAvru59Iq5QtuC5H6Z88ABo8KmdUFR8Ed1wX1ih5iE/f+ANXF6iza/H5cxj+UaRkOuZ7I99Du6i3e7U7/XSZrrHF2v4BQSPYM0v1VUZ+bkwlQVlcxFdIcgTURRbC0WiyZjtC2rCyYdM9gSgKIyzlA1uuhsegaqnoLqtlpPjcwE1XsuaOLk2wECoN1GF62WMI6xCk2qk8AWMCYWPGdKi9LtjL1SxuxSaJ7y+JmO5X66TUDNN8XLmM1pns8RtZrHHHGMWtvsIgpO5uYhS8AycEdgO5WcIaSdvC6ZZTTEdpqxZGhEkgPVaCCCpR+8LMMXP/zl7/br7X4d/o2V1FUyGbN6WW5egnbMao0/M6aqVTbC2CHbX8tgv16BZIbgBOxCEN9w/4BP3Hn8q78ftRTm1gCGSmVXw9+vZvv/uBzpzOIcsXQT9M/Pebp9LT02hdRMFKxCmdBdswyrDKvLAp5O0H4lIlYL9MDErIy/Y+g2CMJJQRCLusR++Ds8PlON2hWv3vHDvpAYmj4zNVUHm6beXsvadJV4cj0GRg/P/I0PHZ9t2jr66wanJJdSdJdFJZIU/X7Fyo49yMBA263tjc1oBHTjQS+7W0XCUlrn+mCLZ8hOUPXnooLukukz2r4ebGjjiqNf9vbjH8Cshcw6EwAA", "encoding": "utf-8"}, "headers": {"vary": "Accept, Accept-Encoding", "x-served-by": "03d91026ad8428f4d9966d7434f9d82e", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "etag": "\"103c261a609253cc5113039f6ab21f0e\"", "access-control-allow-credentials": "true", "status": "200 OK", "x-ratelimit-remaining": "54", "x-github-media-type": "github.v3; param=full; format=json", "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "transfer-encoding": "chunked", "x-github-request-id": "48A0C4D3:7DF9:2EE6AA1:53D5BBD8", "cache-control": "public, max-age=60, s-maxage=60", "last-modified": "Wed, 23 Jul 2014 19:45:45 GMT", "date": "Mon, 28 Jul 2014 02:56:25 GMT", "access-control-allow-origin": "*", "content-security-policy": "default-src 'none'", "content-encoding": "gzip", "strict-transport-security": "max-age=31536000; includeSubdomains", "server": "GitHub.com", "x-ratelimit-limit": "60", "x-frame-options": "deny", "content-type": "application/json; charset=utf-8", "x-ratelimit-reset": "1406517556"}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py"}, "recorded_at": "2014-07-28T02:56:25"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Charset": "utf-8", "Content-Type": "application/json", "Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "User-Agent": "github3.py/1.0.0"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/235"}, "response": {"body": {"string": "", "base64_string": "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", "encoding": "utf-8"}, "headers": {"vary": "Accept, Accept-Encoding", "x-served-by": "3061975e1f37121b3751604ad153c687", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "etag": "\"42d9e03172ef97d5dbb406c4702c5c0e\"", "access-control-allow-credentials": "true", "status": "200 OK", "x-ratelimit-remaining": "53", "x-github-media-type": "github.v3; param=full; format=json", "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "transfer-encoding": "chunked", "x-github-request-id": "48A0C4D3:7DF9:2EE6AAD:53D5BBD9", "cache-control": "public, max-age=60, s-maxage=60", "last-modified": "Mon, 28 Jul 2014 01:14:14 GMT", "date": "Mon, 28 Jul 2014 02:56:25 GMT", "access-control-allow-origin": "*", "content-security-policy": "default-src 'none'", "content-encoding": "gzip", "strict-transport-security": "max-age=31536000; includeSubdomains", "server": "GitHub.com", "x-ratelimit-limit": "60", "x-frame-options": "deny", "content-type": "application/json; charset=utf-8", "x-ratelimit-reset": "1406517556"}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/235"}, "recorded_at": "2014-07-28T02:56:25"}], "recorded_with": "betamax/0.3.2"}
8 changes: 8 additions & 0 deletions tests/integration/test_pulls.py
Expand Up @@ -130,6 +130,14 @@ def test_update(self):
p = self.get_pull_request(num=241)
assert p.update(p.title) is True

def test_repository(self):
"""Show that the pull request has the owner repository."""
self.basic_login()
cassette_name = self.cassette_name('single')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
assert p.repository == ('sigmavirus24', 'github3.py')


class TestReviewComment(IntegrationHelper):

Expand Down

0 comments on commit 91dbff7

Please sign in to comment.