{"id":15486766,"url":"https://github.com/chrisns/repomanager","last_synced_at":"2025-04-22T16:44:02.438Z","repository":{"id":36979793,"uuid":"314688747","full_name":"chrisns/repomanager","owner":"chrisns","description":"Github repository manager","archived":false,"fork":false,"pushed_at":"2025-04-19T02:26:04.000Z","size":4870,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T09:18:47.084Z","etag":null,"topics":["github","gitops","repository-management"],"latest_commit_sha":null,"homepage":"https://github.com/apps/the-repository-manager","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisns.png","metadata":{"funding":{"github":["chrisns"],"custom":["https://www.paypal.me/cns"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-20T22:56:11.000Z","updated_at":"2025-04-18T22:49:06.000Z","dependencies_parsed_at":"2023-09-22T11:40:57.058Z","dependency_job_id":"462603fd-b738-4b2d-b89a-f0e6ae2d983d","html_url":"https://github.com/chrisns/repomanager","commit_stats":{"total_commits":1202,"total_committers":5,"mean_commits":240.4,"dds":"0.45840266222961734","last_synced_commit":"c5951c918053f22f67b8fecb63c88eb5d8ccf08d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisns%2Frepomanager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisns%2Frepomanager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisns%2Frepomanager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisns%2Frepomanager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisns","download_url":"https://codeload.github.com/chrisns/repomanager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250279883,"owners_count":21404483,"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","gitops","repository-management"],"created_at":"2024-10-02T06:09:37.709Z","updated_at":"2025-04-22T16:44:02.412Z","avatar_url":"https://github.com/chrisns.png","language":"JavaScript","funding_links":["https://github.com/sponsors/chrisns","https://www.paypal.me/cns"],"categories":[],"sub_categories":[],"readme":"# Github repository manager\n\n![GitHub package.json version](https://img.shields.io/github/package-json/v/chrisns/repomanager)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.png?v=103)](./LICENSE)\n[![ci](https://github.com/chrisns/repomanager/workflows/ci/badge.svg?branch=master)](https://github.com/chrisns/repomanager/actions?query=workflow%3Aci+branch%3Amaster)\n[![Coverage Status](https://coveralls.io/repos/github/chrisns/repomanager/badge.svg?branch=master)](https://coveralls.io/github/chrisns/repomanager?branch=master)\n[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/chrisns/repomanager.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/chrisns/repomanager/context:javascript)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/chrisns/repomanager.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/chrisns/repomanager/alerts/)\n\nGitHub App powered by AWS Lambda to manage your repositories for you.\n\n## Usage\n\n1. Enable [this app](https://github.com/apps/the-repository-manager) for the scope you want it to have, per-repository or for your whole account/org\n\n2. Customize it!\n\nConfiguration is formed through merging three potential configuration sources if they exist, `automatedSecurityFixes` and `vulnerabilityAlerts` are always both enabled by default\n\n1. This repository [base-repo-config.yml](base-repo-config.yml)\n2. A specifically named repository in the user/org called `.github` with a file named `repo-config.yml`. [example](https://github.com/chrisns/.github)\n3. A `.github/repo-config.yml` in the repository\n\n## Configuration example\n\n```yaml\nvulnerabilityAlerts: true\nautomatedSecurityFixes: true\nbranchProtection:\n  - branch: '__DEFALT_BRANCH__'\n    # __DEFALT_BRANCH__ is dynamically swapped out for the repository's default branch\n    required_status_checks:\n      strict: true\n      # contexts: ALL\n      # if you provide the ALL string for contexts, it will apply all the checks that were run last against the branch\n      contexts:\n        - build\n    required_linear_history: true\n    enforce_admins: false\n    required_pull_request_reviews: null\n    restrictions: null\nrepo:\n  # see octokit docs for all paramshttps://octokit.github.io/rest.js/v18#repos-update\n  has_issues: true\n  has_projects: false\n  has_wiki: false\n  is_template: false\n  allow_squash_merge: true\n  allow_merge_commit: false\n  allow_rebase_merge: true\n  delete_branch_on_merge: true\nfiles:\n  # You can also specify arbitrary files\n  '.github/FUNDING.yml': |\n    github: [yourusername]\n  'SECURITY.md': |\n    # Security Policy\n    ## Reporting a Vulnerability\n    Please contact you@example.com\n```\n\n## Installation\n\nYou only really need to do this if you don't trust me, want to run on-prem GitHub Enterprise or similar use case.\n\n1. Create a new GitHub App: \u003chttps://github.com/settings/apps/new\u003e\n\n- Use a temporary Webhook URL\n\n1. Download your GitHub App Private Key (i.e. `.pem` file)\n1. Configure this project\n\n- Move `.pem` into this project and change `CERT` variable from `serverless.yml` if required\n- Change `APP_ID` to match your new GitHub App\n\n1. Deploy this project. Check out \u003chttps://serverless.com/framework/docs/getting-started/\u003e for details.\n1. Update your GitHub App's Webhook URL\n\n## TODO\n\n- [ ] shard the installations, it won't scale well\n- [ ] support permissions on repo\n- [ ] manage teams on an org\n- [ ] manage webhooks\n\n## CAVEATS\n\nUsing this could do all sorts of things, destroy repos, remove access, basically anything your account can do you're granting to this app and it's author(s) and indirectly the authors of anything in the dependency chain. I'd encourage you to do your own due-diligence before enabling it. The authors/maintainers do not accept any liability of any consequences that occur.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisns%2Frepomanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisns%2Frepomanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisns%2Frepomanager/lists"}