{"action":"created","issue":{"url":"https://api.github.com/repos/TryGhost/Ghost/issues/9744","repository_url":"https://api.github.com/repos/TryGhost/Ghost","labels_url":"https://api.github.com/repos/TryGhost/Ghost/issues/9744/labels{/name}","comments_url":"https://api.github.com/repos/TryGhost/Ghost/issues/9744/comments","events_url":"https://api.github.com/repos/TryGhost/Ghost/issues/9744/events","html_url":"https://github.com/TryGhost/Ghost/issues/9744","id":343203496,"node_id":"MDU6SXNzdWUzNDMyMDM0OTY=","number":9744,"title":"Add ability to upload+reload routes.yaml","user":{"login":"kirrg001","id":1160712,"node_id":"MDQ6VXNlcjExNjA3MTI=","avatar_url":"https://avatars0.githubusercontent.com/u/1160712?v=4","gravatar_id":"","url":"https://api.github.com/users/kirrg001","html_url":"https://github.com/kirrg001","followers_url":"https://api.github.com/users/kirrg001/followers","following_url":"https://api.github.com/users/kirrg001/following{/other_user}","gists_url":"https://api.github.com/users/kirrg001/gists{/gist_id}","starred_url":"https://api.github.com/users/kirrg001/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kirrg001/subscriptions","organizations_url":"https://api.github.com/users/kirrg001/orgs","repos_url":"https://api.github.com/users/kirrg001/repos","events_url":"https://api.github.com/users/kirrg001/events{/privacy}","received_events_url":"https://api.github.com/users/kirrg001/received_events","type":"User","site_admin":false},"labels":[{"id":82875493,"node_id":"MDU6TGFiZWw4Mjg3NTQ5Mw==","url":"https://api.github.com/repos/TryGhost/Ghost/labels/admin-client","name":"admin-client","color":"e1563f","default":false},{"id":126218048,"node_id":"MDU6TGFiZWwxMjYyMTgwNDg=","url":"https://api.github.com/repos/TryGhost/Ghost/labels/feature","name":"feature","color":"9FBB58","default":false},{"id":82875520,"node_id":"MDU6TGFiZWw4Mjg3NTUyMA==","url":"https://api.github.com/repos/TryGhost/Ghost/labels/server","name":"server","color":"0B939C","default":false}],"state":"closed","locked":false,"assignee":{"login":"kevinansfield","id":415,"node_id":"MDQ6VXNlcjQxNQ==","avatar_url":"https://avatars2.githubusercontent.com/u/415?v=4","gravatar_id":"","url":"https://api.github.com/users/kevinansfield","html_url":"https://github.com/kevinansfield","followers_url":"https://api.github.com/users/kevinansfield/followers","following_url":"https://api.github.com/users/kevinansfield/following{/other_user}","gists_url":"https://api.github.com/users/kevinansfield/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinansfield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinansfield/subscriptions","organizations_url":"https://api.github.com/users/kevinansfield/orgs","repos_url":"https://api.github.com/users/kevinansfield/repos","events_url":"https://api.github.com/users/kevinansfield/events{/privacy}","received_events_url":"https://api.github.com/users/kevinansfield/received_events","type":"User","site_admin":false},"assignees":[{"login":"kevinansfield","id":415,"node_id":"MDQ6VXNlcjQxNQ==","avatar_url":"https://avatars2.githubusercontent.com/u/415?v=4","gravatar_id":"","url":"https://api.github.com/users/kevinansfield","html_url":"https://github.com/kevinansfield","followers_url":"https://api.github.com/users/kevinansfield/followers","following_url":"https://api.github.com/users/kevinansfield/following{/other_user}","gists_url":"https://api.github.com/users/kevinansfield/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinansfield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinansfield/subscriptions","organizations_url":"https://api.github.com/users/kevinansfield/orgs","repos_url":"https://api.github.com/users/kevinansfield/repos","events_url":"https://api.github.com/users/kevinansfield/events{/privacy}","received_events_url":"https://api.github.com/users/kevinansfield/received_events","type":"User","site_admin":false},{"login":"kirrg001","id":1160712,"node_id":"MDQ6VXNlcjExNjA3MTI=","avatar_url":"https://avatars0.githubusercontent.com/u/1160712?v=4","gravatar_id":"","url":"https://api.github.com/users/kirrg001","html_url":"https://github.com/kirrg001","followers_url":"https://api.github.com/users/kirrg001/followers","following_url":"https://api.github.com/users/kirrg001/following{/other_user}","gists_url":"https://api.github.com/users/kirrg001/gists{/gist_id}","starred_url":"https://api.github.com/users/kirrg001/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kirrg001/subscriptions","organizations_url":"https://api.github.com/users/kirrg001/orgs","repos_url":"https://api.github.com/users/kirrg001/repos","events_url":"https://api.github.com/users/kirrg001/events{/privacy}","received_events_url":"https://api.github.com/users/kirrg001/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2018-07-20T18:21:52Z","updated_at":"2018-08-07T11:30:10Z","closed_at":"2018-08-07T11:30:10Z","author_association":"CONTRIBUTOR","body":"We haven't announced Dynamic Routing Beta yet, but you can already read through [this issue](https://github.com/TryGhost/Ghost/issues/9601) and read what Dynamic Routing is and how it works 🤠\r\n\r\nWe would like to add the ability to upload the routes.yaml file in the admin panel. We will add a new form under `Labs` (very similar to the redirects upload form).\r\n\r\nWhen the file was successfully uploaded, Ghost will reload all site routes based on your new routes.yaml version/file. A server restart won't be required.\r\n\r\nThis sub-feature will be available in [Ghost 2.0](https://github.com/TryGhost/Ghost/issues/9742).\r\n\r\n### Tasks\r\n- [x] reload express site app after the routes.yaml file was uploaded\r\n- [x] add proper error handling e.g. what if you upload a broken routes.yaml file - use backup and return a proper message to the user\r\n- [x] add simple UI @kevinansfield \r\n- [x] add more tests\r\n- [x] create backup (use the same strategy as for redirects)"},"comment":{"url":"https://api.github.com/repos/TryGhost/Ghost/issues/comments/411025004","html_url":"https://github.com/TryGhost/Ghost/issues/9744#issuecomment-411025004","issue_url":"https://api.github.com/repos/TryGhost/Ghost/issues/9744","id":411025004,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMTAyNTAwNA==","user":{"login":"kirrg001","id":1160712,"node_id":"MDQ6VXNlcjExNjA3MTI=","avatar_url":"https://avatars0.githubusercontent.com/u/1160712?v=4","gravatar_id":"","url":"https://api.github.com/users/kirrg001","html_url":"https://github.com/kirrg001","followers_url":"https://api.github.com/users/kirrg001/followers","following_url":"https://api.github.com/users/kirrg001/following{/other_user}","gists_url":"https://api.github.com/users/kirrg001/gists{/gist_id}","starred_url":"https://api.github.com/users/kirrg001/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kirrg001/subscriptions","organizations_url":"https://api.github.com/users/kirrg001/orgs","repos_url":"https://api.github.com/users/kirrg001/repos","events_url":"https://api.github.com/users/kirrg001/events{/privacy}","received_events_url":"https://api.github.com/users/kirrg001/received_events","type":"User","site_admin":false},"created_at":"2018-08-07T11:30:10Z","updated_at":"2018-08-07T11:30:10Z","author_association":"CONTRIBUTOR","body":"This issue can be closed. All tasks are done. Final QA/testing will happen soon."}}
{"actor":{"display_login":"kirrg001"}}