├── .github └── workflows │ └── generate-md.yml ├── .gitignore ├── LICENSE ├── README.md ├── USAGE.md ├── cmd ├── generate.go └── root.go ├── githubapi ├── entrypoint.go └── github.go ├── go.mod ├── go.sum ├── logging └── logging.go ├── main.go ├── markdown ├── sortrepo.go └── writemd.go └── schemas └── schemas.go /.github/workflows/generate-md.yml: -------------------------------------------------------------------------------- 1 | name: "Generate Markdown for Starred Github Repository." 2 | on: 3 | schedule: 4 | - cron: "0 */2 * * *" 5 | push: 6 | branches: [ master ] 7 | pull_request: 8 | branches: [ master ] 9 | workflow_dispatch: 10 | 11 | jobs: 12 | build: 13 | name: Generate Markdown File. 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: actions/setup-go@v5.0.2 18 | with: 19 | go-version: '1.17.1' 20 | - name: Print Go Version 21 | run: go version 22 | - name: Run github-star CLI 23 | run: go run main.go generate -t ${{ secrets.GH_TOKEN }} -f README.md 24 | - name: Run git diff 25 | run: git diff README.md 26 | - name: Push New File 27 | run: echo -e `git config --global user.name 'github-ci' && git config --global user.email 'github-ci@users.noreply.github.com' && git add README.md && git commit -am "README.md file updated with latest starred repo's" && git push` 28 | 29 | 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | github-stars -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Starred Repositories 2 | [How this generated?](../master/USAGE.md) 3 | 4 | | Id | Name | Description | Star Counts | Topics/Tags | Last Updated | 5 | | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- | 6 | |1|[30-Days-Of-Python](https://github.com/Asabeneh/30-Days-Of-Python.git)|30 days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than100 days, follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw|46596|30-days-of-python, python, flask, github, heroku, matplotlib, mongodb, numpy, pandas, python3|19-3-2025| 7 | |2|[30-Days-of-Code](https://github.com/xeoneux/30-Days-of-Code.git)|👨‍💻 30 Days of Code by HackerRank Solutions in C, C++, C#, F#, Go, Java, JavaScript, Python, Ruby, Swift & TypeScript. PRs Welcome! 😄|1010||17-8-2022| 8 | |3|[BetterChatGPT](https://github.com/ztjhz/BetterChatGPT.git)|An amazing UI for OpenAI's ChatGPT (Website + Windows + MacOS + Linux)|8397|chatgpt, free, chatbot, gpt-3, gpt-4, better-chat-gpt|14-5-2024| 9 | |4|[Burrow](https://github.com/linkedin/Burrow.git)|Kafka Consumer Lag Checking|3855||15-5-2025| 10 | |5|[DataStructures-Algorithms](https://github.com/rachitiitr/DataStructures-Algorithms.git)|The best library for implementation of all Data Structures and Algorithms - Trees + Graph Algorithms too!|2859|algorithms, data-structures, interview-prep, interview-preparation, competitive-programming, cpp, cpp-library, leetcode, leetcode-solutions|16-3-2024| 11 | |6|[FastAPI-Backend-Template](https://github.com/Aeternalis-Ingenium/FastAPI-Backend-Template.git)|A backend project template with FastAPI, PostgreSQL with asynchronous SQLAlchemy 2.0, Alembic for asynchronous database migration, and Docker.|745|asynchronous, docker, docker-compose, fastapi, postgresql, python, sqlalchemy, codecov, githubactions, jwt, pre-commit, alembic, asyncpg, coverage, pytest|26-3-2024| 12 | |7|[FastUI](https://github.com/pydantic/FastUI.git)|Build better UIs faster.|8829|fastapi, pydantic, python, react|15-3-2025| 13 | |8|[FinGPT](https://github.com/AI4Finance-Foundation/FinGPT.git)|FinGPT: Open-Source Financial Large Language Models! Revolutionize 🔥 We release the trained model on HuggingFace.|16313||26-12-2024| 14 | |9|[FlameGraph](https://github.com/brendangregg/FlameGraph.git)|Stack trace visualizer|18242||20-10-2024| 15 | |10|[GitPython](https://github.com/gitpython-developers/GitPython.git)|GitPython is a python library used to interact with Git repositories.|4857|git-porcelain, git-plumbing, python-library|30-5-2025| 16 | |11|[GoCasts](https://github.com/StephenGrider/GoCasts.git)|Companion Repo to https://www.udemy.com/go-the-complete-developers-guide/|2065||25-8-2017| 17 | |12|[GolangTraining](https://github.com/GoesToEleven/GolangTraining.git)|Training for Golang (go language)|10138||28-8-2023| 18 | |13|[Gooey](https://github.com/chriskiehl/Gooey.git)|Turn (almost) any Python command line program into a full GUI application with one line|21223||8-5-2022| 19 | |14|[IF](https://github.com/deep-floyd/IF.git)|-|7814||| 20 | |15|[ImHex](https://github.com/WerWolv/ImHex.git)|🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.|49214||30-5-2025| 21 | |16|[JavaScript](https://github.com/TheAlgorithms/JavaScript.git)|Algorithms and Data Structures implemented in JavaScript for beginners, following best practices.|33214|algorithm, algorithm-challenges, data-structures, cryptography, cipher, search, sort, sorting-algorithms, mathematics, conversions, hacktoberfest, javascript, algorithms-implemented, algorithms|15-1-2025| 22 | |17|[LibreChat](https://github.com/danny-avila/LibreChat.git)|Enhanced ChatGPT Clone: Features Agents, DeepSeek, Anthropic, AWS, OpenAI, Assistants API, Azure, Groq, o1, GPT-4o, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active project.|26124|ai, chatgpt, clone, plugins, chatgpt-clone, librechat, anthropic, claude, azure, dall-e-3, openai, vision, google, gemini, webui, assistant-api, artifacts, aws, o1, deepseek|29-5-2025| 23 | |18|[MQTT-Explorer](https://github.com/thomasnordquist/MQTT-Explorer.git)|An all-round MQTT client that provides a structured topic overview|3416|mqtt, mqtt-explorer, homeautomation, mqtt-client, mqtt-smarthome, mqtt-tool|17-6-2024| 24 | |19|[OpenDeepResearcher](https://github.com/mshumer/OpenDeepResearcher.git)|-|2571||2-5-2025| 25 | |20|[PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings.git)|A list of useful payloads and bypass for Web Application Security and Pentest/CTF|65741|pentest, payload, bypass, web-application, hacking, vulnerability, bounty, methodology, privilege-escalation, penetration-testing, cheatsheet, security, enumeration, bugbounty, redteam, payloads, hacktoberfest|22-5-2025| 26 | |21|[Public-APIs](https://github.com/n0shake/Public-APIs.git)|📚 A public list of APIs from round the web.|22020||26-7-2024| 27 | |22|[PyTCP](https://github.com/ccie18643/PyTCP.git)|PyTCP is a fully functional TCP/IP stack written in Python. It supports TCP stream-based transport with reliable packet delivery based on a sliding window mechanism and basic congestion control. It also supports IPv6/ICMPv6 protocols with SLAAC address configuration. It operates as a user space program attached to the Linux TAP interface.|363|network, tcp, python, linux, ip, arp, udp, icmp, ethernet, ipv4, ipv6|15-5-2025| 28 | |23|[Python](https://github.com/TheAlgorithms/Python.git)|All Algorithms implemented in Python|200988|python, algorithm, algorithms-implemented, algorithm-competitions, algos, sorts, searches, sorting-algorithms, education, learn, practice, community-driven, interview, hacktoberfest|31-5-2025| 29 | |24|[Reloader](https://github.com/stakater/Reloader.git)|A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you're using it!|8602|kubernetes, openshift, configmap, secrets, pods, deployments, daemonset, statefulsets, k8s, watch-changes, deploymentconfigs|21-5-2025| 30 | |25|[WebFundamentals](https://github.com/google/WebFundamentals.git)|Former git repo for WebFundamentals on developers.google.com|13850|html, best-practices, javascript, css, mobile-web, chrome, chrome-browser, html5, web, web-app, progressive-web-app|10-8-2022| 31 | |26|[acme.sh](https://github.com/acmesh-official/acme.sh.git)|A pure Unix shell script implementing ACME client protocol|42850|acme, acme-protocol, letsencrypt, certbot, shell, ash, bash, posix, posix-sh, zerossl, buypass, acme-client|17-5-2025| 32 | |27|[admiral](https://github.com/istio-ecosystem/admiral.git)|Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh|617|admiral, service-mesh, istio, k8s, multi-cluster, automation, configuration, service-discovery, multicluster, microservices, clusters|28-5-2025| 33 | |28|[adr-tools](https://github.com/npryce/adr-tools.git)|Command-line tools for working with Architecture Decision Records|4926|architecture-decision-records, documentation, architecture, markdown|30-3-2020| 34 | |29|[age](https://github.com/FiloSottile/age.git)|A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.|18986|built-at-rc, age-encryption|10-5-2025| 35 | |30|[aider](https://github.com/Aider-AI/aider.git)|aider is AI pair programming in your terminal|33749|chatgpt, cli, command-line, gpt-4, openai, gpt-3, gpt-35-turbo, claude-3, gpt-4o, anthropic, gemini, llama, sonnet|1-6-2025| 36 | |31|[ambry](https://github.com/linkedin/ambry.git)|Distributed object store|1754||30-5-2025| 37 | |32|[ami-query](https://github.com/intuit/ami-query.git)|Provide a REST interface to your organization's AMIs|39||31-8-2020| 38 | |33|[argo-cd](https://github.com/argoproj/argo-cd.git)|Declarative Continuous Deployment for Kubernetes|19682|argo, kubernetes, continuous-deployment, gitops, continuous-delivery, docker, cd, cicd, pipeline, devops, ci-cd, argo-cd, helm, hacktoberfest, jsonnet, kustomize|31-5-2025| 39 | |34|[argo-events](https://github.com/argoproj/argo-events.git)|Event-driven Automation Framework for Kubernetes|2486|kubernetes, event-driven, cloudevents, workflows, triggers, automation-framework, cloud-native, argo, pipelines, event-source, workflow-automation, eventing-framework|31-5-2025| 40 | |35|[argo-rollouts](https://github.com/argoproj/argo-rollouts.git)|Progressive Delivery for Kubernetes|3030|gitops, canary, bluegreen, kubernetes, argoproj, deployments, experiments, argo-rollouts, progressive-delivery, hacktoberfest|30-5-2025| 41 | |36|[argo-workflows](https://github.com/argoproj/argo-workflows.git)|Workflow Engine for Kubernetes|15681|workflow, kubernetes, argo, dag, knative, airflow, machine-learning, argo-workflows, workflow-engine, hacktoberfest, cloud-native, cncf, k8s, gitops, mlops, batch-processing, data-engineering, pipelines|| 42 | |37|[arlon](https://github.com/arlonproj/arlon.git)|A kubernetes cluster lifecycle management and configuration tool|148|kubernetes, k8s, gitops, cluster-api|23-7-2024| 43 | |38|[arm-template-whatif](https://github.com/Azure/arm-template-whatif.git)|A repository to track issues related to what-if noise suppression|92||2-8-2022| 44 | |39|[arm-ttk](https://github.com/Azure/arm-ttk.git)|Azure Resource Manager Template Toolkit|456||1-4-2025| 45 | |40|[arrow](https://github.com/arrow-py/arrow.git)|🏹 Better dates & times for Python|8860||| 46 | |41|[atlas](https://github.com/Netflix/atlas.git)|In-memory dimensional time series database.|3489||30-5-2025| 47 | |42|[atuin](https://github.com/atuinsh/atuin.git)|✨ Magical shell history|24103|shell, rust, zsh, history, fish, bash|27-5-2025| 48 | |43|[auto](https://github.com/intuit/auto.git)|Generate releases based on semantic version labels on pull requests.|2341|release, auto-release, github, slack, jira, releases, publishing, hack, hacktoberfest|6-2-2025| 49 | |44|[autoenv](https://github.com/hyperupcall/autoenv.git)|Directory-based environments.|5862|environment, cd, shell-extension, shell-scripts, bash, zsh, shell, shell-script, terminal|17-5-2025| 50 | |45|[awesome-algorithms](https://github.com/tayllan/awesome-algorithms.git)|A curated list of awesome places to learn and/or practice algorithms.|22641||29-5-2025| 51 | |46|[awesome-argo](https://github.com/akuity/awesome-argo.git)|A curated list of awesome projects and resources related to Argo (a CNCF graduated project)|2201|awesome, awesome-list, awesome-lists, argocd, argo-workflows, argo-events, argo-rollouts, machine-learning, workflow-engine, workflow-management, infrastructure-as-code, continuous-delivery, cloud-native, kubernetes, cncf, gitops, workflow-orchestration, devops, mlops, argo|14-5-2025| 52 | |47|[awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness.git)|A curated list of awesome awesomeness|32602||24-3-2022| 53 | |48|[awesome-cheatsheets](https://github.com/LeCoupa/awesome-cheatsheets.git)|👩‍💻👨‍💻 Awesome cheatsheets for popular programming languages, frameworks and development tools. They include everything you should know in one single file.|42637|cheatsheets, javascript, bash, nodejs, cheatsheet, database, language, frontend, backend, feathersjs, redis, vuejs, vim, django, programming-language, xcode, php, docker, kubernetes, sailsjs|24-8-2024| 54 | |49|[awesome-courses](https://github.com/prakhar1989/awesome-courses.git)|:books: List of awesome university courses for learning Computer Science!|60755|computer-science, courses, awesome-list, awesome|12-11-2022| 55 | |50|[awesome-deep-learning](https://github.com/ChristosChristofidis/awesome-deep-learning.git)|A curated list of awesome Deep Learning tutorials, projects and communities.|25379|deep-learning, neural-network, machine-learning, awesome, awesome-list, recurrent-networks, deep-networks, deep-learning-tutorial, face-images|26-5-2025| 56 | |51|[awesome-docker](https://github.com/veggiemonk/awesome-docker.git)|:whale: A curated list of Docker resources and projects|32381|docker, awesome, awesome-list, container, tools, dockerfile, list, moby, docker-container, docker-image, docker-environment, docker-deployment, docker-swarm, docker-api, docker-monitoring, docker-machine, docker-security, docker-registry|18-5-2025| 57 | |52|[awesome-fastapi](https://github.com/mjhea0/awesome-fastapi.git)|A curated list of awesome things related to FastAPI|9774||18-5-2025| 58 | |53|[awesome-flask](https://github.com/humiaozuzu/awesome-flask.git)|A curated list of awesome Flask resources and plugins|12489|flask, flask-resources, awesome|17-9-2019| 59 | |54|[awesome-github-profile-readme](https://github.com/abhisheknaiidu/awesome-github-profile-readme.git)|😎 A curated list of awesome GitHub Profile which updates in real time |26690|awesome-list, awesome, github, github-readme, github-profile-readme, portfolio, profile-readme|9-10-2022| 60 | |55|[awesome-k8s-resources](https://github.com/tomhuang12/awesome-k8s-resources.git)|A curated list of awesome Kubernetes tools and resources.|3708|kubernetes, kubernetes-resources, list, awesome-list, kubernetes-networking, kubernetes-operational, kubernetes-clusters|20-5-2025| 61 | |56|[awesome-kubectl-plugins](https://github.com/ishantanu/awesome-kubectl-plugins.git)|Curated list of kubectl plugins|956|kubectl-plugins, awesome-list, kubectl, kubernetes|28-5-2025| 62 | |57|[awesome-kubernetes](https://github.com/ramitsurana/awesome-kubernetes.git)|A curated list for awesome kubernetes sources :ship::tada:|15457|kubernetes, minikube, meetup, resource, kubernetes-sources, google-cloud, kubernetes-cluster, deploy-kubernetes, aws, enterprise-kubernetes-products, monitoring-kubernetes, azure, schedule, google-kubernetes, docker, cloud-providers, books, machine-learning|12-5-2025| 63 | |58|[awesome-kubernetes](https://github.com/nubenetes/awesome-kubernetes.git)|A curated list of awesome references collected since 2018.|642|kubernetes, cloud, awesome-list, aws, azure, gcp, devops, devops-tools, docker, containers|7-10-2024| 64 | |59|[awesome-macOS](https://github.com/iCHAIT/awesome-macOS.git)|  A curated list of awesome applications, softwares, tools and shiny things for macOS.|16771|macos, mac, awesome-list, apple, awesome-lists, awesome, list|5-1-2024| 65 | |60|[awesome-macos-command-line](https://github.com/herrbischoff/awesome-macos-command-line.git)|Use your macOS terminal shell to do awesome things.|29534|macos, macosx, shell, terminal, awesome-list, awesome, list|2-9-2021| 66 | |61|[awesome-microservices](https://github.com/mfornos/awesome-microservices.git)|A curated list of Microservice Architecture related principles and technologies.|13687|awesome, microservices, microservices-architecture, cloud-native, cloud-computing|20-1-2025| 67 | |62|[awesome-pentest](https://github.com/enaqx/awesome-pentest.git)|A collection of awesome penetration testing resources, tools and other shiny things|23222|awesome, awesome-list|11-5-2025| 68 | |63|[awesome-python](https://github.com/vinta/awesome-python.git)|An opinionated list of awesome Python frameworks, libraries, software and resources.|245165|awesome, python, collections, python-library, python-framework, python-resources|17-7-2024| 69 | |64|[awesome-readme](https://github.com/matiassingers/awesome-readme.git)|A curated list of awesome READMEs|19177|awesome-list, awesome, list, readme|1-5-2025| 70 | |65|[awesome-scalability](https://github.com/binhnguyennus/awesome-scalability.git)|The Patterns of Scalable, Reliable, and Performant Large-Scale Systems|62162|system-design, backend, scalability, interview, architecture, devops, design-patterns, interview-questions, awesome-list, big-data, awesome, resources, lists, web-development, programming, system, interview-practice, computer-science, distributed-systems, machine-learning|17-5-2025| 71 | |66|[awesome-shell](https://github.com/alebcay/awesome-shell.git)|A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.|34400|awesome-list, awesome, list, zsh, fish, bash, cli, shell|20-2-2024| 72 | |67|[awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin.git)|A curated list of amazingly awesome open-source sysadmin resources.|29248|awesome, awesome-list, sysadmin, list, devops, ops, software, sre, self-hosted|12-5-2025| 73 | |68|[awesome-vscode](https://github.com/viatsko/awesome-vscode.git)|🎨 A curated list of delightful VS Code packages and resources.|26630|visual-studio, vscode, vscode-theme, vscode-extension, awesome, awesome-list, list, visualstudio, visual-studio-code, visual-studio-code-extension, visual-studio-code-theme|3-8-2023| 74 | |69|[awless](https://github.com/wallix/awless.git)|A Mighty CLI for AWS|4980|aws, cli, cloud, aws-cli, cloud-management, awless, golang, devops, devops-tools|10-12-2018| 75 | |70|[aws-cdk](https://github.com/aws/aws-cdk.git)|The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code|12209|aws, infrastructure-as-code, typescript, cloud-infrastructure, hacktoberfest|| 76 | |71|[aws-cli](https://github.com/aws/aws-cli.git)|Universal Command Line Interface for Amazon Web Services|16088|aws, cloud, aws-cli, cloud-management|30-5-2025| 77 | |72|[aws-cloudformation-user-guide](https://github.com/awsdocs/aws-cloudformation-user-guide.git)|The open source version of the AWS CloudFormation User Guide|767|aws, aws-cloudformation, cloudformation|7-12-2023| 78 | |73|[aws-eks-best-practices](https://github.com/aws/aws-eks-best-practices.git)|A best practices guide for day 2 operations, including operational excellence, security, reliability, performance efficiency, and cost optimization.|2109||30-5-2025| 79 | |74|[aws-eks-kubernetes-masterclass](https://github.com/stacksimplify/aws-eks-kubernetes-masterclass.git)|AWS EKS Kubernetes - Masterclass DevOps, Microservices|1552|kubernetes, kubernetes-pods, kubernetes-deployment, kubernetes-services, kubernetes-secrets, aws-eks, aws-eks-cluster, aws-ebs, aws-rds, aws-alb, aws-alb-ingress-controller, aws-fargate, aws-codebuild, aws-codecommit, aws-codepipeline, fluentd, aws-cloudwatch, docker, yaml|17-5-2025| 80 | |75|[aws-sam-cli](https://github.com/aws/aws-sam-cli.git)|CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM|6602|serverless, aws, lambda, serverlessapplicationmodel, sam, docker, api-gateway, python|31-5-2025| 81 | |76|[azure-cli](https://github.com/Azure/azure-cli.git)|Azure Command-Line Interface|4210||30-5-2025| 82 | |77|[azure-functions-host](https://github.com/Azure/azure-functions-host.git)|The host/runtime that powers Azure Functions|1972|azure-functions, azure-webjobs-sdk, serverless, azure|| 83 | |78|[azure-monitor-opencensus-python](https://github.com/Azure-Samples/azure-monitor-opencensus-python.git)|Sample repository demonstrating Azure Monitor exporters for Opencensus Python|23||1-6-2023| 84 | |79|[azure-quickstart-templates](https://github.com/Azure/azure-quickstart-templates.git)|Azure Quickstart Templates|14419|azure, templates, arm, bicep, bicep-templates, arm-templates|22-5-2025| 85 | |80|[azure-rest-api-specs](https://github.com/Azure/azure-rest-api-specs.git)|The source for REST API specifications for Microsoft Azure.|2865|azure, swagger, openapi, rest, cloud|31-5-2025| 86 | |81|[azure4everyone-samples](https://github.com/MarczakIO/azure4everyone-samples.git)|-|274||12-2-2022| 87 | |82|[badges](https://github.com/Naereen/badges.git)|:pencil: Markdown code for lots of small badges :ribbon: :pushpin: (shields.io, forthebadge.com etc) :sunglasses:. Contributions are welcome! Please add yours!|4448|forthebadge, badges, markdown, markdown-cheatsheet, meta-badge, forthebadge-cc, restructuredtext, pokemon, python, awesome, markup|2-3-2025| 88 | |83|[bandit](https://github.com/PyCQA/bandit.git)|Bandit is a tool designed to find common security issues in Python code.|7020|linter, bandit, security-tools, security-scanner, security, static-code-analysis, python|26-5-2025| 89 | |84|[bashhub-client](https://github.com/rcaloras/bashhub-client.git)|:cloud: Bash history in the cloud. Indexed and searchable. |1278|bash, history, cloud, shell, shell-extension, zsh, terminal|3-11-2023| 90 | |85|[bicep](https://github.com/Azure/bicep.git)|Bicep is a declarative language for describing and deploying Azure resources|3373|arm-templates, arm-json, bicep|1-6-2025| 91 | |86|[big-AGI](https://github.com/enricoros/big-AGI.git)|AI suite powered by state-of-the-art models and providing advanced AI/AGI functions. It features AI personas, AGI functions, multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.|6435|chatgpt, generative-ai, ui, chatgpt-ui, agi, large-language-models, stable-diffusion, gpt, gpt-4, openai, openai-api, anthropic, beam, gpt-5, multimodal, groq, mistral|30-5-2025| 92 | |87|[black](https://github.com/psf/black.git)|The uncompromising Python code formatter|40283|python, code, formatter, codeformatter, gofmt, yapf, autopep8, pre-commit-hook, hacktoberfest|29-5-2025| 93 | |88|[blackfriday](https://github.com/russross/blackfriday.git)|Blackfriday: a markdown processor for Go|5545||27-10-2020| 94 | |89|[blockly](https://github.com/google/blockly.git)|The web-based visual programming editor.|12916||30-5-2025| 95 | |90|[bokeh](https://github.com/bokeh/bokeh.git)|Interactive Data Visualization in the browser, from Python|19893|bokeh, python, interactive-plots, javascript, visualization, plotting, plots, data-visualisation, notebooks, jupyter, visualisation, numfocus|| 96 | |91|[boto3](https://github.com/boto/boto3.git)|AWS SDK for Python|9362||30-5-2025| 97 | |92|[boulder](https://github.com/letsencrypt/boulder.git)|An ACME-based certificate authority, written in Go. |5432|boulder, go, acme, certificate-authority, tls, lets-encrypt, ca, pki, rfc8555|30-5-2025| 98 | |93|[boundary](https://github.com/hashicorp/boundary.git)|Boundary enables identity-based access management for dynamic infrastructure. |3927|hashicorp, security, zero-trust, hacktoberfest|30-5-2025| 99 | |94|[brackets](https://github.com/adobe/brackets.git)|An open source code editor for the web, written in JavaScript, HTML and CSS.|33198||18-3-2021| 100 | |95|[brooklin](https://github.com/linkedin/brooklin.git)|An extensible distributed system for reliable nearline data streaming at scale|940|distributed-systems, data-streaming, scalability, kafka-mirror-maker, kafka, change-data-capture, java, linkedin|21-5-2024| 101 | |96|[browser-use](https://github.com/browser-use/browser-use.git)|🌐 Make websites accessible for AI agents. Automate tasks online with ease.|62075|llm, ai-agents, ai-tools, browser-automation, python, browser-use, playwright|1-6-2025| 102 | |97|[caddy](https://github.com/caddyserver/caddy.git)|Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS|64609|go, web-server, caddyfile, http, http-server, reverse-proxy, https, tls, automatic-https, privacy, security, acme, caddy, golang, http3|31-5-2025| 103 | |98|[calico](https://github.com/projectcalico/calico.git)|Cloud native networking and network security|6486|cni, cni-plugin, ebpf, k8s, kubernetes, kubernetes-networking, kubernetes-windows, network-policy, networking, security, windows, xdp, identity-aware-policy, openstack, host-protection, cats, observability|30-5-2025| 104 | |99|[camel](https://github.com/camel-ai/camel.git)|🐫 CAMEL: The first and the best multi-agent framework. Finding the Scaling Law of Agents. https://www.camel-ai.org|12732|ai-societies, artificial-intelligence, deep-learning, large-language-models, multi-agent-systems, natural-language-processing, communicative-ai, cooperative-ai, agent|1-6-2025| 105 | |100|[cdk8s](https://github.com/cdk8s-team/cdk8s.git)|Define Kubernetes native apps and abstractions using object-oriented programming|4558||1-6-2025| 106 | |101|[cdnjs](https://github.com/cdnjs/cdnjs.git)|🤖 CDN assets - The #1 free and open source CDN built to make life easier for developers.|10515|cdn, javascript, css, library, web, front-end, foss, opensource, js, font, framework, webdev, fast, speed, http2, spdy, cdnjs|31-5-2025| 107 | |102|[celery](https://github.com/celery/celery.git)|Distributed Task Queue (development branch)|26480|python, task-manager, task-scheduler, task-runner, queue-workers, queued-jobs, queue-tasks, amqp, redis, sqs, sqs-queue, python3, python-library, redis-queue|1-6-2025| 108 | |103|[cello](https://github.com/cello-proj/cello.git)|Run infrastructure as code (IaC) software tools including CDK, Terraform and Cloud Formation via GitOps.|287||24-1-2025| 109 | |104|[cert-manager](https://github.com/cert-manager/cert-manager.git)|Automatically provision and manage TLS certificates in Kubernetes|12850|kubernetes, letsencrypt, tls, certificate, crd, hacktoberfest|31-5-2025| 110 | |105|[cfssl](https://github.com/cloudflare/cfssl.git)|CFSSL: Cloudflare's PKI and TLS toolkit|9036||26-2-2025| 111 | |106|[chalice](https://github.com/aws/chalice.git)|Python Serverless Microframework for AWS|10867|python, aws, aws-lambda, cloud, serverless, serverless-framework, aws-apigateway, lambda, python3, python27|29-5-2025| 112 | |107|[chaosmonkey](https://github.com/Netflix/chaosmonkey.git)|Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.|15905||3-10-2024| 113 | |108|[chartmuseum](https://github.com/helm/chartmuseum.git)|helm chart repository server|3708|helm, charts, kubernetes, chartmuseum|29-4-2025| 114 | |109|[charts](https://github.com/helm/charts.git)|⚠️(OBSOLETE) Curated applications for Kubernetes|15466|kubernetes, charts, helm|21-12-2021| 115 | |110|[chatbox](https://github.com/chatboxai/chatbox.git)|User-friendly Desktop Client App for AI Models/LLMs (GPT, Claude, Gemini, Ollama...)|35041|chatgpt, openai, copilot, gpt, gpt-4, chatbot, ollama, assistant, claude, deepseek|28-5-2025| 116 | |111|[cheat.sh](https://github.com/chubin/cheat.sh.git)|the only cheat sheet you need|39437|cheatsheet, curl, terminal, command-line, cli, examples, documentation, help, tldr, hacktoberfest2021|1-2-2025| 117 | |112|[checkov](https://github.com/bridgecrewio/checkov.git)|Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.|7592|terraform, static-analysis, aws, gcp, azure, aws-security, cloudformation, scans, compliance, kubernetes, infrastructure-as-code, devops, hacktoberfest|30-5-2025| 118 | |113|[chef](https://github.com/chef/chef.git)|Chef Infra, a powerful automation platform that transforms infrastructure into code automating how infrastructure is configured, deployed and managed across any environment, at any scale|7789|chef, devops, cfgmgt, infrastructure, automation, deployment, hacktoberfest|30-5-2025| 119 | |114|[cilium](https://github.com/cilium/cilium.git)|eBPF-based Networking, Security, and Observability|21719|containers, bpf, security, kubernetes, kubernetes-networking, cni, kernel, loadbalancing, monitoring, troubleshooting, xdp, ebpf, k8s, observability, networking, cncf|1-6-2025| 120 | |115|[clair](https://github.com/quay/clair.git)|Vulnerability Static Analysis for Containers|10649|containers, static-analysis, go, kubernetes, docker, oci, oci-image, vulnerabilities, clair|26-5-2025| 121 | |116|[cli](https://github.com/snyk/cli.git)|Snyk CLI scans and monitors your projects for security vulnerabilities.|5142|security, monitor, snyk, vulnerabilities|| 122 | |117|[cli](https://github.com/cli/cli.git)|GitHub’s official command line tool|39280|github-api-v4, cli, git, golang|29-5-2025| 123 | |118|[cli-spinners](https://github.com/sindresorhus/cli-spinners.git)|Spinners for use in the terminal|2512||7-9-2024| 124 | |119|[cli53](https://github.com/barnybug/cli53.git)|Command line tool for Amazon Route 53|2078||18-4-2025| 125 | |120|[cloud-custodian](https://github.com/cloud-custodian/cloud-custodian.git)|Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources|5676|aws, compliance, cloud, rules-engine, cloud-computing, management, serverless, lambda, gcp, azure|29-5-2025| 126 | |121|[codebytere.github.io](https://github.com/codebytere/codebytere.github.io.git)|personal website|533||22-1-2025| 127 | |122|[confd](https://github.com/kelseyhightower/confd.git)|Manage local application configuration files using templates and data from etcd or consul|8394||9-12-2023| 128 | |123|[consul](https://github.com/hashicorp/consul.git)|Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.|28998||28-5-2025| 129 | |124|[containerd](https://github.com/containerd/containerd.git)|An open and reliable container runtime|18664|containerd, oci, containers, docker, cncf, cri, kubernetes, hacktoberfest|27-5-2025| 130 | |125|[copacetic](https://github.com/project-copacetic/copacetic.git)|🧵 CLI tool for directly patching container images!|1313|compliance, devsecops, docker, security, trivy, vulnerability, containers, container-image, container-security, patching, cncf, hacktoberfest, vulnerabilities, vulnerability-management, security-tools|29-5-2025| 131 | |126|[core](https://github.com/home-assistant/core.git)|:house_with_garden: Open source home automation that puts local control and privacy first.|79372|python, home-automation, iot, internet-of-things, mqtt, raspberry-pi, asyncio, hacktoberfest|1-6-2025| 132 | |127|[coreutils](https://github.com/uutils/coreutils.git)|Cross-platform Rust rewrite of the GNU coreutils|20640|rust, coreutils, gnu-coreutils, busybox, cross-platform, command-line-tool|| 133 | |128|[cruise-control](https://github.com/linkedin/cruise-control.git)|Cruise-control is the first of its kind to fully automate the dynamic workload rebalance and self-healing of a Kafka cluster. It provides great value to Kafka users by simplifying the operation of Kafka clusters.|2854||| 134 | |129|[dacite](https://github.com/konradhalas/dacite.git)|Simple creation of data classes from dictionaries.|1869|dataclasses|17-3-2025| 135 | |130|[dashboard](https://github.com/kubernetes/dashboard.git)|General-purpose web UI for Kubernetes clusters|14959||28-5-2025| 136 | |131|[datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator.git)|Pydantic model and dataclasses.dataclass generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.|3228|openapi, code-generator, python, pydantic, generator, fastapi, json-schema, datamodel, swagger, yaml, csv, openapi-codegen, swagger-codegen, dataclass|27-5-2025| 137 | |132|[datree](https://github.com/datreeio/datree.git)|Prevent Kubernetes misconfigurations from reaching production (again 😤 )! From code to cloud, Datree provides an E2E policy enforcement solution to run automatic checks for rule violations. See our docs: https://hub.datree.io|6368|kubernetes, policy, guardrail, best-practices, cli, static-code-analysis, datree, admission-webhook, devops, policy-management, security|1-8-2023| 138 | |133|[deepdiff](https://github.com/seperman/deepdiff.git)|DeepDiff: Deep Difference and search of any Python object/data. DeepHash: Hash of any object based on its contents. Delta: Use deltas to reconstruct objects by adding deltas together.|2270|python, tree, deep-search, repetition, difference, comparison, report-repetition, nested, recursive, diff, delta, distance, distance-calculation, deepdiff, deephash, hash, hashing, reconstruction|9-5-2025| 139 | |134|[design-patterns-for-humans](https://github.com/kamranahmedse/design-patterns-for-humans.git)|An ultra-simplified explanation to design patterns|46474|design-patterns, architecture, software-engineering, engineering, principles, computer-science|2-12-2024| 140 | |135|[devops-exercises](https://github.com/bregman-arie/devops-exercises.git)|Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions|76236|devops, aws, linux, ansible, python, docker, prometheus, containers, git, kubernetes, interview, interview-questions, terraform, azure, openstack, sql, coding, sre, production-engineer|24-4-2025| 141 | |136|[diagrams](https://github.com/mingrammer/diagrams.git)|:art: Diagram as Code for prototyping cloud system architectures|40933|diagram, diagram-as-code, architecture, graphviz|11-5-2025| 142 | |137|[discourse](https://github.com/discourse/discourse.git)|A platform for community discussion. Free, open, simple.|44185|discourse, javascript, rails, ruby, ember, forum, postgresql|31-5-2025| 143 | |138|[django-health-check](https://github.com/revsys/django-health-check.git)|a pluggable app that runs a full check on the deployment, using a number of plugins to check e.g. database, queue server, celery processes, etc.|1295|django, monitoring|28-2-2025| 144 | |139|[dns](https://github.com/miekg/dns.git)|DNS library in Go|8351|dnssec, go, dns-library, dns|31-5-2025| 145 | |140|[dnscontrol](https://github.com/StackExchange/dnscontrol.git)|Infrastructure as code for DNS!|3400|go, dns, infrastructure-as-code, dnscontrol, workflow|1-6-2025| 146 | |141|[dnsperf](https://github.com/cobblau/dnsperf.git)|A DNS performance tool.|220||14-10-2017| 147 | |142|[docker-cheat-sheet](https://github.com/wsargent/docker-cheat-sheet.git)|Docker Cheat Sheet|22300|docker, cheet-sheet|31-12-2024| 148 | |143|[docker-development-youtube-series](https://github.com/marcel-dempers/docker-development-youtube-series.git)|-|5520||28-5-2025| 149 | |144|[dockerfiles](https://github.com/jessfraz/dockerfiles.git)|Various Dockerfiles I use on the desktop and on servers.|13848|dockerfiles, bash, docker, dockerfile, linux, shell, containers|27-3-2021| 150 | |145|[dokku](https://github.com/dokku/dokku.git)|A docker-powered PaaS that helps you build and manage the lifecycle of applications|30551||26-5-2025| 151 | |146|[draft-classic](https://github.com/Azure/draft-classic.git)|A tool for developers to create cloud-native applications on Kubernetes.|3913|kubernetes, helm, developer-tools, containers|26-2-2020| 152 | |147|[driftctl](https://github.com/snyk/driftctl.git)|Detect, track and alert on infrastructure drift|2543|infrastructure-drift, iac, terraform, aws, drift, infrastructure-as-code, hacktoberfest|7-4-2025| 153 | |148|[echo](https://github.com/labstack/echo.git)|High performance, minimalist Go web framework|31053|go, echo, web, middleware, microservice, websocket, ssl, letsencrypt, micro-framework, https, http2, web-framework, labstack-echo|22-5-2025| 154 | |149|[eks-node-viewer](https://github.com/awslabs/eks-node-viewer.git)|EKS Node Viewer|1430||| 155 | |150|[elasticsearch](https://github.com/elastic/elasticsearch.git)|Free and Open Source, Distributed, RESTful Search Engine|72826|elasticsearch, java, search-engine|31-5-2025| 156 | |151|[emissary](https://github.com/emissary-ingress/emissary.git)|open source Kubernetes-native API gateway for microservices built on the Envoy Proxy|4427|ambassador, kubernetes, gateway-api, microservice, cloud-native, api-gateway, docker, api-management, kubernetes-ingress, envoy-proxy, envoy, kubernetes-annotations|7-5-2025| 157 | |152|[eng-practices](https://github.com/google/eng-practices.git)|Google's Engineering Practices documentation|20201||19-9-2024| 158 | |153|[engineering-blogs](https://github.com/kilimchoi/engineering-blogs.git)|A curated list of engineering blogs|33104||5-6-2024| 159 | |154|[envoy](https://github.com/envoyproxy/envoy.git)|Cloud-native high-performance edge/middle/service proxy|26030|cats, rocket-ships, cars, more-cats, cats-over-dogs, nanoservices, corgis, cncf|1-6-2025| 160 | |155|[eruda](https://github.com/liriliri/eruda.git)|Console for mobile browsers|19689|console, mobile, debugger, developer-tools, eruda|| 161 | |156|[excalidraw](https://github.com/excalidraw/excalidraw.git)|Virtual whiteboard for sketching hand-drawn like diagrams|101022|productivity, collaboration, diagrams, drawing, whiteboard, canvas, hacktoberfest|29-5-2025| 162 | |157|[external-dns](https://github.com/kubernetes-sigs/external-dns.git)|Configure external DNS servers dynamically from Kubernetes resources|8229|dns, kubernetes, route53, aws, clouddns, gcp, ingress, k8s-sig-network, dns-record, dns-providers, external-dns, dns-controller, dns-servers|29-5-2025| 163 | |158|[faas](https://github.com/openfaas/faas.git)|OpenFaaS - Serverless Functions Made Simple|25677|functions-as-a-service, functions, lambda, serverless, prometheus, kubernetes, k8s, serverless-functions, paas, gitops, faas, docker, golang, nodejs|22-4-2025| 164 | |159|[face_recognition](https://github.com/ageitgey/face_recognition.git)|The world's simplest facial recognition api for Python and the command line|54834|machine-learning, face-detection, face-recognition, python|10-6-2022| 165 | |160|[faker](https://github.com/joke2k/faker.git)|Faker is a Python package that generates fake data for you.|18409|python, fake, testing, dataset, fake-data, test-data, test-data-generator, faker, faker-generator|14-5-2025| 166 | |161|[falcon](https://github.com/falconry/falcon.git)|The no-magic web API and microservices framework for Python developers, with an emphasis on reliability and performance at scale.|9655|python, rest, microservices, web, api, http, wsgi, asgi, api-rest|25-5-2025| 167 | |162|[fastapi-cache](https://github.com/long2ice/fastapi-cache.git)|fastapi-cache is a tool to cache fastapi response and function result, with backends support redis and memcached.|1575|cache, fastapi, redis, memcached|19-9-2024| 168 | |163|[fastapi-code-generator](https://github.com/koxudaxi/fastapi-code-generator.git)|This code generator creates FastAPI app from an openapi file.|1201|fastapi, openapi, generator, python, pydantic|29-4-2025| 169 | |164|[fastapi-versioning](https://github.com/DeanWay/fastapi-versioning.git)|api versioning for fastapi web applications|711||24-8-2021| 170 | |165|[fastapi_client](https://github.com/dmontagu/fastapi_client.git)|FastAPI client generator|340||11-2-2021| 171 | |166|[fastapi_profiler](https://github.com/sunhailin-Leo/fastapi_profiler.git)|A FastAPI Middleware of https://github.com/joerick/pyinstrument to check your service performance.|261||17-5-2024| 172 | |167|[fasthttp](https://github.com/valyala/fasthttp.git)|Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http|22599||24-5-2025| 173 | |168|[fauxpilot](https://github.com/fauxpilot/fauxpilot.git)|FauxPilot - an open-source alternative to GitHub Copilot server|14710||29-5-2023| 174 | |169|[first-contributions](https://github.com/firstcontributions/first-contributions.git)|🚀✨ Help beginners to contribute to open source projects|48685|open-source, tutorial, contribution, beginner, beginner-friendly, contributions-welcome, good-first-issue, contribute, good-first-contribution, good-first-pr|1-6-2025| 175 | |170|[flamethrower](https://github.com/DNS-OARC/flamethrower.git)|a DNS performance and functional testing utility supporting UDP, TCP, DoT and DoH|323|dns, performance, functional-testing|3-10-2023| 176 | |171|[flask-app-on-azure-functions](https://github.com/Azure-Samples/flask-app-on-azure-functions.git)|A sample to run a Flask app on Azure Functions|30||7-8-2024| 177 | |172|[flask-caching](https://github.com/pallets-eco/flask-caching.git)|A caching extension for Flask|920|flask, python, extension, cache|| 178 | |173|[flask-celery-example](https://github.com/miguelgrinberg/flask-celery-example.git)|This repository contains the example code for my blog article Using Celery with Flask.|1207||12-9-2021| 179 | |174|[flask-swagger-ui](https://github.com/sveint/flask-swagger-ui.git)|Swagger UI blueprint for flask|183||14-5-2025| 180 | |175|[flux](https://github.com/fluxcd/flux.git)|Successor: https://github.com/fluxcd/flux2|6884|kubernetes, gitops, legacy|| 181 | |176|[forcediphttpsadapter](https://github.com/Roadmaster/forcediphttpsadapter.git)|A requests TransportAdapter allowing to force a specific IP for HTTPS connections.|63||11-8-2023| 182 | |177|[fortio](https://github.com/fortio/fortio.git)|Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.|3531|golang, golang-library, golang-application, performance, performance-testing, performance-visualization, http, grpc, proxy, go|26-5-2025| 183 | |178|[fortio-operator](https://github.com/verfio/fortio-operator.git)|Load Testing Operator within the Kubernetes cluster and outside of it.|38||18-3-2019| 184 | |179|[frp](https://github.com/fatedier/frp.git)|A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.|94562|proxy, reverse-proxy, tunnel, nat, go, firewall, frp, expose, http-proxy, p2p|27-5-2025| 185 | |180|[fucking-algorithm](https://github.com/labuladong/fucking-algorithm.git)|刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why. |128060|leetcode, algorithms, interview-questions, data-structures, kmp, dynamic-programming, computer-science, dynamic-programming-algorithm|31-1-2025| 186 | |181|[full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template.git)|Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more.|33080|python, json, json-schema, docker, postgresql, frontend, backend, fastapi, traefik, letsencrypt, swagger, jwt, openapi, chakra-ui, react, tanstack-query, tanstack-router, typescript, sqlmodel|1-5-2025| 187 | |182|[fuzzywuzzy](https://github.com/seatgeek/fuzzywuzzy.git)|Fuzzy String Matching in Python|9259||9-9-2021| 188 | |183|[game_control](https://github.com/ChoudharyChanchal/game_control.git)|-|735||19-7-2020| 189 | |184|[generative-ai-for-beginners](https://github.com/microsoft/generative-ai-for-beginners.git)|21 Lessons, Get Started Building with Generative AI 🔗 https://microsoft.github.io/generative-ai-for-beginners/|84464|ai, chatgpt, dall-e, generativeai, gpt, azure, generative-ai, llms, openai, prompt-engineering, language-model, semantic-search, transformers, microsoft-for-beginners|29-5-2025| 190 | |185|[ghostfolio](https://github.com/ghostfolio/ghostfolio.git)|Open Source Wealth Management Software. Angular + NestJS + Prisma + Nx + TypeScript 🤍|5817|wealth-management, web, software, angular, typescript, prisma, portfolio, etf, stock, nestjs, tracker, oss, finance, fintech, investing, trading, personal-finance, hacktoberfest, ghostfolio|1-6-2025| 191 | |186|[gitbook](https://github.com/GitbookIO/gitbook.git)|The open source frontend for GitBook doc sites|27960|documentation, git, gitbook, markdown|30-5-2025| 192 | |187|[github-cheat-sheet](https://github.com/tiimgreen/github-cheat-sheet.git)|A list of cool features of Git and GitHub.|50934|awesome, awesome-list, list, github, git|15-10-2023| 193 | |188|[github-readme-stats](https://github.com/anuraghazra/github-readme-stats.git)|:zap: Dynamically generated stats for your github readmes|73546|profile-readme, dynamic, readme-generator, serverless, hacktoberfest, readme-stats|27-5-2025| 194 | |189|[github1s](https://github.com/conwnet/github1s.git)|One second to read GitHub code with VS Code.|23068|hacktoberfest, vscode|29-4-2025| 195 | |190|[gitops-engine](https://github.com/argoproj/gitops-engine.git)|Democratizing GitOps|1753|gitops, kubernetes, continuous-deployment|20-5-2025| 196 | |191|[glb-director](https://github.com/github/glb-director.git)|GitHub Load Balancer Director and supporting tooling.|2407||1-5-2025| 197 | |192|[go-fuzz](https://github.com/dvyukov/go-fuzz.git)|Randomized testing for Go|4834|fuzzing, testing, go|24-9-2024| 198 | |193|[go-github](https://github.com/google/go-github.git)|Go library for accessing the GitHub v3 API|10817|go, github-api, github, golang, hacktoberfest|31-5-2025| 199 | |194|[go-metrics](https://github.com/rcrowley/go-metrics.git)|Go port of Coda Hale's Metrics library|3473||1-4-2025| 200 | |195|[go-restful](https://github.com/emicklei/go-restful.git)|package for building REST-style Web Services using Go|5085|rest, go, customizable, routing, openapi|11-3-2025| 201 | |196|[go-spew](https://github.com/davecgh/go-spew.git)|Implements a deep pretty printer for Go data structures to aid in debugging|6243||30-8-2018| 202 | |197|[goaccess](https://github.com/allinurl/goaccess.git)|GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.|19385|goaccess, c, real-time, data-analysis, analytics, nginx, apache, webserver, web-analytics, monitoring, dashboard, command-line, gdpr, privacy, cli, tui, google-analytics, ncurses, terminal, caddy|28-5-2025| 203 | |198|[gods](https://github.com/emirpasic/gods.git)|GoDS (Go Data Structures) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more|16935|go, golang, data-structure, map, tree, set, list, stack, iterator, enumerable, sort, avl-tree, red-black-tree, b-tree, binary-heap, queue|12-3-2025| 204 | |199|[golang-web-dev](https://github.com/GoesToEleven/golang-web-dev.git)|-|3384||13-12-2019| 205 | |200|[goldmark](https://github.com/yuin/goldmark.git)|:trophy: A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.|4082|markdown, commonmark, golang, go|22-5-2025| 206 | |201|[google-api-python-client](https://github.com/googleapis/google-api-python-client.git)|🐍 The official Python client library for Google's discovery based APIs.|8236||27-5-2025| 207 | |202|[google-maps-services-python](https://github.com/googlemaps/google-maps-services-python.git)|Python client library for Google Maps API Web Services|4744|python, client-library|16-7-2024| 208 | |203|[googlesre](https://github.com/google/googlesre.git)|-|166||6-3-2025| 209 | |204|[goreleaser](https://github.com/goreleaser/goreleaser.git)|Release engineering, simplified|14677|homebrew, golang, travis, release-automation, docker, snapcraft, package, deb, rpm, go, apk, hacktoberfest, github-actions, archlinux, nix, nixos, rust, zig, bun, deno|31-5-2025| 210 | |205|[gotty](https://github.com/yudai/gotty.git)|Share your terminal as a web application|19045|tty, terminal, browser, web, go, websocket, javascript, typescript|13-12-2017| 211 | |206|[gotty](https://github.com/sorenisanerd/gotty.git)|Share your terminal as a web application|2258||25-3-2024| 212 | |207|[gping](https://github.com/orf/gping.git)|Ping, but with a graph|11647|rust, command-line, cli, ping, linux, graph, network-monitoring, shell|31-1-2025| 213 | |208|[gpt-pilot](https://github.com/Pythagora-io/gpt-pilot.git)|The first real AI developer|32745|ai, codegen, developer-tools, gpt-4, coding-assistant, research-project|4-3-2025| 214 | |209|[grafana](https://github.com/grafana/grafana.git)|The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more. |68241|grafana, monitoring, analytics, metrics, influxdb, prometheus, elasticsearch, alerting, data-visualization, go, dashboard, business-intelligence, mysql, postgres, hacktoberfest|1-6-2025| 215 | |210|[grequests](https://github.com/spyoungtech/grequests.git)|Requests + Gevent = <3|4560||8-8-2024| 216 | |211|[grumpy](https://github.com/giantswarm/grumpy.git)|Kubernetes Validation Admission Controller example|24||24-7-2020| 217 | |212|[guacamole-server](https://github.com/apache/guacamole-server.git)|Mirror of Apache Guacamole Server|3378|guacamole, c, network-client, java, network-server, javascript|30-5-2025| 218 | |213|[halo](https://github.com/manrajgrover/halo.git)|💫 Beautiful spinners for terminal, IPython and Jupyter|2949||16-6-2024| 219 | |214|[haproxy](https://github.com/haproxy/haproxy.git)|HAProxy Load Balancer's development branch (mirror of git.haproxy.org)|5642|haproxy, load-balancer, reverse-proxy, proxy, http, http2, cache, fastcgi, high-availability, https, ipv6, proxy-protocol, ddos-mitigation, tls13, high-performance, caching|30-5-2025| 220 | |215|[healthchecks](https://github.com/healthchecks/healthchecks.git)|Open-source cron job and background task monitoring service, written in Python & Django|8931|cron, devops, cron-jobs, monitoring, ops, django|16-5-2025| 221 | |216|[helm](https://github.com/helm/helm.git)|The Kubernetes Package Manager|27946|cncf, chart, kubernetes, helm, charts|31-5-2025| 222 | |217|[helm-git-repo](https://github.com/yks0000/helm-git-repo.git)|A Helm Repo (Automatically build index.yaml)|1||6-4-2021| 223 | |218|[hey](https://github.com/rakyll/hey.git)|HTTP load generator, ApacheBench (ab) replacement|18911||23-3-2021| 224 | |219|[homebrew-cask](https://github.com/Homebrew/homebrew-cask.git)|🍻 A CLI workflow for the administration of macOS applications distributed as binaries|21382|homebrew, cask, hacktoberfest|1-6-2025| 225 | |220|[homepage](https://github.com/gethomepage/homepage.git)|A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.|24031|homepage, nextjs, node, react, self-hosted, startpage, docker|1-6-2025| 226 | |221|[hoppscotch](https://github.com/hoppscotch/hoppscotch.git)|Open source API development ecosystem - https://hoppscotch.io (open-source alternative to Postman, Insomnia)|71932|api, api-client, api-rest, pwa, api-testing, vue, vuejs, tools, testing-tools, testing, graphql, websocket, developer-tools, spa, http-client, rest-api, rest, http, hacktoberfest|29-5-2025| 227 | |222|[howdoi](https://github.com/gleitz/howdoi.git)|instant coding answers via the command line|10718||22-10-2024| 228 | |223|[htmlq](https://github.com/mgdm/htmlq.git)|Like jq, but for HTML.|7303||15-4-2023| 229 | |224|[http2smugl](https://github.com/neex/http2smugl.git)|-|539||27-3-2025| 230 | |225|[httpstat](https://github.com/reorx/httpstat.git)|curl statistics made simple|6082||12-6-2023| 231 | |226|[httpstat](https://github.com/davecheney/httpstat.git)|It's like curl -v, with colours. |7140||11-1-2025| 232 | |227|[httpx](https://github.com/encode/httpx.git)|A next generation HTTP client for Python. 🦋|14128|python, http, trio, asyncio|2-5-2025| 233 | |228|[hub](https://github.com/mislav/hub.git)|A command-line tool that makes git easier to use with GitHub.|22910||4-10-2023| 234 | |229|[hubot-slack](https://github.com/slackapi/hubot-slack.git)|Slack Developer Kit for Hubot|2301|hubot-adapter, hubot, coffeescript, slack, slack-app, bot|25-10-2022| 235 | |230|[hygieia](https://github.com/hygieia/hygieia.git)|CapitalOne DevOps Dashboard|3785|devops, dashboard, hygieia, delivery-pipeline, visualization, continuous-delivery, continuous-deployment, continuous-integration|| 236 | |231|[inshellisense](https://github.com/microsoft/inshellisense.git)|IDE style command line auto complete|9295|autocomplete, bash, cli, fish, linux, macos, powershell, pwsh, terminal, windows, zsh, nushell, xonsh|23-5-2025| 237 | |232|[interactive-coding-challenges](https://github.com/donnemartin/interactive-coding-challenges.git)|120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.|30355|python, algorithm, data-structure, development, programming, coding, interview, interview-questions, interview-practice, competitive-programming|5-8-2020| 238 | |233|[interview](https://github.com/Olshansk/interview.git)|Everything you need to prepare for your technical interview|18089|interview, interview-questions, google-interview, list, guide|25-12-2024| 239 | |234|[inverno](https://github.com/werew/inverno.git)|An easy-to-use investment portfolio tracker|246|investment, investing, stock, stock-market, portfolio, trading, finance, finance-management, python|8-11-2023| 240 | |235|[ipython](https://github.com/ipython/ipython.git)|Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc.|16482|ipython, jupyter, data-science, notebook, python, repl, closember, hacktoberfest, spec-0|31-5-2025| 241 | |236|[iris](https://github.com/linkedin/iris.git)|Iris is a highly configurable and flexible service for paging and messaging.|828|paging, escalation, messaging, automation|18-1-2024| 242 | |237|[iris](https://github.com/kataras/iris.git)|The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio :rocket:|25503|go, iris, web-framework, mvc, golang, dependency-injection, http2, sessions, websocket|30-4-2025| 243 | |238|[it-tools](https://github.com/CorentinTh/it-tools.git)|Collection of handy online tools for developers, with great UX. |30323|vuejs, tools, tool, converter, website, frontend, developer-tools, developer-productivity, productivity, javascript, typescript|6-4-2025| 244 | |239|[ivy](https://github.com/ivy-llc/ivy.git)|Convert Machine Learning Code Between Frameworks|14208|python, machine-learning, deep-learning, neural-network, ivy, tensorflow, pytorch, numpy, jax, converter, translation, transpilation|29-4-2025| 245 | |240|[jaeger](https://github.com/jaegertracing/jaeger.git)|CNCF Jaeger, a Distributed Tracing Platform|21395|distributed-tracing, cncf, tracing, observability, jaeger, opentelemetry, hacktoberfest|30-5-2025| 246 | |241|[javascript-algorithms](https://github.com/trekhleb/javascript-algorithms.git)|📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings|191382|javascript, algorithms, algorithm, javascript-algorithms, computer-science, interview, data-structures, interview-preparation|12-2-2025| 247 | |242|[javascript-questions](https://github.com/lydiahallie/javascript-questions.git)|A long list of (advanced) JavaScript questions, and their explanations :sparkles: |63953||10-3-2024| 248 | |243|[jellyfin](https://github.com/jellyfin/jellyfin.git)|The Free Software Media System - Server Backend & API|40252|jellyfin, csharp, dotnet|31-5-2025| 249 | |244|[jira](https://github.com/pycontribs/jira.git)|Python Jira library. Development chat available on https://matrix.to/#/#pycontribs:matrix.org|2034|python, jira, python3-only|| 250 | |245|[jira](https://github.com/go-jira/jira.git)|simple jira command line client in Go|2692||7-5-2025| 251 | |246|[jq](https://github.com/jqlang/jq.git)|Command-line JSON processor|31834|jq|| 252 | |247|[jsii](https://github.com/aws/jsii.git)|jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!|2721|aws, node, cross-language, typescript, hacktoberfest|30-5-2025| 253 | |248|[jsonnet](https://github.com/google/jsonnet.git)|Jsonnet - The data templating language|7237|jsonnet, configuration, config, functional, json|22-5-2025| 254 | |249|[jsonschema](https://github.com/python-jsonschema/jsonschema.git)|An implementation of the JSON Schema specification for Python|4763|json-schema, json, validation, schema, jsonschema|26-5-2025| 255 | |250|[k6](https://github.com/grafana/k6.git)|A modern load testing tool, using Go and JavaScript - https://k6.io|27899|golang, load-testing, load-generator, javascript, es6, performance, go, hacktoberfest|| 256 | |251|[k6-benchmarks](https://github.com/grafana/k6-benchmarks.git)|-|35|keep|13-10-2023| 257 | |252|[k6-example-woocommerce](https://github.com/grafana/k6-example-woocommerce.git)|Example k6 scripts targeting a WooCommerce deployment|42|examples|21-2-2024| 258 | |253|[k8s-conformance](https://github.com/cncf/k8s-conformance.git)|🧪CNCF K8s Conformance Working Group|893|cncf, kubernetes, conformance|29-5-2025| 259 | |254|[k8sgpt](https://github.com/k8sgpt-ai/k8sgpt.git)|Giving Kubernetes Superpowers to everyone|6656|devops, kubernetes, openai, sre, tooling, ai, llama|27-5-2025| 260 | |255|[k9s](https://github.com/derailed/k9s.git)|🐶 Kubernetes CLI To Manage Your Clusters In Style!|29937|k9s, kubernetes, kubernetes-cli, kubernetes-clusters, k8s, k8s-cluster, go, golang|1-6-2025| 261 | |256|[kafdrop](https://github.com/obsidiandynamics/kafdrop.git)|Kafka Web UI|5838|kafka, kubernetes, docker, consumer-group, consumer-producer, pub-sub, event-sourcing, event-streaming, kafka-ui, kafka-utils, kafka-tools, zookeeper, web-ui, topic|30-5-2025| 262 | |257|[kafka-monitor](https://github.com/linkedin/kafka-monitor.git)|Xinfra Monitor monitors the availability of Kafka clusters by producing synthetic workloads using end-to-end pipelines to obtain derived vital statistics - E2E latency, service produce/consume availability, offsets commit availability & latency, message loss rate and more.|2036|kafka-monitor, kafka-cluster, monitor-topic, partition, broker, partition-count, leader, latency, cluster, metrics, kmf, kafka-broker, xinfra-monitor, monitor-single-clusters, reassigns-partition, jmx-metrics, clusters, xinfra, monitor, topic|22-3-2023| 263 | |258|[kaniko](https://github.com/GoogleContainerTools/kaniko.git)|Build Container Images In Kubernetes|15601|containers, docker, developer-tools, kubernetes|23-5-2025| 264 | |259|[kapacitor](https://github.com/influxdata/kapacitor.git)|Open source framework for processing, monitoring, and alerting on time series data|2343|kapacitor, monitoring, time-series|27-5-2025| 265 | |260|[kargo](https://github.com/akuity/kargo.git)|Application lifecycle orchestration|2394|argocd, gitops, k8s, kubernetes, cd, delivery|31-5-2025| 266 | |261|[karmada](https://github.com/karmada-io/karmada.git)|Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration|4852|cloud-native, kubernetes, multicloud, cloud-computing, containers, k8s, multi-cluster|30-5-2025| 267 | |262|[katib](https://github.com/kubeflow/katib.git)|Automated Machine Learning on Kubernetes|1581|ai, automl, huggingface, hyperparameter-tuning, jax, kubeflow, kubernetes, llm, machine-learning, mlops, neural-architecture-search, pytorch, scikit-learn, tensorflow|13-5-2025| 268 | |263|[keras-yolo2](https://github.com/experiencor/keras-yolo2.git)|Easy training on custom dataset. Various backends (MobileNet and SqueezeNet) supported. A YOLO demo to detect raccoon run entirely in brower is accessible at https://git.io/vF7vI (not on Windows).|1736|convolutional-networks, deep-learning, yolo2, realtime, regression|31-12-2019| 269 | |264|[kgateway](https://github.com/kgateway-dev/kgateway.git)|The Cloud-Native API Gateway and AI Gateway|4533|envoy, api-gateway, serverless, api-management, kubernetes, kubernetes-ingress-controller, microservices, hybrid-apps, legacy-apps, grpc, cloud-native, envoy-proxy|31-5-2025| 270 | |265|[kind](https://github.com/kubernetes-sigs/kind.git)|Kubernetes IN Docker - local clusters for testing Kubernetes|14183|k8s-sig-testing, kubernetes, kubeadm, golang, docker, podman|21-5-2025| 271 | |266|[kong](https://github.com/Kong/kong.git)|🦍 The Cloud-Native API Gateway and AI Gateway.|40941|api-gateway, nginx, luajit, microservices, api-management, serverless, apis, consul, docker, reverse-proxy, cloud-native, microservice, kong, devops, kubernetes, kubernetes-ingress-controller, kubernetes-ingress, ai, artificial-intelligence, ai-gateway|30-5-2025| 272 | |267|[kopf](https://github.com/nolar/kopf.git)|A Python framework to write Kubernetes operators in just a few lines of code|2322|kubernetes, kubernetes-operator, kubernetes-operators, python, python3, framework, asyncio, operator, operators, python-framework, kopf, admission-webhook, admission-controller, admission-controllers, operator-framework, kubernetes-concepts|12-5-2025| 273 | |268|[krew](https://github.com/kubernetes-sigs/krew.git)|📦 Find and install kubectl plugins|6636|kubectl, kubectl-plugins, k8s-sig-cli|21-5-2025| 274 | |269|[kube-capacity](https://github.com/robscott/kube-capacity.git)|A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster|2379|kubernetes, utilization, resource-management|29-3-2025| 275 | |270|[kube-forwarder](https://github.com/pixel-point/kube-forwarder.git)|Easy to use Kubernetes port forwarding manager|1116||1-4-2021| 276 | |271|[kube-linter](https://github.com/stackrox/kube-linter.git)|KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.|3191|static-analysis, yaml-files, helm-charts, kubernetes, hactoberfest|21-5-2025| 277 | |272|[kube2iam](https://github.com/jtblin/kube2iam.git)|kube2iam provides different AWS IAM roles for pods running on Kubernetes|2011||27-5-2025| 278 | |273|[kubebuilder](https://github.com/kubernetes-sigs/kubebuilder.git)|Kubebuilder - SDK for building Kubernetes APIs using CRDs|8466|k8s-sig-api-machinery|1-6-2025| 279 | |274|[kubectl-aliases](https://github.com/ahmetb/kubectl-aliases.git)|Programmatically generated handy kubectl aliases.|3532|kubernetes, kubectl|11-5-2025| 280 | |275|[kubectl-cost](https://github.com/kubecost/kubectl-cost.git)|CLI for determining the cost of Kubernetes workloads|969||1-4-2025| 281 | |276|[kubectl-tree](https://github.com/ahmetb/kubectl-tree.git)|kubectl plugin to browse Kubernetes object hierarchies as a tree 🎄 (star the repo if you are using)|3148||19-5-2025| 282 | |277|[kubectx](https://github.com/ahmetb/kubectx.git)|Faster way to switch between clusters and namespaces in kubectl|18640|kubernetes, kubectl, kubectl-plugins, kubernetes-clusters|22-1-2025| 283 | |278|[kubeflow](https://github.com/kubeflow/kubeflow.git)|Machine Learning Toolkit for Kubernetes|15011|ml, kubernetes, minikube, tensorflow, notebook, google-kubernetes-engine, jupyter, machine-learning, kubeflow|12-4-2025| 284 | |279|[kubernetes-external-secrets](https://github.com/external-secrets/kubernetes-external-secrets.git)|Integrate external secret management systems with Kubernetes|2597|kubernetes, secrets-management, aws, aws-secrets-manager, vault, hashicorp, kubernetes-external-secrets, secrets-manager|28-5-2022| 285 | |280|[kubernetes-handbook](https://github.com/rootsongjc/kubernetes-handbook.git)|Kubernetes中文指南/云原生应用架构实战手册|11250|kubernetes, cloud-native, service-mesh, handbook, cncf, gitbook, k8s, istio|30-7-2024| 286 | |281|[kubernetes-network-policy-recipes](https://github.com/ahmetb/kubernetes-network-policy-recipes.git)|Example recipes for Kubernetes Network Policies that you can just copy paste|5941|kubernetes, networking, security|7-2-2025| 287 | |282|[kubeshark](https://github.com/kubeshark/kubeshark.git)|The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters. Inspired by Wireshark, purposely built for Kubernetes|11370|kubernetes, microservices, golang, rest, grpc, amqp, kafka, redis, go, microservice, microservices-application, devops, devops-tools, sniffer, observability, wireshark, cloud-native, docker, forensics, incident-response|| 288 | |283|[kubesphere](https://github.com/kubesphere/kubesphere.git)|The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️|16015|devops, container-management, k8s, cncf, cloud-native, servicemesh, kubesphere, kubernetes-platform-solution, kubernetes, jenkins, istio, observability, multi-cluster, hacktoberfest, argocd, ebpf, llm|29-5-2025| 289 | |284|[kubespray](https://github.com/kubernetes-sigs/kubespray.git)|Deploy a Production Ready Kubernetes Cluster|17142|kubernetes-cluster, ansible, kubernetes, high-availability, bare-metal, gce, aws, kubespray, k8s-sig-cluster-lifecycle, hacktoberfest|26-5-2025| 290 | |285|[kubetools](https://github.com/collabnix/kubetools.git)|Kubetools - Curated List of Kubernetes Tools|3119|hacktoberfest, hacktoberfest2020, kubernetes, helm, helmpack, helmcharts, jenkins, iot, monitoring, monitoring-tool, prometheus, thanos, grafana, kubernetes-clusters, kubernetes-operational, kubernetes-resource, k8s-cluster, kubernetes-cli|29-5-2025| 291 | |286|[kudu](https://github.com/projectkudu/kudu.git)|Kudu is the engine behind git/hg deployments, WebJobs, and various other features in Azure Web Sites. It can also run outside of Azure.|3131||4-9-2024| 292 | |287|[labs](https://github.com/docker/labs.git)|This is a collection of tutorials for learning how to use Docker with various tools. Contributions welcome.|11674|docker-tutorial, lab, swarm, docker, docker-compose, swarm-mode, orchestration, windows, dotnet, java, security, containers|18-4-2022| 293 | |288|[landscape](https://github.com/cncf/landscape.git)|🌄 The Cloud Native Interactive Landscape filters and sorts hundreds of projects and products, and shows details including GitHub stars, funding, first and last commits, contributor counts and headquarters location.|9588|cloud-native, landscape, cncf, svg, logo, serverless, crunchbase, wasm|29-5-2025| 294 | |289|[learn-regex](https://github.com/ziishaned/learn-regex.git)|Learn regex the easy way|46016||27-3-2025| 295 | |290|[learnopencv](https://github.com/spmallick/learnopencv.git)|Learn OpenCV : C++ and Python Examples|21953|computer-vision, machine-learning, ai, deep-learning, deep-neural-networks, deeplearning, computervision, opencv, opencv-python, opencv-library, opencv3, opencv-cpp, opencv-tutorial|27-5-2025| 296 | |291|[leetcode](https://github.com/gouthampradhan/leetcode.git)|Leetcode solutions|3302|leetcode-solutions, leetcode-java, leetcode, algorithms, java, coding-interviews, competitive-programming|19-12-2024| 297 | |292|[lettuce](https://github.com/redis/lettuce.git)|Advanced Java Redis client for thread-safe sync, async, and reactive usage. Supports Cluster, Sentinel, Pipelining, and codecs.|5583|java, redis, asynchronous, reactive, redis-sentinel, redis-cluster, azure-redis-cache, aws-elasticache, redis-client|29-5-2025| 298 | |293|[leveldb](https://github.com/google/leveldb.git)|LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.|37690||30-1-2025| 299 | |294|[life](https://github.com/cheeaun/life.git)|Life - a timeline of important events in my life|2887||14-10-2018| 300 | |295|[linkedin-skill-assessments-quizzes](https://github.com/Ebazhanov/linkedin-skill-assessments-quizzes.git)|Full reference of LinkedIn answers 2024 for skill assessments (aws-lambda, rest-api, javascript, react, git, html, jquery, mongodb, java, Go, python, machine-learning, power-point) linkedin excel test lösungen, linkedin machine learning test LinkedIn test questions and answers |28641||22-5-2025| 301 | |296|[linkerd2](https://github.com/linkerd/linkerd2.git)|Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.|10964|service-mesh, rust, golang, kubernetes, linkerd, cloud-native|29-5-2025| 302 | |297|[linux](https://github.com/torvalds/linux.git)|Linux kernel source tree|194736||1-6-2025| 303 | |298|[litestream](https://github.com/benbjohnson/litestream.git)|Streaming replication for SQLite.|12182|sqlite, replication, s3|28-4-2025| 304 | |299|[litmus](https://github.com/litmuschaos/litmus.git)|Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q|4699|chaos-engineering, kubernetes, chaos-experiments, cloud-native, chaoshub, hacktoberfest, cncf, operator-sdk, site-reliability-engineering, golang, chaos-testing, fault-injection, google-summer-of-code, devops, fault-simulation, litmuschaos, reliability-engineering, resilience-testing, k8s, lfx|21-5-2025| 305 | |300|[localstack](https://github.com/localstack/localstack.git)|💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline|59133|aws, localstack, testing, continuous-integration, developer-tools, python, cloud|30-5-2025| 306 | |301|[locust](https://github.com/locustio/locust.git)|Write scalable load tests in plain Python 🚗💨|26240|locust, python, load-testing, performance-testing, http, benchmarking, load-generator, load-test, load-tests, performance, hacktoberfest|28-5-2025| 307 | |302|[logfire](https://github.com/pydantic/logfire.git)|Uncomplicated Observability for Python and beyond! 🪵🔥|3172|fastapi, logging, observability, openai, opentelemetry, pydantic, python, trace, metrics|30-5-2025| 308 | |303|[logrus](https://github.com/sirupsen/logrus.git)|Structured, pluggable logging for Go.|25270|logging, logrus, go|18-11-2024| 309 | |304|[machine](https://github.com/docker/machine.git)|Machine management for a container-centric world|6648||2-9-2019| 310 | |305|[manage-fastapi](https://github.com/ycd/manage-fastapi.git)|:rocket: CLI tool for FastAPI. Generating new FastAPI projects & boilerplates made easy. |1754|fastapi, boilerplate, cli, project-generator, mongodb, postgresql, sqlite, mysql, tortoise-orm, databases, project-management-tool, project-management|1-8-2023| 311 | |306|[marathon](https://github.com/d2iq-archive/marathon.git)|Deploy and manage containers (including Docker) on top of Apache Mesos at scale.|4057|dcos-orchestration-guild, dcos|27-7-2021| 312 | |307|[mattermost](https://github.com/mattermost/mattermost.git)|Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..|32683|collaboration, mattermost, golang, react-native, hacktoberfest, monorepo, react|1-6-2025| 313 | |308|[maybe](https://github.com/maybe-finance/maybe.git)|The personal finance app for everyone|44461|finance, personal-finance, postgresql, hotwire, ruby, ruby-on-rails, stimulusjs, turbo|1-6-2025| 314 | |309|[memray](https://github.com/bloomberg/memray.git)|Memray is a memory profiler for Python|14008|memory, memory-leak, memory-leak-detection, memory-profiler, profiler, python, python3, hacktoberfest|21-5-2025| 315 | |310|[memtier_benchmark](https://github.com/RedisLabs/memtier_benchmark.git)|NoSQL Redis and Memcache traffic generation and benchmarking tool.|966|redis, benchmark, memcached, load-testing, stress-testing|28-5-2025| 316 | |311|[microsoft-authentication-library-for-python](https://github.com/AzureAD/microsoft-authentication-library-for-python.git)|Microsoft Authentication Library (MSAL) for Python makes it easy to authenticate to Microsoft Entra ID. General docs are available here https://learn.microsoft.com/entra/msal/python/ Stable APIs are documented here https://msal-python.readthedocs.io. Questions can be asked on www.stackoverflow.com with tag "msal" + "python".|891|msal-python, azure, sdks, microsoft-identity-platform|20-5-2025| 317 | |312|[minio](https://github.com/minio/minio.git)|MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.|52826|go, storage, cloud, s3, objectstorage, cloudstorage, amazon-s3, cloudnative, k8s, kubernetes, multi-cloud, multi-cloud-kubernetes|27-5-2025| 318 | |313|[missil](https://github.com/ericmiguel/missil.git)|Simple FastAPI declarative endpoint-level access control.|98|fastapi, fastapi-extension, python, api, web, fastapi-framework, framework|5-5-2024| 319 | |314|[mito](https://github.com/mito-ds/mito.git)|Jupyter extensions that help you write code faster: Context aware AI Chat, Autocomplete, and Spreadsheet|2462|data-science, python, data, data-visualization, data-analysis, jupyter, pandas, streamlit-component, ai, jupyterhub, jupyterlab, jupyterlab-extension|30-5-2025| 320 | |315|[mkdocs-material](https://github.com/squidfunk/mkdocs-material.git)|Documentation that simply works|23482|mkdocs, theme, documentation, material-design, framework, plugins|1-6-2025| 321 | |316|[moby](https://github.com/moby/moby.git)|The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems|69816|docker, containers, go, golang|31-5-2025| 322 | |317|[moto](https://github.com/getmoto/moto.git)|A library that allows you to easily mock out tests based on AWS infrastructure.|7886|boto, aws, ec2, s3|31-5-2025| 323 | |318|[ms-identity-python-webapi-azurefunctions](https://github.com/Azure-Samples/ms-identity-python-webapi-azurefunctions.git)|Python Azure Function Web API secured by Azure AD|39||4-2-2021| 324 | |319|[nativefier](https://github.com/nativefier/nativefier.git)|Make any web page a desktop application|35191|nodejs, electron, linux, windows, macos, desktop-application|29-9-2023| 325 | |320|[netdata](https://github.com/netdata/netdata.git)|X-Ray Vision for your infrastructure!|74671|monitoring, docker, statsd, kubernetes, cncf, prometheus, netdata, devops, observability, alerting, influxdb, grafana, data-visualization, database, linux, machine-learning, mysql, postgresql, mongodb, raspberry-pi|| 326 | |321|[ngrok](https://github.com/inconshreveable/ngrok.git)|Unified ingress for developers|24333||26-4-2024| 327 | |322|[nicstat](https://github.com/scotte/nicstat.git)|Fork of https://sourceforge.net/projects/nicstat/ to fix bugs|65||9-5-2018| 328 | |323|[novu](https://github.com/novuhq/novu.git)|The open-source notification Inbox infrastructure. E-mail, SMS, Push and Slack Integrations.|37015|notifications, communication, email, sms, push-notifications, transactional, javascript, typescript, nodejs, notification-center, react, reactjs, hacktoberfest, inbox, novu, alternative|1-6-2025| 329 | |324|[ntopng](https://github.com/ntop/ntopng.git)|Web-based Traffic and Security Network Traffic Monitoring|6719|ntopng, realtime, network, sflow, ipfix, traffic-monitoring, packet-analyser, packet-processing, netflow, snmp, ebpf, docker, kubernetes|30-5-2025| 330 | |325|[nuclei](https://github.com/projectdiscovery/nuclei.git)|Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.|23491||27-5-2025| 331 | |326|[octant](https://github.com/vmware-archive/octant.git)|Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.|6267|golang, octant, kubernetes-clusters, go, kubernetes|19-1-2023| 332 | |327|[octodns](https://github.com/octodns/octodns.git)|Tools for managing DNS across multiple providers|3362|dns, workflow, infrastructure-as-code|| 333 | |328|[og-aws](https://github.com/open-guides/og-aws.git)|📙 Amazon Web Services — a practical guide|36016||24-8-2022| 334 | |329|[ohmyzsh](https://github.com/ohmyzsh/ohmyzsh.git)|🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.|178902|shell, zsh-configuration, theme, terminal, productivity, zsh, cli, cli-app, themes, plugins, plugin-framework, oh-my-zsh, ohmyzsh, oh-my-zsh-theme, oh-my-zsh-plugin, hacktoberfest|29-5-2025| 335 | |330|[onedev](https://github.com/theonedev/onedev.git)|Git Server with CI/CD, Kanban, and Packages. Seamless integration. Unparalleled experience.|14019|git, devops, self-hosted, ci-cd, kanban, packages|1-6-2025| 336 | |331|[open-webui](https://github.com/open-webui/open-webui.git)|User-friendly AI Interface (Supports Ollama, OpenAI API, ...)|97071|ollama, ollama-webui, llm, webui, self-hosted, llm-ui, llm-webui, llms, rag, ai, open-webui, ui, openai, mcp, openapi|29-5-2025| 337 | |332|[openapi-generator](https://github.com/OpenAPITools/openapi-generator.git)|OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)|23887|rest-api, rest-client, sdk, generator, restful-api, api, api-client, api-server, openapi3, openapi, rest, openapi-generator, hacktoberfest|1-6-2025| 338 | |333|[openapi-python-client](https://github.com/openapi-generators/openapi-python-client.git)|Generate modern Python clients from OpenAPI|1568|openapi, openapi-python-client, python3, generator, rest-api, python, fastapi, openapi-document, openapi3, openapi31|26-5-2025| 339 | |334|[opencost](https://github.com/opencost/opencost.git)|Cost monitoring for Kubernetes workloads and cloud costs|5801|kubernetes, opencost, aws, azure, cncf, cost, cost-optimization, gcp, k8s, monitoring, finops, prometheus|30-5-2025| 340 | |335|[opencv](https://github.com/opencv/opencv.git)|Open Source Computer Vision Library|82442|opencv, c-plus-plus, computer-vision, deep-learning, image-processing|30-5-2025| 341 | |336|[opencv-python](https://github.com/opencv/opencv-python.git)|Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages.|4844|opencv, python, wheel, python-3, opencv-python, opencv-contrib-python, precompiled, pypi, manylinux|19-5-2025| 342 | |337|[opengrok](https://github.com/oracle/opengrok.git)|OpenGrok is a fast and usable source code search and cross reference engine, written in Java|4529|opengrok, java, source, code, search, engine, maven|27-5-2025| 343 | |338|[ora](https://github.com/sindresorhus/ora.git)|Elegant terminal spinner|9345||2-2-2025| 344 | |339|[ort](https://github.com/oss-review-toolkit/ort.git)|A suite of tools to automate software compliance checks.|1751|package-manager, dependencies, dependency-graph, license, copyright, spdx, compliance, oss-compliance, license-management, sbom, sbom-generator, open-source-licensing, ospo, cyclonedx, sca, hacktoberfest, cra, dora|31-5-2025| 345 | |340|[oss-fuzz](https://github.com/google/oss-fuzz.git)|OSS-Fuzz - continuous fuzzing for open source software.|11064|fuzzing, security, stability, oss-fuzz, fuzz-testing, vulnerabilities|1-6-2025| 346 | |341|[outrun](https://github.com/Overv/outrun.git)|Execute a local command using the processing power of another Linux machine.|3135||24-1-2023| 347 | |342|[owl](https://github.com/camel-ai/owl.git)|🦉 OWL: Optimized Workforce Learning for General Multi-Agent Assistance in Real-World Task Automation|16759|agent, artificial-intelligence, multi-agent-systems, task-automation, web-interaction|30-5-2025| 348 | |343|[owl](https://github.com/odoo/owl.git)|OWL: A web framework for structured, dynamic and maintainable applications|1396||3-4-2025| 349 | |344|[pace](https://github.com/CodeByZach/pace.git)|Automatically add a progress bar to your site.|15679|pace, progress-bar, pace-js, loading-bar, loading-indicator, loading-animation|26-2-2024| 350 | |345|[packer](https://github.com/hashicorp/packer.git)|Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.|15384||| 351 | |346|[pendulum](https://github.com/python-pendulum/pendulum.git)|Python datetimes made easy|6448|python, datetime, date, time, python3, timezones|| 352 | |347|[perf-tools](https://github.com/brendangregg/perf-tools.git)|Performance analysis tools based on Linux perf_events (aka perf) and ftrace|10135||14-1-2020| 353 | |348|[pex](https://github.com/pex-tool/pex.git)|A tool for generating .pex (Python EXecutable) files, lock files and venvs.|3971||1-6-2025| 354 | |349|[pi-hole](https://github.com/pi-hole/pi-hole.git)|A black hole for Internet advertisements|52026|pi-hole, ad-blocker, shell, blocker, raspberry-pi, cloud, dnsmasq, dhcp, dhcp-server, dns-server, dashboard|30-5-2025| 355 | |350|[pinpoint](https://github.com/pinpoint-apm/pinpoint.git)|APM, (Application Performance Management) tool for large-scale distributed systems. |13628|apm, monitoring, performance, agent, distributed-tracing, tracing|30-5-2025| 356 | |351|[pipeline](https://github.com/tektoncd/pipeline.git)|A cloud-native Pipeline resource.|8663|tekton, pipeline, kubernetes, cdf, hacktoberfest|29-5-2025| 357 | |352|[pipenv](https://github.com/pypa/pipenv.git)| Python Development Workflow for Humans.|25053|pip, python, packaging, virtualenv, pipfile|29-5-2025| 358 | |353|[pod-reaper](https://github.com/target/pod-reaper.git)|Rule based pod killing kubernetes controller|207|go, kubernetes, chaos, resiliency|| 359 | |354|[poetry](https://github.com/python-poetry/poetry.git)|Python packaging and dependency management made easy|33236|python, dependency-manager, package-manager, packaging, poetry|31-5-2025| 360 | |355|[pongo2](https://github.com/flosch/pongo2.git)|Django-syntax like template-engine for Go|2953|template, go, django, template-engine, pongo2, templates, template-language, golang, golang-library|11-4-2023| 361 | |356|[portainer](https://github.com/portainer/portainer.git)|Making Docker and Kubernetes management easy.|33103|docker, docker-swarm, ui, docker-deployment, docker-compose, docker-container, docker-image, portainer, docker-ui, dockerfile, moby, hacktoberfest, kubernetes|30-5-2025| 362 | |357|[practical-kubernetes-problems](https://github.com/kubernauts/practical-kubernetes-problems.git)|Used by our Practical Kubernetes Trainings.|358||31-12-2022| 363 | |358|[pre-commit-terraform](https://github.com/antonbabenko/pre-commit-terraform.git)|pre-commit git hooks to take care of Terraform configurations 🇺🇦|3443||30-5-2025| 364 | |359|[predictive-horizontal-pod-autoscaler](https://github.com/jthomperoo/predictive-horizontal-pod-autoscaler.git)|Horizontal Pod Autoscaler built with predictive abilities using statistical models|343|predictive-analytics, kubernetes, autoscaler, horizontal-pod-autoscaler, predictions, statistical-models, replicas, autoscaling, go, golang, operator, operator-framework, operator-sdk, python, statsmodels|1-7-2023| 365 | |360|[professional-programming](https://github.com/charlax/professional-programming.git)|A collection of learning resources for curious software engineers|47653|read-articles, programmer, professional, scalability, concepts, documentation, lessons-learned, engineer, programming-language, learning, architecture, computer-science, software-engineering|31-5-2025| 366 | |361|[professional-services](https://github.com/GoogleCloudPlatform/professional-services.git)|Common solutions and tools developed by Google Cloud's Professional Services team. This repository and its contents are not an officially supported Google product.|2900||27-5-2025| 367 | |362|[profile-summary-for-github](https://github.com/tipsy/profile-summary-for-github.git)|Tool for visualizing GitHub profiles|19885|kotlin, webapp, github-api, javalin|7-7-2023| 368 | |363|[project-layout](https://github.com/golang-standards/project-layout.git)|Standard Go Project Layout|52545|go, golang, project-template, standards, project-structure|| 369 | |364|[projen](https://github.com/projen/projen.git)|Rapidly build modern applications with advanced configuration management|2803|cdk, constructs, aws-cdk, repository-management, repository-tools, typescript, generator, scaffolding, templates, jsii, hacktoberfest|1-6-2025| 370 | |365|[prometheus](https://github.com/prometheus/prometheus.git)|The Prometheus monitoring system and time series database.|58776|monitoring, metrics, alerting, graphing, time-series, prometheus, hacktoberfest|31-5-2025| 371 | |366|[prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator.git)|Instrument your FastAPI with Prometheus metrics.|1145|prometheus, fastapi, metrics, exporter, instrumentation|19-3-2025| 372 | |367|[prometheus-operator](https://github.com/prometheus-operator/prometheus-operator.git)|Prometheus Operator creates/configures/manages Prometheus clusters atop Kubernetes|9476|kubernetes, prometheus, monitoring, hacktoberfest|30-5-2025| 373 | |368|[protobuf](https://github.com/protocolbuffers/protobuf.git)|Protocol Buffers - Google's data interchange format|67651|protobuf, protocol-buffers, protocol-compiler, protobuf-runtime, protoc, serialization, marshalling, rpc|31-5-2025| 374 | |369|[pulumi](https://github.com/pulumi/pulumi.git)|Pulumi - Infrastructure as Code in any programming language 🚀|23160|infrastructure-as-code, serverless, containers, aws, azure, gcp, kubernetes, cloud, cloud-computing, iac, csharp, typescript, javascript, golang, go, dotnet, fsharp, python|31-5-2025| 375 | |370|[py-spy](https://github.com/benfred/py-spy.git)|Sampling profiler for Python programs|13725|profiler, python, performance-analysis, profiling|1-11-2024| 376 | |371|[pyWhat](https://github.com/bee-san/pyWhat.git)|🐸 Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it'll tell you what it is! 🧙‍♀️|6899|cyber, security, hacking, cybersecurity, malware, re, python, pcap, malware-analysis, malware-research, tryhackme, hacktoberfest|16-5-2023| 377 | |372|[pycurl](https://github.com/pycurl/pycurl.git)|PycURL - Python interface to libcurl|1113|http-client, python, libcurl, libcurl-bindings|7-3-2025| 378 | |373|[pydantic](https://github.com/pydantic/pydantic.git)|Data validation using Python type hints|24038|validation, parsing, json-schema, pydantic, python39, python, hints, python310, python311, python312, python313|1-6-2025| 379 | |374|[pyenv](https://github.com/pyenv/pyenv.git)|Simple Python version management|42212|python, shell|26-5-2025| 380 | |375|[pygradle](https://github.com/linkedin/pygradle.git)|Using Gradle to build Python projects|599|gradle, python, linkedin|3-3-2020| 381 | |376|[pyinotify](https://github.com/seb-m/pyinotify.git)|Monitoring filesystems events with inotify on Linux.|2297||4-6-2015| 382 | |377|[pyinstrument](https://github.com/joerick/pyinstrument.git)|🚴 Call stack profiler for Python. Shows you why your code is slow!|7117|python, django, profiler, performance, profile, async|| 383 | |378|[pykiteconnect](https://github.com/zerodha/pykiteconnect.git)|The official Python client library for the Kite Connect trading APIs|1116||7-2-2024| 384 | |379|[pyroscope](https://github.com/grafana/pyroscope.git)|Continuous Profiling Platform. Debug performance issues down to a single line of code|10593|continuous-profiling, profiling, performance, golang, ruby, python, find-bottlenecks, linux, pyroscope, observability, monitoring, devops, developer-tools, hacktoberfest|29-5-2025| 385 | |380|[pyscript](https://github.com/pyscript/pyscript.git)|PyScript is an open source platform for Python in the browser. Try PyScript: https://pyscript.com Examples: https://tinyurl.com/pyscript-examples Community: https://discord.gg/HxvBtukrg2|18382|python, html, javascript, wasm|21-5-2025| 386 | |381|[pytest](https://github.com/pytest-dev/pytest.git)|The pytest framework makes it easy to write small tests, yet scales to support complex functional testing|12748||1-6-2025| 387 | |382|[python](https://github.com/kubernetes-client/python.git)|Official Python client library for kubernetes|7122|kubernetes, client-python, k8s, library, k8s-sig-api-machinery|27-5-2025| 388 | |383|[python-cheatsheet](https://github.com/gto76/python-cheatsheet.git)|Comprehensive Python Cheatsheet|37229|cheatsheet, python, reference, python-cheatsheet|31-5-2025| 389 | |384|[python-concurrency](https://github.com/volker48/python-concurrency.git)|Code examples from my toptal engineering blog article|156|python, python-concurrency, asyncio, multiprocessing|1-3-2021| 390 | |385|[python-container](https://github.com/googleapis/python-container.git)|This library has moved to https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-container|44||29-9-2023| 391 | |386|[python-patterns](https://github.com/faif/python-patterns.git)|A collection of design patterns/idioms in Python|41465|python, idioms, design-patterns|7-5-2025| 392 | |387|[python-prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit.git)|Library for building powerful interactive command line applications in Python|9717||15-4-2025| 393 | |388|[python-slack-sdk](https://github.com/slackapi/python-slack-sdk.git)|Slack Developer Kit for Python|3914|python, slack, slackapi, asyncio, aiohttp-client, aiohttp, websockets, websocket, websocket-client, socket-mode|30-5-2025| 394 | |389|[python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot.git)|We have made you a wrapper you can't refuse|27611|python, telegram, bot, chatbot, framework|28-5-2025| 395 | |390|[python-terraform](https://github.com/beelit94/python-terraform.git)|-|479|terraform, python|21-6-2022| 396 | |391|[rancher](https://github.com/rancher/rancher.git)|Complete container management platform|24224|rancher, docker, kubernetes, orchestration, cattle, containers|30-5-2025| 397 | |392|[ray](https://github.com/ray-project/ray.git)|Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.|37312|ray, distributed, parallel, machine-learning, reinforcement-learning, deep-learning, python, rllib, hyperparameter-search, optimization, data-science, hyperparameter-optimization, serving, deployment, pytorch, tensorflow, llm-serving, large-language-models, llm, llm-inference|31-5-2025| 398 | |393|[reactjs-interview-questions](https://github.com/sudheerj/reactjs-interview-questions.git)|List of top 500 ReactJS Interview Questions & Answers....Coding exercise questions are coming soon!!|42094|reactjs, react-router, redux, javascript, javascript-framework, react-native, interview-questions, interview-preparation, react, react-interview-questions, javascript-interview-questions, react16, javascript-applications|22-5-2025| 399 | |394|[recommenders](https://github.com/recommenders-team/recommenders.git)|Best Practices on Recommendation Systems|20292||| 400 | |395|[redis](https://github.com/redis/redis.git)|For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.|69449|database, key-value, nosql, redis, caching, distributed-systems, open-source, real-time, time-series, cache, in-memory, in-memory-database, key-value-store, message-broker, no-sql, message-queue, realtime, vector-search, vector-databases, json|28-5-2025| 401 | |396|[redis-py](https://github.com/redis/redis-py.git)|Redis Python client|13074|python, redis, redis-client, redis-cluster, redis-py|29-5-2025| 402 | |397|[requests](https://github.com/psf/requests.git)|A simple, yet elegant, HTTP library.|52914|python, http, forhumans, requests, python-requests, client, humans, cookies|| 403 | |398|[rest.li](https://github.com/linkedin/rest.li.git)|Rest.li is a REST+JSON framework for building robust, scalable service architectures using dynamic discovery and simple asynchronous APIs.|2521||27-5-2025| 404 | |399|[resume-cli](https://github.com/jsonresume/resume-cli.git)|CLI tool to easily setup a new resume 📑|4628|cli, javascript, resume, json|3-4-2024| 405 | |400|[rich](https://github.com/Textualize/rich.git)|Rich is a Python library for rich text and beautiful formatting in the terminal.|52213|python, python3, python-library, terminal, terminal-color, markdown, tables, syntax-highlighting, ansi-colors, progress-bar-python, progress-bar, traceback, rich, tracebacks-rich, emoji, tui|19-5-2025| 406 | |401|[rook](https://github.com/rook/rook.git)|Storage Orchestration for Kubernetes|12848|storage, kubernetes, ceph, storage-cluster, docker, cloud-native, etcd, cncf|30-5-2025| 407 | |402|[rover](https://github.com/im2nguyen/rover.git)|Interactive Terraform visualization. State and configuration explorer.|3138|terraform, visualization, interactive-visualizations, diagram|9-10-2023| 408 | |403|[roxy-wi](https://github.com/roxy-wi/roxy-wi.git)|Web interface for managing Haproxy, Nginx, Apache and Keepalived servers|1641|haproxy-servers, web-interface, management, web-manager, web-gui, gui, webui, haproxy-configuration, haproxy-status, haproxy-gui, haproxy-managment, high-availibility, loadbalancer, lbs, waf, nginx, keepalived-servers, monitoring, roxy-wi, apache|27-5-2025| 409 | |404|[rudder-server](https://github.com/rudderlabs/rudder-server.git)|Privacy and Security focused Segment-alternative, in Golang and React |4194|privacy, warehouse-management, data-warehouse, customer-data, customer-data-pipeline, customer-data-platform, customer-data-lake, segment-alternative, data-integration, data-synchronization, etl, bigquery, redshift, snowflake, data-pipeline, elt, data-engineering, cdp, warehouse-native, event-streaming|30-5-2025| 410 | |405|[ruff](https://github.com/astral-sh/ruff.git)|An extremely fast Python linter and code formatter, written in Rust.|39604|linter, pep8, python, python3, rust, rustpython, static-analysis, static-code-analysis, style-guide, styleguide, ruff|1-6-2025| 411 | |406|[runc](https://github.com/opencontainers/runc.git)|CLI tool for spawning and running containers according to the OCI specification|12392|containers, docker, oci|27-5-2025| 412 | |407|[rundeck](https://github.com/rundeck/rundeck.git)|Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts|5795|rundeck, devops, deployment, scheduler, automation, orchestration, ansible, audit, sre, operations, ops, devops-tools, devops-team, runbook, hacktoberfest, java, category-distributed|23-5-2025| 413 | |408|[rust](https://github.com/rust-lang/rust.git)|Empowering everyone to build reliable and efficient software.|103937|rust, compiler, language, hacktoberfest|| 414 | |409|[safety](https://github.com/pyupio/safety.git)|Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations for vulnerabilities detected.|1847|python, security, security-vulnerability, travis, vulnerability-scanners, vulnerability-detection, cicd, dependency-management, devsecops, open-source-security, package-management|15-5-2025| 415 | |410|[sanic-prometheus](https://github.com/dkruchinin/sanic-prometheus.git)|Prometheus metrics for Sanic, an async python web server|79|python, prometheus, sanic, monitoring|12-10-2020| 416 | |411|[sceptre](https://github.com/Sceptre/sceptre.git)|Build better AWS infrastructure|1509|aws, cloudformation, infrastructure, python, devops, cloud, sceptre|| 417 | |412|[schema](https://github.com/keleshev/schema.git)|Schema validation just got Pythonic|2915||27-2-2025| 418 | |413|[school-of-sre](https://github.com/linkedin/school-of-sre.git)|At LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role.|7978|sre, linux, networking, git, python, mysql, nosql, hadoop, system-design, security|13-8-2024| 419 | |414|[sealed-secrets](https://github.com/bitnami-labs/sealed-secrets.git)|A Kubernetes controller and tool for one-way encrypted Secrets|8251|kubernetes, kubernetes-secrets, devops-workflow, encrypt-secrets, gitops|20-5-2025| 420 | |415|[searxng](https://github.com/searxng/searxng.git)|SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.|19414|metasearch-engine, metasearch, search, python, hacktoberfest, searxng|31-5-2025| 421 | |416|[serverless-application-model](https://github.com/aws/serverless-application-model.git)|The AWS Serverless Application Model (AWS SAM) transform is a AWS CloudFormation macro that transforms SAM templates into CloudFormation templates.|9456|serverless, aws, lambda, aws-sam, sam, sam-specification, serverless-applications, serverless-application-model|30-5-2025| 422 | |417|[service-fabric](https://github.com/microsoft/service-fabric.git)|Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.|3043|cloud-native, containers, orchestration, distributed-systems, cloud-computing, microservices|10-3-2025| 423 | |418|[shiv](https://github.com/linkedin/shiv.git)|shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included.|1840||4-11-2024| 424 | |419|[simple-kubernetes-webhook](https://github.com/slackhq/simple-kubernetes-webhook.git)|This project is aimed at illustrating how to build a fully functioning kubernetes admission webhook in the simplest way possible.|192||14-10-2021| 425 | |420|[skaffold](https://github.com/GoogleContainerTools/skaffold.git)|Easy and Repeatable Kubernetes Development|15348|kubernetes, developer-tools, docker, containers|19-5-2025| 426 | |421|[skipper](https://github.com/zalando/skipper.git)|An HTTP router and reverse proxy for service composition, including use cases like Kubernetes Ingress|3188|proxy, router, eskip, mosaic, skipper, http-proxy, etcd, go, kubernetes-ingress, kubernetes, kubernetes-controller, cloud, ingress-controller|30-5-2025| 427 | |422|[slack](https://github.com/integrations/slack.git)|Bring your code to the conversations you care about with GitHub's integration for Slack|3276|probot-app, github-app|28-3-2025| 428 | |423|[sops](https://github.com/getsops/sops.git)|Simple and flexible tool for managing secrets|18573|security, secret-distribution, devops, aws, pgp, gcp, secret-management, azure, sops|30-5-2025| 429 | |424|[spectral](https://github.com/stoplightio/spectral.git)|A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI (v3.1, v3.0, and v2.0), Arazzo v1.0, as well as AsyncAPI v2.x.|2742|json-schema, jsonpath, openapi, openapi3, oasv3, oas, openapi-specification, json-lint, json, linting, swagger, hacktoberfest, arazzo|23-4-2025| 430 | |425|[speedtest-cli](https://github.com/sivel/speedtest-cli.git)|Command line interface for testing internet bandwidth using speedtest.net|13790|python, python-library, python-script, speedtest|7-7-2021| 431 | |426|[sqlc](https://github.com/sqlc-dev/sqlc.git)|Generate type-safe code from SQL|15208||22-5-2025| 432 | |427|[sqlflow](https://github.com/sql-machine-learning/sqlflow.git)|Brings SQL and AI together.|5153|sqlflow, sql-syntax, ai, transpiler, deep-learning, databases, machine-learning|13-5-2022| 433 | |428|[ssl-cert-check](https://github.com/Matty9191/ssl-cert-check.git)|Send notifications when SSL certificates are about to expire.|768||29-9-2021| 434 | |429|[starlette](https://github.com/encode/starlette.git)|The little ASGI framework that shines. 🌟|11048|python, async, websockets, http|29-5-2025| 435 | |430|[starred-repo-toc](https://github.com/yks0000/starred-repo-toc.git)|Generates Markdown table for all Starred Repositories by a GitHub user.|39|starred-repositories, starred|1-6-2025| 436 | |431|[strimzi-kafka-operator](https://github.com/strimzi/strimzi-kafka-operator.git)|Apache Kafka® running on Kubernetes|5255|kafka, kubernetes, openshift, messaging, kafka-connect, kafka-streams, data-streaming, data-stream, data-streams, kubernetes-operator, kubernetes-controller, hacktoberfest|| 437 | |432|[styleguide](https://github.com/google/styleguide.git)|Style guides for Google-originated open-source projects|38243|cpplint, styleguide, style-guide|30-4-2025| 438 | |433|[swagger-ui](https://github.com/swagger-api/swagger-ui.git)|Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.|27394|swagger, swagger-ui, swagger-api, swagger-js, rest, rest-api, openapi-specification, oas, openapi, openapi3, hacktoberfest, openapi31, open-source, swagger-oss|29-5-2025| 439 | |434|[system-design](https://github.com/karanpratapsingh/system-design.git)|Learn how to design systems at scale and prepare for system design interviews|36099|architecture, distributed-systems, system-design, system-design-interview, interview, tech, engineering, interview-preparation, scalability, microservices|18-1-2024| 440 | |435|[system-design-interview](https://github.com/checkcheckzz/system-design-interview.git)|System design interview for IT companies|22198|interview, interview-questions, interview-preparation, design-systems, system, system-design|| 441 | |436|[systeminformer](https://github.com/winsiderss/systeminformer.git)|A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ http://www.windows-internals.com|12043|administrator, windows, system-monitor, performance-monitoring, performance-tuning, performance, debugger, benchmarking, security, profiling, realtime, monitoring, monitor-performance, process-manager, process-monitor, processhacker, monitor, systeminformer, task-manager|1-6-2025| 442 | |437|[tech-interview-handbook](https://github.com/yangshun/tech-interview-handbook.git)|💯 Curated coding interview preparation materials for busy software engineers|126623|interview-questions, coding-interviews, interview-practice, interview-preparation, algorithm, algorithms, system-design, behavioral-interviews, algorithm-interview, algorithm-interview-questions|28-4-2025| 443 | |438|[telegram-bot-heroku-deploy](https://github.com/AnshumanFauzdar/telegram-bot-heroku-deploy.git)|Detailed guide to initially deploy a simple telegram python bot to heroku|54|heroku-app, telegram-bot, telegram, deploy, hacktoberfest|| 444 | |439|[teleport](https://github.com/gravitational/teleport.git)|The easiest, and most secure way to access and protect all of your infrastructure.|18569|ssh, go, bastion, teleport-binaries, certificate, golang, cluster, teleport, firewall, security, jumpserver, rbac, audit, pam, kubernetes, kubernetes-access, firewalls, database-access, postgres, rdp|1-6-2025| 445 | |440|[tenacity](https://github.com/jd/tenacity.git)|Retrying library for Python|7465|python, failure, retry, retry-library, hacktoberfest|1-5-2025| 446 | |441|[tensorflow](https://github.com/tensorflow/tensorflow.git)|An Open Source Machine Learning Framework for Everyone|190194|tensorflow, machine-learning, python, deep-learning, deep-neural-networks, neural-network, ml, distributed|1-6-2025| 447 | |442|[terminalizer](https://github.com/faressoft/terminalizer.git)|🦄 Record your terminal and generate animated gif images or share a web player|15651|terminal, record, capture, shot, bash, powershell, gif, animated, generate, theme, colors, font, repeat, command-line, shell, zsh, bash-profile, render, tty, pty|29-8-2024| 448 | |443|[terminals-are-sexy](https://github.com/k4m4/terminals-are-sexy.git)|💥 A curated list of Terminal frameworks, plugins & resources for CLI lovers.|12527|terminal, curated-list, awesome-lists, cli-lovers|13-4-2022| 449 | |444|[terraform](https://github.com/hashicorp/terraform.git)|Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.|45282|graph, infrastructure-as-code, terraform, cloud, cloud-management|29-5-2025| 450 | |445|[terraform-aws-devops](https://github.com/antonbabenko/terraform-aws-devops.git)|Info about many of my Terraform, AWS, and DevOps projects.|455|terraform, infrastructure-as-code, aws, aws-community, antonbabenko, compliance, serverless, terraform-aws-modules|6-6-2024| 451 | |446|[terraform-aws-documentdb-cluster](https://github.com/cloudposse/terraform-aws-documentdb-cluster.git)|Terraform module to provision a DocumentDB cluster on AWS|66|mongodb, documentdb-cluster, documentdb, json, database, hcl2|1-6-2025| 452 | |447|[terraform-multi-account](https://github.com/inovex/terraform-multi-account.git)|Some example how toadress multiple aws accounts with Terraform|20||12-6-2018| 453 | |448|[terraform-provider-restapi](https://github.com/Mastercard/terraform-provider-restapi.git)|A terraform provider to manage objects in a RESTful API|856||21-4-2025| 454 | |449|[terraform-switcher](https://github.com/warrensbox/terraform-switcher.git)|A command line tool to switch between different versions of terraform (install with homebrew and more)|1410|terraform, go, golang|26-5-2025| 455 | |450|[terrascan](https://github.com/tenable/terrascan.git)|Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.|4940|security-tools, infrastructure-as-code, devsecops, devops, security, terraform, aws, cloudsecurity, cloud-security, terrascan, infrastructure, security-violations, architecture, kubernetes, iac, sast, azure-security, aws-security, gcp-security, scans|6-5-2025| 456 | |451|[terratest](https://github.com/gruntwork-io/terratest.git)| Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.|7670|devops, testing, testing-library, aws, terraform, packer, docker, golang|| 457 | |452|[textual](https://github.com/Textualize/textual.git)|The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.|28910|terminal, python, tui, rich, cli, framework|1-6-2025| 458 | |453|[the-book-of-secret-knowledge](https://github.com/trimstray/the-book-of-secret-knowledge.git)|A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.|171854|awesome, awesome-list, lists, manuals, resources, howtos, hacks, search-engines, one-liners, cheatsheets, guidelines, sysops, devops, pentesters, security-researchers, linux, bsd, security, hacking|19-11-2024| 459 | |454|[thefuck](https://github.com/nvbn/thefuck.git)|Magnificent app which corrects your previous console command.|92068|python, shell|25-1-2024| 460 | |455|[thefuzz](https://github.com/seatgeek/thefuzz.git)|Fuzzy String Matching in Python|3235||3-3-2025| 461 | |456|[thunderdome-planning-poker](https://github.com/StevenWeathers/thunderdome-planning-poker.git)|⚡ Thunderdome is an open source agile planning poker, sprint retro, and story mapping tool|449|agile, poker-planning, planning-poker, scrum, thunderdome-planning-poker, thunderdome, stories, remote, retrospective, agileretrospective, daily-standup, story-mapping|23-5-2025| 462 | |457|[tini](https://github.com/krallin/tini.git)|A tiny but valid `init` for containers|10373|docker, linux, c, init, init-system|8-5-2025| 463 | |458|[tldr](https://github.com/tldr-pages/tldr.git)|📚 Collaborative cheatsheets for console commands|55670|shell, man-page, tldr, manpages, documentation, terminal, command-line, console, examples, help, manual, hacktoberfest, cheatsheet, cheatsheets, android, bsd, linux, macos, osx, windows|1-6-2025| 464 | |459|[tokei](https://github.com/XAMPPRocky/tokei.git)|Count your code, quickly.|12531|tokei, cloc, badge, rust, windows, linux, macos, statistics, code, cli, sloc, command-line-tool|24-2-2025| 465 | |460|[tox](https://github.com/tox-dev/tox.git)|Command line driven CI frontend and development task automation tool.|3795|testing, python, virtualenv, continuous-integration, cli, automation, venv, actions|27-5-2025| 466 | |461|[tqdm](https://github.com/tqdm/tqdm.git)|:zap: A Fast, Extensible Progress Bar for Python and CLI|29907|progressbar, progressmeter, progress-bar, meter, rate, console, terminal, time, progress, gui, python, parallel, cli, utilities, jupyter, discord, telegram, pandas, keras, closember|12-11-2024| 467 | |462|[trafficserver](https://github.com/apache/trafficserver.git)|Apache Traffic Server™ is a fast, scalable and extensible HTTP/1.1 and HTTP/2 compliant caching proxy server.|1873|proxy, cdn, cache, apache, hacktoberfest, forwardproxy, http2, http3, quic, reverseproxy|30-5-2025| 468 | |463|[trivy](https://github.com/aquasecurity/trivy.git)|Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more|26964|security, security-tools, docker, containers, vulnerability-scanners, vulnerability-detection, vulnerability, golang, go, kubernetes, hacktoberfest, devsecops, misconfiguration, infrastructure-as-code, iac|30-5-2025| 469 | |464|[trufflehog](https://github.com/trufflesecurity/trufflehog.git)|Find, verify, and analyze leaked credentials|19356|secret, trufflehog, credentials, security, devsecops, dynamic-analysis, security-tools, secrets, verification, hacktoberfest, secret-management, precommit, scanning|29-5-2025| 470 | |465|[tv](https://github.com/alexhallam/tv.git)|📺(tv) Tidy Viewer is a cross-platform CLI csv pretty printer that uses column styling to maximize viewer enjoyment.|2095|cli, terminal, csv, pretty-printer, pretty-print, command-line-tool, data-science, rust, command-line, tabular-data, tibble, dataframe, datatable, csv-viewer, csv-visualization, csv-pretty-print, csv-cat, column, csv-column|5-1-2025| 471 | |466|[typer](https://github.com/fastapi/typer.git)|Typer, build great CLIs. Easy to code. Based on Python type hints.|17169|cli, click, python3, typehints, terminal, shell, python, typer|26-5-2025| 472 | |467|[typeshed](https://github.com/python/typeshed.git)|Collection of library stubs for Python, with static types|4686|python, stub, types, typing|31-5-2025| 473 | |468|[udemy-downloader-gui](https://github.com/FaisalUmair/udemy-downloader-gui.git)|A desktop application for downloading Udemy Courses|6174|electron, nodejs, udemy, udemy-dl, udemy-downloader-gui, windows, mac, macos, linux, downloader|11-8-2020| 474 | |469|[ultimate-go](https://github.com/hoanhan101/ultimate-go.git)|The Ultimate Go Study Guide|14960|golang, computer-systems, programming, ebook, study-guide|17-9-2021| 475 | |470|[upterm](https://github.com/railsware/upterm.git)|A terminal emulator for the 21st century.|19182|tty, terminal, terminal-emulators, console, pty, typescript, electron, react, terminals, shell|| 476 | |471|[urllib3](https://github.com/urllib3/urllib3.git)|urllib3 is a user-friendly HTTP client library for Python|3879|http, http-client, python, urllib3|30-5-2025| 477 | |472|[valkey](https://github.com/valkey-io/valkey.git)|A flexible distributed key-value database that is optimized for caching and other realtime workloads.|21708|cache, database, key-value, key-value-store, nosql, redis, valkey, valkey-client|| 478 | |473|[vector](https://github.com/Netflix/vector.git)|Vector is an on-host performance monitoring framework which exposes hand picked high resolution metrics to every engineer’s browser.|3571||10-10-2020| 479 | |474|[vegeta](https://github.com/tsenart/vegeta.git)|HTTP load testing tool and library. It's over 9000!|24256|load-testing, go, benchmarking, http|29-7-2024| 480 | |475|[vercel](https://github.com/vercel/vercel.git)|Develop. Preview. Ship.|13642|cli, command, vercel, cloud, hosting, jamstack, ship|31-5-2025| 481 | |476|[viper](https://github.com/spf13/viper.git)|Go configuration with fangs|28606||19-5-2025| 482 | |477|[vitess](https://github.com/vitessio/vitess.git)|Vitess is a database clustering system for horizontal scaling of MySQL.|19608|cncf, mysql, database-cluster, shard, kubernetes, vitess|30-5-2025| 483 | |478|[vizceral](https://github.com/Netflix/vizceral.git)|WebGL visualization for displaying animated traffic graphs|4084|graph, traffic, visualization, webgl, monitoring|28-11-2023| 484 | |479|[vscode-debug-visualizer](https://github.com/hediet/vscode-debug-visualizer.git)|An extension for VS Code that visualizes data during debugging.|8072|vscode-extension, hacktoberfest, visualization|17-3-2025| 485 | |480|[wait-for-it](https://github.com/vishnubob/wait-for-it.git)|Pure bash script to test and wait on the availability of a TCP host and port|9636||22-8-2020| 486 | |481|[watchman](https://github.com/facebook/watchman.git)|Watches files and records, or triggers actions, when they change. |13084||31-5-2025| 487 | |482|[wavefront-kubernetes](https://github.com/wavefrontHQ/wavefront-kubernetes.git)|Kubernetes definitions and templates for Wavefront|9|wavefront, kubernetes, monitoring|25-10-2023| 488 | |483|[webkubectl](https://github.com/1Panel-dev/webkubectl.git)|Run kubectl command in Web Browser.|874|kubernetes, kubectl, command-line-tool, go, golang, kubectl-plugins, gotty, kubeoperator|13-8-2024| 489 | |484|[werkzeug](https://github.com/pallets/werkzeug.git)|The comprehensive WSGI web application library.|6750||15-5-2025| 490 | |485|[what-happens-when](https://github.com/alex/what-happens-when.git)|An attempt to answer the age old interview question "What happens when you type google.com into your browser and press enter?"|41824||8-2-2022| 491 | |486|[wrk](https://github.com/wg/wrk.git)|Modern HTTP benchmarking tool|39044||7-2-2021| 492 | |487|[wrk2](https://github.com/giltene/wrk2.git)|A constant throughput, correct latency recording variant of wrk|4383||24-9-2019| 493 | |488|[wtf](https://github.com/wtfutil/wtf.git)|The personal information dashboard for your terminal|16115|golang, dashboard, terminal, tui, cui, go, devops, wtf, wtfutil, hacktoberfest|21-5-2024| 494 | |489|[yamllint](https://github.com/adrienverge/yamllint.git)|A linter for YAML files.|3064|linter, lint, yaml, yamllint|5-5-2025| 495 | |490|[yaspin](https://github.com/pavdmyt/yaspin.git)|A lightweight terminal spinner for Python with safe pipes and redirects 🎁|838|spinner, terminal, cli-utilities, python, loader, unix, easy-to-use, python-library, awesome, console, cli, utilities|19-10-2024| 496 | |491|[yq](https://github.com/mikefarah/yq.git)|yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor|13471|yaml-processor, yaml, cli, golang, splat, devops-tools, portable, bash, xml, json, csv, properties, toml|17-5-2025| 497 | |492|[ytfzf](https://github.com/pystardust/ytfzf.git)|A posix script to find and watch youtube videos from the terminal. (Without API)|3908|youtube, cli, terminal, posix, fzf, dmenu, ueberzug|27-9-2024| 498 | |493|[zap](https://github.com/uber-go/zap.git)|Blazing fast, structured, leveled logging in Go.|23133|golang, logging, structured-logging, zap|27-5-2025| 499 | |494|[zuul](https://github.com/Netflix/zuul.git)|Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.|13790||30-5-2025| 500 | 501 | -------------------------------------------------------------------------------- /USAGE.md: -------------------------------------------------------------------------------- 1 | # Generate README.md with your starred repository Table of Content (TOC) for your GitHub Account? 2 | 3 | 1. Get a Personal Access Token (pat) for your [GitHub Account](https://github.com/settings/tokens). 4 | 2. Fork this [repo](https://github.com/yks0000/starred-repo-toc) into your GitHub account. 5 | 3. Save PAT as GitHub Secret in forked repository. Name it `GH_TOKEN`. You can set this up under `Settings > Security > Secrets > Actions` 6 | 4. Default Schedule is to run at every 30 minutes. You can change it to run as early as every 5 minutes by updating `cron` key in [GitHub action yaml](.github/workflows/generate-md.yml). Adjust accordingly to avoid throttling/rate limiting. A 30 minutes corn schedule is safe. 7 | 5. Verify that GitHub action has been executed and your README.md has been updated with Starred Repositories list. 8 | 9 | # Testing this locally 10 | 11 | 1. Get a Personal Access Token (pat) for your GitHub Account. 12 | 2. Fork and then `git clone` forked repo. 13 | 3. Run this CLI 14 | 1. You can build this locally using `go build -o github-stars main.go` and then run as `./github-stars generate -t <> -f README.md` OR 15 | 2. You can run this without building using `go run main.go generate -t <> -f README.md` 16 | 17 | Parameters: 18 | 19 | `-t/--token` : Required 20 | `-f/--file`: Optional, Default: `README.md` 21 | -------------------------------------------------------------------------------- /cmd/generate.go: -------------------------------------------------------------------------------- 1 | package cmd 2 | 3 | import ( 4 | "fmt" 5 | "github-stars/githubapi" 6 | "github.com/spf13/cobra" 7 | ) 8 | 9 | var fileName string 10 | 11 | // generateCmd represents the generate command 12 | var generateCmd = &cobra.Command{ 13 | Use: "generate", 14 | Short: "Generate MD with Star Information.", 15 | Run: func(cmd *cobra.Command, args []string) { 16 | githubapi.CallGitHubAPIs(accessToken, fileName) 17 | fmt.Println("Done!!!") 18 | }, 19 | } 20 | 21 | func init() { 22 | rootCmd.AddCommand(generateCmd) 23 | generateCmd.PersistentFlags().StringVarP(&fileName, "file", "f", "README.md", "MarkDown File Name") 24 | } 25 | -------------------------------------------------------------------------------- /cmd/root.go: -------------------------------------------------------------------------------- 1 | // Package cmd /* 2 | package cmd 3 | 4 | import ( 5 | "fmt" 6 | "github.com/spf13/cobra" 7 | "github.com/spf13/viper" 8 | "log" 9 | "os" 10 | ) 11 | 12 | var cfgFile string 13 | var accessToken string 14 | 15 | // rootCmd represents the base command when called without any subcommands 16 | var rootCmd = &cobra.Command{ 17 | Use: "github-stars", 18 | Short: "Generate list of starred repo by a Github User.", 19 | Long: `List all starred repo of a Github User and their description. It then generate a markdown 20 | page and replace existing README.md file. 21 | `, 22 | Run: func(cmd *cobra.Command, args []string) {}, 23 | } 24 | 25 | // Execute adds all child commands to the root command and sets flags appropriately. 26 | // This is called by main.main(). It only needs to happen once to the rootCmd. 27 | func Execute() { 28 | cobra.CheckErr(rootCmd.Execute()) 29 | } 30 | 31 | func init() { 32 | cobra.OnInitialize(initConfig) 33 | rootCmd.PersistentFlags().StringVarP(&accessToken, "token", "t", "", "GitHub Token") 34 | err := rootCmd.MarkPersistentFlagRequired("token") 35 | 36 | if err != nil { 37 | log.Panic(err) 38 | } 39 | } 40 | 41 | // initConfig reads in config file and ENV variables if set. 42 | func initConfig() { 43 | if cfgFile != "" { 44 | // Use config file from the flag. 45 | viper.SetConfigFile(cfgFile) 46 | } else { 47 | // Find home directory. 48 | home, err := os.UserHomeDir() 49 | cobra.CheckErr(err) 50 | 51 | // Search config in home directory with name ".github-stars" (without extension). 52 | viper.AddConfigPath(home) 53 | viper.SetConfigType("yaml") 54 | viper.SetConfigName(".github-stars") 55 | } 56 | 57 | viper.AutomaticEnv() // read in environment variables that match 58 | 59 | // If a config file is found, read it in. 60 | if err := viper.ReadInConfig(); err == nil { 61 | fmt.Fprintln(os.Stderr, "Using config file:", viper.ConfigFileUsed()) 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /githubapi/entrypoint.go: -------------------------------------------------------------------------------- 1 | package githubapi 2 | 3 | import ( 4 | "github-stars/markdown" 5 | ) 6 | 7 | func CallGitHubAPIs(accessToken string, fileName string) { 8 | clientInfo := GetGitHubClient(accessToken) 9 | allRepos := clientInfo.GetGithubStarredRepoByUser() 10 | githubResponse := clientInfo.ParseGitHubApiResponse(allRepos) 11 | markdown.WriteMarkDownFile(fileName, githubResponse) 12 | } 13 | -------------------------------------------------------------------------------- /githubapi/github.go: -------------------------------------------------------------------------------- 1 | package githubapi 2 | 3 | import ( 4 | "context" 5 | logger "github-stars/logging" 6 | "github-stars/schemas" 7 | "github.com/google/go-github/github" 8 | "golang.org/x/oauth2" 9 | "strconv" 10 | "strings" 11 | "sync" 12 | "time" 13 | ) 14 | 15 | type GithubClientInformation struct { 16 | client *github.Client 17 | context context.Context 18 | } 19 | 20 | var allRepos []*github.StarredRepository 21 | var githubResponseField []schemas.GitHubResponseField 22 | var pageLoadSleepTime = 2 * time.Second 23 | 24 | func GetGitHubClient(accessToken string) GithubClientInformation { 25 | ctx := context.Background() 26 | secureTokenSource := oauth2.StaticTokenSource( 27 | &oauth2.Token{AccessToken: accessToken}) 28 | tc := oauth2.NewClient(ctx, secureTokenSource) 29 | client := github.NewClient(tc) 30 | return GithubClientInformation{ 31 | client: client, 32 | context: ctx, 33 | } 34 | } 35 | 36 | func (clientInfo GithubClientInformation) GetGithubStarredRepoByUser() []*github.StarredRepository { 37 | user, _, err := clientInfo.client.Users.Get(clientInfo.context, "") 38 | if err != nil { 39 | logger.Panic("Error while making authenticated call to github: ", err.Error()) 40 | } 41 | 42 | activityListStarredOptions := &github.ActivityListStarredOptions{ListOptions: github.ListOptions{PerPage: 100}} 43 | 44 | for { 45 | repos, resp, err := clientInfo.client.Activity.ListStarred(clientInfo.context, *user.Login, activityListStarredOptions) 46 | if err != nil { 47 | logger.Panic("Error while making authenticated call to github: ", err.Error()) 48 | } 49 | allRepos = append(allRepos, repos...) 50 | if resp.NextPage == 0 { 51 | break 52 | } else { 53 | logger.Info("Loading another page in 2 seconds. Page loaded: ", resp.NextPage) 54 | } 55 | activityListStarredOptions.Page = resp.NextPage 56 | } 57 | return allRepos 58 | 59 | } 60 | 61 | func (clientInfo *GithubClientInformation) ParseGitHubApiResponse(allRepos []*github.StarredRepository) []schemas.GitHubResponseField { 62 | wg := sync.WaitGroup{} 63 | wg.Add(len(allRepos)) 64 | getData := func(getRepo *github.StarredRepository, wg *sync.WaitGroup) []schemas.GitHubResponseField { 65 | defer wg.Done() 66 | repoDetails := getRepo.GetRepository() 67 | name := *repoDetails.Name 68 | fullName := *repoDetails.FullName 69 | defaultBranch := *repoDetails.DefaultBranch 70 | 71 | description := "-" 72 | if repoDetails.Description != nil { 73 | description = strings.Replace(*repoDetails.Description, "|", " ", -1) 74 | } 75 | cloneUrl := *repoDetails.CloneURL 76 | ownerName := "-" 77 | if repoDetails.Owner != nil && repoDetails.Owner.Login != nil { 78 | ownerName = *repoDetails.Owner.Login 79 | } 80 | starCount := *repoDetails.StargazersCount 81 | 82 | _, r, err := clientInfo.client.Repositories.GetByID(clientInfo.context, *repoDetails.ID) 83 | if r.StatusCode == 404 { 84 | clientInfo.UnStarDeleteGitHubRepo(name, ownerName) 85 | return nil 86 | } 87 | if err != nil { 88 | return nil 89 | } 90 | 91 | time.Sleep(pageLoadSleepTime) 92 | lastUpdated := clientInfo.GetDefaultBranchDetails(name, ownerName, defaultBranch) 93 | 94 | channels := make(chan []string) 95 | go clientInfo.GetGitHubRepoTopics(name, ownerName, channels) 96 | topics := <-channels 97 | githubResponseField = append(githubResponseField, schemas.GitHubResponseField{ 98 | Name: name, 99 | FullName: fullName, 100 | Description: description, 101 | CloneUrl: cloneUrl, 102 | OwnerName: ownerName, 103 | StarCount: starCount, 104 | LastUpdated: lastUpdated, 105 | Topics: topics, 106 | }) 107 | 108 | return githubResponseField 109 | } 110 | 111 | for _, getRepo := range allRepos { 112 | 113 | go getData(getRepo, &wg) 114 | 115 | } 116 | 117 | wg.Wait() 118 | return githubResponseField 119 | } 120 | 121 | func (clientInfo *GithubClientInformation) GetDefaultBranchDetails(repoName string, ownerName string, branchName string) string { 122 | branch, _, err := clientInfo.client.Repositories.GetBranch(clientInfo.context, ownerName, repoName, branchName) 123 | if err != nil { 124 | logger.Error(err.Error()) 125 | return "" 126 | } 127 | year, month, day := branch.GetCommit().Commit.Committer.GetDate().Date() 128 | return strconv.Itoa(day) + "-" + strconv.Itoa(int(month)) + "-" + strconv.Itoa(year) 129 | 130 | } 131 | 132 | func (clientInfo *GithubClientInformation) GetGitHubRepoTopics(repoName string, ownerName string, channel chan []string) { 133 | time.Sleep(pageLoadSleepTime) 134 | logger.Info("Getting topics tag for repo: ", repoName) 135 | topics, _, err := clientInfo.client.Repositories.ListAllTopics(clientInfo.context, ownerName, repoName) 136 | if err != nil { 137 | logger.Error(err.Error()) 138 | } 139 | channel <- topics 140 | } 141 | 142 | func (clientInfo *GithubClientInformation) UnStarDeleteGitHubRepo(repoName string, ownerName string) { 143 | unstar, err := clientInfo.client.Activity.Unstar(clientInfo.context, ownerName, repoName) 144 | logger.Info("Un starred deleted github repository ", repoName, unstar.StatusCode) 145 | if err != nil { 146 | return 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github-stars 2 | 3 | go 1.17 4 | 5 | require ( 6 | github.com/google/go-github v17.0.0+incompatible 7 | github.com/sirupsen/logrus v1.8.1 8 | github.com/spf13/cobra v1.2.1 9 | github.com/spf13/viper v1.9.0 10 | go.uber.org/zap v1.17.0 11 | golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f 12 | ) 13 | 14 | require ( 15 | github.com/fsnotify/fsnotify v1.5.1 // indirect 16 | github.com/golang/protobuf v1.5.2 // indirect 17 | github.com/google/go-querystring v1.1.0 // indirect 18 | github.com/hashicorp/hcl v1.0.0 // indirect 19 | github.com/inconshreveable/mousetrap v1.0.0 // indirect 20 | github.com/kisielk/godepgraph v0.0.0-20190626013829-57a7e4a651a9 // indirect 21 | github.com/magiconair/properties v1.8.5 // indirect 22 | github.com/mitchellh/mapstructure v1.4.2 // indirect 23 | github.com/pelletier/go-toml v1.9.4 // indirect 24 | github.com/spf13/afero v1.6.0 // indirect 25 | github.com/spf13/cast v1.4.1 // indirect 26 | github.com/spf13/jwalterweatherman v1.1.0 // indirect 27 | github.com/spf13/pflag v1.0.5 // indirect 28 | github.com/subosito/gotenv v1.2.0 // indirect 29 | go.uber.org/atomic v1.7.0 // indirect 30 | go.uber.org/multierr v1.6.0 // indirect 31 | golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420 // indirect 32 | golang.org/x/sys v0.0.0-20210921065528-437939a70204 // indirect 33 | golang.org/x/text v0.3.7 // indirect 34 | google.golang.org/appengine v1.6.7 // indirect 35 | google.golang.org/protobuf v1.27.1 // indirect 36 | gopkg.in/ini.v1 v1.63.2 // indirect 37 | gopkg.in/yaml.v2 v2.4.0 // indirect 38 | ) 39 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 2 | cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 3 | cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= 4 | cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= 5 | cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= 6 | cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= 7 | cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= 8 | cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= 9 | cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= 10 | cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= 11 | cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= 12 | cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= 13 | cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= 14 | cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= 15 | cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= 16 | cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= 17 | cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= 18 | cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= 19 | cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= 20 | cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= 21 | cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= 22 | cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= 23 | cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= 24 | cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= 25 | cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= 26 | cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= 27 | cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= 28 | cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= 29 | cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= 30 | cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= 31 | cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= 32 | cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= 33 | cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= 34 | cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= 35 | cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= 36 | cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= 37 | cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= 38 | cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= 39 | cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= 40 | cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= 41 | cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= 42 | cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= 43 | cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= 44 | cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= 45 | dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= 46 | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 47 | github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= 48 | github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= 49 | github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= 50 | github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= 51 | github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= 52 | github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 53 | github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 54 | github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= 55 | github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= 56 | github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= 57 | github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= 58 | github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= 59 | github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= 60 | github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= 61 | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= 62 | github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= 63 | github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= 64 | github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= 65 | github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= 66 | github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= 67 | github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= 68 | github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= 69 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 70 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 71 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 72 | github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 73 | github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 74 | github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= 75 | github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= 76 | github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= 77 | github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= 78 | github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= 79 | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 80 | github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= 81 | github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= 82 | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= 83 | github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= 84 | github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= 85 | github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= 86 | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= 87 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 88 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 89 | github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= 90 | github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= 91 | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= 92 | github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 93 | github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 94 | github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 95 | github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 96 | github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 97 | github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= 98 | github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 99 | github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 100 | github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 101 | github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= 102 | github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= 103 | github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= 104 | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 105 | github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 106 | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 107 | github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= 108 | github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= 109 | github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= 110 | github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= 111 | github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= 112 | github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= 113 | github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= 114 | github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= 115 | github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= 116 | github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 117 | github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 118 | github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 119 | github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= 120 | github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= 121 | github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 122 | github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 123 | github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 124 | github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 125 | github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 126 | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 127 | github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 128 | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 129 | github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 130 | github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 131 | github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 132 | github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 133 | github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 134 | github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 135 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 136 | github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= 137 | github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 138 | github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= 139 | github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= 140 | github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= 141 | github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= 142 | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 143 | github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= 144 | github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= 145 | github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= 146 | github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= 147 | github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= 148 | github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= 149 | github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 150 | github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 151 | github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 152 | github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 153 | github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 154 | github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 155 | github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 156 | github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 157 | github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 158 | github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 159 | github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 160 | github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 161 | github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= 162 | github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 163 | github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= 164 | github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= 165 | github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= 166 | github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= 167 | github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= 168 | github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= 169 | github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= 170 | github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= 171 | github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= 172 | github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= 173 | github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= 174 | github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= 175 | github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= 176 | github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= 177 | github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= 178 | github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= 179 | github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= 180 | github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= 181 | github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= 182 | github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= 183 | github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= 184 | github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= 185 | github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= 186 | github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= 187 | github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= 188 | github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= 189 | github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= 190 | github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= 191 | github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= 192 | github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= 193 | github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= 194 | github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= 195 | github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= 196 | github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= 197 | github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= 198 | github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= 199 | github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= 200 | github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= 201 | github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 202 | github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= 203 | github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= 204 | github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= 205 | github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= 206 | github.com/kisielk/godepgraph v0.0.0-20190626013829-57a7e4a651a9 h1:ZkWH0x1yafBo+Y2WdGGdszlJrMreMXWl7/dqpEkwsIk= 207 | github.com/kisielk/godepgraph v0.0.0-20190626013829-57a7e4a651a9/go.mod h1:Gb5YEgxqiSSVrXKWQxDcKoCM94NO5QAwOwTaVmIUAMI= 208 | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= 209 | github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= 210 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 211 | github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= 212 | github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 213 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 214 | github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= 215 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 216 | github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= 217 | github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= 218 | github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= 219 | github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= 220 | github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= 221 | github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= 222 | github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= 223 | github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= 224 | github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= 225 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 226 | github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= 227 | github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= 228 | github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= 229 | github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= 230 | github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= 231 | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= 232 | github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= 233 | github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= 234 | github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= 235 | github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 236 | github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 237 | github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= 238 | github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo= 239 | github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= 240 | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 241 | github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= 242 | github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= 243 | github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= 244 | github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= 245 | github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= 246 | github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= 247 | github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= 248 | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 249 | github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= 250 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 251 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 252 | github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= 253 | github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= 254 | github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 255 | github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= 256 | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= 257 | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 258 | github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= 259 | github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= 260 | github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= 261 | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= 262 | github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= 263 | github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= 264 | github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= 265 | github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= 266 | github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= 267 | github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= 268 | github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= 269 | github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 270 | github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= 271 | github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 272 | github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= 273 | github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= 274 | github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= 275 | github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= 276 | github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= 277 | github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= 278 | github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= 279 | github.com/spf13/viper v1.9.0 h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk= 280 | github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= 281 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 282 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 283 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 284 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 285 | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= 286 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 287 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 288 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 289 | github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= 290 | github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= 291 | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 292 | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 293 | github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 294 | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 295 | github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= 296 | go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= 297 | go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= 298 | go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= 299 | go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= 300 | go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= 301 | go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 302 | go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 303 | go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 304 | go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= 305 | go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= 306 | go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= 307 | go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= 308 | go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= 309 | go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= 310 | go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= 311 | go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= 312 | go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= 313 | golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 314 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 315 | golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 316 | golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 317 | golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 318 | golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= 319 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 320 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 321 | golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 322 | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 323 | golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 324 | golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= 325 | golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= 326 | golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= 327 | golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 328 | golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 329 | golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 330 | golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= 331 | golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= 332 | golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= 333 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 334 | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 335 | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= 336 | golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 337 | golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 338 | golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 339 | golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 340 | golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 341 | golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= 342 | golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 343 | golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 344 | golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 345 | golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 346 | golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= 347 | golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= 348 | golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= 349 | golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= 350 | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 351 | golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 352 | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 353 | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 354 | golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 355 | golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 356 | golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 357 | golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 358 | golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 359 | golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 360 | golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 361 | golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 362 | golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 363 | golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 364 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 365 | golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 366 | golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 367 | golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= 368 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 369 | golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 370 | golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 371 | golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 372 | golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 373 | golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 374 | golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 375 | golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 376 | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 377 | golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 378 | golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 379 | golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 380 | golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 381 | golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 382 | golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 383 | golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 384 | golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 385 | golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 386 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 387 | golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 388 | golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 389 | golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 390 | golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 391 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 392 | golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= 393 | golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= 394 | golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420 h1:a8jGStKg0XqKDlKqjLrXn0ioF5MH36pT7Z0BRTqLhbk= 395 | golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 396 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 397 | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 398 | golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 399 | golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 400 | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 401 | golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 402 | golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 403 | golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 404 | golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 405 | golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 406 | golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 407 | golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 408 | golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 409 | golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 410 | golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 411 | golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= 412 | golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 413 | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 414 | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 415 | golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 416 | golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 417 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 418 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 419 | golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 420 | golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 421 | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 422 | golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 423 | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 424 | golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 425 | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 426 | golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 427 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 428 | golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 429 | golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 430 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 431 | golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 432 | golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 433 | golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 434 | golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 435 | golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 436 | golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 437 | golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 438 | golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 439 | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 440 | golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 441 | golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 442 | golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 443 | golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 444 | golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 445 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 446 | golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 447 | golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 448 | golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 449 | golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 450 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 451 | golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 452 | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 453 | golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 454 | golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 455 | golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 456 | golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 457 | golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 458 | golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 459 | golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 460 | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 461 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 462 | golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 463 | golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 464 | golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 465 | golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 466 | golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 467 | golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 468 | golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 469 | golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 470 | golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 471 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 472 | golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 473 | golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 474 | golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 475 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 476 | golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 477 | golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 478 | golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 479 | golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 480 | golang.org/x/sys v0.0.0-20210921065528-437939a70204 h1:JJhkWtBuTQKyz2bd5WG9H8iUsJRU3En/KRfN8B2RnDs= 481 | golang.org/x/sys v0.0.0-20210921065528-437939a70204/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 482 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 483 | golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 484 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 485 | golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 486 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 487 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 488 | golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 489 | golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 490 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 491 | golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= 492 | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 493 | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 494 | golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 495 | golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 496 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 497 | golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 498 | golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= 499 | golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 500 | golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 501 | golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 502 | golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 503 | golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 504 | golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 505 | golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 506 | golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 507 | golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 508 | golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 509 | golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 510 | golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 511 | golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 512 | golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 513 | golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 514 | golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 515 | golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 516 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 517 | golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 518 | golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 519 | golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 520 | golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 521 | golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 522 | golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 523 | golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 524 | golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 525 | golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 526 | golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 527 | golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 528 | golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 529 | golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= 530 | golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= 531 | golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= 532 | golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 533 | golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 534 | golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 535 | golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 536 | golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 537 | golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 538 | golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 539 | golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 540 | golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= 541 | golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 542 | golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 543 | golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 544 | golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 545 | golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 546 | golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 547 | golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 548 | golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 549 | golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 550 | golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 551 | golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 552 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 553 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 554 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 555 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= 556 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 557 | google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= 558 | google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= 559 | google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= 560 | google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= 561 | google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 562 | google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 563 | google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 564 | google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 565 | google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 566 | google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 567 | google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 568 | google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 569 | google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= 570 | google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= 571 | google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= 572 | google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= 573 | google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= 574 | google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= 575 | google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= 576 | google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= 577 | google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= 578 | google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= 579 | google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= 580 | google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= 581 | google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= 582 | google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= 583 | google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= 584 | google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= 585 | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= 586 | google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 587 | google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 588 | google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= 589 | google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 590 | google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 591 | google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= 592 | google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 593 | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= 594 | google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 595 | google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 596 | google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 597 | google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 598 | google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 599 | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 600 | google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= 601 | google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 602 | google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 603 | google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 604 | google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 605 | google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 606 | google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 607 | google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= 608 | google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 609 | google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 610 | google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 611 | google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 612 | google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 613 | google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 614 | google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 615 | google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 616 | google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 617 | google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= 618 | google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= 619 | google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= 620 | google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 621 | google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 622 | google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 623 | google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 624 | google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 625 | google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 626 | google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 627 | google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 628 | google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 629 | google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 630 | google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 631 | google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 632 | google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= 633 | google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= 634 | google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= 635 | google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= 636 | google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= 637 | google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= 638 | google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= 639 | google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= 640 | google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= 641 | google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= 642 | google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= 643 | google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= 644 | google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= 645 | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= 646 | google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= 647 | google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= 648 | google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= 649 | google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= 650 | google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 651 | google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 652 | google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 653 | google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= 654 | google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= 655 | google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= 656 | google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= 657 | google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= 658 | google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= 659 | google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= 660 | google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= 661 | google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= 662 | google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= 663 | google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= 664 | google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= 665 | google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= 666 | google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= 667 | google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= 668 | google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= 669 | google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= 670 | google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 671 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= 672 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= 673 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= 674 | google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= 675 | google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= 676 | google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 677 | google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 678 | google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 679 | google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 680 | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= 681 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 682 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 683 | google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= 684 | google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 685 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 686 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 687 | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= 688 | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 689 | gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= 690 | gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= 691 | gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= 692 | gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= 693 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 694 | gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 695 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 696 | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= 697 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 698 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 699 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= 700 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 701 | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 702 | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 703 | honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 704 | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 705 | honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= 706 | honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= 707 | honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= 708 | rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= 709 | rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= 710 | rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= 711 | -------------------------------------------------------------------------------- /logging/logging.go: -------------------------------------------------------------------------------- 1 | package logging 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | ) 6 | 7 | var ( 8 | logger *logrus.Logger 9 | ) 10 | 11 | func init() { 12 | logger = logrus.New() 13 | logger.SetFormatter( 14 | &logrus.TextFormatter{ 15 | DisableColors: true, 16 | FullTimestamp: true, 17 | }) 18 | logger.SetLevel(logrus.TraceLevel) 19 | } 20 | 21 | func Info(args ...interface{}) { 22 | logger.Info(args...) 23 | } 24 | 25 | func Warn(args ...interface{}) { 26 | logger.Warn(args...) 27 | } 28 | 29 | func Debug(args ...interface{}) { 30 | logger.Debug(args...) 31 | } 32 | 33 | func Error(args ...interface{}) { 34 | logger.Error(args...) 35 | } 36 | 37 | func Panic(args ...interface{}) { 38 | logger.Panic(args...) 39 | } 40 | 41 | func WithFields(args logrus.Fields) *logrus.Entry { 42 | return logger.WithFields(args) 43 | } 44 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright © 2021 NAME HERE 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | package main 17 | 18 | import "github-stars/cmd" 19 | 20 | func main() { 21 | cmd.Execute() 22 | } 23 | -------------------------------------------------------------------------------- /markdown/sortrepo.go: -------------------------------------------------------------------------------- 1 | package markdown 2 | 3 | import ( 4 | "github-stars/schemas" 5 | "reflect" 6 | "sort" 7 | ) 8 | 9 | type By func(p1, p2 *schemas.GitHubResponseField) bool 10 | 11 | func Prop(field string, asc bool) func(p1, p2 *schemas.GitHubResponseField) bool { 12 | return func(p1, p2 *schemas.GitHubResponseField) bool { 13 | 14 | v1 := reflect.Indirect(reflect.ValueOf(p1)).FieldByName(field) 15 | v2 := reflect.Indirect(reflect.ValueOf(p2)).FieldByName(field) 16 | 17 | ret := false 18 | 19 | switch v1.Kind() { 20 | case reflect.Int64: 21 | ret = v1.Int() < v2.Int() 22 | case reflect.Float64: 23 | ret = v1.Float() < v2.Float() 24 | case reflect.String: 25 | ret = v1.String() < v2.String() 26 | } 27 | 28 | if asc { 29 | return ret 30 | } 31 | return !ret 32 | } 33 | } 34 | 35 | func (by By) Sort(responseFields []schemas.GitHubResponseField) { 36 | ps := &responseFieldsSorter{ 37 | responseFields: responseFields, 38 | by: by, // The Sort method's receiver is the function (closure) that defines the sort order. 39 | } 40 | sort.Sort(ps) 41 | } 42 | 43 | // Len is part of sort.Interface. 44 | func (s *responseFieldsSorter) Len() int { 45 | return len(s.responseFields) 46 | } 47 | 48 | // Swap is part of sort.Interface. 49 | func (s *responseFieldsSorter) Swap(i, j int) { 50 | s.responseFields[i], s.responseFields[j] = s.responseFields[j], s.responseFields[i] 51 | } 52 | 53 | // Less is part of sort.Interface. It is implemented by calling the "by" closure in the sorter. 54 | func (s *responseFieldsSorter) Less(i, j int) bool { 55 | return s.by(&s.responseFields[i], &s.responseFields[j]) 56 | } 57 | 58 | type responseFieldsSorter struct { 59 | responseFields []schemas.GitHubResponseField 60 | by func(p1, p2 *schemas.GitHubResponseField) bool // Closure used in the Less method. 61 | } 62 | -------------------------------------------------------------------------------- /markdown/writemd.go: -------------------------------------------------------------------------------- 1 | package markdown 2 | 3 | import ( 4 | "bufio" 5 | "fmt" 6 | logger "github-stars/logging" 7 | "github-stars/schemas" 8 | "github.com/sirupsen/logrus" 9 | "os" 10 | "strconv" 11 | "strings" 12 | ) 13 | 14 | func WriteMarkDownFile(fileName string, allRepos []schemas.GitHubResponseField) { 15 | pwd, err := os.Getwd() 16 | if err != nil { 17 | panic(err) 18 | } 19 | 20 | markDownFile, err := os.Create(pwd + "/" + fileName) 21 | if err != nil { 22 | panic(err) 23 | } 24 | defer func(markDownFile *os.File) { 25 | err := markDownFile.Close() 26 | if err != nil { 27 | 28 | } 29 | }(markDownFile) 30 | 31 | writer := bufio.NewWriter(markDownFile) 32 | 33 | _, _ = fmt.Fprintln(writer, "# Starred Repositories"+" ") 34 | _, _ = fmt.Fprintln(writer, "[How this generated?](../master/USAGE.md)"+" ") 35 | _, _ = fmt.Fprintln(writer, " ") 36 | _, _ = fmt.Fprintln(writer, "| Id | Name | Description | Star Counts | Topics/Tags | Last Updated |"+" ") 37 | _, _ = fmt.Fprintln(writer, "| ----------- | ----------- | ----------- | ----------- | ----------- | ----------- |"+" ") 38 | 39 | if err != nil { 40 | fmt.Println(err) 41 | err := markDownFile.Close() 42 | if err != nil { 43 | return 44 | } 45 | return 46 | } 47 | 48 | // Sort by Name 49 | //sort.Slice(allRepos[:], func(i, j int) bool { 50 | // return allRepos[i].Name < allRepos[i].Name 51 | //}) 52 | 53 | // Use of Reflection to sort all Repos 54 | By(Prop("Name", true)).Sort(allRepos) 55 | 56 | for index, getRepo := range allRepos { 57 | name := getRepo.Name 58 | fullName := getRepo.FullName 59 | lastUpdated := getRepo.LastUpdated 60 | 61 | description := getRepo.Description 62 | cloneUrl := getRepo.CloneUrl 63 | ownerName := getRepo.OwnerName 64 | starCount := getRepo.StarCount 65 | topics := strings.Join(getRepo.Topics, ", ") 66 | _, _ = fmt.Fprintln(writer, "|"+strconv.Itoa(index+1)+"|"+"["+name+"]"+"("+cloneUrl+")"+"|"+description+"|"+strconv.Itoa(starCount)+"|"+topics+"|"+lastUpdated+"|"+" ") 67 | //_, err = writer.WriteString("|" + strconv.Itoa(index+1) + "|" + "[" + name + "]" + "(" + cloneUrl + ")" + "|" + description + "|" + strconv.Itoa(starCount) + "|" + topics + "|" + lastUpdated + "|" + " " + "\n") 68 | 69 | //fmt.Printf("Id: %d, Name: %s, FullName: %s, Description: %s, CloneURL: %s, Owner: %s, StargazersCount: %d, LastUpdated: %s\n", index, name, fullName, description, cloneUrl, ownerName, starCount, lastUpdated) 70 | logger.WithFields(logrus.Fields{ 71 | "Id": index, 72 | "Name": name, 73 | "FullName": fullName, 74 | "Description": description, 75 | "CloneURL": cloneUrl, 76 | "Owner": ownerName, 77 | "StargazersCount": starCount, 78 | "LastUpdated": lastUpdated, 79 | }).Debug("") 80 | } 81 | _, _ = fmt.Fprintln(writer, " ") 82 | err = writer.Flush() 83 | if err != nil { 84 | return 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /schemas/schemas.go: -------------------------------------------------------------------------------- 1 | package schemas 2 | 3 | type GitHubResponseField struct { 4 | Name string 5 | FullName string 6 | Description string 7 | CloneUrl string 8 | OwnerName string 9 | StarCount int 10 | LastUpdated string 11 | Topics []string 12 | } 13 | --------------------------------------------------------------------------------