{"id":13832266,"url":"https://github.com/probot/probot-config","last_synced_at":"2025-09-29T08:31:37.447Z","repository":{"id":65411505,"uuid":"107567698","full_name":"probot/probot-config","owner":"probot","description":"A Probot extension to easily share configs between repositories.","archived":true,"fork":false,"pushed_at":"2019-08-05T22:11:34.000Z","size":320,"stargazers_count":63,"open_issues_count":2,"forks_count":33,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-04-26T02:43:40.332Z","etag":null,"topics":["probot","probot-extension"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/probot.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}},"created_at":"2017-10-19T15:53:35.000Z","updated_at":"2024-03-27T09:35:24.000Z","dependencies_parsed_at":"2023-01-23T10:54:59.914Z","dependency_job_id":null,"html_url":"https://github.com/probot/probot-config","commit_stats":null,"previous_names":["getsentry/probot-config"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fprobot-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fprobot-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fprobot-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fprobot-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/probot","download_url":"https://codeload.github.com/probot/probot-config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234604481,"owners_count":18859164,"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":["probot","probot-extension"],"created_at":"2024-08-04T10:01:57.831Z","updated_at":"2025-09-29T08:31:37.003Z","avatar_url":"https://github.com/probot.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# This project has been moved to Probot core\n\nThis project has been merged into [Probot](https://github.com/probot/probot) itself as part of the core `context.config` helper. Any future development takes place there.\n\n# Probot: Config\n\n[![Downloads][npm-downloads]][npm-url] [![version][npm-version]][npm-url]\n[![License][npm-license]][license-url]\n[![Build Status][travis-status]][travis-url]\n\nA [Probot](https://probot.github.io) extension to easily share configs between\nrepositories.\n\n## Setup\n\nJust put common configuration keys in a common repository within your\norganization. Then reference this repository from config files with the same\nname.\n\n```yaml\n# octocat/probot-settings:.github/test.yaml\nshared1: will be merged\nshared2: will also be merged\n\n# octocat/repo1:.github/test.yaml\n_extends: probot-settings\nother: AAA\n\n# octocat/repo2:.github/test.yaml\n_extends: probot-settings\nshared2: overrides shared2\nother: BBB\n\n# octocat/repo3:.github/test.yaml\nother: CCC # standalone, does not extend other configs\n```\n\nConfigs are deeply-merged. Nested objects do not have to be redefined\ncompletely. This is accomplished using [deepmerge](https://github.com/KyleAMathews/deepmerge). When using probot-config in an app, you can pass [options](https://github.com/KyleAMathews/deepmerge#options) through to `deepmerge`.\n\nYou can also reference configurations from other organizations:\n\n```yaml\n_extends: other/probot-settings\nother: DDD\n```\n\nAdditionally, you can specify a specific path for the configuration by\nappending a colon after the project.\n\n```yaml\n_extends: probot-settings:.github/other_test.yaml\nother: FFF\n```\n\nInherited configurations are in the **exact same location** within the\nrepositories.\n\n```yaml\n# octocat/repo1:.github/test.yaml\n_extends: .github\nother: GGG\n\n# octocat/.github:test.yaml\nother: HHH\n```\n\nAdditionally, if there is no config file, but there is a repo in the org named\n`.github`, it will be used as a base repository.\n\n```yaml\n# octocat/repo1:.github/test.yaml \u003c-- missing!\n# octocat/.github:.github/test.yaml\nother: III\n```\n\n## Recipes\n\nThese recipes are specific to usage of the .github repo name, which is the\nrecommended place to store your configuration files. Within the .github repository,\nyour configuration must live in a `.github/` folder.\n\n### An opt-in pattern\n\nYou may want to create a configuration that other projects in your org inherit\nfrom on an explicit opt-in basis. Example:\n\n```yaml\n# octocat/.github:.github/_test.yaml\nshared1: Will be inherited by repo1 and not repo2\n\n# octocat/repo1:.github/test.yaml\n# Inherits from octocat/.github:_test.yaml\n_extends: .github:_test.yaml\n# octocat/repo3:.github/test.yaml \u003c--missing!\n# Is not merged with another config.\n```\n\n### An opt-out pattern\n\nAlternatively, you may want to default to the config in your `.github` project\nand occasionally opt-out. Example:\n\n```yaml\n# octocat/.github:.github/test.yaml\nshared1: Will be inherited by repo1 and not repo2\n# octocat/repo1:.github/test.yaml \u003c-- missing!\n# Uses octocat/.github:test.yaml instead\n\n# octocat/repo3:.github/test.yaml \u003c-- either empty or populated\n# Will not inherit shared1, since no _extends field is specified\n```\n\n## Usage\n\n```js\nconst getConfig = require('probot-config');\n\nmodule.exports = robot =\u003e {\n  robot.on('push', async context =\u003e {\n    // Will look for 'test.yml' inside the '.github' folder\n    const config = await getConfig(context, 'test.yml');\n  });\n};\n```\n\n## Development\n\n```sh\n# Install dependencies\nnpm install\n\n# Run the bot\nnpm start\n\n# Run test watchers\nnpm run test:watch\n```\n\nWe use [prettier](https://prettier.io/) for auto-formatting and\n[eslint](https://eslint.org/) as linter. Both tools can automatically fix a lot\nof issues for you. To invoke them, simply run:\n\n```sh\nnpm run fix\n```\n\nIt is highly recommended to use VSCode and install the suggested extensions.\nThey will configure your IDE to match the coding style, invoke auto formatters\nevery time you save and run tests in the background for you. No need to run the\nwatchers manually.\n\n[license-url]: https://github.com/getsentry/probot-config/blob/master/LICENSE\n[npm-url]: https://www.npmjs.com/package/probot-config\n[npm-license]: https://img.shields.io/npm/l/probot-config.svg?style=flat\n[npm-version]: https://img.shields.io/npm/v/probot-config.svg?style=flat\n[npm-downloads]: https://img.shields.io/npm/dm/probot-config.svg?style=flat\n[travis-url]: https://travis-ci.org/getsentry/probot-config\n[travis-status]: https://travis-ci.org/getsentry/probot-config.svg?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobot%2Fprobot-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprobot%2Fprobot-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobot%2Fprobot-config/lists"}