{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":745669752,"defaultBranch":"main","name":"jhub-apps","ownerLogin":"kildre","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-01-19T20:50:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/885376?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726505733.0","currentOid":""},"activityList":{"items":[{"before":"4e82596a859068fe72a5f9c19c27f59b05c9c411","after":"5748f1383331cc067e37a0fc19c72504680637d2","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-20T19:46:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"removed unnecessary import for pytest","shortMessageHtmlLink":"removed unnecessary import for pytest"}},{"before":"0ab2931c3656e81cd6322fc8dfc0aa49e9eb93cd","after":"4e82596a859068fe72a5f9c19c27f59b05c9c411","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-20T18:39:48.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated failing tests, all tests passing","shortMessageHtmlLink":"updated failing tests, all tests passing"}},{"before":"8094f5f0e1789fc1b4a2a71bd480a2d243e8f76a","after":"0ab2931c3656e81cd6322fc8dfc0aa49e9eb93cd","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-19T17:57:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"reverted tests in test_api.py, updated logic to allow admins to start/stop apps","shortMessageHtmlLink":"reverted tests in test_api.py, updated logic to allow admins to start…"}},{"before":"7a50a219f275f0c4e7add9a8973bfea84f5197d4","after":"3ec4322723d6fa63297e07621d03f13569062336","ref":"refs/heads/main","pushedAt":"2024-09-17T21:16:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"Deploy app from git repository (#445)\n\n* get app config from git\r\n\r\n* add documentation for getting app config from git\r\n\r\n* remove unused vars\r\n\r\n* add git url in spawner\r\n\r\n* add example\r\n\r\n* add positive and neg tests\r\n\r\n* move app from repo test to e2e section\r\n\r\n* add test for invalid repository\r\n\r\n* improve description\r\n\r\n* git repo branch add to user options\r\n\r\n* add test for create server from git repo\r\n\r\n* replace aktech with jovyan\r\n\r\n* use conda-project instead\r\n\r\n* fix linting\r\n\r\n* move conda project import to inside function\r\n\r\n* remove unnecessary config file\r\n\r\n* app config from conda project\r\n\r\n* log message on failure\r\n\r\n* move app from git to separate module\r\n\r\n* move app from git to a separate directory\r\n\r\n* add more docs\r\n\r\n* add test to parse jhub-app config from conda-project yml\r\n\r\n* use repository object for server creation\r\n\r\n* update create server with git repo test\r\n\r\n* add integration tests for api\r\n\r\n* set oauth_no_confirm=True\r\n\r\n* remove clicking on authorize\r\n\r\n* always create artifact name\r\n\r\n* extract common items for user options\r\n\r\n* add a line about cloning repository\r\n\r\n* add another suffix to app name\r\n\r\n* Apply suggestions from code review\r\n\r\nCo-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>","shortMessageHtmlLink":"Deploy app from git repository (nebari-dev#445)"}},{"before":"a29028234284f78d8b3b628094b4ff42e35deb7a","after":"8094f5f0e1789fc1b4a2a71bd480a2d243e8f76a","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-17T17:08:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated the condtional for starting app, removed unused imports","shortMessageHtmlLink":"updated the condtional for starting app, removed unused imports"}},{"before":"7df37e61ae9ed232ead60bfc30d62ee6082dddf1","after":"a29028234284f78d8b3b628094b4ff42e35deb7a","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-17T15:22:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated *Name to Name in test_integration.py test","shortMessageHtmlLink":"updated *Name to Name in test_integration.py test"}},{"before":"9aac548eda1f2265ec84d12bd64fec2bf65fb103","after":"7df37e61ae9ed232ead60bfc30d62ee6082dddf1","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-17T14:55:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"added tests for start_server, server_not_found","shortMessageHtmlLink":"added tests for start_server, server_not_found"}},{"before":"2492a1828e05ff67b7a8a22027396151eb0db63e","after":"9aac548eda1f2265ec84d12bd64fec2bf65fb103","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-17T14:29:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"removed two tests","shortMessageHtmlLink":"removed two tests"}},{"before":"551174b0cdcf1d370a3c4dbad24e137c7a4d3930","after":"2492a1828e05ff67b7a8a22027396151eb0db63e","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-17T13:16:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"fixed linting error","shortMessageHtmlLink":"fixed linting error"}},{"before":"8b6d1204bb5f5551cf7473ca6869ccca602204b7","after":"551174b0cdcf1d370a3c4dbad24e137c7a4d3930","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-17T13:11:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated tests, removed commented out tests","shortMessageHtmlLink":"updated tests, removed commented out tests"}},{"before":"f6fb5877fd9d4b77093fc5d3311b716d2c96377c","after":"8b6d1204bb5f5551cf7473ca6869ccca602204b7","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-16T20:42:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"added logic to cover clicking directly on a card. updated tests, updated copy","shortMessageHtmlLink":"added logic to cover clicking directly on a card. updated tests, upda…"}},{"before":"e8b76fe9409bc43832964ac609cae3d3fc20abf0","after":"f6fb5877fd9d4b77093fc5d3311b716d2c96377c","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-16T17:20:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"fixed errors in tests","shortMessageHtmlLink":"fixed errors in tests"}},{"before":"dc62f01c61066c43165c6582db7081702f2b614f","after":"e8b76fe9409bc43832964ac609cae3d3fc20abf0","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-16T17:04:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated the messaging","shortMessageHtmlLink":"updated the messaging"}},{"before":null,"after":"dc62f01c61066c43165c6582db7081702f2b614f","ref":"refs/heads/sharing-msg-710","pushedAt":"2024-09-16T16:55:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"adding new build index.js file","shortMessageHtmlLink":"adding new build index.js file"}},{"before":"a39f3f84d32a0661cda3be1f3d0f616c5407ea27","after":"7a50a219f275f0c4e7add9a8973bfea84f5197d4","ref":"refs/heads/main","pushedAt":"2024-09-16T14:39:06.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"Update japps custom page template to provide hub_title and favicon based on app configs, to match those used in the base page template. (#479)","shortMessageHtmlLink":"Update japps custom page template to provide hub_title and favicon ba…"}},{"before":"3dc4c0d3636ba39966a16fac970669103c419ce7","after":null,"ref":"refs/heads/sharing-messages","pushedAt":"2024-09-09T15:52:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"}},{"before":"a15a72a3e3246465a691e43e3ee49217ea9ccf94","after":"a39f3f84d32a0661cda3be1f3d0f616c5407ea27","ref":"refs/heads/main","pushedAt":"2024-09-03T15:11:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"added sorting to sharing dropdown (#473)\n\n* added sorting to sharing dropdown\r\n\r\n* new index.js build\r\n\r\n---------\r\n\r\nCo-authored-by: Kilian Berres ","shortMessageHtmlLink":"added sorting to sharing dropdown (nebari-dev#473)"}},{"before":"9ea8204d1f678fd789de6453d7622d6a02195de4","after":null,"ref":"refs/heads/share-sorting","pushedAt":"2024-09-03T15:03:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jbouder","name":"Johnny Bouder","path":"/jbouder","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/61591423?s=80&v=4"}},{"before":"a9ff6cfd0f6f04843cbf3c0a80e8bde12eda68be","after":"9ea8204d1f678fd789de6453d7622d6a02195de4","ref":"refs/heads/share-sorting","pushedAt":"2024-09-03T13:55:19.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"new index.js build","shortMessageHtmlLink":"new index.js build"}},{"before":"1ef9701bc6936c25afca0a10428f54a3eb9681ec","after":"a15a72a3e3246465a691e43e3ee49217ea9ccf94","ref":"refs/heads/main","pushedAt":"2024-09-03T13:44:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"Bump the minors group in /ui with 6 updates (#471)\n\n* Bump the minors group in /ui with 6 updates\r\n\r\nBumps the minors group in /ui with 6 updates:\r\n\r\n| Package | From | To |\r\n| --- | --- | --- |\r\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.52.1` | `5.53.2` |\r\n| [axios](https://github.com/axios/axios) | `1.7.5` | `1.7.7` |\r\n| [@stylistic/eslint-plugin-ts](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin-ts) | `2.6.4` | `2.7.2` |\r\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.0.0` | `16.0.1` |\r\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.2.0` | `8.3.0` |\r\n| [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) | `4.21.0` | `4.21.2` |\r\n\r\n\r\nUpdates `@tanstack/react-query` from 5.52.1 to 5.53.2\r\n- [Release notes](https://github.com/TanStack/query/releases)\r\n- [Commits](https://github.com/TanStack/query/commits/v5.53.2/packages/react-query)\r\n\r\nUpdates `axios` from 1.7.5 to 1.7.7\r\n- [Release notes](https://github.com/axios/axios/releases)\r\n- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)\r\n- [Commits](https://github.com/axios/axios/compare/v1.7.5...v1.7.7)\r\n\r\nUpdates `@stylistic/eslint-plugin-ts` from 2.6.4 to 2.7.2\r\n- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)\r\n- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v2.7.2/packages/eslint-plugin-ts)\r\n\r\nUpdates `@testing-library/react` from 16.0.0 to 16.0.1\r\n- [Release notes](https://github.com/testing-library/react-testing-library/releases)\r\n- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.0.0...v16.0.1)\r\n\r\nUpdates `typescript-eslint` from 8.2.0 to 8.3.0\r\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\r\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)\r\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.3.0/packages/typescript-eslint)\r\n\r\nUpdates `@rollup/rollup-linux-x64-gnu` from 4.21.0 to 4.21.2\r\n- [Release notes](https://github.com/rollup/rollup/releases)\r\n- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)\r\n- [Commits](https://github.com/rollup/rollup/compare/v4.21.0...v4.21.2)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: \"@tanstack/react-query\"\r\n dependency-type: direct:production\r\n update-type: version-update:semver-minor\r\n dependency-group: minors\r\n- dependency-name: axios\r\n dependency-type: direct:production\r\n update-type: version-update:semver-patch\r\n dependency-group: minors\r\n- dependency-name: \"@stylistic/eslint-plugin-ts\"\r\n dependency-type: direct:development\r\n update-type: version-update:semver-minor\r\n dependency-group: minors\r\n- dependency-name: \"@testing-library/react\"\r\n dependency-type: direct:development\r\n update-type: version-update:semver-patch\r\n dependency-group: minors\r\n- dependency-name: typescript-eslint\r\n dependency-type: direct:development\r\n update-type: version-update:semver-minor\r\n dependency-group: minors\r\n- dependency-name: \"@rollup/rollup-linux-x64-gnu\"\r\n dependency-type: direct:production\r\n update-type: version-update:semver-patch\r\n dependency-group: minors\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\n\r\n* Add new build.\r\n\r\n* Include new package lock.\r\n\r\n---------\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\r\nCo-authored-by: Johnny Bouder ","shortMessageHtmlLink":"Bump the minors group in /ui with 6 updates (nebari-dev#471)"}},{"before":null,"after":"a9ff6cfd0f6f04843cbf3c0a80e8bde12eda68be","ref":"refs/heads/share-sorting","pushedAt":"2024-09-03T13:16:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"added sorting to sharing dropdown","shortMessageHtmlLink":"added sorting to sharing dropdown"}},{"before":"1730217420ff41bc73f3b50e8c416ac596b7fcfc","after":"3dc4c0d3636ba39966a16fac970669103c419ce7","ref":"refs/heads/sharing-messages","pushedAt":"2024-08-27T14:52:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"added comments back to code","shortMessageHtmlLink":"added comments back to code"}},{"before":"d78f5fda017cdc6f74fce58026b975ab30733c91","after":"1730217420ff41bc73f3b50e8c416ac596b7fcfc","ref":"refs/heads/sharing-messages","pushedAt":"2024-08-27T14:47:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"uncommented commented action","shortMessageHtmlLink":"uncommented commented action"}},{"before":"3423b992f3b27446dfc8eb80a0f0acd81bc6ee47","after":"d78f5fda017cdc6f74fce58026b975ab30733c91","ref":"refs/heads/sharing-messages","pushedAt":"2024-08-27T13:58:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"removed unused import, was failing","shortMessageHtmlLink":"removed unused import, was failing"}},{"before":"9caf7b052115ce0072d9ecd05dee7aaaa04e2eca","after":"3423b992f3b27446dfc8eb80a0f0acd81bc6ee47","ref":"refs/heads/sharing-messages","pushedAt":"2024-08-27T13:52:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated routes.py, amended removed items","shortMessageHtmlLink":"updated routes.py, amended removed items"}},{"before":null,"after":"9caf7b052115ce0072d9ecd05dee7aaaa04e2eca","ref":"refs/heads/sharing-messages","pushedAt":"2024-08-26T17:23:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"updated index.js file","shortMessageHtmlLink":"updated index.js file"}},{"before":"f6c5c7d791a69bd5b4304035cd3bfa9ebafc59e7","after":"1ef9701bc6936c25afca0a10428f54a3eb9681ec","ref":"refs/heads/main","pushedAt":"2024-08-26T17:19:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"Bump the minors group in /ui with 10 updates (#469)\n\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump the minors group in /ui with 10 updates (nebari-dev#469)"}},{"before":"03bf166878040fef7bcb80d5aa891954a1c61b97","after":"f6c5c7d791a69bd5b4304035cd3bfa9ebafc59e7","ref":"refs/heads/main","pushedAt":"2024-08-19T19:46:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"Update to deploy (#468)\n\n* updated Create/creating to Deploy/deploying, updated tests\r\n\r\n* dependabot made updates to package.lock.json\r\n\r\n---------\r\n\r\nCo-authored-by: Kilian Berres ","shortMessageHtmlLink":"Update to deploy (nebari-dev#468)"}},{"before":"b19dc87744fcbb788b9da040ae1e47a8a2c7644a","after":null,"ref":"refs/heads/update-to-deploy","pushedAt":"2024-08-19T19:44:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jbouder","name":"Johnny Bouder","path":"/jbouder","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/61591423?s=80&v=4"}},{"before":null,"after":"b19dc87744fcbb788b9da040ae1e47a8a2c7644a","ref":"refs/heads/update-to-deploy","pushedAt":"2024-08-19T19:32:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kildre","name":"Kilian","path":"/kildre","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/885376?s=80&v=4"},"commit":{"message":"dependabot made updates to package.lock.json","shortMessageHtmlLink":"dependabot made updates to package.lock.json"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQxOTo0Njo0MS4wMDAwMDBazwAAAAS8UYoN","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xOVQxOTozMjozOS4wMDAwMDBazwAAAASeYYLd"}},"title":"Activity · kildre/jhub-apps"}