{"action":"created","comment":{"url":"https://api.github.com/repos/gwsystems/composite/pulls/comments/170159052","pull_request_review_id":98804010,"id":170159052,"diff_hunk":"@@ -0,0 +1,11 @@\n+#include <schedinit.h>\n+\n+int schedinit_child_intern(spdid_t c, int u1, int u2, int u3, int *u4, int *u5);\n+\n+int schedinit_child(spdid_t c)\n+{\n+\tint unused;\n+\n+\treturn 0;\n+//\treturn schedinit_child_intern(c, unused, unused, unused, &unused, &unused);","path":"src/components/interface/schedinit/stubs/c_stub.c","position":10,"original_position":10,"commit_id":"97a7c28cb8db16d0e71d942542f377465776eaaa","original_commit_id":"97a7c28cb8db16d0e71d942542f377465776eaaa","user":{"login":"phanikishoreg","id":13894584,"avatar_url":"https://avatars1.githubusercontent.com/u/13894584?v=4","gravatar_id":"","url":"https://api.github.com/users/phanikishoreg","html_url":"https://github.com/phanikishoreg","followers_url":"https://api.github.com/users/phanikishoreg/followers","following_url":"https://api.github.com/users/phanikishoreg/following{/other_user}","gists_url":"https://api.github.com/users/phanikishoreg/gists{/gist_id}","starred_url":"https://api.github.com/users/phanikishoreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phanikishoreg/subscriptions","organizations_url":"https://api.github.com/users/phanikishoreg/orgs","repos_url":"https://api.github.com/users/phanikishoreg/repos","events_url":"https://api.github.com/users/phanikishoreg/events{/privacy}","received_events_url":"https://api.github.com/users/phanikishoreg/received_events","type":"User","site_admin":false},"body":"Oops! I need to fix this. ","created_at":"2018-02-23T03:28:49Z","updated_at":"2018-02-23T03:28:50Z","html_url":"https://github.com/gwsystems/composite/pull/315#discussion_r170159052","pull_request_url":"https://api.github.com/repos/gwsystems/composite/pulls/315","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/gwsystems/composite/pulls/comments/170159052"},"html":{"href":"https://github.com/gwsystems/composite/pull/315#discussion_r170159052"},"pull_request":{"href":"https://api.github.com/repos/gwsystems/composite/pulls/315"}}},"pull_request":{"url":"https://api.github.com/repos/gwsystems/composite/pulls/315","id":169844516,"html_url":"https://github.com/gwsystems/composite/pull/315","diff_url":"https://github.com/gwsystems/composite/pull/315.diff","patch_url":"https://github.com/gwsystems/composite/pull/315.patch","issue_url":"https://api.github.com/repos/gwsystems/composite/issues/315","number":315,"state":"open","locked":false,"title":"Resmgr (threads, aeps, asnds, heap and shared memory) and schedmgr with fprr component","user":{"login":"phanikishoreg","id":13894584,"avatar_url":"https://avatars1.githubusercontent.com/u/13894584?v=4","gravatar_id":"","url":"https://api.github.com/users/phanikishoreg","html_url":"https://github.com/phanikishoreg","followers_url":"https://api.github.com/users/phanikishoreg/followers","following_url":"https://api.github.com/users/phanikishoreg/following{/other_user}","gists_url":"https://api.github.com/users/phanikishoreg/gists{/gist_id}","starred_url":"https://api.github.com/users/phanikishoreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phanikishoreg/subscriptions","organizations_url":"https://api.github.com/users/phanikishoreg/orgs","repos_url":"https://api.github.com/users/phanikishoreg/repos","events_url":"https://api.github.com/users/phanikishoreg/events{/privacy}","received_events_url":"https://api.github.com/users/phanikishoreg/received_events","type":"User","site_admin":false},"body":"### Summary of this Pull Request (PR)\r\n\r\n**Resource manager (resmgr):**\r\nThis component manages all the system resources for every component loaded by llbooter in the system.\r\nResources are created at the time of a request from a component for all resources.\r\nI need a `thd_retrieve_next` iterator for PARENT component to walk-through a component's threads and get access. I'll introduce this while working on that big pending item mentioned below.\r\n\r\n* Core system resources: Threads, TCaps, Rcv-ep, Send-ep, Memory\r\n* Resource access to components: Threads, Aeps (Thd, TCap, Rcv), Send-ep, Heap and Shared memory.\r\n* Heap/Shared-memory: Allocates PAGE_SIZE * n pages\r\n* Shared-memory: ~~Almost~~ same as what @RobertGiff has for shmem.h(Referenced from his implementation obviously). ~~Only major difference is, the shared memory regions are per component that creates it and **id**s are per component too unlike the shmem.h where **id** are global IDs across all components.~~ Changed to use global identifiers!\r\n* unit test components but not full-fledged. Tests shared memory and heap well but!\r\n* Access controlled AFAIK. Components allowed to create threads if they're schedulers and/or if they're a parent to other components.\r\n\r\n**Scheduling manager:**\r\n* Interface for basic scheduling operations\r\n* FPRR implementation.\r\n* unit test component mimics `unit_fprr` test but in this case using scheduling interface! \r\n* Access controlled: Components can use this interface only if they're a child component of the component exposing this interface!\r\n\r\n**llbooter changes:**\r\n* components/include/llboot.h - exposes llbooter sinv features with API. Access controlled: Most operations are only allowed to be used by resource manager.\r\n* copying INIT capabilities to required components. (with some hack that requires me to copy SELF_CT to all scheduling components so they can `introspect` on various resources).\r\n* only creating init thread in `resmgr` and `root` scheduler. In general, for all components it is a parent to. This is again based on the component names that are name-mangled with static IDs and a protocol to identify root/resmgr/ and complete hierarchy of components!\r\n* name-mangling: explained in the llbooter.c but I may not have thought it through. It works for what I've done for both my test components and name-mangling in existing components like ping-pong test!\r\n\r\n**sl changes:**\r\n* took out allocation from sl.c : moved core scheduling operations to sl_sched.c, allocation operations to sl_resmgr.c (for components using resource manager for allocation) and to sl_rawmgr.c for components using raw resources, mainly llbooter and resource manager components!\r\n* added api to create threads in child components using `thread index` from the child component\r\n* sl_resmgr library using only id member in cos_defcompinfo (id for spdid)\r\n\r\n**cos_kernel_api:**\r\n* sinv with 3 rets API.\r\n* api exposed to init capfrontier, vasfrontier that's used mainly by resource manager component\r\n* api to create thread using `thread index`\r\n\r\n**cos_defkernel_api:**\r\n* Added api to create threads/aeps in child(ext or external) components.\r\n* Added a member to the struct : spdid so that a component can use sl_resmgr to create threads in child components.\r\n* I've some redundant or unused API there at this point I believe. \r\n* added api to create threads in child components using `thread index` from the child component\r\n\r\n**invocation stubs:** to allow 2 additional return values. This requires me to make all interfaces use this for server stubs through of course client stubs calling `_intern` api. As all the invocations use `cos_sinv_3rets`!\r\n\r\nI believe I've a cleaner implementation for taking out `system scheduler` from llbooter and for providing `llbooter library`. But more importantly some of the changes can be a duplicate work of current pending PRs from @RobertGiff and @maloneya.\r\n\r\n**BIGGEST PENDING ITEMs:** \r\n* ~~Components calling their parent components to initialize their threads in the parent scheduling domains to enable scheduling of SINV from child threads! But I wanted to get this out so I don't block some who need specific parts of my changes~~!.DONE!\r\n* Locks or a retry mechanism for creating resources: For simplicity, if we assume that the resources (other than memory) are created at the boot time and by INITTHD of a component only, then there is really no need for synchronization mechanisms in RESMGR. I've used \"atomic\" instructions for array indexes. This should be sufficient for the shared-memory that can be created on the fly as the indexes == global identifiers. Will talk about this when we meet next time. \r\n* Scheduling hierarchy using \"schedmgr\" interface! TODO\r\n\r\n### Intent for your PR\r\n\r\nChoose one (Mandatory):\r\n\r\n- [ ] This PR is for a code-review and is intended to get feedback, but not to be pulled yet.\r\n- [x] This PR is mature, and ready to be integrated into the repo.\r\n\r\n### Reviewers (Mandatory):\r\n@gparmer @RobertGiff @Others @maloneya @lab176 \r\n\r\n### Code Quality\r\n\r\nAs part of this pull request, I've considered the following:\r\n\r\n[Style](https://github.com/gparmer/composite/raw/ppos/doc/style_guide/composite_coding_style.pdf):\r\n\r\n- [x] Comments adhere to the Style Guide (SG)\r\n- [x] Spacing adhere's to the SG\r\n- [x] Naming adhere's to the SG\r\n- [x] All other aspects of the SG are adhered to, or exceptions are justified in this pull request\r\n- [ ] I have run the auto formatter on my code before submitting this PR (see doc/auto_formatter.md for instructions)\r\n\r\n[Code Craftsmanship](http://www2.seas.gwu.edu/~gparmer/posts/2016-03-07-code-craftsmanship.html):\r\n\r\n- [x] I've made an attempt to remove all redundant code: ~~I may have some unused API in cos_defkernel_api, I need to clean that up~~. \r\n- [x] I've considered ways in which my changes might impact existing code, and cleaned it up\r\n- [x] I've formatted the code in an effort to make it easier to read (proper error handling, function use, etc...)\r\n- [x] I've commented appropriately where code is tricky\r\n- [x]  I agree that there is no \"throw-away\" code, and that code in this PR is of high quality\r\n\r\n### Testing\r\n\r\nI've tested the code using the following test programs (provide list here):\r\n- micro_booter, vkernel_booter, llbooter_test, llbooter_pong, unit_schedtest, unit_fprr <- existing tests\r\n- unit_resmgr, unit_schedcomp <- new unit tests\r\n- unit_hierschedcomps <- new test for component hierarchy \r\n","created_at":"2018-02-18T19:01:12Z","updated_at":"2018-02-23T03:28:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"268507847ae9fb55c44de9bb2e3e72db52dd022e","assignee":null,"assignees":[],"requested_reviewers":[{"login":"lab176","id":631197,"avatar_url":"https://avatars3.githubusercontent.com/u/631197?v=4","gravatar_id":"","url":"https://api.github.com/users/lab176","html_url":"https://github.com/lab176","followers_url":"https://api.github.com/users/lab176/followers","following_url":"https://api.github.com/users/lab176/following{/other_user}","gists_url":"https://api.github.com/users/lab176/gists{/gist_id}","starred_url":"https://api.github.com/users/lab176/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lab176/subscriptions","organizations_url":"https://api.github.com/users/lab176/orgs","repos_url":"https://api.github.com/users/lab176/repos","events_url":"https://api.github.com/users/lab176/events{/privacy}","received_events_url":"https://api.github.com/users/lab176/received_events","type":"User","site_admin":false},{"login":"RobertGiff","id":5796818,"avatar_url":"https://avatars3.githubusercontent.com/u/5796818?v=4","gravatar_id":"","url":"https://api.github.com/users/RobertGiff","html_url":"https://github.com/RobertGiff","followers_url":"https://api.github.com/users/RobertGiff/followers","following_url":"https://api.github.com/users/RobertGiff/following{/other_user}","gists_url":"https://api.github.com/users/RobertGiff/gists{/gist_id}","starred_url":"https://api.github.com/users/RobertGiff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobertGiff/subscriptions","organizations_url":"https://api.github.com/users/RobertGiff/orgs","repos_url":"https://api.github.com/users/RobertGiff/repos","events_url":"https://api.github.com/users/RobertGiff/events{/privacy}","received_events_url":"https://api.github.com/users/RobertGiff/received_events","type":"User","site_admin":false},{"login":"Others","id":6342225,"avatar_url":"https://avatars0.githubusercontent.com/u/6342225?v=4","gravatar_id":"","url":"https://api.github.com/users/Others","html_url":"https://github.com/Others","followers_url":"https://api.github.com/users/Others/followers","following_url":"https://api.github.com/users/Others/following{/other_user}","gists_url":"https://api.github.com/users/Others/gists{/gist_id}","starred_url":"https://api.github.com/users/Others/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Others/subscriptions","organizations_url":"https://api.github.com/users/Others/orgs","repos_url":"https://api.github.com/users/Others/repos","events_url":"https://api.github.com/users/Others/events{/privacy}","received_events_url":"https://api.github.com/users/Others/received_events","type":"User","site_admin":false},{"login":"maloneya","id":9469738,"avatar_url":"https://avatars0.githubusercontent.com/u/9469738?v=4","gravatar_id":"","url":"https://api.github.com/users/maloneya","html_url":"https://github.com/maloneya","followers_url":"https://api.github.com/users/maloneya/followers","following_url":"https://api.github.com/users/maloneya/following{/other_user}","gists_url":"https://api.github.com/users/maloneya/gists{/gist_id}","starred_url":"https://api.github.com/users/maloneya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maloneya/subscriptions","organizations_url":"https://api.github.com/users/maloneya/orgs","repos_url":"https://api.github.com/users/maloneya/repos","events_url":"https://api.github.com/users/maloneya/events{/privacy}","received_events_url":"https://api.github.com/users/maloneya/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/gwsystems/composite/pulls/315/commits","review_comments_url":"https://api.github.com/repos/gwsystems/composite/pulls/315/comments","review_comment_url":"https://api.github.com/repos/gwsystems/composite/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gwsystems/composite/issues/315/comments","statuses_url":"https://api.github.com/repos/gwsystems/composite/statuses/97a7c28cb8db16d0e71d942542f377465776eaaa","head":{"label":"phanikishoreg:resmgr","ref":"resmgr","sha":"97a7c28cb8db16d0e71d942542f377465776eaaa","user":{"login":"phanikishoreg","id":13894584,"avatar_url":"https://avatars1.githubusercontent.com/u/13894584?v=4","gravatar_id":"","url":"https://api.github.com/users/phanikishoreg","html_url":"https://github.com/phanikishoreg","followers_url":"https://api.github.com/users/phanikishoreg/followers","following_url":"https://api.github.com/users/phanikishoreg/following{/other_user}","gists_url":"https://api.github.com/users/phanikishoreg/gists{/gist_id}","starred_url":"https://api.github.com/users/phanikishoreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phanikishoreg/subscriptions","organizations_url":"https://api.github.com/users/phanikishoreg/orgs","repos_url":"https://api.github.com/users/phanikishoreg/repos","events_url":"https://api.github.com/users/phanikishoreg/events{/privacy}","received_events_url":"https://api.github.com/users/phanikishoreg/received_events","type":"User","site_admin":false},"repo":{"id":45254686,"name":"composite","full_name":"phanikishoreg/composite","owner":{"login":"phanikishoreg","id":13894584,"avatar_url":"https://avatars1.githubusercontent.com/u/13894584?v=4","gravatar_id":"","url":"https://api.github.com/users/phanikishoreg","html_url":"https://github.com/phanikishoreg","followers_url":"https://api.github.com/users/phanikishoreg/followers","following_url":"https://api.github.com/users/phanikishoreg/following{/other_user}","gists_url":"https://api.github.com/users/phanikishoreg/gists{/gist_id}","starred_url":"https://api.github.com/users/phanikishoreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phanikishoreg/subscriptions","organizations_url":"https://api.github.com/users/phanikishoreg/orgs","repos_url":"https://api.github.com/users/phanikishoreg/repos","events_url":"https://api.github.com/users/phanikishoreg/events{/privacy}","received_events_url":"https://api.github.com/users/phanikishoreg/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/phanikishoreg/composite","description":"A component-based OS","fork":true,"url":"https://api.github.com/repos/phanikishoreg/composite","forks_url":"https://api.github.com/repos/phanikishoreg/composite/forks","keys_url":"https://api.github.com/repos/phanikishoreg/composite/keys{/key_id}","collaborators_url":"https://api.github.com/repos/phanikishoreg/composite/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/phanikishoreg/composite/teams","hooks_url":"https://api.github.com/repos/phanikishoreg/composite/hooks","issue_events_url":"https://api.github.com/repos/phanikishoreg/composite/issues/events{/number}","events_url":"https://api.github.com/repos/phanikishoreg/composite/events","assignees_url":"https://api.github.com/repos/phanikishoreg/composite/assignees{/user}","branches_url":"https://api.github.com/repos/phanikishoreg/composite/branches{/branch}","tags_url":"https://api.github.com/repos/phanikishoreg/composite/tags","blobs_url":"https://api.github.com/repos/phanikishoreg/composite/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/phanikishoreg/composite/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/phanikishoreg/composite/git/refs{/sha}","trees_url":"https://api.github.com/repos/phanikishoreg/composite/git/trees{/sha}","statuses_url":"https://api.github.com/repos/phanikishoreg/composite/statuses/{sha}","languages_url":"https://api.github.com/repos/phanikishoreg/composite/languages","stargazers_url":"https://api.github.com/repos/phanikishoreg/composite/stargazers","contributors_url":"https://api.github.com/repos/phanikishoreg/composite/contributors","subscribers_url":"https://api.github.com/repos/phanikishoreg/composite/subscribers","subscription_url":"https://api.github.com/repos/phanikishoreg/composite/subscription","commits_url":"https://api.github.com/repos/phanikishoreg/composite/commits{/sha}","git_commits_url":"https://api.github.com/repos/phanikishoreg/composite/git/commits{/sha}","comments_url":"https://api.github.com/repos/phanikishoreg/composite/comments{/number}","issue_comment_url":"https://api.github.com/repos/phanikishoreg/composite/issues/comments{/number}","contents_url":"https://api.github.com/repos/phanikishoreg/composite/contents/{+path}","compare_url":"https://api.github.com/repos/phanikishoreg/composite/compare/{base}...{head}","merges_url":"https://api.github.com/repos/phanikishoreg/composite/merges","archive_url":"https://api.github.com/repos/phanikishoreg/composite/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/phanikishoreg/composite/downloads","issues_url":"https://api.github.com/repos/phanikishoreg/composite/issues{/number}","pulls_url":"https://api.github.com/repos/phanikishoreg/composite/pulls{/number}","milestones_url":"https://api.github.com/repos/phanikishoreg/composite/milestones{/number}","notifications_url":"https://api.github.com/repos/phanikishoreg/composite/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/phanikishoreg/composite/labels{/name}","releases_url":"https://api.github.com/repos/phanikishoreg/composite/releases{/id}","deployments_url":"https://api.github.com/repos/phanikishoreg/composite/deployments","created_at":"2015-10-30T14:08:49Z","updated_at":"2017-08-07T19:07:02Z","pushed_at":"2018-02-22T19:41:54Z","git_url":"git://github.com/phanikishoreg/composite.git","ssh_url":"git@github.com:phanikishoreg/composite.git","clone_url":"https://github.com/phanikishoreg/composite.git","svn_url":"https://github.com/phanikishoreg/composite","homepage":"composite.seas.gwu.edu","size":22592,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"ppos"}},"base":{"label":"gwsystems:ppos","ref":"ppos","sha":"c4936514dcf35640c0ceae8656cfc20a4213c654","user":{"login":"gwsystems","id":24600102,"avatar_url":"https://avatars2.githubusercontent.com/u/24600102?v=4","gravatar_id":"","url":"https://api.github.com/users/gwsystems","html_url":"https://github.com/gwsystems","followers_url":"https://api.github.com/users/gwsystems/followers","following_url":"https://api.github.com/users/gwsystems/following{/other_user}","gists_url":"https://api.github.com/users/gwsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/gwsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gwsystems/subscriptions","organizations_url":"https://api.github.com/users/gwsystems/orgs","repos_url":"https://api.github.com/users/gwsystems/repos","events_url":"https://api.github.com/users/gwsystems/events{/privacy}","received_events_url":"https://api.github.com/users/gwsystems/received_events","type":"Organization","site_admin":false},"repo":{"id":3140667,"name":"composite","full_name":"gwsystems/composite","owner":{"login":"gwsystems","id":24600102,"avatar_url":"https://avatars2.githubusercontent.com/u/24600102?v=4","gravatar_id":"","url":"https://api.github.com/users/gwsystems","html_url":"https://github.com/gwsystems","followers_url":"https://api.github.com/users/gwsystems/followers","following_url":"https://api.github.com/users/gwsystems/following{/other_user}","gists_url":"https://api.github.com/users/gwsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/gwsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gwsystems/subscriptions","organizations_url":"https://api.github.com/users/gwsystems/orgs","repos_url":"https://api.github.com/users/gwsystems/repos","events_url":"https://api.github.com/users/gwsystems/events{/privacy}","received_events_url":"https://api.github.com/users/gwsystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gwsystems/composite","description":"A component-based OS","fork":false,"url":"https://api.github.com/repos/gwsystems/composite","forks_url":"https://api.github.com/repos/gwsystems/composite/forks","keys_url":"https://api.github.com/repos/gwsystems/composite/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gwsystems/composite/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gwsystems/composite/teams","hooks_url":"https://api.github.com/repos/gwsystems/composite/hooks","issue_events_url":"https://api.github.com/repos/gwsystems/composite/issues/events{/number}","events_url":"https://api.github.com/repos/gwsystems/composite/events","assignees_url":"https://api.github.com/repos/gwsystems/composite/assignees{/user}","branches_url":"https://api.github.com/repos/gwsystems/composite/branches{/branch}","tags_url":"https://api.github.com/repos/gwsystems/composite/tags","blobs_url":"https://api.github.com/repos/gwsystems/composite/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gwsystems/composite/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gwsystems/composite/git/refs{/sha}","trees_url":"https://api.github.com/repos/gwsystems/composite/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gwsystems/composite/statuses/{sha}","languages_url":"https://api.github.com/repos/gwsystems/composite/languages","stargazers_url":"https://api.github.com/repos/gwsystems/composite/stargazers","contributors_url":"https://api.github.com/repos/gwsystems/composite/contributors","subscribers_url":"https://api.github.com/repos/gwsystems/composite/subscribers","subscription_url":"https://api.github.com/repos/gwsystems/composite/subscription","commits_url":"https://api.github.com/repos/gwsystems/composite/commits{/sha}","git_commits_url":"https://api.github.com/repos/gwsystems/composite/git/commits{/sha}","comments_url":"https://api.github.com/repos/gwsystems/composite/comments{/number}","issue_comment_url":"https://api.github.com/repos/gwsystems/composite/issues/comments{/number}","contents_url":"https://api.github.com/repos/gwsystems/composite/contents/{+path}","compare_url":"https://api.github.com/repos/gwsystems/composite/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gwsystems/composite/merges","archive_url":"https://api.github.com/repos/gwsystems/composite/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gwsystems/composite/downloads","issues_url":"https://api.github.com/repos/gwsystems/composite/issues{/number}","pulls_url":"https://api.github.com/repos/gwsystems/composite/pulls{/number}","milestones_url":"https://api.github.com/repos/gwsystems/composite/milestones{/number}","notifications_url":"https://api.github.com/repos/gwsystems/composite/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gwsystems/composite/labels{/name}","releases_url":"https://api.github.com/repos/gwsystems/composite/releases{/id}","deployments_url":"https://api.github.com/repos/gwsystems/composite/deployments","created_at":"2012-01-09T22:20:27Z","updated_at":"2018-02-23T00:57:03Z","pushed_at":"2018-02-22T19:41:55Z","git_url":"git://github.com/gwsystems/composite.git","ssh_url":"git@github.com:gwsystems/composite.git","clone_url":"https://github.com/gwsystems/composite.git","svn_url":"https://github.com/gwsystems/composite","homepage":"composite.seas.gwu.edu","size":25526,"stargazers_count":59,"watchers_count":59,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":41,"mirror_url":null,"archived":false,"open_issues_count":66,"license":null,"forks":41,"open_issues":66,"watchers":59,"default_branch":"ppos"}},"_links":{"self":{"href":"https://api.github.com/repos/gwsystems/composite/pulls/315"},"html":{"href":"https://github.com/gwsystems/composite/pull/315"},"issue":{"href":"https://api.github.com/repos/gwsystems/composite/issues/315"},"comments":{"href":"https://api.github.com/repos/gwsystems/composite/issues/315/comments"},"review_comments":{"href":"https://api.github.com/repos/gwsystems/composite/pulls/315/comments"},"review_comment":{"href":"https://api.github.com/repos/gwsystems/composite/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gwsystems/composite/pulls/315/commits"},"statuses":{"href":"https://api.github.com/repos/gwsystems/composite/statuses/97a7c28cb8db16d0e71d942542f377465776eaaa"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"phanikishoreg"}}