{"action":"created","comment":{"url":"https://api.github.com/repos/transcom/mymove/pulls/comments/241543933","pull_request_review_id":184845663,"id":241543933,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0MzkzMw==","diff_hunk":"@@ -339,6 +340,14 @@ func initDatabase(v *viper.Viper, logger *zap.Logger) (*pop.Connection, error) {\n \t\treturn nil, err\n \t}\n \n+\t// Check the connection","path":"cmd/webserver/main.go","position":21,"original_position":21,"commit_id":"d5d9f6fc22979460c66b2f8fd257110d9e86504a","original_commit_id":"d5d9f6fc22979460c66b2f8fd257110d9e86504a","user":{"login":"pjdufour-truss","id":40467706,"node_id":"MDQ6VXNlcjQwNDY3NzA2","avatar_url":"https://avatars0.githubusercontent.com/u/40467706?v=4","gravatar_id":"","url":"https://api.github.com/users/pjdufour-truss","html_url":"https://github.com/pjdufour-truss","followers_url":"https://api.github.com/users/pjdufour-truss/followers","following_url":"https://api.github.com/users/pjdufour-truss/following{/other_user}","gists_url":"https://api.github.com/users/pjdufour-truss/gists{/gist_id}","starred_url":"https://api.github.com/users/pjdufour-truss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjdufour-truss/subscriptions","organizations_url":"https://api.github.com/users/pjdufour-truss/orgs","repos_url":"https://api.github.com/users/pjdufour-truss/repos","events_url":"https://api.github.com/users/pjdufour-truss/events{/privacy}","received_events_url":"https://api.github.com/users/pjdufour-truss/received_events","type":"User","site_admin":false},"body":"I thought we talked about removing this, due to crash loop scenario.  I'd be comfortable adding a `--startup-check-database` boolean flag/envvar that is set during e2e, but not for our deployed environments.","created_at":"2018-12-13T20:05:30Z","updated_at":"2018-12-13T20:05:30Z","html_url":"https://github.com/transcom/mymove/pull/1365#discussion_r241543933","pull_request_url":"https://api.github.com/repos/transcom/mymove/pulls/1365","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/transcom/mymove/pulls/comments/241543933"},"html":{"href":"https://github.com/transcom/mymove/pull/1365#discussion_r241543933"},"pull_request":{"href":"https://api.github.com/repos/transcom/mymove/pulls/1365"}}},"pull_request":{"url":"https://api.github.com/repos/transcom/mymove/pulls/1365","id":232490472,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyNDkwNDcy","html_url":"https://github.com/transcom/mymove/pull/1365","diff_url":"https://github.com/transcom/mymove/pull/1365.diff","patch_url":"https://github.com/transcom/mymove/pull/1365.patch","issue_url":"https://api.github.com/repos/transcom/mymove/issues/1365","number":1365,"state":"open","locked":false,"title":"Run e2e tests inside a docker container","user":{"login":"chrisgilmerproj","id":219296,"node_id":"MDQ6VXNlcjIxOTI5Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/219296?v=4","gravatar_id":"","url":"https://api.github.com/users/chrisgilmerproj","html_url":"https://github.com/chrisgilmerproj","followers_url":"https://api.github.com/users/chrisgilmerproj/followers","following_url":"https://api.github.com/users/chrisgilmerproj/following{/other_user}","gists_url":"https://api.github.com/users/chrisgilmerproj/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisgilmerproj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisgilmerproj/subscriptions","organizations_url":"https://api.github.com/users/chrisgilmerproj/orgs","repos_url":"https://api.github.com/users/chrisgilmerproj/repos","events_url":"https://api.github.com/users/chrisgilmerproj/events{/privacy}","received_events_url":"https://api.github.com/users/chrisgilmerproj/received_events","type":"User","site_admin":false},"body":"## Description\r\n\r\nTo make the e2e tests more realistic they will be run inside a docker container.  There are two specific goals:\r\n\r\n- [x] Make it available to local dev environment to use docker for e2e tests\r\n- [x] Make the CircleCI environment use docker for e2e tests\r\n\r\nThe end goal is to make the docker containers read-only (not in this PR) so we can have confidence when we make the production containers read-only.  This PR only sets up the use of docker for the e2e tests.\r\n\r\n## Reviewer Notes\r\n\r\nThis PR is pretty big and required a bunch of rewiring to work.  I'll try to call out the important bits in sections. \r\n\r\n**I have one major concern**: The e2e tests are now twice as slow (~20 min as opposed to ~10 minutes).  I don't think this is totally acceptable but probably has to do with the way CircleCI balances resources between containers.  I can probably override this but any advice would be helpful as I work to figure it out.\r\n\r\n### Container Changes\r\n\r\nThe CircleCI e2e tests now run entirely in a set of docker containers.  This is because CircleCI runs your commands inside a container by default (`trussworks/circleci-docker-primary`) and you can't talk to either it or any other secondary containers via `localhost` (these are all on a remote VM running your docker engine).  So any new docker containers you create and want to test inside your primary container won't be able to communicate with the primary or secondary containers.  CircleCI support gave me two options: A) run everything via SSH tunnels, or B) build containers for everything and use regular docker commands.  I've chosen the latter because its more portable and I could test it locally. \r\n\r\nThe containers and descriptions are below:\r\n  - postgres:10.5 - the standard db container that CircleCI was previously using\r\n  - e2e:latest - built with our default `Dockerfile` so its as close to production as possible\r\n  - e2e_migrations:latest - built with `Dockerfile.migrations_local` (essentially soda, generate-test-data, and apply-secure-migrations bundled together)\r\n  - cypress:latest - build with `Dockerfile.cypress` based on the default `cypress/base:10` image.  It installs cypress, copies in our cypress tests, cypress config, and then creates the entrypoint.\r\n\r\nAll these containers are linked together via the same `bridge` network, meaning they have no issues talking to each other.\r\n\r\n### Changing `localhost` to `mymovelocal` for the app\r\n\r\nAnother major change is moving the MyMove application to run on `mymovelocal` instead of `localhost`.  This is a big change and requires a bit of understanding and discussion with the larger team.  This uses the same pattern as `officelocal` and `tsplocal`.  I think this is a good change and it turned out to be critical to e2e testing in docker.  \r\n\r\nPrimarily the issue is that the `cypress:latest` container can't talk over `localhost` to the `e2e:latest` container on CircleCI (on local machines this isn't an issue).  So at first you might think it would be easy to set the env var `HTTP_MY_SERVER_NAME=mymovelocal` for the web server and `CYPRESS_baseUrl=http://mymovelocal:4000` for the cypress tests and everything would be fine (after you edit the container's `/etc/hosts`).  Only [we hard code the `localhost` value in our support commands](https://github.com/transcom/mymove/blob/master/cypress/support/commands.js#L37).  Because of this I needed to change the hard coded value in our cypress commands to anything other than `localhost` to get things to work.\r\n\r\nAgain, I think there is a strong case for changing this anyway and it would be minimal disruption to developers.  I could pull this out into a separate PR ahead of this if needed.\r\n\r\n### DB Connection Checking\r\n\r\nIt turns out that when you call `connection.Open()` in Pop you aren't actually talking to the DB.  This method calls `sqlx.Open()` and that in turn calls `sql.Open()` which only validates the parameters you've set and never actually \"opens\" a connection to the DB.  The consequence is you can get pretty far into the application loading before you make a query and find out there is no DB.\r\n\r\nThe change uses a fairly standard approach of calling `db.Ping()` after opening a connection.  My understanding is that this really just runs `SELECT 1`.  If this method fails the application won't start and you will get notified that you can't connect to the DB.\r\n\r\nI struggled with CircleCI for a while before I realized that I was never actually talking to the DB I thought I had connected to.  This is probably a change I could pull out and submit separately but it was pretty important to finishing this PR.\r\n\r\n### Things that didn't change\r\n\r\nYou might expect some things changed for local development.  I want to call out what didn't change:\r\n\r\n- Running `make e2e_test` works as normal (only the db commands all happen via `docker run` commands instead of direct `psql` commands.)\r\n- Running `make server_test` works as it used to but perhaps this should be changed to use docker commands in the future.  To keep this working I had to split out a bunch of Makefile targets so I could have a docker version (and suffixed them with `_docker`).  It also forced me to do some cleanup of the make targets so I could follow the logic.\r\n\r\n### Minor Changes\r\n\r\nI want to call out other changes that made it in here in order to get my tests running:\r\n\r\n- Cypress upgraded to `~3.1.0` which is what we were apparently using anyway on CircleCI even though we pinned the version in our `package.json`.  Now every place will use the same version.\r\n- e2e tests now run faster that I've set `\"videoUploadOnPasses\": false` in the cypress config.  This essentially avoids any video compression work that doesn't need to be done when the tests pass with no failures.  I've seen it save 4 minutes on CircleCI.\r\n- I added the environment variable `REACT_APP_NODE_ENV` that allows us to build the app for e2e tests with the `Local Sign In` code enabled when `REACT_APP_NODE_ENV=develompent`.  This is because create_react_app doesn't let you override `NODE_ENV` while building for production so you don't shoot yourself in the foot.\r\n- I've cleaned up some confusion in the `Makefile` by being more explicit about what commands touch which DB.  Often we would spin up the DB and create `dev_db` only to follow up by creating `test_db` and using that.  The way in which this was done was a bit confusing to follow and was adding time to the tests. So targets for the DB are split into the `db_dev_*`, `db_test_*`, and `db_test_*_docker` commands.\r\n- `make server_deps` now creates `bin/chamber`, which isn't really used locally but means we can use the default `Dockerfile` for e2e tests instead of creating a new one.\r\n- The `Makefile` now has `LDFLAGS` which are set based on the existence of the `CIRCLECI` environment variable.  This is needed because you need to build static binaries on CircleCI for your docker containers.  The default for local development is no flags, which makes this essentially a no-op change.\r\n- Prefixed all `echo` commands in the `Makefile` with the `@` symbol to ensure they don't double print to the console.\r\n- Documentation update to `bin/apply-secure-migration.sh` to reference correct environment variable.\r\n- Update to `bin/wait-for-db` to include the port number\r\n- A new `bin/wait-for-db-docker` that uses `docker exec` to do the same thing `bin/wait-for-db` does.\r\n- The make target `db_e2e_reset` is now aliased to `db_e2e_init`.  They latter target doesn't run all the down migrations and then up migrations but instead just drops the DB and rebuilds it.\r\n\r\n## Setup\r\n\r\nTry these commands out:\r\n\r\n- `make e2e_test_docker`\r\n- `make e2e_test`\r\n- `make server_test`\r\n\r\nSome secondary commands to try:\r\n\r\n- `make db_dev_run db_dev_migrate db_dev_reset db_destroy`\r\n- `make db_test_run db_test_migrate db_test_reset db_destroy`\r\n- `make db_test_run_docker db_test_migrate_docker db_test_reset_docker db_destroy`\r\n- `make e2e_clean db_e2e_init`\r\n- `make db_dev_e2e_populate` (the old target `db_populate_e2e` is aliased to this)\r\n\r\n## Code Review Verification Steps\r\n\r\n* [ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)\r\n* [ ] Request review from a member of a different team.\r\n* [ ] Have the Pivotal acceptance criteria been met for this change?\r\n\r\n## References\r\n\r\n* [Pivotal story](https://www.pivotaltracker.com/story/show/161694599) for this change","created_at":"2018-11-20T23:19:46Z","updated_at":"2018-12-13T20:05:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bcaa864656fb7daf82681c9a4f3ff0cf2c75f718","assignee":{"login":"chrisgilmerproj","id":219296,"node_id":"MDQ6VXNlcjIxOTI5Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/219296?v=4","gravatar_id":"","url":"https://api.github.com/users/chrisgilmerproj","html_url":"https://github.com/chrisgilmerproj","followers_url":"https://api.github.com/users/chrisgilmerproj/followers","following_url":"https://api.github.com/users/chrisgilmerproj/following{/other_user}","gists_url":"https://api.github.com/users/chrisgilmerproj/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisgilmerproj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisgilmerproj/subscriptions","organizations_url":"https://api.github.com/users/chrisgilmerproj/orgs","repos_url":"https://api.github.com/users/chrisgilmerproj/repos","events_url":"https://api.github.com/users/chrisgilmerproj/events{/privacy}","received_events_url":"https://api.github.com/users/chrisgilmerproj/received_events","type":"User","site_admin":false},"assignees":[{"login":"chrisgilmerproj","id":219296,"node_id":"MDQ6VXNlcjIxOTI5Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/219296?v=4","gravatar_id":"","url":"https://api.github.com/users/chrisgilmerproj","html_url":"https://github.com/chrisgilmerproj","followers_url":"https://api.github.com/users/chrisgilmerproj/followers","following_url":"https://api.github.com/users/chrisgilmerproj/following{/other_user}","gists_url":"https://api.github.com/users/chrisgilmerproj/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisgilmerproj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisgilmerproj/subscriptions","organizations_url":"https://api.github.com/users/chrisgilmerproj/orgs","repos_url":"https://api.github.com/users/chrisgilmerproj/repos","events_url":"https://api.github.com/users/chrisgilmerproj/events{/privacy}","received_events_url":"https://api.github.com/users/chrisgilmerproj/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"dynamike","id":675823,"node_id":"MDQ6VXNlcjY3NTgyMw==","avatar_url":"https://avatars1.githubusercontent.com/u/675823?v=4","gravatar_id":"","url":"https://api.github.com/users/dynamike","html_url":"https://github.com/dynamike","followers_url":"https://api.github.com/users/dynamike/followers","following_url":"https://api.github.com/users/dynamike/following{/other_user}","gists_url":"https://api.github.com/users/dynamike/gists{/gist_id}","starred_url":"https://api.github.com/users/dynamike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dynamike/subscriptions","organizations_url":"https://api.github.com/users/dynamike/orgs","repos_url":"https://api.github.com/users/dynamike/repos","events_url":"https://api.github.com/users/dynamike/events{/privacy}","received_events_url":"https://api.github.com/users/dynamike/received_events","type":"User","site_admin":false},{"login":"tinyels","id":3142631,"node_id":"MDQ6VXNlcjMxNDI2MzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3142631?v=4","gravatar_id":"","url":"https://api.github.com/users/tinyels","html_url":"https://github.com/tinyels","followers_url":"https://api.github.com/users/tinyels/followers","following_url":"https://api.github.com/users/tinyels/following{/other_user}","gists_url":"https://api.github.com/users/tinyels/gists{/gist_id}","starred_url":"https://api.github.com/users/tinyels/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tinyels/subscriptions","organizations_url":"https://api.github.com/users/tinyels/orgs","repos_url":"https://api.github.com/users/tinyels/repos","events_url":"https://api.github.com/users/tinyels/events{/privacy}","received_events_url":"https://api.github.com/users/tinyels/received_events","type":"User","site_admin":false},{"login":"stangah","id":5151804,"node_id":"MDQ6VXNlcjUxNTE4MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/5151804?v=4","gravatar_id":"","url":"https://api.github.com/users/stangah","html_url":"https://github.com/stangah","followers_url":"https://api.github.com/users/stangah/followers","following_url":"https://api.github.com/users/stangah/following{/other_user}","gists_url":"https://api.github.com/users/stangah/gists{/gist_id}","starred_url":"https://api.github.com/users/stangah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stangah/subscriptions","organizations_url":"https://api.github.com/users/stangah/orgs","repos_url":"https://api.github.com/users/stangah/repos","events_url":"https://api.github.com/users/stangah/events{/privacy}","received_events_url":"https://api.github.com/users/stangah/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/transcom/mymove/pulls/1365/commits","review_comments_url":"https://api.github.com/repos/transcom/mymove/pulls/1365/comments","review_comment_url":"https://api.github.com/repos/transcom/mymove/pulls/comments{/number}","comments_url":"https://api.github.com/repos/transcom/mymove/issues/1365/comments","statuses_url":"https://api.github.com/repos/transcom/mymove/statuses/d5d9f6fc22979460c66b2f8fd257110d9e86504a","head":{"label":"transcom:cg_161694599_e2e_tests_inside_docker","ref":"cg_161694599_e2e_tests_inside_docker","sha":"d5d9f6fc22979460c66b2f8fd257110d9e86504a","user":{"login":"transcom","id":34352343,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzUyMzQz","avatar_url":"https://avatars0.githubusercontent.com/u/34352343?v=4","gravatar_id":"","url":"https://api.github.com/users/transcom","html_url":"https://github.com/transcom","followers_url":"https://api.github.com/users/transcom/followers","following_url":"https://api.github.com/users/transcom/following{/other_user}","gists_url":"https://api.github.com/users/transcom/gists{/gist_id}","starred_url":"https://api.github.com/users/transcom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transcom/subscriptions","organizations_url":"https://api.github.com/users/transcom/orgs","repos_url":"https://api.github.com/users/transcom/repos","events_url":"https://api.github.com/users/transcom/events{/privacy}","received_events_url":"https://api.github.com/users/transcom/received_events","type":"Organization","site_admin":false},"repo":{"id":114694829,"node_id":"MDEwOlJlcG9zaXRvcnkxMTQ2OTQ4Mjk=","name":"mymove","full_name":"transcom/mymove","private":false,"owner":{"login":"transcom","id":34352343,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzUyMzQz","avatar_url":"https://avatars0.githubusercontent.com/u/34352343?v=4","gravatar_id":"","url":"https://api.github.com/users/transcom","html_url":"https://github.com/transcom","followers_url":"https://api.github.com/users/transcom/followers","following_url":"https://api.github.com/users/transcom/following{/other_user}","gists_url":"https://api.github.com/users/transcom/gists{/gist_id}","starred_url":"https://api.github.com/users/transcom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transcom/subscriptions","organizations_url":"https://api.github.com/users/transcom/orgs","repos_url":"https://api.github.com/users/transcom/repos","events_url":"https://api.github.com/users/transcom/events{/privacy}","received_events_url":"https://api.github.com/users/transcom/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/transcom/mymove","description":"MyMove Personal Property Prototype","fork":false,"url":"https://api.github.com/repos/transcom/mymove","forks_url":"https://api.github.com/repos/transcom/mymove/forks","keys_url":"https://api.github.com/repos/transcom/mymove/keys{/key_id}","collaborators_url":"https://api.github.com/repos/transcom/mymove/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/transcom/mymove/teams","hooks_url":"https://api.github.com/repos/transcom/mymove/hooks","issue_events_url":"https://api.github.com/repos/transcom/mymove/issues/events{/number}","events_url":"https://api.github.com/repos/transcom/mymove/events","assignees_url":"https://api.github.com/repos/transcom/mymove/assignees{/user}","branches_url":"https://api.github.com/repos/transcom/mymove/branches{/branch}","tags_url":"https://api.github.com/repos/transcom/mymove/tags","blobs_url":"https://api.github.com/repos/transcom/mymove/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/transcom/mymove/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/transcom/mymove/git/refs{/sha}","trees_url":"https://api.github.com/repos/transcom/mymove/git/trees{/sha}","statuses_url":"https://api.github.com/repos/transcom/mymove/statuses/{sha}","languages_url":"https://api.github.com/repos/transcom/mymove/languages","stargazers_url":"https://api.github.com/repos/transcom/mymove/stargazers","contributors_url":"https://api.github.com/repos/transcom/mymove/contributors","subscribers_url":"https://api.github.com/repos/transcom/mymove/subscribers","subscription_url":"https://api.github.com/repos/transcom/mymove/subscription","commits_url":"https://api.github.com/repos/transcom/mymove/commits{/sha}","git_commits_url":"https://api.github.com/repos/transcom/mymove/git/commits{/sha}","comments_url":"https://api.github.com/repos/transcom/mymove/comments{/number}","issue_comment_url":"https://api.github.com/repos/transcom/mymove/issues/comments{/number}","contents_url":"https://api.github.com/repos/transcom/mymove/contents/{+path}","compare_url":"https://api.github.com/repos/transcom/mymove/compare/{base}...{head}","merges_url":"https://api.github.com/repos/transcom/mymove/merges","archive_url":"https://api.github.com/repos/transcom/mymove/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/transcom/mymove/downloads","issues_url":"https://api.github.com/repos/transcom/mymove/issues{/number}","pulls_url":"https://api.github.com/repos/transcom/mymove/pulls{/number}","milestones_url":"https://api.github.com/repos/transcom/mymove/milestones{/number}","notifications_url":"https://api.github.com/repos/transcom/mymove/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/transcom/mymove/labels{/name}","releases_url":"https://api.github.com/repos/transcom/mymove/releases{/id}","deployments_url":"https://api.github.com/repos/transcom/mymove/deployments","created_at":"2017-12-18T22:41:12Z","updated_at":"2018-12-13T18:36:50Z","pushed_at":"2018-12-13T18:53:48Z","git_url":"git://github.com/transcom/mymove.git","ssh_url":"git@github.com:transcom/mymove.git","clone_url":"https://github.com/transcom/mymove.git","svn_url":"https://github.com/transcom/mymove","homepage":"https://move.mil","size":32170,"stargazers_count":16,"watchers_count":16,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":14,"mirror_url":null,"archived":false,"open_issues_count":20,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":14,"open_issues":20,"watchers":16,"default_branch":"master"}},"base":{"label":"transcom:master","ref":"master","sha":"9ba0c2f406baa03596354ce37e30f2a8e771e975","user":{"login":"transcom","id":34352343,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzUyMzQz","avatar_url":"https://avatars0.githubusercontent.com/u/34352343?v=4","gravatar_id":"","url":"https://api.github.com/users/transcom","html_url":"https://github.com/transcom","followers_url":"https://api.github.com/users/transcom/followers","following_url":"https://api.github.com/users/transcom/following{/other_user}","gists_url":"https://api.github.com/users/transcom/gists{/gist_id}","starred_url":"https://api.github.com/users/transcom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transcom/subscriptions","organizations_url":"https://api.github.com/users/transcom/orgs","repos_url":"https://api.github.com/users/transcom/repos","events_url":"https://api.github.com/users/transcom/events{/privacy}","received_events_url":"https://api.github.com/users/transcom/received_events","type":"Organization","site_admin":false},"repo":{"id":114694829,"node_id":"MDEwOlJlcG9zaXRvcnkxMTQ2OTQ4Mjk=","name":"mymove","full_name":"transcom/mymove","private":false,"owner":{"login":"transcom","id":34352343,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzUyMzQz","avatar_url":"https://avatars0.githubusercontent.com/u/34352343?v=4","gravatar_id":"","url":"https://api.github.com/users/transcom","html_url":"https://github.com/transcom","followers_url":"https://api.github.com/users/transcom/followers","following_url":"https://api.github.com/users/transcom/following{/other_user}","gists_url":"https://api.github.com/users/transcom/gists{/gist_id}","starred_url":"https://api.github.com/users/transcom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/transcom/subscriptions","organizations_url":"https://api.github.com/users/transcom/orgs","repos_url":"https://api.github.com/users/transcom/repos","events_url":"https://api.github.com/users/transcom/events{/privacy}","received_events_url":"https://api.github.com/users/transcom/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/transcom/mymove","description":"MyMove Personal Property Prototype","fork":false,"url":"https://api.github.com/repos/transcom/mymove","forks_url":"https://api.github.com/repos/transcom/mymove/forks","keys_url":"https://api.github.com/repos/transcom/mymove/keys{/key_id}","collaborators_url":"https://api.github.com/repos/transcom/mymove/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/transcom/mymove/teams","hooks_url":"https://api.github.com/repos/transcom/mymove/hooks","issue_events_url":"https://api.github.com/repos/transcom/mymove/issues/events{/number}","events_url":"https://api.github.com/repos/transcom/mymove/events","assignees_url":"https://api.github.com/repos/transcom/mymove/assignees{/user}","branches_url":"https://api.github.com/repos/transcom/mymove/branches{/branch}","tags_url":"https://api.github.com/repos/transcom/mymove/tags","blobs_url":"https://api.github.com/repos/transcom/mymove/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/transcom/mymove/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/transcom/mymove/git/refs{/sha}","trees_url":"https://api.github.com/repos/transcom/mymove/git/trees{/sha}","statuses_url":"https://api.github.com/repos/transcom/mymove/statuses/{sha}","languages_url":"https://api.github.com/repos/transcom/mymove/languages","stargazers_url":"https://api.github.com/repos/transcom/mymove/stargazers","contributors_url":"https://api.github.com/repos/transcom/mymove/contributors","subscribers_url":"https://api.github.com/repos/transcom/mymove/subscribers","subscription_url":"https://api.github.com/repos/transcom/mymove/subscription","commits_url":"https://api.github.com/repos/transcom/mymove/commits{/sha}","git_commits_url":"https://api.github.com/repos/transcom/mymove/git/commits{/sha}","comments_url":"https://api.github.com/repos/transcom/mymove/comments{/number}","issue_comment_url":"https://api.github.com/repos/transcom/mymove/issues/comments{/number}","contents_url":"https://api.github.com/repos/transcom/mymove/contents/{+path}","compare_url":"https://api.github.com/repos/transcom/mymove/compare/{base}...{head}","merges_url":"https://api.github.com/repos/transcom/mymove/merges","archive_url":"https://api.github.com/repos/transcom/mymove/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/transcom/mymove/downloads","issues_url":"https://api.github.com/repos/transcom/mymove/issues{/number}","pulls_url":"https://api.github.com/repos/transcom/mymove/pulls{/number}","milestones_url":"https://api.github.com/repos/transcom/mymove/milestones{/number}","notifications_url":"https://api.github.com/repos/transcom/mymove/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/transcom/mymove/labels{/name}","releases_url":"https://api.github.com/repos/transcom/mymove/releases{/id}","deployments_url":"https://api.github.com/repos/transcom/mymove/deployments","created_at":"2017-12-18T22:41:12Z","updated_at":"2018-12-13T18:36:50Z","pushed_at":"2018-12-13T18:53:48Z","git_url":"git://github.com/transcom/mymove.git","ssh_url":"git@github.com:transcom/mymove.git","clone_url":"https://github.com/transcom/mymove.git","svn_url":"https://github.com/transcom/mymove","homepage":"https://move.mil","size":32170,"stargazers_count":16,"watchers_count":16,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":14,"mirror_url":null,"archived":false,"open_issues_count":20,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":14,"open_issues":20,"watchers":16,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/transcom/mymove/pulls/1365"},"html":{"href":"https://github.com/transcom/mymove/pull/1365"},"issue":{"href":"https://api.github.com/repos/transcom/mymove/issues/1365"},"comments":{"href":"https://api.github.com/repos/transcom/mymove/issues/1365/comments"},"review_comments":{"href":"https://api.github.com/repos/transcom/mymove/pulls/1365/comments"},"review_comment":{"href":"https://api.github.com/repos/transcom/mymove/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/transcom/mymove/pulls/1365/commits"},"statuses":{"href":"https://api.github.com/repos/transcom/mymove/statuses/d5d9f6fc22979460c66b2f8fd257110d9e86504a"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"pjdufour-truss"}}