Skip to content

Instantly share code, notes, and snippets.

@lcds90
Created September 15, 2021 15:38
Show Gist options
  • Save lcds90/ff4b23e57a34b9b0109b28606a00bdd4 to your computer and use it in GitHub Desktop.
Save lcds90/ff4b23e57a34b9b0109b28606a00bdd4 to your computer and use it in GitHub Desktop.
Pesquisa de pull requests personalizada
const baseUrlGit = 'https://api.github.com';
const fetchGithubPulls = async (user, repository) => {
/* Estrutura do protocolo HTTP Get de pesquisa em issues
Url SITE
https://github.com/search?q=user%3Atryber+lcds90&type=issues
Url API
https://api.github.com/search/issues?q=author:lcds90%20is:pr%20user:tr
https:// = Protocolo HTTP Hyper Text Transfer Protocol Secure
api.github.com = hostname
search = rota / caminho com endpoint como é utilizado no mecanismo de busca padrão do Github
issues = parametro identificando para localizar as buscas na categoria issues
?q = aqui entram os valores de queries conforme pode se ver na documentação.
! */
// NOTE Essa response se trata da resposta em relação ao seu acesso na rota
try {
const response = await fetch(
`${baseUrlGit}/search/issues?q=author:${user}%20is:pr%20user:tryber`,
);
/* NOTE Retorna o resolve do parametro body da requisição de uma promisse
tendo como resultado um objeto JSON
// LINK Fetch Body -> https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#body
Um body é uma instancia desses métodos utilizados, o json é uma deles,
outras possuem como Blob para conteudo multimidia entre outras. */
const json = await response.json();
const pulls = await json.items.filter((i) => i.repository_url.includes(repository));
return pulls;
} catch (error) {
throw new Error(`Error in fetchGithubPulls: ${error}`);
}
};
async function main() {
const prs = await fetchGithubPulls(
'lcds90',
'sd-013-a-project-trivia-react-redux',
);
console.log(prs);
}
main();
@lcds90
Copy link
Author

lcds90 commented Sep 15, 2021

Documentação github API
https://developer.github.com/v3/search/

Importante notar que pela URL só estamos filtrando os repositório do usuário tryber

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment