Challenge GH Archive Keyword

🚀 THE project

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.

Screenshoot

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.

👩‍🏫 What you will have to do

Implement events import functionality

👉 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.

Refactor the project

👉 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.

🤓 Requirements

  • 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.

💻 How to use development environment

You need make, docker and docker-compose installed to start the development environment.

Start the development environment

The following command will start the development environment:

make start

You can access to the application at .

Access to a shell in the PHP container

make shell

Test tools

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

Stop the development environment

You can stop the development environment running this command:

make stop

Clean the development environment

You can clean the development environment (docker images, vendor, ...) running this command:

make clean

Makefile targets

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!

💪 Good luck!