pygerrit
에서 REST API를 사용해야하는 리뷰 작성자 (gerrit set-reviewer)를 추가/제거하려고합니다. 제거됩니다 아래의 예 검토 (userID
)에서,pygerrit rest.delete()는 "ValueError : JSON 객체를 디코딩 할 수 없습니다."
첫째,하지만 API 자체는 JSON 오류를 반환 : 나는 그러나 rest.delete()
두 가지 경우에 저에게 ValueError: No JSON object could be decoded
을 제공의 rest.post()
방법을 사용하여 문제없이 검토를 추가 할 수 있습니다. 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에서, 그리고 반환 및 오류를 작동하지 않습니다 아래의 방법을 사용하여, 두 개의 인수를합니다. 내가 뭘 놓치고 있니?
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에 대한 잘못된 요청"GET 두 가지 방법으로 오류! [23]에서 : changes = rest.get ("/ changes") : – askb
[23]에서 : 질의 = [ '상태 : 공개', '소유자 : 자기', '주제 : 일부 주제', '제한 : 100' /? 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 –