Tengo una pequeña aplicación web llamada RepoSweeper ( https://reposweeper.com/ ) que creé después de mi campamento de programación. Su propósito es eliminar de forma masiva repositorios no utilizados de GitHub.
Hace un tiempo, GitHub cambió la forma de acceder a los repositorios a través de la API y los repositorios privados dejaron de aparecer en los resultados. Así que hice que un profesional independiente modificara el código para usar GraphQL para realizar la solicitud.
Ahora aparecen todos los repositorios (¡hurra!) pero hay una gran cantidad de repositorios que no existen en mis Repositorios en Github. Mi primer pensamiento fue que están archivados, pero el indicador isArchived es falso en los datos de respuesta.
Esta es la consulta de GraphQL:
export const REPO_INFO_QUERY = gql` query ($ghLogin: String!, $after: String) { user(login: $ghLogin) { id name login avatarUrl bioHTML repositories(first: 100, after: $after, ownerAffiliations: [OWNER, ORGANIZATION_MEMBER, COLLABORATOR]) { totalCount pageInfo { endCursor hasNextPage __typename } nodes { id viewerCanAdminister name description isFork isPrivate isArchived updatedAt createdAt url parent { nameWithOwner url __typename } owner { login url __typename } __typename } __typename } __typename } } `;Esta es la solicitud:
const endpoint = `https://api.github.com/graphql` const graphQLClient = new GraphQLClient(endpoint, { headers: { authorization: `Bearer ${token}`, }, }) const variables = {ghLogin: user, archived: true, isArchived: true} return graphQLClient.request(REPO_INFO_QUERY, variables).then(data => { debugger return data }) .catch(err => { Popup.alert('Error: '+ err) return false } )Y así es como se ven los datos del repositorio inexistentes:
Me encantaría escuchar lo que ustedes piensan. ¡Gracias!