{"id":25621699,"url":"https://github.com/thecodetraveler/githubreadmeretriever","last_synced_at":"2025-02-22T09:44:11.933Z","repository":{"id":68231082,"uuid":"250322421","full_name":"TheCodeTraveler/GitHubReadmeRetriever","owner":"TheCodeTraveler","description":"APIs built using Azure Functions to retrieve GitHub Readme","archived":false,"fork":false,"pushed_at":"2020-10-22T22:27:36.000Z","size":74,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-14T05:31:20.339Z","etag":null,"topics":["api","azure","azure-functions","github","github-api","github-graphql","github-graphql-api","readme","readme-md"],"latest_commit_sha":null,"homepage":"","language":"C#","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/TheCodeTraveler.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-26T17:12:34.000Z","updated_at":"2020-10-22T22:27:38.000Z","dependencies_parsed_at":"2023-02-23T14:00:21.973Z","dependency_job_id":null,"html_url":"https://github.com/TheCodeTraveler/GitHubReadmeRetriever","commit_stats":null,"previous_names":["thecodetraveler/githubreadmeretriever"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTraveler%2FGitHubReadmeRetriever","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTraveler%2FGitHubReadmeRetriever/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTraveler%2FGitHubReadmeRetriever/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTraveler%2FGitHubReadmeRetriever/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheCodeTraveler","download_url":"https://codeload.github.com/TheCodeTraveler/GitHubReadmeRetriever/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240155290,"owners_count":19756616,"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","azure","azure-functions","github","github-api","github-graphql","github-graphql-api","readme","readme-md"],"created_at":"2025-02-22T09:44:11.063Z","updated_at":"2025-02-22T09:44:11.927Z","avatar_url":"https://github.com/TheCodeTraveler.png","language":"C#","readme":"\u003cdiv class=\"header\" align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eGitHub Readme Retriever\u003c/h1\u003e\n\u003c/div\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/TheCodeTraveler\"\u003e\n    \u003cimg alt=\"Twitter: TheCodeTraveler\" src=\"https://img.shields.io/twitter/follow/TheCodeTraveler.svg?style=social\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nThe GitHub Readme Retriever APIs allow you retrieve the `README.md` from any GitHub Repo.\n\n## GET README\n\nRetrieve the `README.md` file from any public GitHub Repository.\n\n**Request**\n\nThe API request requires two parameters: `ownerName` and `repositoryName`:\n- `ownerName` is the name of the GitHub user who owns the repository\n- `repositoryName` is the name of the GitHub Repository\n\nBoth values be extracted from the GitHub repository's url:\n\n`https://github.com/{ownerName}/{repositoryName}`\n\n```bash\ncurl --request GET 'https://githubreadmeretriever.azurewebsites.net/api/GetReadme/{ownerName}/{repositoryName}'\n```\n\n**Response**\n\n```javascript\n{\n    \"readme\": \"string\",\n    \"repositoryName\": \"string\",\n    \"repositoryOwner\": \"string\"\n}\n```\n\n### Example\n\nTo retrieve this repo's `README.md`, we'll use the following parameters:\n\n- ownerName: `brminnick`\n- repositoryName: `GitHubReadmeRetriever`\n\n```bash\ncurl --request GET 'https://githubreadmeretriever.azurewebsites.net/api/GetReadme/brminnick/GitHubReadmeRetriever'\n```\n\n```javascript\n{\n    \"readme\": \"\u003cdiv class=\\\"header\\\" align=\\\"center\\\"\u003e\\n  \u003ch1 align=\\\"center\\\"\u003eGitHub Readme Retriever\u003c/h1\u003e\\n\u003c/div\u003e...\"\n    \"repositoryName\": \"GitHubReadmeRetriever\",\n    \"repositoryOwner\": \"brminnick\"\n}\n```\n\n## GET ALL READMEs\n\nRetrieve the `README.md` file from all private and public GitHub Repositories owned by the user.\n\n**Request**\n\nThe API request requires two parameters: `ownerName` and `token`:\n- `ownerName` is your GitHub username / login\n- `token` is your Personal Access Token [generated by following these steps](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token) \n\n```bash\ncurl --request GET 'https://githubreadmeretriever.azurewebsites.net/api/GetReadmes/{ownerName}/{token}'\n```\n\n**Response**\n\n```javascript\n[\n  {\n      \"readme\": \"string\",\n      \"repositoryName\": \"string\",\n      \"repositoryOwner\": \"string\"\n  }\n  {\n      \"readme\": \"string\",\n      \"repositoryName\": \"string\",\n      \"repositoryOwner\": \"string\"\n  }\n]\n```\n\n### Example\n\nTo retrieve the `README.md` for all of my repositories, we will use the following parameters:\n- ownerName: `brminnick`\n- token: `debddf126115d5f193526a7f29fe980e525e497e`\n\n\u003e **Note:** This example is not using a real token. You can [create your token by following these steps](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token).\n\n```bash\ncurl --request GET 'https://githubreadmeretriever.azurewebsites.net/api/GetReadmes/brminnick/debddf126115d5f193526a7f29fe980e525e497e'\n```\n\n```javascript\n[\n  {\n      \"readme\": \"# AsyncAwaitBestPractices\\n\\n[![Build Status](https://brminnick.visualstudio.com/AsyncAwaitBestPractices/_apis/build/status/AsyncAwaitBestPractices-.NET%20Desktop-CI)](https://brminnick.visualstudio.com/AsyncAwaitBestPractices/_build/latest?definitionId=5)\\n\\n...\",\n      \"repositoryName\": \"AsyncAwaitBestPractices\",\n      \"repositoryOwner\": \"brminnick\"\n  }\n  {\n      \"readme\": \"\u003cdiv class=\\\"header\\\" align=\\\"center\\\"\u003e\\n  \u003ch1 align=\\\"center\\\"\u003eGitTrends: GitHub Insights\u003c/h1\u003e\\n\u003c/div\u003e\\n\u003cp align=\\\"center\\\"\u003e\\n  \u003ca href=\\\"https://twitter.com/GitTrendsApp\\\"\u003e\\n...\",\n      \"repositoryName\": \"GitTrends\",\n      \"repositoryOwner\": \"brminnick\"\n  }\n  {\n      \"readme\": \"\u003cdiv class=\\\"header\\\" align=\\\"center\\\"\u003e\\n  \u003ch1 align=\\\"center\\\"\u003eGitHub Readme Retriever\u003c/h1\u003e\\n\u003c/div\u003e...\",\n      \"repositoryName\": \"GitHubReadmeRetriever\",\n      \"repositoryOwner\": \"brminnick\"\n  }\n]\n```\n\n\n## Resources\n\nCloud Backend\n- [.NET Core](https://docs.microsoft.com/dotnet/core/?WT.mc_id=mobile-0000-bramin) - an [open-source](https://github.com/dotnet/core), general-purpose development platform maintained by Microsoft and the .NET community on [GitHub](https://github.com/dotnet/core)\n- [Azure Functions](https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=mobile-0000-bramin) - a serverless compute service that lets you run event-triggered code without having to explicitly provision or manage infrastructure\n- [Azure Functions Dependency Injection](https://docs.microsoft.com/azure/azure-functions/functions-dotnet-dependency-injection?WT.mc_id=mobile-0000-bramin) - Azure Functions supports the dependency injection (DI) software design pattern, which is a technique to achieve [Inversion of Control (IoC)](https://docs.microsoft.com/dotnet/standard/modern-web-apps-azure-architecture/architectural-principles?WT.mc_id=mobile-0000-bramin#dependency-inversion) between classes and their dependencies\n- [Polly + HttpClientFactory](https://docs.microsoft.com/dotnet/architecture/microservices/implement-resilient-applications/implement-http-call-retries-exponential-backoff-polly?WT.mc_id=mobile-0000-bramin) - the recommended approach for retries with exponential backoff is to take advantage of more advanced .NET libraries\n- [Refit + HttpClientFactory](https://docs.microsoft.com/aspnet/core/fundamentals/http-requests?WT.mc_id=mobile-0000-bramin#generated-clients) - `IHttpClientFactory` can be used in combination with third-party libraries such as Refit\n\n## Author\n\n👤 **Brandon Minnick**\n\n-   Twitter: [@TheCodeTraveler](https://twitter.com/TheCodeTraveler)\n-   Blog: https://codetraveler.io\n-   Github: [@brminnick](https://github.com/brminnick)\n\n## Show your support\n\n⭐️ [Star the GitHub Repo](https://github.com/brminnick/GitHubReadmeRetriever/) \u003cbr/\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodetraveler%2Fgithubreadmeretriever","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodetraveler%2Fgithubreadmeretriever","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodetraveler%2Fgithubreadmeretriever/lists"}