Videos
You were close:) Lets assume, that
1) your login: YourUsername
2) your access token: 123a321
3) repository to be updated: YourRepo
4) file to be created: file.txt
5) folder that will contains new file: f1/f2
According to those assumptions your request should be following:
type : PUT
url : https://api.github.com/repos/YourUsername/YourRepo/contents/f1/f2/file.txt
headers :
{
"Content-Type" : "application/vnd.github.v3+json",
"Authorization" : "token 123a321"
}
body :
{
"message": "my commit message",
"committer": {
"name": "My name",
"email": "my email"
},
"content": "base64encoded"
}
UPD
If you write in java, you can use GitHubFileAPI library, that I recently pushed to the maven central repository.
Solution: In order to perform action on github api you can use curl according to Github doc:
- first make sure you have specific privileges and authentication token generated to your account in order to interact with Github api:
profile Settings -> Developer Settings -> Personal access tokens -> Generate new token
- the command should be in http
PUTmethod on path/repos/:owner/:repo/contents/:path - The required params for editing or adding new files (according to api) message (String), Content (String) and sha(String), additional params are branch(String) commiter(String) and author(String)
Lets perform some curl message in order to perform your action, the simple formula for this case would be:
curl --user <userName>:<token>
--data '{"key":"value"}'
--header <HeaderType>
--request <HTTPMethod>
<fullURL>
for demonstration lets fill some details:
curl --user johnDoe:abc123!@#
--data '{"message":"my message","content":"my content","sha":"abcjfhtenf736gd843ji43903"}'
--header Content-Type:application/json
--request PUT
https://api.github.com/repos/MyOrganization/MyCoolApp/contents/app/models
- Verify on Github the content has been inserted correctly to your branch
I tested your code and looks like the headers are unnecessary
CopygetData();
async function getData() {
const api_url = "https://api.github.com/users/alisirri/repos";
const response = await fetch(api_url);
console.log(await response.json());
}
Replace everything in the js file with this:
Copyconst api_repo_url = "https://api.github.com/users/alisirri/repos";
fetch(api_repo_url, {
headers: {
authorization: "TOKEN",
},
})
.then((response) => response.json())
.then((data) => {
console.log(data);
});
No need for async either as .then() takes care of that