{"action":"closed","number":2140,"pull_request":{"url":"https://api.github.com/repos/nasa/openmct/pulls/2140","id":206837730,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2ODM3NzMw","html_url":"https://github.com/nasa/openmct/pull/2140","diff_url":"https://github.com/nasa/openmct/pull/2140.diff","patch_url":"https://github.com/nasa/openmct/pull/2140.patch","issue_url":"https://api.github.com/repos/nasa/openmct/issues/2140","number":2140,"state":"closed","locked":false,"title":"topic-core-refactor for FY2018-Q4 Release","user":{"login":"larkin","id":226503,"node_id":"MDQ6VXNlcjIyNjUwMw==","avatar_url":"https://avatars0.githubusercontent.com/u/226503?v=4","gravatar_id":"","url":"https://api.github.com/users/larkin","html_url":"https://github.com/larkin","followers_url":"https://api.github.com/users/larkin/followers","following_url":"https://api.github.com/users/larkin/following{/other_user}","gists_url":"https://api.github.com/users/larkin/gists{/gist_id}","starred_url":"https://api.github.com/users/larkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larkin/subscriptions","organizations_url":"https://api.github.com/users/larkin/orgs","repos_url":"https://api.github.com/users/larkin/repos","events_url":"https://api.github.com/users/larkin/events{/privacy}","received_events_url":"https://api.github.com/users/larkin/received_events","type":"User","site_admin":false},"body":"This is a in-progress tracker for work on core refactors for Open MCT.  A number of changes will land in this topic branch before landing in master.  This pull request will track progress on those changes.\r\n\r\n* [x] Refactor build to webpack, remove gulp and bower (#2139)\r\n* [ ] Rewrite and update view components\r\n  * [ ] Object Views & Plugins\r\n    * [ ] Table @akhenry\r\n      * [x] Vue rewrite (#2154)\r\n      * [x] CSS Rewrite w/ Vue SFCs (#2157 )\r\n      * [x] Shortcut sorted insertion on telemetry. Just compare to last  / first element.\r\n      * [x] Tidy up source directories\r\n      * [ ] subobject editing a telemetry table inside a layout kicks out of editing the item for each gesture. **DONE in layout-editing**\r\n      * [ ] needs migration for visible columns\r\n      * [ ] table headers in edit mode need hover effects + move cursor for drag and drop reorder. @charlesh88  **DONE in layout-editing**\r\n      * [x] Limit colors @charlesh88  DONE in misc-ui-3.\r\n      * [x] remove unnecessary console.log (loaded x rows) \r\n      * [x] Should not be able to edit a table view of a telemetry object (should not persist changes on non-table objects.)\r\n      * [x] Unsubscribe from composed object when removed.\r\n    * [x] Notebook @dtailor90\r\n      * [x] Vue Rewrite\r\n      * [x] Fix \"Create notebook entry\" in Object Browse Bar\r\n      * [x] rewrite angular actions\r\n      * [x] search component logging errors in notebook\r\n      * [x] drop into new entry area of notebook: goes to edit mode and adds to composition.\r\n      * [x] drag and drop into notebook in layout puts layout in edit mode.\r\n      * [x] newest/oldest sort order doesn't work\r\n      * [x] trying to annotate an existing notebook entry gives error when saving annotation\r\n      * [x] notebook should not have composition or elements pool.\r\n      * [X] notebook should have selected default for sort order instead of \"select one\"\r\n      * [x] drag and drop into notebook has type error\r\n      * [x] z-indexing of annotate is broken.\r\n      * [x] clicking on embedded object link doesn't work.\r\n      * [x] drop down menu on embedded objects has wrong background\r\n        * @charlesh88 says: the Notebook is currently using custom markup for that menu, but should be using the context-menu Vue control instead. @dtailor90 to review.\r\n    * [x] Display Layout @psarram \r\n      * [x] Initial vue rewrite\r\n      * [x] implement alphanumeric telemetry display\r\n      * [x] implement box drawing\r\n      * [x] implement text drawing\r\n      * [x] implement images\r\n      * [x] Hide Preview button when object is in main view, i.e. not in `.c-frame`.\r\n      * [x] Display correct object type icons in frame header.\r\n      * [x] Fix styles for the line element.\r\n      * [x] Add toolbar controls for setting x1, x2, y1 and y2 for lines.  \r\n      * [x] Add a toolbar button to change the stack order of items.\r\n      * [x] Add useGrid button for layout items.\r\n      * [x] Support saving telemetry objects in Display Layouts.\r\n      * [x] Support setting grid size in save dialog. \r\n      * [x] Delete fixed position files.\r\n      * [x] add delete button in layouts for items\r\n      * [x] telemetry view has warnings for undefined metadata.\r\n      * [x] Wire up view-large button **DONE by @dtailor90**\r\n      * [x] Define migration script for display layouts\r\n      * [x] define migration script for fixed positions\r\n      * [x] Support drawing when display layout is inside flexible layout/\r\n      * [x] horizontal / vertical line should not be invisible\r\n      * [X] When a layout is being edited and no object but the parent container is selected, the cursor should not be the 'move' cursor. @charlesh88, done in misc-ui-3.\r\n      * [X] When a notebook is in a Layout, hovering over the notebook, makes every entry's delete icon show up. @charlesh88, done in misc-ui-3.\r\n      - **From selection discussion 12/19/18**\r\n        * [x] Get rid of `is-drilled-in` logic: @psarram; \r\n        * [x] Remove `is-drilled-in` related CSS: @charlesh88 **DONE in layout-editing**\r\n        * [x] Only move non-drawing frames around by header; drawing frames continue to use whole-object move targets: @charlesh88 **DONE in layout-editing**\r\n        * [x] Hidden frames will display dynamic head on hover: @charlesh88 **DONE in layout-editing**\r\n        * [x] Drawing object frames will need to be distinguishable from other frame types: @charlesh88 **DONE in layout-editing** \r\n          * Note from @psarram: \"The only item type that would get the object frame is 'subobject-view'. You can check for item.type === 'subobject-view' to add appropriate class/markup.\"\r\n        * [x] Grids displayed for s-selected and s-selected-parent Layout objects always: @charlesh88 **DONE in layout-editing** \r\n    * [ ] Flexible Layout @dtailor90 \r\n      * [x] initial implementation in vue\r\n      * [x] refactor components and improve drop handling\r\n      * [x] @dtailor90 @charlesh88 to handle is-editing when an FL or a fixed Layout is nested in a FL or vice versa.\r\n      * [x] flexible layout in display layout has problems with selection and toolbars.\r\n      * [x] placing flexible layout inside itself breaks the world (and should be disabled)\r\n      * [x] can't drag and drop to initiate editing in flexible layouts\r\n      * [x] drag and drop from one column to another has a weird ghost image.\r\n      * [x] not showing composition in tree or elements pool.\r\n      * [x] Does not react to composition remove events.\r\n      * [ ] Can't edit objects in flexible layouts due to move cursor getting in the way @charlesh88 \r\n      \r\n    * [x] Items (grid) View\r\n      * [x] Implement vue grid @dtailor90\r\n      * [x] Fix folder Grid view alias indicators in mobile - they're not being transformed currently. @charlesh88\r\n      * [x] Should be named \"Grid View\" instead of \"Grid Vue\"\r\n    * [x] List View @charlesh88 \r\n      * [x] implement vue list @dtailor90\r\n      * [x] Fix List Vue cell ellipsis, not working currently. **DONE in misc-ui-4**\r\n      * [x] Should be named \"List View\" instead of \"List Vue\"\r\n      * [x] Column sort preference in list view is not persisted. Switching between grid and list view changes the sort order.\r\n    * [ ] Style Guide\r\n        * [ ] shouldn't be able to save in style guide.\r\n    * [ ] Plots @larkin @charlesh88\r\n        * [ ] `s-status-timeconductor-unsynced` needs to be applied when TC is unsynced due to pan/zoom gesture. Stacked plots working properly currently, but overlay plots are not.\r\n        * [x] Fix image export\r\n        * [x] fix color selector for plot series\r\n        * [ ] stacked plot should support sub object selection\r\n        * [x] Plot legends @charlesh88 \r\n          * [x] Hard to read, styles need updated.\r\n          * [x] Expansion disclosure control not showing.\r\n    * [ ] Clocks & Timers @dtailor90 @charlesh88 \r\n        * [ ] Fix styling @charlesh88 - done in `clock-timer-fixes` branch\r\n        * [ ] Pause button requires two clicks \r\n          * @charlesh88 12-20-18: cannot duplicate consistently, suggest we don't fix in Angular.\r\n        * [X] Stop action missing icon @charlesh88 - done in `clock-timer-fixes` branch\r\n    * [ ] Imagery\r\n        * [x] Contrast and brightness controls have broken styles. @charlesh88\r\n        * [ ] Ignores time conductor in fixed mode, still shows realtime data.\r\n        * [x] When added to a Layout, appears as an alphanumeric, but should appear as Imagery.\r\n    * [ ] Summary Widgets @larkin \r\n        * [ ] bugs editing summary widgets, changes don't appear to save\r\n        * [ ] edit mode doesn't show edit interface for summary widget\r\n  * [ ] Core Interface\r\n    * [ ] Themes\r\n      * [x] Espresso\r\n      * [x] Snow\r\n      * [ ] Script for theme CSS generation and dynamic loading.\r\n    * [ ] Components\r\n        * [x] Fix view-large in ObjectFrame\r\n        * [x] Fix searchbar for tree and elements pool\r\n    * [ ] Main Layout\r\n      * [x] Multipane rewrite in vue (#2156)\r\n      * [x] failed to mount component warning from multipane? \r\n      * [ ] App Header Bar\r\n        * [ ] create menu\r\n          * [X] vue first cut\r\n          * [x] wire up create action\r\n          * [ ] Create menu items should have better ordering / controlled ordering (#2207)\r\n        * [x] Implement \"open in new tab\" button\r\n        * [ ] implement customizable app logo & about dialog.\r\n          * [ ] Verify build constants are still working\r\n          * [ ] Automate licenses\r\n      * [ ] Object Browse Bar\r\n        * [X] vue first cut\r\n        * [x] Wire up Nav to Parent button @akhenry \r\n        * [x] inline name edit for needs to save when pressing return key.\r\n        * [x] needs to track mutation and view switch correctly (Save a folder inside a folder. Switch to list view. The newly created folder is not listed. Switch to grid view: it's still not listed)\r\n      * [ ] Inspector\r\n        * [x] basic vue rewrite\r\n        * [x] object properties rewrite\r\n        * [x] selection view rewrite\r\n        * [ ] Location rewrite\r\n        * [x] elements rewrite @akhenry\r\n        * [x] elements pool is missing grippy icon\r\n      * [ ] Tree\r\n        * [x] Vue Rewrite\r\n        * [x] listen for composition changes\r\n        * [x] Action Support\r\n        * [x] Gesture Support\r\n        * [x] Implement search\r\n        * [x] Add alias indication to tree items. **DONE**, but needs to be wired up.\r\n        * [x] fix vue warning for tree mutating props in view control\r\n        * [x] Not showing link icons for linked objects in tree (showing correctly in folder views though).\r\n        * [ ] Tree items should indicate when navigated to, and when being edited. `c-tree__item` should apply `is-navigated` when that's the case; @charlesh88 will style that element accordingly when it is encompassed by `is-editing`.\r\n      * [ ] Editor\r\n        * [x] Make editability of views conditional. @akhenry\r\n        * [x] Make editor state clear for all objects (e.g. not clear editing when editing table)\r\n        * [x] Hide Create button while editing.\r\n        * [x] Prevent navigation / out of sync in edit mode\r\n        * [x] Hide edit button when there isn't an editable view. @akhenry\r\n        * [x] tree clicks in Edit mode should show preview instead of navigating.\r\n        * [x] drag and dropping from browse mode to the display layout doesn't add the object to the composition.\r\n        * [x] Ensure edit mode is triggered on DnD before any view specific handling is invoked @akhenry\r\n        * [x] Only perform DnD composition for objects that support composition @akhenry\r\n        * [x] Only perform DnD edit for objects and views that support editing. @akhenry\r\n        * [x] Cancelling editing should restore preview object state.\r\n        * [ ] support create -> direct to edit mode without persisting first (create should also navigate)\r\n        * [x] Warn if discarding changes on cancel\r\n        * [x] Save and continue editing.\r\n      * [ ] Toolbar\r\n        * [x] Toolbar should not occupy space when app is in Browse mode or object doesn't use a toolbar. @psarram @charlesh88\r\n        * [x] re-implement basic controls in vue @larkin @psarram \r\n        * [x] update display layout toolbar @psarram \r\n        * [x] update fixed position toolbar @psarram \r\n        * [x] fix toggle-button\r\n        * [x] add support for dialog button control (dialogService.getUserInput)\r\n        * [x] remove toolbar lodash injection, just import like any other library\r\n        * [x] toolbar dropdowns should close when you click on another one\r\n        * [ ] toolbar number input doesn't work (mutate) consistently. @psarram \r\n      * [ ] Contextual Action support @akhenry \r\n        * [x] Implement context menu registry\r\n        * [x] implement legacy action adapter\r\n        * [x] implement vue context menus\r\n        * [x] restore the prompt-to-remove dialog because it wouldn't render right, as well as the editable action policy.  \r\n        * [x] add context menus to elements pool.\r\n        * [x] attach context-menu to dropdown arrows (maybe new component that utilizes mixin?).\r\n        * [x] Remove full screen action and screenfull dependency.\r\n        * [x] restore edit properties context menu action.\r\n        * [x] use new context menu in folder view and list view\r\n        * [ ] Implement preview action\r\n          * [x] preview: initial reimplementation\r\n          * [ ] When previewing in edit mode, previewed object should not also be editable. @akhenry \r\n        * [ ] browse bar context menu drop down can get out of sync domain object because openmct.router.path is not updated on mutation.\r\n        * [x] fix object path mutation listeners so that context menus don't trigger with outdated models.\r\n        * [ ] Disable go to original action (will be re-implemented later)\r\n        * [ ] Fix import-export (only first object in folder is imported correctly)\r\n        * [ ] Move action should not show remove warning dialog.\r\n        * [ ] remove while navigated to object should go to parent.\r\n        * [ ] ~~Incorrect context menu items in elements pool for new objects.~~ Unable to recreate now. May have been fixed inadvertently.\r\n      * [x] Status Indicators @akhenry\r\n      * [ ] Dialog & Overlay Service @dtailor90 @akhenry \r\n        * [x] initial vue rewrite\r\n        * [ ] can't dismiss error messages (save as to style guide for example)\r\n        * [x] overlays throw errors on annotate (cannot remove child from document)?\r\n        * [x] legacy blocking dialogs have lower z-index than grid items?  \r\n        * [x] Complete overlay in mobile.\r\n        * [x] Closing overlay with done button throws error,  `Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`\r\n            * close with x works\r\n            * [x] esc key should close overlay.\r\n      * [ ] Notifications @akhenry \r\n        * [x] Initial vue rewrite\r\n        * [ ] notification elements are larger (taller) than status bar\r\n      * [ ] Forms\r\n          * [X] Fix create menu and edit properties forms \r\n          * [ ] Style selects. **DONE in misc-ui-4 branch**\r\n      * [x] Time Conductor @akhenry\r\n        * [x] initial vue rewrite\r\n        * [x] What happened to the \"NOW\" clock display in Conductor? **DONE** pending merge of #2189 @charlesh88\r\n        * [x] Fix Datepicker / modalMenu elements in mobile. @charlesh88\r\n        * [ ] should not emit time events when opening menus. (see table requery)\r\n        * [ ] menus don't close when clicked again.\r\n        * [ ] validation of start doesn't update when end date is changed \r\n        * [ ] validation should clear when changing mode\r\n        * [ ] validation info popup should display correctly.\r\n      * [x] Drag and drop composition @akhenry \r\n\r\n* API Work\r\n  * [ ] Support composition reordering in API with events\r\n    * [ ] Grid view and list view should support reordering\r\n  * [x] Toolbar needs to support function as alternative for `property` path.  (in cases where path \r\nchanges due to mutation after toolbar is visible.) @psarram \r\n\r\n* [ ] Maintain compatibility with master:\r\n  * [ ] Verify that it works with existing build processes. (e.g. WARP, VISTA)\r\n  * [ ] Migrations for object schema changes / fixed position removal\r\n  * [ ] Assess migration issues: build all of following in master, review in TCR, document problems:\r\n    * [ ] Display Layout @psarram \r\n    * [ ] Fixed Position @psarram \r\n    * [x] Telemetry Table @akhenry \r\n    * [x] Notebook @dtailor90 \r\n    * [x] Hyperlink @larkin\r\n  * [ ] Testathon assignments\r\n    * [x] Folder @psarram \r\n    * [x] Display Layout @dtailor90\r\n    * [x] Overlay Plot @akhenry \r\n    * [x] Stacked Plot @akhenry \r\n    * [x] Telemetry Table @charlesh88  \r\n    * [x] Clock @dtailor90 \r\n    * [x] Timer @dtailor90 \r\n    * [x] Web Page @charlesh88 \r\n    * [x] Event Message Generator @larkin \r\n    * [x] Hyperlink @larkin \r\n    * [x] Notebook @charlesh88 \r\n    * [x] State Generator @larkin \r\n    * [x] Sine Wave Generator @larkin \r\n    * [x] Example Imagery @larkin \r\n    * [x] Summary Widget @charlesh88 \r\n  * [x] Objects should not be able to contain themselves.\r\n  * [ ] Notebook should be migrated to SFC\r\n  * [ ] Migrate all legacy CSS into new directory structure/files\r\n\r\n###  Generic front-end todos\r\n\r\n* [ ] Clash between legacy overlays that use multiple z-indexes (in the 70 range) and new overlays. To recreate, create a notebook entry of an object, and then view the snapshot. The preview/annotation popup appears underneath the notebook entry popup.\r\n* [ ] Fix local controls, is way whack in multiple spots like Imagery\r\n* [ ] Background color in preview window makes text difficult to read in some object views\r\n* [ ] limit colors need solid opacity.\r\n* [ ] status-disabled in status bar is too dark in espresso theme.\r\n* [ ] hide inspector and tree using url params\r\n\r\n### Misc Bugfixes in this branch:\r\n* #2149 - styleguide path changed and html loader handles relative imports.\r\n\r\n## Deferred until after merge\r\n### API\r\n  * [ ] discuss composition policies vs \"containment\" model.\r\n  * [ ] reconsider reuse of components such as \"object-label\".\r\n  * [ ] Reduce ViewProvider boilerplate: \r\n    * [ ] `canView` can be a type string or a function\r\n    * [ ] `priority` can be a type string or a function \r\n  * [ ] Refactor other object conversion code to use openmct.legacyObject (also supports contextual actions), and provides a single point for deprecation later. \r\n  * [ ] TelemetryMetadata should have a convenience method for \"getDefaultDisplayValue\" that implements default selection logic used in various displays.\r\n  * [ ] Object providers should be able to indicate editability of objects. eg. style guide objects, JSON root objects etc. should not be editable.\r\n  * [ ] editable should be specified per object-view. (root: preview should not be editable in edit mode)\r\n\r\n### Tests\r\n* Creation of tests for new components and API\r\n### Fixes\r\n      * [ ] Add telemetry to flex layout comes in as plot, versus display layout, that's inconsistent.  To \r\ndiscuss.\r\n      * [ ] Hide List Vue columns in mobile portrait mode.\r\n      * [ ] Why show the empty table with sortable columns when the folder is empty? Perhaps a message to add content to the folder is more helpful.\r\n      * [ ] Update style guide content. @charlesh88\r\n          * [ ] Glyph reorg.\r\n          * [ ] Class naming.\r\n          * [ ] Change z-indexing: overlays are now 70 - 79 range, and context menus are 100 to 109.\r\n      * [ ] mouse cursor shows as move cursor anywhere in plot whitespace.\r\n      * [ ] Clock doesn't update until first tick (missing digest?) * @charlesh88 12-20-18: suggest we don't fix in Angular.\r\n      * [ ] fullscreen button doesn't exit fullscreen when already fullscreen? Just need to use browse API to check fullscreen state. [See example](https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen#Example)\r\n      * [ ] Add edit properties button to Object Browse Bar\r\n      * [ ] preview: Add view switcher\r\n      * [ ] preview: Add [new notebook entry button](https://github.com/nasa/openmct/pull/2240).\r\n      * [ ] Re-implement \"Go to Original\" action (dependent on navigation)\r\n      * [ ] Ensure compatibility with libraries packaged with webpack \r\n      * [ ] Ensure compatibility with custom asset paths.\r\n### Refactoring\r\n* Refactoring these items is deferred for current release, will still be tested\r\nand ensure that they work.\r\n  * Plot in Vue\r\n  * Notifications indicator and list. Angular version still works.\r\n  * Clocks/Timers\r\n  * Hyperlink\r\n  * Webpage\r\n  * Notebook should be migrated to SFC\r\n  * Migrate all legacy CSS into new directory structure/files","created_at":"2018-08-07T21:53:55Z","updated_at":"2019-12-12T00:23:22Z","closed_at":"2019-12-12T00:23:22Z","merged_at":"2019-12-12T00:23:21Z","merge_commit_sha":"37a8cf071cf0c3100cd114b9622969b896e3cfb2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/nasa/openmct/pulls/2140/commits","review_comments_url":"https://api.github.com/repos/nasa/openmct/pulls/2140/comments","review_comment_url":"https://api.github.com/repos/nasa/openmct/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nasa/openmct/issues/2140/comments","statuses_url":"https://api.github.com/repos/nasa/openmct/statuses/37a8cf071cf0c3100cd114b9622969b896e3cfb2","head":{"label":"nasa:topic-core-refactor","ref":"topic-core-refactor","sha":"37a8cf071cf0c3100cd114b9622969b896e3cfb2","user":{"login":"nasa","id":848102,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0ODEwMg==","avatar_url":"https://avatars2.githubusercontent.com/u/848102?v=4","gravatar_id":"","url":"https://api.github.com/users/nasa","html_url":"https://github.com/nasa","followers_url":"https://api.github.com/users/nasa/followers","following_url":"https://api.github.com/users/nasa/following{/other_user}","gists_url":"https://api.github.com/users/nasa/gists{/gist_id}","starred_url":"https://api.github.com/users/nasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nasa/subscriptions","organizations_url":"https://api.github.com/users/nasa/orgs","repos_url":"https://api.github.com/users/nasa/repos","events_url":"https://api.github.com/users/nasa/events{/privacy}","received_events_url":"https://api.github.com/users/nasa/received_events","type":"Organization","site_admin":false},"repo":{"id":36753839,"node_id":"MDEwOlJlcG9zaXRvcnkzNjc1MzgzOQ==","name":"openmct","full_name":"nasa/openmct","private":false,"owner":{"login":"nasa","id":848102,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0ODEwMg==","avatar_url":"https://avatars2.githubusercontent.com/u/848102?v=4","gravatar_id":"","url":"https://api.github.com/users/nasa","html_url":"https://github.com/nasa","followers_url":"https://api.github.com/users/nasa/followers","following_url":"https://api.github.com/users/nasa/following{/other_user}","gists_url":"https://api.github.com/users/nasa/gists{/gist_id}","starred_url":"https://api.github.com/users/nasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nasa/subscriptions","organizations_url":"https://api.github.com/users/nasa/orgs","repos_url":"https://api.github.com/users/nasa/repos","events_url":"https://api.github.com/users/nasa/events{/privacy}","received_events_url":"https://api.github.com/users/nasa/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nasa/openmct","description":"A web based mission control framework. ","fork":false,"url":"https://api.github.com/repos/nasa/openmct","forks_url":"https://api.github.com/repos/nasa/openmct/forks","keys_url":"https://api.github.com/repos/nasa/openmct/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nasa/openmct/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nasa/openmct/teams","hooks_url":"https://api.github.com/repos/nasa/openmct/hooks","issue_events_url":"https://api.github.com/repos/nasa/openmct/issues/events{/number}","events_url":"https://api.github.com/repos/nasa/openmct/events","assignees_url":"https://api.github.com/repos/nasa/openmct/assignees{/user}","branches_url":"https://api.github.com/repos/nasa/openmct/branches{/branch}","tags_url":"https://api.github.com/repos/nasa/openmct/tags","blobs_url":"https://api.github.com/repos/nasa/openmct/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nasa/openmct/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nasa/openmct/git/refs{/sha}","trees_url":"https://api.github.com/repos/nasa/openmct/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nasa/openmct/statuses/{sha}","languages_url":"https://api.github.com/repos/nasa/openmct/languages","stargazers_url":"https://api.github.com/repos/nasa/openmct/stargazers","contributors_url":"https://api.github.com/repos/nasa/openmct/contributors","subscribers_url":"https://api.github.com/repos/nasa/openmct/subscribers","subscription_url":"https://api.github.com/repos/nasa/openmct/subscription","commits_url":"https://api.github.com/repos/nasa/openmct/commits{/sha}","git_commits_url":"https://api.github.com/repos/nasa/openmct/git/commits{/sha}","comments_url":"https://api.github.com/repos/nasa/openmct/comments{/number}","issue_comment_url":"https://api.github.com/repos/nasa/openmct/issues/comments{/number}","contents_url":"https://api.github.com/repos/nasa/openmct/contents/{+path}","compare_url":"https://api.github.com/repos/nasa/openmct/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nasa/openmct/merges","archive_url":"https://api.github.com/repos/nasa/openmct/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nasa/openmct/downloads","issues_url":"https://api.github.com/repos/nasa/openmct/issues{/number}","pulls_url":"https://api.github.com/repos/nasa/openmct/pulls{/number}","milestones_url":"https://api.github.com/repos/nasa/openmct/milestones{/number}","notifications_url":"https://api.github.com/repos/nasa/openmct/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nasa/openmct/labels{/name}","releases_url":"https://api.github.com/repos/nasa/openmct/releases{/id}","deployments_url":"https://api.github.com/repos/nasa/openmct/deployments","created_at":"2015-06-02T18:40:28Z","updated_at":"2019-12-11T22:22:58Z","pushed_at":"2019-12-12T00:23:19Z","git_url":"git://github.com/nasa/openmct.git","ssh_url":"git@github.com:nasa/openmct.git","clone_url":"https://github.com/nasa/openmct.git","svn_url":"https://github.com/nasa/openmct","homepage":"https://nasa.github.io/openmct/","size":42797,"stargazers_count":7928,"watchers_count":7928,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":761,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":359,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":761,"open_issues":359,"watchers":7928,"default_branch":"master"}},"base":{"label":"nasa:master","ref":"master","sha":"3dee6db5e227775ac41ef2f29f859db3206959fa","user":{"login":"nasa","id":848102,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0ODEwMg==","avatar_url":"https://avatars2.githubusercontent.com/u/848102?v=4","gravatar_id":"","url":"https://api.github.com/users/nasa","html_url":"https://github.com/nasa","followers_url":"https://api.github.com/users/nasa/followers","following_url":"https://api.github.com/users/nasa/following{/other_user}","gists_url":"https://api.github.com/users/nasa/gists{/gist_id}","starred_url":"https://api.github.com/users/nasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nasa/subscriptions","organizations_url":"https://api.github.com/users/nasa/orgs","repos_url":"https://api.github.com/users/nasa/repos","events_url":"https://api.github.com/users/nasa/events{/privacy}","received_events_url":"https://api.github.com/users/nasa/received_events","type":"Organization","site_admin":false},"repo":{"id":36753839,"node_id":"MDEwOlJlcG9zaXRvcnkzNjc1MzgzOQ==","name":"openmct","full_name":"nasa/openmct","private":false,"owner":{"login":"nasa","id":848102,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg0ODEwMg==","avatar_url":"https://avatars2.githubusercontent.com/u/848102?v=4","gravatar_id":"","url":"https://api.github.com/users/nasa","html_url":"https://github.com/nasa","followers_url":"https://api.github.com/users/nasa/followers","following_url":"https://api.github.com/users/nasa/following{/other_user}","gists_url":"https://api.github.com/users/nasa/gists{/gist_id}","starred_url":"https://api.github.com/users/nasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nasa/subscriptions","organizations_url":"https://api.github.com/users/nasa/orgs","repos_url":"https://api.github.com/users/nasa/repos","events_url":"https://api.github.com/users/nasa/events{/privacy}","received_events_url":"https://api.github.com/users/nasa/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nasa/openmct","description":"A web based mission control framework. ","fork":false,"url":"https://api.github.com/repos/nasa/openmct","forks_url":"https://api.github.com/repos/nasa/openmct/forks","keys_url":"https://api.github.com/repos/nasa/openmct/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nasa/openmct/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nasa/openmct/teams","hooks_url":"https://api.github.com/repos/nasa/openmct/hooks","issue_events_url":"https://api.github.com/repos/nasa/openmct/issues/events{/number}","events_url":"https://api.github.com/repos/nasa/openmct/events","assignees_url":"https://api.github.com/repos/nasa/openmct/assignees{/user}","branches_url":"https://api.github.com/repos/nasa/openmct/branches{/branch}","tags_url":"https://api.github.com/repos/nasa/openmct/tags","blobs_url":"https://api.github.com/repos/nasa/openmct/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nasa/openmct/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nasa/openmct/git/refs{/sha}","trees_url":"https://api.github.com/repos/nasa/openmct/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nasa/openmct/statuses/{sha}","languages_url":"https://api.github.com/repos/nasa/openmct/languages","stargazers_url":"https://api.github.com/repos/nasa/openmct/stargazers","contributors_url":"https://api.github.com/repos/nasa/openmct/contributors","subscribers_url":"https://api.github.com/repos/nasa/openmct/subscribers","subscription_url":"https://api.github.com/repos/nasa/openmct/subscription","commits_url":"https://api.github.com/repos/nasa/openmct/commits{/sha}","git_commits_url":"https://api.github.com/repos/nasa/openmct/git/commits{/sha}","comments_url":"https://api.github.com/repos/nasa/openmct/comments{/number}","issue_comment_url":"https://api.github.com/repos/nasa/openmct/issues/comments{/number}","contents_url":"https://api.github.com/repos/nasa/openmct/contents/{+path}","compare_url":"https://api.github.com/repos/nasa/openmct/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nasa/openmct/merges","archive_url":"https://api.github.com/repos/nasa/openmct/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nasa/openmct/downloads","issues_url":"https://api.github.com/repos/nasa/openmct/issues{/number}","pulls_url":"https://api.github.com/repos/nasa/openmct/pulls{/number}","milestones_url":"https://api.github.com/repos/nasa/openmct/milestones{/number}","notifications_url":"https://api.github.com/repos/nasa/openmct/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nasa/openmct/labels{/name}","releases_url":"https://api.github.com/repos/nasa/openmct/releases{/id}","deployments_url":"https://api.github.com/repos/nasa/openmct/deployments","created_at":"2015-06-02T18:40:28Z","updated_at":"2019-12-11T22:22:58Z","pushed_at":"2019-12-12T00:23:19Z","git_url":"git://github.com/nasa/openmct.git","ssh_url":"git@github.com:nasa/openmct.git","clone_url":"https://github.com/nasa/openmct.git","svn_url":"https://github.com/nasa/openmct","homepage":"https://nasa.github.io/openmct/","size":42797,"stargazers_count":7928,"watchers_count":7928,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":761,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":359,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":761,"open_issues":359,"watchers":7928,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nasa/openmct/pulls/2140"},"html":{"href":"https://github.com/nasa/openmct/pull/2140"},"issue":{"href":"https://api.github.com/repos/nasa/openmct/issues/2140"},"comments":{"href":"https://api.github.com/repos/nasa/openmct/issues/2140/comments"},"review_comments":{"href":"https://api.github.com/repos/nasa/openmct/pulls/2140/comments"},"review_comment":{"href":"https://api.github.com/repos/nasa/openmct/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nasa/openmct/pulls/2140/commits"},"statuses":{"href":"https://api.github.com/repos/nasa/openmct/statuses/37a8cf071cf0c3100cd114b9622969b896e3cfb2"}},"author_association":"CONTRIBUTOR","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"akhenry","id":4215777,"node_id":"MDQ6VXNlcjQyMTU3Nzc=","avatar_url":"https://avatars1.githubusercontent.com/u/4215777?v=4","gravatar_id":"","url":"https://api.github.com/users/akhenry","html_url":"https://github.com/akhenry","followers_url":"https://api.github.com/users/akhenry/followers","following_url":"https://api.github.com/users/akhenry/following{/other_user}","gists_url":"https://api.github.com/users/akhenry/gists{/gist_id}","starred_url":"https://api.github.com/users/akhenry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akhenry/subscriptions","organizations_url":"https://api.github.com/users/akhenry/orgs","repos_url":"https://api.github.com/users/akhenry/repos","events_url":"https://api.github.com/users/akhenry/events{/privacy}","received_events_url":"https://api.github.com/users/akhenry/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":309,"additions":38163,"deletions":43997,"changed_files":878}}
{"actor":{"display_login":"akhenry"}}