私はabeiveを追加/削除しようとしています(gerrit set-reviewer)、pygerrit
からREST APIを使用する必要があります。私はしかし、rest.delete()
は私の2つの場合にValueError: No JSON object could be decoded
を与え、rest.post()
方法を使用して、問題なく審査を追加することができます。pygerrit rest.delete()は "ValueError:No JSONオブジェクトをデコードできませんでした"を返します
まず、以下の例の口コミ中(userID
)削除されますが、API自体は、JSONのエラーを返します。 400 Client Error: Bad Request for url
:rest.delete()
を使用して第二
In [64]: reviewer1 = "userID"
In [65]: rest.delete("/changes/" + changeid + "/reviewers/userID", data='{"message" : "%s"}' % "removed the reviewer" + reviewer1)
ERROR:root:Invalid json content:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-65-c972126a9f79> in <module>()
----> 1 rest.delete("/changes/" + changeid + "/reviewers/userID", data='{"message" : "%s"}' % "removed the reviewer" + reviewer1)
/home/user/.virtualenvs/testpy/local/lib/python2.7/site-packages/pygerrit/rest/__init__.pyc in delete(self, endpoint, **kwargs)
171 kwargs.update(self.kwargs.copy())
172 response = requests.delete(self.make_url(endpoint), **kwargs)
--> 173 return _decode_response(response)
174
175 def review(self, change_id, revision, review):
/home/user/.virtualenvs/testpy/local/lib/python2.7/site-packages/pygerrit/rest/__init__.pyc in _decode_response(response)
48 content = content[len(GERRIT_MAGIC_JSON_PREFIX):]
49 try:
---> 50 return json.loads(content)
51 except ValueError:
52 logging.error('Invalid json content: %s' % content)
/usr/lib/python2.7/json/__init__.pyc in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
337 parse_int is None and parse_float is None and
338 parse_constant is None and object_pairs_hook is None and not kw):
--> 339 return _default_decoder.decode(s)
340 if cls is None:
341 cls = JSONDecoder
/usr/lib/python2.7/json/decoder.pyc in decode(self, s, _w)
362
363 """
--> 364 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
365 end = _w(s, end).end()
366 if end != len(s):
/usr/lib/python2.7/json/decoder.pyc in raw_decode(self, s, idx)
380 obj, end = self.scan_once(s, idx)
381 except StopIteration:
--> 382 raise ValueError("No JSON object could be decoded")
383 return obj, end
ValueError: No JSON object could be decoded
、マニュアル通りの1には、戻ると、エラーを動作しない以下の方法を用いて、2つだけの引数をとります。私は何が欠けていますか?
In [63]: rest.delete("/changes/" + changeid + "/reviewers/userID")
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
<ipython-input-63-e71b8c78bcf1> in <module>()
----> 1 rest.delete("/changes/" + changeid + "/reviewers/userID")
/home/user/.virtualenvs/testpy/local/lib/python2.7/site-packages/pygerrit/rest/__init__.pyc in delete(self, endpoint, **kwargs)
171 kwargs.update(self.kwargs.copy())
172 response = requests.delete(self.make_url(endpoint), **kwargs)
--> 173 return _decode_response(response)
174
175 def review(self, change_id, revision, review):
/home/user/.virtualenvs/testpy/local/lib/python2.7/site-packages/pygerrit/rest/__init__.pyc in _decode_response(response)
44 content = response.content.strip()
45 logging.debug(content[:512])
---> 46 response.raise_for_status()
47 if content.startswith(GERRIT_MAGIC_JSON_PREFIX):
48 content = content[len(GERRIT_MAGIC_JSON_PREFIX):]
/home/user/.virtualenvs/testpy/local/lib/python2.7/site-packages/requests/models.pyc in raise_for_status(self)
882
883 if http_error_msg:
--> 884 raise HTTPError(http_error_msg, response=self)
885
886 def close(self):
HTTPError: 400 Client Error: Bad Request for url: https://git.review.org/gerrit/a/changes/CHANGEID/reviewers/userID
私が手に "HTTPError:400クライアントエラー:不正な要求URLの" 両方の方法でエラーを! [23]:changes = rest.get( "/ changes"): – askb
In [22]:クエリ= ['ステータス:開いている'、 '所有者:自己'、 'トピック:いくつかのトピック'、 '制限:100'] [23] /?q =%s "%"%20 ".join(クエリ)) 上記のコードは' https:// git.review.org/gerrit/'で動作しますので、URLは正しいはずです。私はなぜこのエラー "ValueError:No JSONオブジェクトがデコードできたか"を理解することに興味があります。あなたの場合、delete()apiは期待どおりに動作しますか? – askb
申し訳ありませんが、私はpythonを使用しませんが、コマンドを実行しているレビューアを削除することができました:curl --request DELETE --netrc https:// GERRIT-SERVER/a/changes/CHANGE/reviewers/USER –