Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/webfactory/baton
Baton is a Composer dependency analytics tool which helps you keep track of the dependencies in your PHP projects.
https://github.com/webfactory/baton
composer php
Last synced: about 3 hours ago
JSON representation
Baton is a Composer dependency analytics tool which helps you keep track of the dependencies in your PHP projects.
- Host: GitHub
- URL: https://github.com/webfactory/baton
- Owner: webfactory
- License: mit
- Created: 2018-03-19T11:27:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-31T09:58:56.000Z (8 days ago)
- Last Synced: 2024-10-31T10:18:44.705Z (8 days ago)
- Topics: composer, php
- Language: PHP
- Homepage: https://demo.baton.webfactory.de
- Size: 1.64 MB
- Stars: 19
- Watchers: 8
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Baton
Baton is a Composer dependency analytics tool which helps you keep track of the Composer dependencies in your PHP projects.
## Demo
Visit [demo.baton.webfactory.de](https://demo.baton.webfactory.de) to see Baton in action.
## Installing / Getting started
Clone the project
git clone [email protected]:webfactory/baton.git
cd baton### Using Docker Compose
Start a local version via [docker-compose](https://docs.docker.com/compose/):
docker-compose up
When the docker containers finished building, you can find the project running at http://localhost:8000/.
If you cannot use Port 8000, you can use another one by defining the environment variable `HTTP_PORT`:HTTP_PORT=9000 docker-compose up
You might want to use a `.env` file:
cp env-example .env
docker compose up### Without Docker
You might need to enter your proper MySQL-credentials in `src/config.yml`.
To get the project up and running you simply need to run these commands:
composer install
npm start
bin/console doctrine:database:create --if-not-exists
bin/console doctrine:schema:update --force
bin/console server:run --docroot=wwwOptionally run `bin/console doctrine:fixtures:load` to import some generated projects.
## Tests
Baton has Unit-Tests! Execute `bin/phpunit` to run them.
## Configuration
In 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/).
Set it as the value of the environment variable `GITHUB_OAUTH_TOKEN` on your server and you're good to go.
The same goes for Kiln repositories. Store your Kiln OAuth token in the `KILN_OAUTH_TOKEN` environment variable on your server.
## Features
### Import Projects
Use the webhook route `/webhook` to import/update repositories on push events (tested with GitHub and Kiln).
You can also import projects by repository URL through the Symfony Command `app:import-project` or the form at `/import-repositories`.
### Search Package Usages
Use the search form to find projects that use a Composer package matching a specific version range.
The search form fetches the results from `/usage-search/{package};{_format}/{operator}/{versionString}`,
while `_format` can be `json` or `html`.### Other Views
Show project with list of Composer dependencies and their locked versions.
Show Composer Package with list of using projects grouped by version.
## Roadmap
Right now private repositories are only supported for projects hosted on GitHub or Kiln using OAuth tokens for authentication.
A more general approach would be to use ssh URLs for importing repositories and pass an authorized ssh identity to the VCS.## Contributing
We love feedback :-)
Pull requests welcome!
## Origins
Baton was created by [@xkons](https://github.com/xkons) as graduation project for his apprenticeship in software development.
The 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.
This is the final commit from the initial implementation in the given timeframe: [a812a21](https://github.com/webfactory/baton/commit/a812a21)
## Credits, Copyright and License
This project was started at the webfactory GmbH, Bonn.
-
-Copyright 2018 webfactory GmbH, Bonn. Code released under [the MIT license](LICENSE).