{"id":15316440,"url":"https://github.com/joebobmiles/gcloud-githubproxy","last_synced_at":"2025-10-09T02:31:39.435Z","repository":{"id":40718395,"uuid":"262416101","full_name":"joebobmiles/GCloud-GitHubProxy","owner":"joebobmiles","description":"A GCloud Function that serves as an API Proxy for GitHub.","archived":true,"fork":false,"pushed_at":"2023-02-11T11:47:12.000Z","size":457,"stargazers_count":3,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-02T08:54:11.770Z","etag":null,"topics":["api-proxy","auth0-api","github-api","github-api-v4","google-cloud","google-cloud-functions","proxy"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joebobmiles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-08T19:55:05.000Z","updated_at":"2023-06-03T01:42:42.000Z","dependencies_parsed_at":"2023-02-13T12:16:28.972Z","dependency_job_id":null,"html_url":"https://github.com/joebobmiles/GCloud-GitHubProxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joebobmiles%2FGCloud-GitHubProxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joebobmiles%2FGCloud-GitHubProxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joebobmiles%2FGCloud-GitHubProxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joebobmiles%2FGCloud-GitHubProxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joebobmiles","download_url":"https://codeload.github.com/joebobmiles/GCloud-GitHubProxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235785415,"owners_count":19044557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-proxy","auth0-api","github-api","github-api-v4","google-cloud","google-cloud-functions","proxy"],"created_at":"2024-10-01T08:54:07.609Z","updated_at":"2025-10-09T02:31:34.076Z","avatar_url":"https://github.com/joebobmiles.png","language":"TypeScript","readme":"# GCloud GitHub API Proxy\n\nThis is a GCloud Function for solving an embarrassingly simple problem: allowing\nan app that has authenticated with GitHub via Auth0 to make API calls to GitHub\nwithout exposing the GitHub API access token to the app.\n\n\u003e ***NOTE***: This is intended to be an incredibly temporary solution, since the\n\u003e function has to request the access token from Auth0 _every request_. This\n\u003e means the app must wait for 3 API requests to resolve before it sees any data.\n\u003e\n\u003e To reduce the amount of requests, the access token could be cached by the\n\u003e proxy. Since this is a GCloud Function, any cache we create will not be\n\u003e persisted, so this code would have to be integrated into it's own stand\n\u003e alone server with a Redis instance or something to persist the data between\n\u003e requests.\n\n## How it works\n\n 1. The GCloud Function (further called the _proxy_), receives a GraphQL\n    query and an Auth0 access token via a POST request.\n 2. The proxy uses the Auth0 access token to request the corresponding GitHub\n    access token via the Auth0 Management API.\n     a. If the Auth0 request fails, the proxy echoes that failure back to the\n        requesting app.\n 3. Once the GitHub access token has been retrieved, the proxy forwards the\n    GraphQL query to the GitHub API, authenticating with the GitHub access\n    token.\n 4. The response recieved from GitHub is then forwarded back to the original\n    requestor.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoebobmiles%2Fgcloud-githubproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoebobmiles%2Fgcloud-githubproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoebobmiles%2Fgcloud-githubproxy/lists"}