This project aims to provide detailed statistics about GitHub public events (commit, pull-request, comments) related to a keyword. These data will be displayed on a daily basis.
It uses GH Archive as its single source of truth. GH Archive records public GitHub data (commit, pull requests,...), archives it, and makes it easily accessible for further analysis.
👉 Must have
GitHub events will be imported by a Symfony command. Your goal is to fulfill this command in order to import GitHub events in our database. This command can be found here:
App\Command\ImportGitHubEventsCommand
API contract and entities are already done. But feel free to adapt the code as you like.
👉 Nice to have
This code base does not fulfill Yousign quality requirements.
Feel free to adapt the code with your own standards, quality requirements and sensibilities but keep in mind the functional perimeter of the project.
- Create a fork of this project
- Must have: Create a dedicated PR targeted on your forked project for the command (IMPORTANT: PR should be targeted on YOUR forked repo and NOT our)
- Nice to have: Create a dedicated refactoring PR targeted on your forked project (IMPORTANT: PR should be targeted on YOUR forked repo and NOT our)
Your PR will be reviewed during our technical interview, and it will be a support to talk about your choices.
You need make
and docker
installed to start the development environment.
The following command will start the development environment:
make start
You can access to the application at 127.0.0.1:8000.
make shell
You can run PHPUnit with the following command:
# Run the unit test suite
make unit-test
# init the db test (required once)
make db-test
# Run the functional test suite
make func-test
You can stop the development environment running this command:
make stop
You can clean the development environment (docker images, vendor, ...) running this command:
make clean
You can get available targets by running:
make
build Build the docker stack
pull Pulling docker images
shell Enter in the PHP container
start Start the docker stack
stop Stop the docker stack
clean Clean the docker stack
vendor Install composer dependencies
unit-test Run PhpUnit unit testsuite
func-test Run PhpUnit functionnal testsuite
We encourage you to have fun during this challenge!