AnswerDotAI / AnswerDotAI/ghapi

Library is inconsistent with its documentation and some methods just do not work

Open
#109 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
685
Forks
70
Avg merge
1m
Merged PRs (30d)
2

Description

```python
from ghapi.all import GhApi
gh_api = GhApi()
```
```
gh_api.get_content("https://github.com/Ark-kun/pipeline_components/blob/47f3621344c884666a926c8a15d77562f1cc5e0a/components/XGBoost/Train/component.yaml")
```
```
KeyError Traceback (most recent call last)
in
----> 1 gh_api.get_content("https://github.com/Ark-kun/pipeline_components/blob/47f3621344c884666a926c8a15d77562f1cc5e0a/components/XGBoost/Train/component.yaml")

/opt/conda/lib/python3.7/site-packages/ghapi/core.py in get_content(self, path)
222 @patch
223 def get_content(self:GhApi, path):
--> 224 res = self.repos.get_content(path)
225 return base64.b64decode(res.content)
226

/opt/conda/lib/python3.7/site-packages/ghapi/core.py in __call__(self, headers, *args, **kwargs)
61 route_p,query_p,data_p = [{p:kwargs[p] for p in o if p in kwargs}
62 for o in (self.route_ps,self.params,d)]
---> 63 return self.client(self.path, self.verb, headers=headers, route=route_p, query=query_p, data=data_p)
64
65 def __str__(self): return f'{self.tag}.{self.name}{signature(self)}\n{self.doc_url}'

/opt/conda/lib/python3.7/site-packages/ghapi/core.py in __call__(self, path, verb, headers, route, query, data)
107 for k,v in route.items(): route[k] = quote(str(route[k]))
108 res,self.recv_hdrs = urlsend(path, verb, headers=headers or None, debug=self.debug, return_headers=True,
--> 109 route=route or None, query=query or None, data=data or None)
110 if 'X-RateLimit-Remaining' in self.recv_hdrs:
111 newlim = self.recv_hdrs['X-RateLimit-Remaining']

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlsend(url, verb, headers, route, query, data, json_data, return_json, return_headers, debug)
204 return_json=True, return_headers=False, debug=None):
205 "Send request with `urlrequest`, converting result to json if `return_json`"
--> 206 req = urlrequest(url, verb, headers, route=route, query=query, data=data, json_data=json_data)
207 if debug: debug(req)
208

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlrequest(url, verb, headers, route, query, data, json_data)
187 def urlrequest(url, verb, headers=None, route=None, query=None, data=None, json_data=True):
188 "`Request` for `url` with optional route params replaced by `route`, plus `query` string, and post `data`"
--> 189 if route: url = url.format(**route)
190 if query: url += '?' + urlencode(query)
191 if isinstance(data,dict): data = (json.dumps if json_data else urlencode)(data).encode('ascii')

KeyError: 'repo'
```
This does not work either:
```python
gh_api.get_content("Ark-kun", "pipeline_components", "/components/XGBoost/Train/component.yaml", "47f3621344c884666a926c8a15d77562f1cc5e0a")
```
```
ipython-input-12-c8d271a17611> in
----> 1 gh_api.get_content("Ark-kun", "pipeline_components", "/components/XGBoost/Train/component.yaml", "47f3621344c884666a926c8a15d77562f1cc5e0a")

TypeError: get_content() takes 2 positional arguments but 5 were given
```

Parameters:
```python
help(gh_api.get_content)
# get_content(path) method of ghapi.core.GhApi instance
```

but in [documentation](https://ghapi.fast.ai/fullapi.html#git):
```
repos.get_content(owner, repo, path, ref): Get repository content
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.