{"action":"created","issue":{"url":"https://api.github.com/repos/yegor256/rultor/issues/737","labels_url":"https://api.github.com/repos/yegor256/rultor/issues/737/labels{/name}","comments_url":"https://api.github.com/repos/yegor256/rultor/issues/737/comments","events_url":"https://api.github.com/repos/yegor256/rultor/issues/737/events","html_url":"https://github.com/yegor256/rultor/pull/737","id":54511797,"number":737,"title":"#722 - BuildService interface","user":{"login":"maurezen","id":569536,"avatar_url":"https://avatars.githubusercontent.com/u/569536?v=3","gravatar_id":"","url":"https://api.github.com/users/maurezen","html_url":"https://github.com/maurezen","followers_url":"https://api.github.com/users/maurezen/followers","following_url":"https://api.github.com/users/maurezen/following{/other_user}","gists_url":"https://api.github.com/users/maurezen/gists{/gist_id}","starred_url":"https://api.github.com/users/maurezen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maurezen/subscriptions","organizations_url":"https://api.github.com/users/maurezen/orgs","repos_url":"https://api.github.com/users/maurezen/repos","events_url":"https://api.github.com/users/maurezen/events{/privacy}","received_events_url":"https://api.github.com/users/maurezen/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/yegor256/rultor/labels/15%20mins","name":"15 mins","color":"eb6421"},{"url":"https://api.github.com/repos/yegor256/rultor/labels/@carlosmiranda","name":"@carlosmiranda","color":"009801"},{"url":"https://api.github.com/repos/yegor256/rultor/labels/CR","name":"CR","color":"bfd4f3"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-01-15T22:10:34Z","updated_at":"2015-02-05T15:07:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/yegor256/rultor/pulls/737","html_url":"https://github.com/yegor256/rultor/pull/737","diff_url":"https://github.com/yegor256/rultor/pull/737.diff","patch_url":"https://github.com/yegor256/rultor/pull/737.patch"},"body":"@yegor256 having a think about this now. Where do I complain loudly about documentation? It is patchy. Also, I would very much appreciate an overview of the project architecture. \r\n\r\nAnyway, let's go on. My suggestions this far:\r\n - We can add an additional section right away, the parser will not break.\r\n - We need to add the code to interpret the added services section.\r\n - We have the code to run the arbitrary script (in DockerRun).\r\n - We need the code to run the build process on a service supplied in a service section.Will 'com.rultor.agents.build' do as a location?\r\n  - A build service interface with the method to run it against a supplied github repo, returning build status (preferrably asynchronously).\r\n  - An implementation for AppVeyor, constructed from the info supplied in config, being able to send the actual build request. Seeing as config parsing is just hardcoded everywhere, this probably will be the place for the code to interpret the appveyor service section of the config.\r\n  - The code to wait for the build service response and react to it (post&run scripts or just post)."},"comment":{"url":"https://api.github.com/repos/yegor256/rultor/issues/comments/73061067","html_url":"https://github.com/yegor256/rultor/pull/737#issuecomment-73061067","issue_url":"https://api.github.com/repos/yegor256/rultor/issues/737","id":73061067,"user":{"login":"alex-palevsky","id":4267913,"avatar_url":"https://avatars.githubusercontent.com/u/4267913?v=3","gravatar_id":"","url":"https://api.github.com/users/alex-palevsky","html_url":"https://github.com/alex-palevsky","followers_url":"https://api.github.com/users/alex-palevsky/followers","following_url":"https://api.github.com/users/alex-palevsky/following{/other_user}","gists_url":"https://api.github.com/users/alex-palevsky/gists{/gist_id}","starred_url":"https://api.github.com/users/alex-palevsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alex-palevsky/subscriptions","organizations_url":"https://api.github.com/users/alex-palevsky/orgs","repos_url":"https://api.github.com/users/alex-palevsky/repos","events_url":"https://api.github.com/users/alex-palevsky/events{/privacy}","received_events_url":"https://api.github.com/users/alex-palevsky/received_events","type":"User","site_admin":false},"created_at":"2015-02-05T15:07:58Z","updated_at":"2015-02-05T15:07:58Z","body":"> @alex-palevsky We're waiting for #754 here.\n\n@carlosmiranda OK, let's wait for #754"}}