If I use codec => json in the input, the ouput is exactly as I want it to be but it only processes the first page.
If I don't use codec => json (it's plain by default IIRC), here's the output, with 2 projects per page and 2 pages, so you can see the different separators:
Full output as an image:
(there were too many characters for a single post)
Output without useless information:
{
"@timestamp" => 2018-07-18T07:06:52.468Z,
"command" => "~/Downloads/logstash-6.2.4/config/test.sh",
"host" => "aurelien-pc",
"message" => "[{\"id\":576,\"description\":\"\",\"name\":\"user-club-gitlab-1\",\"name_with_namespace\":\"user-club / user-club-gitlab-1\",\"path\":\"user-club-gitlab-1\",\"path_with_namespace\":\"user-club/user-club-gitlab-1\",\"created_at\":\"2018-07-17T13:49:53.649Z\",\"default_branch\":\"master\",\"tag_list\":[],\"ssh_url_to_repo\":\"git@gitlabhost:user-club/user-club-gitlab-1.git\",\"http_url_to_repo\":\"https://gitlabhost/user-club/user-club-gitlab-1.git\",\"web_url\":\"https://gitlabhost/user-club/user-club-gitlab-1\",\"avatar_url\":null,\"star_count\":0,\"forks_count\":0,\"last_activity_at\":\"2018-07-17T16:07:55.168Z\",\"statistics\":{\"commit_count\":1,\"storage_size\":471859,\"repository_size\":471859,\"lfs_objects_size\":0,\"job_artifacts_size\":0},\"permissions\":{\"project_access\":null,\"group_access\":{\"access_level\":50,\"notification_level\":3}}},{\"id\":575,\"description\":\"\",\"name\":\"ayi-gitlab-1\",\"name_with_namespace\":\"ayi / ayi-gitlab-1\",\"path\":\"ayi-gitlab-1\",\"path_with_namespace\":\"ayi/ayi-gitlab-1\",\"created_at\":\"2018-07-16T13:08:26.280Z\",\"default_branch\":null,\"tag_list\":[],\"ssh_url_to_repo\":\"git@gitlabhost:ayi/ayi-gitlab-1.git\",\"http_url_to_repo\":\"https://gitlabhost/ayi/ayi-gitlab-1.git\",\"web_url\":\"https://gitlabhost/ayi/ayi-gitlab-1\",\"avatar_url\":null,\"star_count\":0,\"forks_count\":0,\"last_activity_at\":\"2018-07-16T13:08:26.280Z\",\"statistics\":{\"commit_count\":0,\"storage_size\":0,\"repository_size\":0,\"lfs_objects_size\":0,\"job_artifacts_size\":0},\"permissions\":{\"project_access\":null,\"group_access\":{\"access_level\":50,\"notification_level\":3}}}][{\"id\":574,\"description\":\"\",\"name\":\"test-rle\",\"name_with_namespace\":\"test / test-rle\",\"path\":\"test-rle\",\"path_with_namespace\":\"test/test-rle\",\"created_at\":\"2018-07-10T10:46:14.393Z\",\"default_branch\":null,\"tag_list\":[],\"ssh_url_to_repo\":\"git@gitlabhost:A137990/test-rle.git\",\"http_url_to_repo\":\"https://gitlabhost/A137990/test-rle.git\",\"web_url\":\"https://gitlabhost/A137990/test-rle\",\"avatar_url\":null,\"star_count\":0,\"forks_count\":0,\"last_activity_at\":\"2018-07-10T10:46:14.393Z\",\"statistics\":{\"commit_count\":0,\"storage_size\":0,\"repository_size\":0,\"lfs_objects_size\":0,\"job_artifacts_size\":0},\"permissions\":{\"project_access\":null,\"group_access\":null}},{\"id\":573,\"description\":\"\",\"name\":\"myproject-gitlab-2\",\"name_with_namespace\":\"myproject / myproject-gitlab-2\",\"path\":\"myproject-gitlab-2\",\"path_with_namespace\":\"myproject/myproject-gitlab-2\",\"created_at\":\"2018-07-09T07:47:18.812Z\",\"default_branch\":\"master\",\"tag_list\":[],\"ssh_url_to_repo\":\"git@gitlabhost:myproject/myproject-gitlab-2.git\",\"http_url_to_repo\":\"https://gitlabhost/myproject/myproject-gitlab-2.git\",\"web_url\":\"https://gitlabhost/myproject/myproject-gitlab-2\",\"avatar_url\":null,\"star_count\":0,\"forks_count\":0,\"last_activity_at\":\"2018-07-10T15:35:40.437Z\",\"statistics\":{\"commit_count\":5,\"storage_size\":75303547,\"repository_size\":72446115,\"lfs_objects_size\":0,\"job_artifacts_size\":3271789},\"permissions\":{\"project_access\":null,\"group_access\":{\"access_level\":50,\"notification_level\":3}}}]",
"@version" => "1"
}
(it's easier to manipulate as text than as an image)
The message is a single line, which is quite normal with the plain codec I think. I'm not sure using split on this plain message is the best idea but I don't know what else I can do.