{"id":18773105,"url":"https://github.com/webfactory/baton","last_synced_at":"2025-06-21T05:02:25.386Z","repository":{"id":40413780,"uuid":"125847202","full_name":"webfactory/baton","owner":"webfactory","description":"Baton is a Composer dependency analytics tool which helps you keep track of the dependencies in your PHP projects.","archived":false,"fork":false,"pushed_at":"2024-12-10T16:11:39.000Z","size":1993,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-20T09:54:09.534Z","etag":null,"topics":["composer","php"],"latest_commit_sha":null,"homepage":"https://demo.baton.webfactory.de","language":"PHP","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/webfactory.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,"zenodo":null}},"created_at":"2018-03-19T11:27:08.000Z","updated_at":"2024-12-10T16:11:41.000Z","dependencies_parsed_at":"2024-04-16T10:38:47.454Z","dependency_job_id":"6729a40b-d0af-4f97-9298-1826e6fdb7dd","html_url":"https://github.com/webfactory/baton","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/webfactory/baton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webfactory%2Fbaton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webfactory%2Fbaton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webfactory%2Fbaton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webfactory%2Fbaton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webfactory","download_url":"https://codeload.github.com/webfactory/baton/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webfactory%2Fbaton/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261065251,"owners_count":23104761,"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":["composer","php"],"created_at":"2024-11-07T19:32:47.276Z","updated_at":"2025-06-21T05:02:20.291Z","avatar_url":"https://github.com/webfactory.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Baton\n\nBaton is a Composer dependency analytics tool which helps you keep track of the Composer dependencies in your PHP projects.\n\n\n## Demo\n\nVisit [demo.baton.webfactory.de](https://demo.baton.webfactory.de) to see Baton in action.\n\n## Installing / Getting started\n\nClone the project\n\n    git clone git@github.com:webfactory/baton.git\n    cd baton\n\n### Using Docker Compose\n\nStart a local version via [docker-compose](https://docs.docker.com/compose/):\n\n    docker-compose up\n\nWhen the docker containers finished building, you can find the project running at http://localhost:8000/.\nIf you cannot use Port 8000, you can use another one by defining the environment variable `HTTP_PORT`:\n\n    HTTP_PORT=9000 docker-compose up\n\nYou might want to use a `.env` file:\n\n    cp env-example .env\n    docker compose up\n\n### Without Docker\n\nYou might need to enter your proper MySQL-credentials in `src/config.yml`.\n\nTo get the project up and running you simply need to run these commands:\n\n    composer install\n    npm start\n    bin/console doctrine:database:create --if-not-exists\n    bin/console doctrine:schema:update --force\n    bin/console server:run --docroot=www\n\nOptionally run `bin/console doctrine:fixtures:load` to import some generated projects.\n\n## Tests\n\nBaton has Unit-Tests! Execute `bin/phpunit` to run them.\n\n## Configuration\n\nIn order to import private repositories from GitHub you need to provide an [OAuth token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/).\n\nSet it as the value of the environment variable `GITHUB_OAUTH_TOKEN` on your server and you're good to go.\n\nThe same goes for Kiln repositories. Store your Kiln OAuth token in the `KILN_OAUTH_TOKEN` environment variable on your server.\n\n## Features\n\n### Import Projects\n\nUse the webhook route `/webhook` to import/update repositories on push events (tested with GitHub and Kiln).\n\nYou can also import projects by repository URL through the Symfony Command `app:import-project` or the form at `/import-repositories`.\n\n### Search Package Usages\n\nUse the search form to find projects that use a Composer package matching a specific version range.\n\nThe search form fetches the results from `/usage-search/{package};{_format}/{operator}/{versionString}`,\nwhile `_format` can be `json` or `html`.\n\n### Other Views\n\nShow project with list of Composer dependencies and their locked versions.\n\nShow Composer Package with list of using projects grouped by version.\n\n## Roadmap\n\nRight now private repositories are only supported for projects hosted on GitHub or Kiln using OAuth tokens for authentication.\nA more general approach would be to use ssh URLs for importing repositories and pass an authorized ssh identity to the VCS.\n\n## Contributing\n\nWe love feedback :-)\n\nPull requests welcome!\n\n## Origins\n\nBaton was created by [@xkons](https://github.com/xkons) as graduation project for his apprenticeship in software development.\n\nThe total implementation time was limited to 32 hours by the Industrie Handelskammer Bonn, the main entity for apprenticeships in its area, which also grades the apprentices.\n\nThis is the final commit from the initial implementation in the given timeframe: [a812a21](https://github.com/webfactory/baton/commit/a812a21)\n\n## Credits, Copyright and License\n\nThis project was started at the webfactory GmbH, Bonn.\n\n- \u003chttp://www.webfactory.de\u003e\n- \u003chttp://twitter.com/webfactory\u003e\n\nCopyright 2018 webfactory GmbH, Bonn. Code released under [the MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebfactory%2Fbaton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebfactory%2Fbaton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebfactory%2Fbaton/lists"}