Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#109 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
api

Research direction

Start with GhApi.get_content in ghapi/core.py and compare its get_content(path) signature with repos.get_content(owner, repo, path, ref) in the linked documentation. Reproduce both examples, then verify that the public signature, documented usage, and supported content lookup behavior agree without the shown KeyError or TypeError.

Written by the indexing model from the issue text.

Description

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)
<ipython-input-10-f6314c774e4a> in <module>
----> 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:

gh_api.get_content("Ark-kun", "pipeline_components", "/components/XGBoost/Train/component.yaml", "47f3621344c884666a926c8a15d77562f1cc5e0a")
ipython-input-12-c8d271a17611> in <module>
----> 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:

help(gh_api.get_content)
# get_content(path) method of ghapi.core.GhApi instance

but in documentation:

repos.get_content(owner, repo, path, ref): Get repository content
Dominant language
Python
Stars
687
Forks
69
Avg merge
1m
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AnswerDotAI/ghapi

All issues in AnswerDotAI/ghapi

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.