{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-debug-nodejs/issues/51","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-debug-nodejs/issues/51/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-debug-nodejs/issues/51/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-debug-nodejs/issues/51/events","html_url":"https://github.com/GoogleCloudPlatform/cloud-debug-nodejs/issues/51","id":119411477,"number":51,"title":"Node.js apps that are sub-directories of the git repository don't work.","user":{"login":"ofrobots","id":79017,"avatar_url":"https://avatars.githubusercontent.com/u/79017?v=3","gravatar_id":"","url":"https://api.github.com/users/ofrobots","html_url":"https://github.com/ofrobots","followers_url":"https://api.github.com/users/ofrobots/followers","following_url":"https://api.github.com/users/ofrobots/following{/other_user}","gists_url":"https://api.github.com/users/ofrobots/gists{/gist_id}","starred_url":"https://api.github.com/users/ofrobots/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofrobots/subscriptions","organizations_url":"https://api.github.com/users/ofrobots/orgs","repos_url":"https://api.github.com/users/ofrobots/repos","events_url":"https://api.github.com/users/ofrobots/events{/privacy}","received_events_url":"https://api.github.com/users/ofrobots/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"matthewloring","id":1485909,"avatar_url":"https://avatars.githubusercontent.com/u/1485909?v=3","gravatar_id":"","url":"https://api.github.com/users/matthewloring","html_url":"https://github.com/matthewloring","followers_url":"https://api.github.com/users/matthewloring/followers","following_url":"https://api.github.com/users/matthewloring/following{/other_user}","gists_url":"https://api.github.com/users/matthewloring/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewloring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewloring/subscriptions","organizations_url":"https://api.github.com/users/matthewloring/orgs","repos_url":"https://api.github.com/users/matthewloring/repos","events_url":"https://api.github.com/users/matthewloring/events{/privacy}","received_events_url":"https://api.github.com/users/matthewloring/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-11-30T03:12:10Z","updated_at":"2015-12-04T00:25:45Z","closed_at":null,"body":"Scenario:\r\n\r\n1. Git repository with a directory Server/ that contains a Node.js app. i.e. `Server/app.js` and `Server/app.yaml` exist.\r\n1. Host the repository in a gcloud source repo.\r\n1. Deploy the app, or copy `Server/*` to `/tmp/app` and run it locally from there.\r\n\r\nOnce deployed the path to app.js is `/app/app.js`. But to the Debug UI, this is `Server/app.js`.\r\n\r\nImmediate goal: in this scenario we should be able to set a breakpoint in app.js without being confused.\r\n\r\nSecondary goal: consider the following directory layout:\r\n`Server/app.js` -> `/app/app.js`\r\n`Server/foo/app.js`-> `/app/foo/app.js`\r\n`Server/app/app.js` -> `/app/app/app.js`\r\n\r\nIn such an app, we should be able to set the breakpoint in the correct app.js when the server sets a breakpoint in `Server/app.js`, `Server/app/app.js`. We should report an error when the server asks for a breakpoint in `app.js`. We need test cases for these scenario."},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-debug-nodejs/issues/comments/161832996","html_url":"https://github.com/GoogleCloudPlatform/cloud-debug-nodejs/issues/51#issuecomment-161832996","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-debug-nodejs/issues/51","id":161832996,"user":{"login":"matthewloring","id":1485909,"avatar_url":"https://avatars.githubusercontent.com/u/1485909?v=3","gravatar_id":"","url":"https://api.github.com/users/matthewloring","html_url":"https://github.com/matthewloring","followers_url":"https://api.github.com/users/matthewloring/followers","following_url":"https://api.github.com/users/matthewloring/following{/other_user}","gists_url":"https://api.github.com/users/matthewloring/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewloring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewloring/subscriptions","organizations_url":"https://api.github.com/users/matthewloring/orgs","repos_url":"https://api.github.com/users/matthewloring/repos","events_url":"https://api.github.com/users/matthewloring/events{/privacy}","received_events_url":"https://api.github.com/users/matthewloring/received_events","type":"User","site_admin":false},"created_at":"2015-12-04T00:25:45Z","updated_at":"2015-12-04T00:25:45Z","body":"@ofrobots #52 should solve both immediate and secondary goals and there are pre-existing tests to guard against the scenario you describe (see test/test-v8debugapi.js#129). Please confirm and I can close this bug."}}