{"id":16950898,"url":"https://github.com/rajatjindal/github-app-installations","last_synced_at":"2025-04-11T20:42:36.459Z","repository":{"id":43481567,"uuid":"169859972","full_name":"rajatjindal/github-app-installations","owner":"rajatjindal","description":"list installations of github app","archived":false,"fork":false,"pushed_at":"2023-03-13T04:17:37.000Z","size":583,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-25T16:51:26.480Z","etag":null,"topics":["github-apps","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajatjindal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-09T11:28:11.000Z","updated_at":"2023-07-21T07:00:32.000Z","dependencies_parsed_at":"2024-06-21T17:55:58.149Z","dependency_job_id":"29de1a58-eab4-44b0-9fcf-5b5a2eac032f","html_url":"https://github.com/rajatjindal/github-app-installations","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatjindal%2Fgithub-app-installations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatjindal%2Fgithub-app-installations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatjindal%2Fgithub-app-installations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatjindal%2Fgithub-app-installations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatjindal","download_url":"https://codeload.github.com/rajatjindal/github-app-installations/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248479392,"owners_count":21110880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-apps","golang"],"created_at":"2024-10-13T21:58:51.148Z","updated_at":"2025-04-11T20:42:36.435Z","avatar_url":"https://github.com/rajatjindal.png","language":"Go","readme":"# github-app-installations\n\ngithub-app-installations queries github to find all orgs/users who have installed a particular app. It needs the app's private-key and installation-id for generating the token and making request to github api. You can find this information from `https://github.com/settings/apps/\u003cyour-app-name\u003e`\n\nA sample request is as follows:\n\n## generate base64 value of your private key\n```\ncat /Users/rajatjindal/.ssh/your-app.private-key.pem | base64\n```\n\n## make request to github-app-installations to find the details\n```\ncurl -vXGET 'http://localhost:8080/github-app-installations' \\\n    -H'X-App-Id: \u003capp-id\u003e' \\\n    -H'X-Private-Key: \u003cbase64-value-generated-above\u003e\n```\n\nand you will get output like follows:\n\n```\n[\n  {\n    \"ghLogin\": \"helm\",\n    \"orgUserURL\": \"https://github.com/helm\",\n    \"repositorySelection\": \"all\"\n  },\n  {\n    \"ghLogin\": \"reactiverse\",\n    \"orgUserURL\": \"https://github.com/reactiverse\",\n    \"repositorySelection\": \"selected\",\n    \"repositories\": [\n      {\n        \"name\": \"es4x\",\n        \"HtmlURL\": \"https://github.com/reactiverse/es4x\"\n      }\n    ]\n  },\n  {\n    \"ghLogin\": \"pmlopes\",\n    \"orgUserURL\": \"https://github.com/pmlopes\",\n    \"repositorySelection\": \"selected\",\n    \"repositories\": [\n      {\n        \"name\": \"vertx-starter\",\n        \"HtmlURL\": \"https://github.com/pmlopes/vertx-starter\"\n      }\n    ]\n  },\n  {\n    \"ghLogin\": \"asyncapi\",\n    \"orgUserURL\": \"https://github.com/asyncapi\",\n    \"repositorySelection\": \"all\"\n  },\n  {\n    \"ghLogin\": \"google\",\n    \"orgUserURL\": \"https://github.com/google\",\n    \"repositorySelection\": \"selected\",\n    \"repositories\": [\n      {\n        \"name\": \"go-github\",\n        \"HtmlURL\": \"https://github.com/google/go-github\"\n      }\n    ]\n  },\n  {\n    \"ghLogin\": \"asyncy\",\n    \"orgUserURL\": \"https://github.com/asyncy\",\n    \"repositorySelection\": \"all\"\n  },\n  {\n    \"ghLogin\": \"Ewocker\",\n    \"orgUserURL\": \"https://github.com/Ewocker\",\n    \"repositorySelection\": \"selected\",\n    \"repositories\": [\n      {\n        \"name\": \"vue-lodash\",\n        \"HtmlURL\": \"https://github.com/Ewocker/vue-lodash\"\n      }\n    ]\n  },\n  {\n    \"ghLogin\": \"jetstack\",\n    \"orgUserURL\": \"https://github.com/jetstack\",\n    \"repositorySelection\": \"selected\",\n    \"repositories\": [\n      {\n        \"name\": \"cert-manager\",\n        \"HtmlURL\": \"https://github.com/jetstack/cert-manager\"\n      }\n    ]\n  },\n  {\n    \"ghLogin\": \"openfaas\",\n    \"orgUserURL\": \"https://github.com/openfaas\",\n    \"repositorySelection\": \"all\"\n  },\n  {\n    \"ghLogin\": \"alexellis\",\n    \"orgUserURL\": \"https://github.com/alexellis\",\n    \"repositorySelection\": \"selected\",\n    \"repositories\": [\n      {\n        \"name\": \"ubiquitous-octo-guacamole\",\n        \"HtmlURL\": \"https://github.com/alexellis/ubiquitous-octo-guacamole\"\n      }\n    ]\n  },\n  {\n    \"ghLogin\": \"rajatjindal\",\n    \"orgUserURL\": \"https://github.com/rajatjindal\",\n    \"repositorySelection\": \"all\"\n  }\n]\n```\n\nIt also supports a readme table format. If you add `X-Resp-Format: readme` header to the request, the output is returned in readme table format as follows:\n\n```\n| Org/User | Repository |\n| ------ | ------ |\n| [helm](https://github.com/helm) | [All](https://github.com/helm) |\n| [reactiverse](https://github.com/reactiverse) | [es4x](https://github.com/reactiverse/es4x) |\n| [pmlopes](https://github.com/pmlopes) | [vertx-starter](https://github.com/pmlopes/vertx-starter) |\n| [asyncapi](https://github.com/asyncapi) | [All](https://github.com/asyncapi) |\n| [google](https://github.com/google) | [go-github](https://github.com/google/go-github) |\n| [asyncy](https://github.com/asyncy) | [All](https://github.com/asyncy) |\n| [Ewocker](https://github.com/Ewocker) | [vue-lodash](https://github.com/Ewocker/vue-lodash) |\n| [jetstack](https://github.com/jetstack) | [cert-manager](https://github.com/jetstack/cert-manager) |\n| [openfaas](https://github.com/openfaas) | [All](https://github.com/openfaas) |\n| [alexellis](https://github.com/alexellis) | [ubiquitous-octo-guacamole](https://github.com/alexellis/ubiquitous-octo-guacamole) |\n| [rajatjindal](https://github.com/rajatjindal) | [All](https://github.com/rajatjindal) |\n```\n\n# credits\nThis is a [openfaas](https://github.com/openfaas/faas) function which is built and deployed on [openfaas-cloud-community-cluster](http://github.com/apps/openfaas-cloud-community-cluster).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatjindal%2Fgithub-app-installations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatjindal%2Fgithub-app-installations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatjindal%2Fgithub-app-installations/lists"}