{"action":"closed","number":326,"pull_request":{"url":"https://api.github.com/repos/Dynflow/dynflow/pulls/326","id":282252713,"node_id":"MDExOlB1bGxSZXF1ZXN0MjgyMjUyNzEz","html_url":"https://github.com/Dynflow/dynflow/pull/326","diff_url":"https://github.com/Dynflow/dynflow/pull/326.diff","patch_url":"https://github.com/Dynflow/dynflow/pull/326.patch","issue_url":"https://api.github.com/repos/Dynflow/dynflow/issues/326","number":326,"state":"closed","locked":false,"title":"Log the original trace for the actor","user":{"login":"iNecas","id":190443,"node_id":"MDQ6VXNlcjE5MDQ0Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/190443?v=4","gravatar_id":"","url":"https://api.github.com/users/iNecas","html_url":"https://github.com/iNecas","followers_url":"https://api.github.com/users/iNecas/followers","following_url":"https://api.github.com/users/iNecas/following{/other_user}","gists_url":"https://api.github.com/users/iNecas/gists{/gist_id}","starred_url":"https://api.github.com/users/iNecas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iNecas/subscriptions","organizations_url":"https://api.github.com/users/iNecas/orgs","repos_url":"https://api.github.com/users/iNecas/repos","events_url":"https://api.github.com/users/iNecas/events{/privacy}","received_events_url":"https://api.github.com/users/iNecas/received_events","type":"User","site_admin":false},"body":"This helps a lot figuring out where the particular errors are coming\r\nfrom.\r\n\r\nBefore - long backtrace that doesn't lead to the original caller:\r\n\r\n```\r\nE, [2019-05-25T22:12:00.588309 #13630] ERROR -- /client-dispatcher: No executor available (Dynflow::Error)\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/connectors/direct.rb:44:in `find_receiver'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/connectors/direct.rb:29:in `handle_envelope'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/actor.rb:6:in `on_message'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/context.rb:46:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/executes_context.rb:7:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/actor.rb:26:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/awaits.rb:15:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/sets_results.rb:14:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/buffer.rb:38:in `process_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/buffer.rb:31:in `process_envelopes?'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/buffer.rb:20:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/termination.rb:55:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/removes_child.rb:10:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/sets_results.rb:14:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:162:in `process_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:96:in `block in on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:119:in `block (2 levels) in schedule_execution'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:116:in `block in schedule_execution'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb:18:in `call'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb:96:in `work'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb:77:in `block in call_job'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb:1257:in `raise'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb:1257:in `wait_until_resolved!'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promises.rb:987:in `value!'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/dispatcher/client_dispatcher.rb:148:in `dispatch_request'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/actor.rb:6:in `on_message'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/context.rb:46:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/executes_context.rb:7:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/actor.rb:26:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/awaits.rb:15:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/sets_results.rb:14:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/buffer.rb:38:in `process_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/buffer.rb:31:in `process_envelopes?'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/buffer.rb:20:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/termination.rb:55:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/removes_child.rb:10:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/abstract.rb:25:in `pass'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/behaviour/sets_results.rb:14:in `on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:162:in `process_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:96:in `block in on_envelope'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:119:in `block (2 levels) in schedule_execution'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-edge-0.4.1/lib-edge/concurrent/actor/core.rb:116:in `block in schedule_execution'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb:18:in `call'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb:96:in `work'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/serialized_execution.rb:77:in `block in call_job'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'\r\n/home/inecas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'\r\n```\r\n\r\nAfter - the concurrent-ruby part is filtered out, and the original backtrace back to the initiator\r\nis included, including jumps though multiple actors:\r\n\r\n```\r\nE, [2019-05-25T22:06:56.311751 #11038] ERROR -- /connector-direct-core: No executor available (Dynflow::Error)\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/connectors/direct.rb:44:in `find_receiver'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/connectors/direct.rb:29:in `handle_envelope'\r\n[ concurrent-ruby ]\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/connectors/direct.rb:68:in `send'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/dispatcher/client_dispatcher.rb:148:in `dispatch_request'\r\n[ concurrent-ruby ]\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/world/invalidation.rb:54:in `block in invalidate_execution_lock'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/world/invalidation.rb:94:in `with_valid_execution_plan_for_lock'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/world/invalidation.rb:35:in `invalidate_execution_lock'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/dispatcher/executor_dispatcher.rb:38:in `when_done'\r\n/home/inecas/active/projects/foreman-main/dynflow/lib/dynflow/dispatcher/executor_dispatcher.rb:23:in `block (2 levels) in perform_execution'\r\n[ concurrent-ruby ]\r\n```\r\n\r\nFYI there is a track to propagate the backtraces within concurrent-ruby executor here https://github.com/ruby-concurrency/concurrent-ruby/issues/810","created_at":"2019-05-25T20:20:29Z","updated_at":"2019-07-09T12:44:04Z","closed_at":"2019-07-09T12:44:04Z","merged_at":"2019-07-09T12:44:03Z","merge_commit_sha":"60830dd8a8a24959dff5606d9b1e753f2853d02e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Dynflow/dynflow/pulls/326/commits","review_comments_url":"https://api.github.com/repos/Dynflow/dynflow/pulls/326/comments","review_comment_url":"https://api.github.com/repos/Dynflow/dynflow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Dynflow/dynflow/issues/326/comments","statuses_url":"https://api.github.com/repos/Dynflow/dynflow/statuses/47ff4eff3946226a0d087d786652f9d12d0c2e38","head":{"label":"iNecas:actor-origin-logging","ref":"actor-origin-logging","sha":"47ff4eff3946226a0d087d786652f9d12d0c2e38","user":{"login":"iNecas","id":190443,"node_id":"MDQ6VXNlcjE5MDQ0Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/190443?v=4","gravatar_id":"","url":"https://api.github.com/users/iNecas","html_url":"https://github.com/iNecas","followers_url":"https://api.github.com/users/iNecas/followers","following_url":"https://api.github.com/users/iNecas/following{/other_user}","gists_url":"https://api.github.com/users/iNecas/gists{/gist_id}","starred_url":"https://api.github.com/users/iNecas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iNecas/subscriptions","organizations_url":"https://api.github.com/users/iNecas/orgs","repos_url":"https://api.github.com/users/iNecas/repos","events_url":"https://api.github.com/users/iNecas/events{/privacy}","received_events_url":"https://api.github.com/users/iNecas/received_events","type":"User","site_admin":false},"repo":{"id":16067498,"node_id":"MDEwOlJlcG9zaXRvcnkxNjA2NzQ5OA==","name":"dynflow","full_name":"iNecas/dynflow","private":false,"owner":{"login":"iNecas","id":190443,"node_id":"MDQ6VXNlcjE5MDQ0Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/190443?v=4","gravatar_id":"","url":"https://api.github.com/users/iNecas","html_url":"https://github.com/iNecas","followers_url":"https://api.github.com/users/iNecas/followers","following_url":"https://api.github.com/users/iNecas/following{/other_user}","gists_url":"https://api.github.com/users/iNecas/gists{/gist_id}","starred_url":"https://api.github.com/users/iNecas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iNecas/subscriptions","organizations_url":"https://api.github.com/users/iNecas/orgs","repos_url":"https://api.github.com/users/iNecas/repos","events_url":"https://api.github.com/users/iNecas/events{/privacy}","received_events_url":"https://api.github.com/users/iNecas/received_events","type":"User","site_admin":false},"html_url":"https://github.com/iNecas/dynflow","description":"DYNamic workFLOW engine","fork":true,"url":"https://api.github.com/repos/iNecas/dynflow","forks_url":"https://api.github.com/repos/iNecas/dynflow/forks","keys_url":"https://api.github.com/repos/iNecas/dynflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iNecas/dynflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iNecas/dynflow/teams","hooks_url":"https://api.github.com/repos/iNecas/dynflow/hooks","issue_events_url":"https://api.github.com/repos/iNecas/dynflow/issues/events{/number}","events_url":"https://api.github.com/repos/iNecas/dynflow/events","assignees_url":"https://api.github.com/repos/iNecas/dynflow/assignees{/user}","branches_url":"https://api.github.com/repos/iNecas/dynflow/branches{/branch}","tags_url":"https://api.github.com/repos/iNecas/dynflow/tags","blobs_url":"https://api.github.com/repos/iNecas/dynflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iNecas/dynflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iNecas/dynflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/iNecas/dynflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iNecas/dynflow/statuses/{sha}","languages_url":"https://api.github.com/repos/iNecas/dynflow/languages","stargazers_url":"https://api.github.com/repos/iNecas/dynflow/stargazers","contributors_url":"https://api.github.com/repos/iNecas/dynflow/contributors","subscribers_url":"https://api.github.com/repos/iNecas/dynflow/subscribers","subscription_url":"https://api.github.com/repos/iNecas/dynflow/subscription","commits_url":"https://api.github.com/repos/iNecas/dynflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/iNecas/dynflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/iNecas/dynflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/iNecas/dynflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/iNecas/dynflow/contents/{+path}","compare_url":"https://api.github.com/repos/iNecas/dynflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iNecas/dynflow/merges","archive_url":"https://api.github.com/repos/iNecas/dynflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iNecas/dynflow/downloads","issues_url":"https://api.github.com/repos/iNecas/dynflow/issues{/number}","pulls_url":"https://api.github.com/repos/iNecas/dynflow/pulls{/number}","milestones_url":"https://api.github.com/repos/iNecas/dynflow/milestones{/number}","notifications_url":"https://api.github.com/repos/iNecas/dynflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iNecas/dynflow/labels{/name}","releases_url":"https://api.github.com/repos/iNecas/dynflow/releases{/id}","deployments_url":"https://api.github.com/repos/iNecas/dynflow/deployments","created_at":"2014-01-20T10:23:08Z","updated_at":"2014-11-20T11:00:48Z","pushed_at":"2019-07-09T12:34:34Z","git_url":"git://github.com/iNecas/dynflow.git","ssh_url":"git@github.com:iNecas/dynflow.git","clone_url":"https://github.com/iNecas/dynflow.git","svn_url":"https://github.com/iNecas/dynflow","homepage":null,"size":3159,"stargazers_count":1,"watchers_count":1,"language":"Ruby","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":1,"watchers":1,"default_branch":"master"}},"base":{"label":"Dynflow:master","ref":"master","sha":"b52b2a91e36e34f8736200afa7a3fe5e1c94a020","user":{"login":"Dynflow","id":6445287,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY0NDUyODc=","avatar_url":"https://avatars2.githubusercontent.com/u/6445287?v=4","gravatar_id":"","url":"https://api.github.com/users/Dynflow","html_url":"https://github.com/Dynflow","followers_url":"https://api.github.com/users/Dynflow/followers","following_url":"https://api.github.com/users/Dynflow/following{/other_user}","gists_url":"https://api.github.com/users/Dynflow/gists{/gist_id}","starred_url":"https://api.github.com/users/Dynflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dynflow/subscriptions","organizations_url":"https://api.github.com/users/Dynflow/orgs","repos_url":"https://api.github.com/users/Dynflow/repos","events_url":"https://api.github.com/users/Dynflow/events{/privacy}","received_events_url":"https://api.github.com/users/Dynflow/received_events","type":"Organization","site_admin":false},"repo":{"id":9658764,"node_id":"MDEwOlJlcG9zaXRvcnk5NjU4NzY0","name":"dynflow","full_name":"Dynflow/dynflow","private":false,"owner":{"login":"Dynflow","id":6445287,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY0NDUyODc=","avatar_url":"https://avatars2.githubusercontent.com/u/6445287?v=4","gravatar_id":"","url":"https://api.github.com/users/Dynflow","html_url":"https://github.com/Dynflow","followers_url":"https://api.github.com/users/Dynflow/followers","following_url":"https://api.github.com/users/Dynflow/following{/other_user}","gists_url":"https://api.github.com/users/Dynflow/gists{/gist_id}","starred_url":"https://api.github.com/users/Dynflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dynflow/subscriptions","organizations_url":"https://api.github.com/users/Dynflow/orgs","repos_url":"https://api.github.com/users/Dynflow/repos","events_url":"https://api.github.com/users/Dynflow/events{/privacy}","received_events_url":"https://api.github.com/users/Dynflow/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Dynflow/dynflow","description":"DYNamic workFLOW orchestration engine","fork":false,"url":"https://api.github.com/repos/Dynflow/dynflow","forks_url":"https://api.github.com/repos/Dynflow/dynflow/forks","keys_url":"https://api.github.com/repos/Dynflow/dynflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Dynflow/dynflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Dynflow/dynflow/teams","hooks_url":"https://api.github.com/repos/Dynflow/dynflow/hooks","issue_events_url":"https://api.github.com/repos/Dynflow/dynflow/issues/events{/number}","events_url":"https://api.github.com/repos/Dynflow/dynflow/events","assignees_url":"https://api.github.com/repos/Dynflow/dynflow/assignees{/user}","branches_url":"https://api.github.com/repos/Dynflow/dynflow/branches{/branch}","tags_url":"https://api.github.com/repos/Dynflow/dynflow/tags","blobs_url":"https://api.github.com/repos/Dynflow/dynflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Dynflow/dynflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Dynflow/dynflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/Dynflow/dynflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Dynflow/dynflow/statuses/{sha}","languages_url":"https://api.github.com/repos/Dynflow/dynflow/languages","stargazers_url":"https://api.github.com/repos/Dynflow/dynflow/stargazers","contributors_url":"https://api.github.com/repos/Dynflow/dynflow/contributors","subscribers_url":"https://api.github.com/repos/Dynflow/dynflow/subscribers","subscription_url":"https://api.github.com/repos/Dynflow/dynflow/subscription","commits_url":"https://api.github.com/repos/Dynflow/dynflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/Dynflow/dynflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/Dynflow/dynflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/Dynflow/dynflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/Dynflow/dynflow/contents/{+path}","compare_url":"https://api.github.com/repos/Dynflow/dynflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Dynflow/dynflow/merges","archive_url":"https://api.github.com/repos/Dynflow/dynflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Dynflow/dynflow/downloads","issues_url":"https://api.github.com/repos/Dynflow/dynflow/issues{/number}","pulls_url":"https://api.github.com/repos/Dynflow/dynflow/pulls{/number}","milestones_url":"https://api.github.com/repos/Dynflow/dynflow/milestones{/number}","notifications_url":"https://api.github.com/repos/Dynflow/dynflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Dynflow/dynflow/labels{/name}","releases_url":"https://api.github.com/repos/Dynflow/dynflow/releases{/id}","deployments_url":"https://api.github.com/repos/Dynflow/dynflow/deployments","created_at":"2013-04-24T22:13:43Z","updated_at":"2019-07-09T07:43:44Z","pushed_at":"2019-07-09T12:44:03Z","git_url":"git://github.com/Dynflow/dynflow.git","ssh_url":"git@github.com:Dynflow/dynflow.git","clone_url":"https://github.com/Dynflow/dynflow.git","svn_url":"https://github.com/Dynflow/dynflow","homepage":"http://dynflow.github.io","size":2407,"stargazers_count":85,"watchers_count":85,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":19,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":34,"open_issues":19,"watchers":85,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Dynflow/dynflow/pulls/326"},"html":{"href":"https://github.com/Dynflow/dynflow/pull/326"},"issue":{"href":"https://api.github.com/repos/Dynflow/dynflow/issues/326"},"comments":{"href":"https://api.github.com/repos/Dynflow/dynflow/issues/326/comments"},"review_comments":{"href":"https://api.github.com/repos/Dynflow/dynflow/pulls/326/comments"},"review_comment":{"href":"https://api.github.com/repos/Dynflow/dynflow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Dynflow/dynflow/pulls/326/commits"},"statuses":{"href":"https://api.github.com/repos/Dynflow/dynflow/statuses/47ff4eff3946226a0d087d786652f9d12d0c2e38"}},"author_association":"MEMBER","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"adamruzicka","id":7326770,"node_id":"MDQ6VXNlcjczMjY3NzA=","avatar_url":"https://avatars0.githubusercontent.com/u/7326770?v=4","gravatar_id":"","url":"https://api.github.com/users/adamruzicka","html_url":"https://github.com/adamruzicka","followers_url":"https://api.github.com/users/adamruzicka/followers","following_url":"https://api.github.com/users/adamruzicka/following{/other_user}","gists_url":"https://api.github.com/users/adamruzicka/gists{/gist_id}","starred_url":"https://api.github.com/users/adamruzicka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamruzicka/subscriptions","organizations_url":"https://api.github.com/users/adamruzicka/orgs","repos_url":"https://api.github.com/users/adamruzicka/repos","events_url":"https://api.github.com/users/adamruzicka/events{/privacy}","received_events_url":"https://api.github.com/users/adamruzicka/received_events","type":"User","site_admin":false},"comments":4,"review_comments":3,"maintainer_can_modify":false,"commits":2,"additions":77,"deletions":23,"changed_files":5}}
{"actor":{"display_login":"adamruzicka"}}