2017-10-17 4 views
0

私はSpark(企業向けチャット)でボットを作成しています。Pythonでは、私はlibrairy用にPyGitHubを使用しています。 私はボットで私の部屋に "repos"と書いたとき、彼は私のレポのリストを私に送り返さなければなりません。 私のgithub personnalアカウントでは正常に動作しますが、私のprofessionnalアカウントでは動作しません。 なぜ私に説明できますか? ここに私のコード:PyGithub、エンタープライズからreposを取得できません

def gitTest(self, details, message): 
     url = "https://enter-prise.com" 
     token = "abcd" 
     github = Github(token, base_url=url) 
     for repo in github.get_organization("org").get_repos(): 
      self.answer(details.roomId, markdown=repo.name) 


Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1997, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1985, in wsgi_app 
    response = self.handle_exception(e) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1540, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/home/mflamant/Documents/bot/CiscoSparkPython/testbotforgithub/main.py", line 44, in Main 
    bot.isRunnable() 
    File "/home/mflamant/Documents/bot/CiscoSparkPython/testbotforgithub/utils/Compute.py", line 47, in isRunnable 
    self.spark(message[0], message[1]) 
    File "/home/mflamant/Documents/bot/CiscoSparkPython/testbotforgithub/testbotforgithub.py", line 33, in spark 
    return self.answer(details.roomId, markdown=self.gitTest(details, message)) 
    File "/home/mflamant/Documents/bot/CiscoSparkPython/testbotforgithub/testbotforgithub.py", line 56, in gitTest 
    for repo in github.get_organization(adt).get_repos(): 
    File "/usr/local/lib/python2.7/dist-packages/PyGithub-1.35-py2.7.egg/github/Organization.py", line 539, in get_repos 
    self.url + "/repos", 
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 

あなたは私のコードが間違っているものを私に説明できますか?ありがとう

+0

'self.url'は明らかに' None'です。 –

+0

はい、私はそれが意味することとそれを変更する方法を理解していませんか? – Kravennagen

+0

意味のあることでは追加できない2つのものを追加しようとしています。小学校の数学のクラスに戻って考えてみましょう。教師に番号5を追加するように頼んだら教師に何を伝えますか?あなたはたぶん質問が理にかなっていないと言って、あなたは正しいでしょう。 Pythonは 'self.url'が' None'であることを示しています。そこには存在せず、存在しません。あなたはそれを作成する必要があります。 @ wpercyの答えを見てください。 –

答えて

2

gitTestがインスタンスメソッドの場合、ローカル変数urlだけでなく、self.urlという属性に割り当てる必要があります。だからあなたの方法は、おそらく次のようになります。あなたが任意のインスタンスメソッドの最初の引数としてselfに参照を渡す理由

def gitTest(self, details, message): 
    self.url = "https://enter-prise.com" 
    self.token = "abcd" 
    github = Github(token, base_url=url) 
    for repo in github.get_organization("org").get_repos(): 
     self.answer(details.roomId, markdown=repo.name) 

です。

+0

申し訳ありませんが、私にとってはうまくいきません... github = Github( "abcd"、 "https://enter-prise.com")でテストすることにしましたが、私のgithubエンタープライズからレポを取得することはできません... – Kravennagen

関連する問題