{"action":"opened","number":218,"pull_request":{"url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/218","id":117584357,"html_url":"https://github.com/CentOS-PaaS-SIG/linch-pin/pull/218","diff_url":"https://github.com/CentOS-PaaS-SIG/linch-pin/pull/218.diff","patch_url":"https://github.com/CentOS-PaaS-SIG/linch-pin/pull/218.patch","issue_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues/218","number":218,"state":"open","locked":false,"title":"Linchpin hooks :: resolves #96","user":{"login":"samvarankashyap","id":5724499,"avatar_url":"https://avatars1.githubusercontent.com/u/5724499?v=3","gravatar_id":"","url":"https://api.github.com/users/samvarankashyap","html_url":"https://github.com/samvarankashyap","followers_url":"https://api.github.com/users/samvarankashyap/followers","following_url":"https://api.github.com/users/samvarankashyap/following{/other_user}","gists_url":"https://api.github.com/users/samvarankashyap/gists{/gist_id}","starred_url":"https://api.github.com/users/samvarankashyap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samvarankashyap/subscriptions","organizations_url":"https://api.github.com/users/samvarankashyap/orgs","repos_url":"https://api.github.com/users/samvarankashyap/repos","events_url":"https://api.github.com/users/samvarankashyap/events{/privacy}","received_events_url":"https://api.github.com/users/samvarankashyap/received_events","type":"User","site_admin":false},"body":"Summary:\r\n- linchpin now supports hooks in Pinfile in following states \r\n  preup, predown, postup and post down \r\n  ```\r\n  ref: example below\r\n  ```\r\n- hooks are resolved by name ie., if we have a hook named do_something of ansible type the workspace should contain following layout with all the playbooks.\r\n```\r\n.\r\n├── hooks\r\n│   ├── ansible\r\n│   │   ├── do_something\r\n│   │   │   ├── test_playbook.yaml\r\n│   │   │   ├── test_vars.yaml\r\n```\r\nexample Pinfile for above ansible hook looks as follows:\r\n```\r\n---\r\nopenstack:\r\n  topology: ex_os_server.yml\r\n  layout: openshift-3node-cluster.yml\r\n  hooks:\r\n    preup:              \r\n      - name: postdown_task\r\n        type: ansible\r\n        actions:\r\n          - playbook: test_playbook.yaml\r\n            vars: test_var.yaml\r\n            extra_vars: { \"test_var\": \"postdowntask\"}\r\n```\r\n- hooks also supports custom action manager , where the action managers need to implement the following linchpin.hooks.action_manager.ActionManager abstract class .\r\nfor example if user would like to implement their own action_manager of type testtype :\r\nhooks folder layout looks as follows : \r\n```\r\n.\r\n├── hooks\r\n│   └── testtype\r\n│       └── test_something\r\n│           ├── testact.py\r\n│           └── testact.pyc\r\n\r\n```\r\nexample Pinfile for the above testtype hook looks as follows:\r\n```\r\nopenstack:\r\n  topology: ex_os_server.yml\r\n  layout: openshift-3node-cluster.yml\r\n  hooks:\r\n    preup:              \r\n      - name: test_something\r\n        action_manager: testact.py\r\n        type: testtype\r\n        actions:\r\n          - \"This does nothing\"\r\n```\r\n\r\nExample Pinfile:\r\n```\r\n---\r\nopenstack:\r\n  topology: ex_os_server.yml\r\n  layout: openshift-3node-cluster.yml\r\n  hooks:\r\n    postup:            \r\n        - name: do_something\r\n          type: python\r\n          context: false\r\n          actions:\r\n            - test.py\r\n        - name: testruby\r\n          type: ruby\r\n          context: false\r\n          actions:\r\n            - test.rb\r\n        - name: testnode\r\n          type: node\r\n          context: true\r\n          actions:\r\n            - test.js\r\n    preup:              \r\n        - name: test_something\r\n          action_manager: testact.py\r\n          type: testtype\r\n          actions:\r\n            - \"This does nothing\"\r\n        - name: post_up\r\n          type: ansible\r\n          context: false\r\n          actions:\r\n            - playbook: test_playbook.yaml\r\n              vars: test_var.yaml\r\n              extra_vars: { \"test_var\": \"preup task\"}\r\n    postdown:\r\n        - name: do_something\r\n          type: shell\r\n          actions:\r\n            - echo \" this is post down operation Hello hai how r u ?\"\r\n        - name: postdown_task\r\n          type: ansible\r\n          actions:\r\n            - playbook: test_playbook.yaml\r\n              vars: test_var.yaml\r\n              extra_vars: { \"test_var\": \"postdowntask\"}\r\n```\r\ncurrent workspace layout required for testing the above Pinfile\r\n```\r\n.\r\n├── hooks\r\n│   ├── ansible\r\n│   │   ├── build_openshift_cluster\r\n│   │   │   ├── test_playbook.yaml\r\n│   │   │   └── test_var.yaml\r\n│   │   ├── postdown_task\r\n│   │   │   ├── test_playbook.yaml\r\n│   │   │   └── test_var.yaml\r\n│   │   └── post_up\r\n│   │       ├── test_playbook.yaml\r\n│   │       └── test_var.yaml\r\n│   ├── node\r\n│   │   └── testnode\r\n│   │       └── test.js\r\n│   ├── python\r\n│   │   └── do_something\r\n│   │       └── test.py\r\n│   ├── ruby\r\n│   │   └── testruby\r\n│   │       └── test.rb\r\n│   ├── shell\r\n│   │   └── thisisshell.sh\r\n│   └── testtype\r\n│       └── test_something\r\n│           ├── testact.py\r\n│           └── testact.pyc\r\n├── inventories\r\n├── layouts\r\n├── outputs\r\n├── PinFile\r\n├── resources\r\n└── topologies\r\n```\r\n\r\nTest: \r\n- copy pinfile from linchpin/examples/OS_SERVER_PINFILE to workspace\r\n- edit Pinfile <accordingly, if using ruby, node based hooks ruby, node should be installed on host>\r\n- linchpin rise\r\n- linchpin drop\r\nexample workspace for testing : https://github.com/samvarankashyap/linchtest\r\n\r\nIssues to be resolved:\r\n- Need to add documentation for states and hooks\r\n- Need to add developer documentation for custom_action_manager\r\n- Need to implement hooks with global scope.\r\nNote : refer #96 ","created_at":"2017-04-25T21:23:23Z","updated_at":"2017-04-25T21:23:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":{"login":"samvarankashyap","id":5724499,"avatar_url":"https://avatars1.githubusercontent.com/u/5724499?v=3","gravatar_id":"","url":"https://api.github.com/users/samvarankashyap","html_url":"https://github.com/samvarankashyap","followers_url":"https://api.github.com/users/samvarankashyap/followers","following_url":"https://api.github.com/users/samvarankashyap/following{/other_user}","gists_url":"https://api.github.com/users/samvarankashyap/gists{/gist_id}","starred_url":"https://api.github.com/users/samvarankashyap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samvarankashyap/subscriptions","organizations_url":"https://api.github.com/users/samvarankashyap/orgs","repos_url":"https://api.github.com/users/samvarankashyap/repos","events_url":"https://api.github.com/users/samvarankashyap/events{/privacy}","received_events_url":"https://api.github.com/users/samvarankashyap/received_events","type":"User","site_admin":false},"assignees":[{"login":"samvarankashyap","id":5724499,"avatar_url":"https://avatars1.githubusercontent.com/u/5724499?v=3","gravatar_id":"","url":"https://api.github.com/users/samvarankashyap","html_url":"https://github.com/samvarankashyap","followers_url":"https://api.github.com/users/samvarankashyap/followers","following_url":"https://api.github.com/users/samvarankashyap/following{/other_user}","gists_url":"https://api.github.com/users/samvarankashyap/gists{/gist_id}","starred_url":"https://api.github.com/users/samvarankashyap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samvarankashyap/subscriptions","organizations_url":"https://api.github.com/users/samvarankashyap/orgs","repos_url":"https://api.github.com/users/samvarankashyap/repos","events_url":"https://api.github.com/users/samvarankashyap/events{/privacy}","received_events_url":"https://api.github.com/users/samvarankashyap/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/milestones/6","html_url":"https://github.com/CentOS-PaaS-SIG/linch-pin/milestone/6","labels_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/milestones/6/labels","id":2306177,"number":6,"title":"v1.0.0","description":"Topology naming improvements #149 / Rework packaging to cleanup noise (down to 3 or 4 modules instead of ~20) #133 / CLI Improvements #128 #92 #128 / Allow for CLI $WORKSPACE variable #119 / Override certain values in a topology #144 #150 / Authn/Authz driver #76 / PinFile post_actions (see cinch feature) #96  - Simple Hooks (pre/post provision/teardown) / Packaging for different platforms #145 / Create a plugin model to accommodate ephemeral services #148 - Dynamic identification of ephemeral roles / Logging #146 / Deterministically pin resources from different clouds into layouts \r\n","creator":{"login":"herlo","id":89334,"avatar_url":"https://avatars1.githubusercontent.com/u/89334?v=3","gravatar_id":"","url":"https://api.github.com/users/herlo","html_url":"https://github.com/herlo","followers_url":"https://api.github.com/users/herlo/followers","following_url":"https://api.github.com/users/herlo/following{/other_user}","gists_url":"https://api.github.com/users/herlo/gists{/gist_id}","starred_url":"https://api.github.com/users/herlo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/herlo/subscriptions","organizations_url":"https://api.github.com/users/herlo/orgs","repos_url":"https://api.github.com/users/herlo/repos","events_url":"https://api.github.com/users/herlo/events{/privacy}","received_events_url":"https://api.github.com/users/herlo/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":16,"state":"open","created_at":"2017-02-07T16:14:19Z","updated_at":"2017-04-25T21:23:23Z","due_on":"2017-05-31T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/218/commits","review_comments_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/218/comments","review_comment_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues/218/comments","statuses_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/statuses/4cf84dcef64299bc8f2a5d19307dcbb8b6aadffa","head":{"label":"samvarankashyap:linchpin_hooks","ref":"linchpin_hooks","sha":"4cf84dcef64299bc8f2a5d19307dcbb8b6aadffa","user":{"login":"samvarankashyap","id":5724499,"avatar_url":"https://avatars1.githubusercontent.com/u/5724499?v=3","gravatar_id":"","url":"https://api.github.com/users/samvarankashyap","html_url":"https://github.com/samvarankashyap","followers_url":"https://api.github.com/users/samvarankashyap/followers","following_url":"https://api.github.com/users/samvarankashyap/following{/other_user}","gists_url":"https://api.github.com/users/samvarankashyap/gists{/gist_id}","starred_url":"https://api.github.com/users/samvarankashyap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samvarankashyap/subscriptions","organizations_url":"https://api.github.com/users/samvarankashyap/orgs","repos_url":"https://api.github.com/users/samvarankashyap/repos","events_url":"https://api.github.com/users/samvarankashyap/events{/privacy}","received_events_url":"https://api.github.com/users/samvarankashyap/received_events","type":"User","site_admin":false},"repo":{"id":62814982,"name":"linch-pin","full_name":"samvarankashyap/linch-pin","owner":{"login":"samvarankashyap","id":5724499,"avatar_url":"https://avatars1.githubusercontent.com/u/5724499?v=3","gravatar_id":"","url":"https://api.github.com/users/samvarankashyap","html_url":"https://github.com/samvarankashyap","followers_url":"https://api.github.com/users/samvarankashyap/followers","following_url":"https://api.github.com/users/samvarankashyap/following{/other_user}","gists_url":"https://api.github.com/users/samvarankashyap/gists{/gist_id}","starred_url":"https://api.github.com/users/samvarankashyap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samvarankashyap/subscriptions","organizations_url":"https://api.github.com/users/samvarankashyap/orgs","repos_url":"https://api.github.com/users/samvarankashyap/repos","events_url":"https://api.github.com/users/samvarankashyap/events{/privacy}","received_events_url":"https://api.github.com/users/samvarankashyap/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/samvarankashyap/linch-pin","description":null,"fork":true,"url":"https://api.github.com/repos/samvarankashyap/linch-pin","forks_url":"https://api.github.com/repos/samvarankashyap/linch-pin/forks","keys_url":"https://api.github.com/repos/samvarankashyap/linch-pin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/samvarankashyap/linch-pin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/samvarankashyap/linch-pin/teams","hooks_url":"https://api.github.com/repos/samvarankashyap/linch-pin/hooks","issue_events_url":"https://api.github.com/repos/samvarankashyap/linch-pin/issues/events{/number}","events_url":"https://api.github.com/repos/samvarankashyap/linch-pin/events","assignees_url":"https://api.github.com/repos/samvarankashyap/linch-pin/assignees{/user}","branches_url":"https://api.github.com/repos/samvarankashyap/linch-pin/branches{/branch}","tags_url":"https://api.github.com/repos/samvarankashyap/linch-pin/tags","blobs_url":"https://api.github.com/repos/samvarankashyap/linch-pin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/samvarankashyap/linch-pin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/samvarankashyap/linch-pin/git/refs{/sha}","trees_url":"https://api.github.com/repos/samvarankashyap/linch-pin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/samvarankashyap/linch-pin/statuses/{sha}","languages_url":"https://api.github.com/repos/samvarankashyap/linch-pin/languages","stargazers_url":"https://api.github.com/repos/samvarankashyap/linch-pin/stargazers","contributors_url":"https://api.github.com/repos/samvarankashyap/linch-pin/contributors","subscribers_url":"https://api.github.com/repos/samvarankashyap/linch-pin/subscribers","subscription_url":"https://api.github.com/repos/samvarankashyap/linch-pin/subscription","commits_url":"https://api.github.com/repos/samvarankashyap/linch-pin/commits{/sha}","git_commits_url":"https://api.github.com/repos/samvarankashyap/linch-pin/git/commits{/sha}","comments_url":"https://api.github.com/repos/samvarankashyap/linch-pin/comments{/number}","issue_comment_url":"https://api.github.com/repos/samvarankashyap/linch-pin/issues/comments{/number}","contents_url":"https://api.github.com/repos/samvarankashyap/linch-pin/contents/{+path}","compare_url":"https://api.github.com/repos/samvarankashyap/linch-pin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/samvarankashyap/linch-pin/merges","archive_url":"https://api.github.com/repos/samvarankashyap/linch-pin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/samvarankashyap/linch-pin/downloads","issues_url":"https://api.github.com/repos/samvarankashyap/linch-pin/issues{/number}","pulls_url":"https://api.github.com/repos/samvarankashyap/linch-pin/pulls{/number}","milestones_url":"https://api.github.com/repos/samvarankashyap/linch-pin/milestones{/number}","notifications_url":"https://api.github.com/repos/samvarankashyap/linch-pin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/samvarankashyap/linch-pin/labels{/name}","releases_url":"https://api.github.com/repos/samvarankashyap/linch-pin/releases{/id}","deployments_url":"https://api.github.com/repos/samvarankashyap/linch-pin/deployments","created_at":"2016-07-07T14:52:23Z","updated_at":"2016-10-28T16:41:32Z","pushed_at":"2017-04-25T20:11:56Z","git_url":"git://github.com/samvarankashyap/linch-pin.git","ssh_url":"git@github.com:samvarankashyap/linch-pin.git","clone_url":"https://github.com/samvarankashyap/linch-pin.git","svn_url":"https://github.com/samvarankashyap/linch-pin","homepage":null,"size":10460,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"develop"}},"base":{"label":"CentOS-PaaS-SIG:develop","ref":"develop","sha":"e7de566829c29a9b481b111c332fcd59f2b65401","user":{"login":"CentOS-PaaS-SIG","id":19438073,"avatar_url":"https://avatars3.githubusercontent.com/u/19438073?v=3","gravatar_id":"","url":"https://api.github.com/users/CentOS-PaaS-SIG","html_url":"https://github.com/CentOS-PaaS-SIG","followers_url":"https://api.github.com/users/CentOS-PaaS-SIG/followers","following_url":"https://api.github.com/users/CentOS-PaaS-SIG/following{/other_user}","gists_url":"https://api.github.com/users/CentOS-PaaS-SIG/gists{/gist_id}","starred_url":"https://api.github.com/users/CentOS-PaaS-SIG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CentOS-PaaS-SIG/subscriptions","organizations_url":"https://api.github.com/users/CentOS-PaaS-SIG/orgs","repos_url":"https://api.github.com/users/CentOS-PaaS-SIG/repos","events_url":"https://api.github.com/users/CentOS-PaaS-SIG/events{/privacy}","received_events_url":"https://api.github.com/users/CentOS-PaaS-SIG/received_events","type":"Organization","site_admin":false},"repo":{"id":60802750,"name":"linch-pin","full_name":"CentOS-PaaS-SIG/linch-pin","owner":{"login":"CentOS-PaaS-SIG","id":19438073,"avatar_url":"https://avatars3.githubusercontent.com/u/19438073?v=3","gravatar_id":"","url":"https://api.github.com/users/CentOS-PaaS-SIG","html_url":"https://github.com/CentOS-PaaS-SIG","followers_url":"https://api.github.com/users/CentOS-PaaS-SIG/followers","following_url":"https://api.github.com/users/CentOS-PaaS-SIG/following{/other_user}","gists_url":"https://api.github.com/users/CentOS-PaaS-SIG/gists{/gist_id}","starred_url":"https://api.github.com/users/CentOS-PaaS-SIG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CentOS-PaaS-SIG/subscriptions","organizations_url":"https://api.github.com/users/CentOS-PaaS-SIG/orgs","repos_url":"https://api.github.com/users/CentOS-PaaS-SIG/repos","events_url":"https://api.github.com/users/CentOS-PaaS-SIG/events{/privacy}","received_events_url":"https://api.github.com/users/CentOS-PaaS-SIG/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CentOS-PaaS-SIG/linch-pin","description":"ansible based multicloud orchestrator","fork":false,"url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin","forks_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/forks","keys_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/teams","hooks_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/hooks","issue_events_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues/events{/number}","events_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/events","assignees_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/assignees{/user}","branches_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/branches{/branch}","tags_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/tags","blobs_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/git/refs{/sha}","trees_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/statuses/{sha}","languages_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/languages","stargazers_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/stargazers","contributors_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/contributors","subscribers_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/subscribers","subscription_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/subscription","commits_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/commits{/sha}","git_commits_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/git/commits{/sha}","comments_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/comments{/number}","issue_comment_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues/comments{/number}","contents_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/contents/{+path}","compare_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/merges","archive_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/downloads","issues_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues{/number}","pulls_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls{/number}","milestones_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/milestones{/number}","notifications_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/labels{/name}","releases_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/releases{/id}","deployments_url":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/deployments","created_at":"2016-06-09T19:52:45Z","updated_at":"2017-04-20T21:11:14Z","pushed_at":"2017-04-25T14:35:10Z","git_url":"git://github.com/CentOS-PaaS-SIG/linch-pin.git","ssh_url":"git@github.com:CentOS-PaaS-SIG/linch-pin.git","clone_url":"https://github.com/CentOS-PaaS-SIG/linch-pin.git","svn_url":"https://github.com/CentOS-PaaS-SIG/linch-pin","homepage":"http://linch-pin.readthedocs.io/en/latest/","size":10389,"stargazers_count":20,"watchers_count":20,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":26,"forks":22,"open_issues":26,"watchers":20,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/218"},"html":{"href":"https://github.com/CentOS-PaaS-SIG/linch-pin/pull/218"},"issue":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues/218"},"comments":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/issues/218/comments"},"review_comments":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/218/comments"},"review_comment":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/pulls/218/commits"},"statuses":{"href":"https://api.github.com/repos/CentOS-PaaS-SIG/linch-pin/statuses/4cf84dcef64299bc8f2a5d19307dcbb8b6aadffa"}},"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":13,"additions":733,"deletions":21,"changed_files":13}}
{"actor":{"display_login":"samvarankashyap"}}