github-tools / github

A higher-level wrapper around the Github API. Intended for the browser.
BSD 3-Clause "New" or "Revised" License
3.56k stars 754 forks source link

Repository.writeFile not working #644

Open Kyllingene opened 3 years ago

Kyllingene commented 3 years ago

When attempting to use Repository.writeFile, this error occurs:

(node:8240) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'status' of undefined
    at handler (C:\Program Files\nodejs\node_modules\github-api\dist\components\Requestable.js:372:40)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:8240) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
(node:8240) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Here is the code used:

GitHub = require("github-api");

github = new GitHub(username, password);
repo = github.getRepo(user, repo) // actual values are "kyllta", "urlshortener"

repo.writeFile(
  "main",
  "test_file.txt",
  "test contents",
  "test commit"
);

Any attempts to use in HTML code (Chrome) result in this error:

xhr.js:177 PUT https://api.github.com/repos/kyllta/urlshortener/contents/saved_urls.json 404
  | (anonymous) | @ | xhr.js:177
-- | -- | -- | --
  | t.exports | @ | xhr.js:13
  | t.exports | @ | dispatchRequest.js:50
  | Promise.then (async) |   |  
  | n.request | @ | Axios.js:61
  | (anonymous) | @ | bind.js:9
  | value | @ | Requestable.js:183
  | (anonymous) | @ | Repository.js:787
  | Promise.then (async) |   |  
  | value | @ | Repository.js:785
  | submit | @ | (index):54
  | async function (async) |   |  
  | submit | @ | (index):32
  | onclick | @ | (index):73

My suspicion is incorrect headers, but I don't know much.

577 and #520 are similar, but have different errors, and so don't seem to apply.