Commit Graph
100 Commits
Author SHA1 Message Date
Asher 5baf16622f Fix VS Code product configuration not loading 2020-02-07 16:47:51 -06:00
Asher 256419004d Implement cli parser 2020-02-07 14:43:08 -06:00
Asher 26f8216ec8 Un-nest a switch 2020-02-06 14:00:38 -06:00
Asher 63f3c04c57 Move user data directory logic out of patch 2020-02-06 13:12:00 -06:00
Asher 8a0f1d846e Move start path logic out of patch and fix it 2020-02-06 12:29:38 -06:00
Asher efaeb3b110 Add hidden username field for accessibility 2020-02-06 10:26:53 -06:00
Asher 6cebfa469d Generalize initial app logic 2020-02-05 18:47:00 -06:00
Asher 205775ac97 Only serve HTML on specific index.html requests
Otherwise there is risk of an infinite loop through the iframe where the
fallback keeps loading the root HTML which itself has an iframe...
2020-02-05 17:45:24 -06:00
Asher 4cc181cedc Make routing base path agnostic 2020-02-05 17:38:21 -06:00
Asher a149c5fc60 Pass arguments to code-server during watch 2020-02-05 14:48:15 -06:00
Asher 6e809b6a31 Handle when VS Code fails to load
This is mostly for development where VS Code might not have finished
compiling yet.
2020-02-05 14:23:42 -06:00
Asher 7c6fe56043 Add logo to background 2020-02-05 13:30:29 -06:00
Asher 8cc11d1688 Improve routing 2020-02-05 13:07:07 -06:00
Asher dbc5c065f8 Improve HTTP provider registration 2020-02-04 16:55:27 -06:00
Asher 4a54e914fc Remove 32 bit arm builds from CI 2020-02-04 16:01:00 -06:00
Asher b30aefcfb1 Add linting steps and improve testing steps 2020-02-04 15:42:55 -06:00
Asher b29346ecdf Implement new structure 2020-02-04 14:31:44 -06:00
Asher f51e045cd5 Use the nbin centos container to build again
This will put the glibc requirement back down to what it used to be.
2020-01-17 16:27:36 -06:00
Asher 8122b7f69e Remove unused upload service
No longer needed since VS Code has their own now.
2020-01-17 12:23:36 -06:00
Asher 25f18beda4 Fix version test 2020-01-16 18:09:19 -06:00
Asher 7e7923706f Fix version generated from Git tag 2020-01-16 17:59:11 -06:00
Asher ae35673489 Use custom Yarn cache directory
Makes it easier to upload and restore.
2020-01-16 15:39:44 -06:00
Asher 23f142fdc6 Cache Yarn cache 2020-01-16 15:23:25 -06:00
Asher 101139fabf Fix Drone CI releases
Also skip the 32 bit arm releases since they don't currently build
anyway.
2020-01-16 14:53:59 -06:00
Asher e2d354c8f2 Move manifest icon to the root as well 2020-01-16 12:11:56 -06:00
Asher 7c178805ea Add comment about the manifest's served location
Also for #1278.
2020-01-16 11:44:17 -06:00
Asher 45f70e741f Move manifest to the root
Fixes #1278.
2020-01-16 11:36:17 -06:00
Asher 1474a82c7d Add insecure access notification 2020-01-16 11:15:22 -06:00
Asher d97feca3ba Add code-server version to the about dialog 2020-01-15 18:02:19 -06:00
Asher b2669e78bf Implement ExtHostStoragePaths for the browser
This appears to make vscodevim work again.
2020-01-15 17:13:06 -06:00
Asher 66ee6e8201 Ignore 32 bit arm failures for now
Seems we are running out of memory.
2020-01-15 13:48:27 -06:00
Asher 62f050fda7 Add a simple test 2020-01-15 13:22:45 -06:00
Asher 57425377e5 Use CI dockerfile for pushing Docker image 2020-01-15 13:22:45 -06:00
Asher 174cb2f8a9 Remove unused Docker step from CI script 2020-01-15 13:22:42 -06:00
Asher 42bddce21f Add defaults for environment variables
So we don't have to keep setting them for each CI and every single step
since there doesn't seem to be a way to share them between steps in
Drone.
2020-01-15 13:21:58 -06:00
Asher f2a15795a1 Use draft releases for Drone
This gives us a chance to review it and add notes.
2020-01-15 13:21:58 -06:00
Asher 6dd5e515c5 Travis release on tags only and remove Docker push
The manual tagging is necessary to sync up the releases of the two
different CIs.
2020-01-15 13:21:55 -06:00
Asher 92da02ef3e Add Drone CI caching 2020-01-15 13:20:58 -06:00
Asher 336ee28888 Update Node to 12.14.0 2020-01-08 16:30:44 -06:00
Asher 3f2240ab65 Update logger 2020-01-08 16:30:34 -06:00
Asher 1087037728 Don't push latest and v2 Docker tags automatically
We should only push those when the version is confirmed to work.
2020-01-08 15:05:12 -06:00
Asher 1959d82912 Increase cache timeout
The Mac build seems to be terminated due to a timeout during the caching
stage.
2020-01-08 13:20:50 -06:00
Asher 8024144381 Update VS Code to 1.41.1 2020-01-07 18:27:41 -06:00
Asher 6a1dcab7a6 Update nbin
Should finally be able to build with Node v12 now.
2020-01-07 18:27:28 -06:00
Asher e6d1f2a7c8 Update VS Code to 1.41.0 2019-12-16 16:52:29 -06:00
Asher 44c4722edf Fix data directory path in Dockerfile 2019-12-10 12:06:52 -06:00
Asher e5fc63f2c8 Fix accessing manifest behind basic auth
Apparently the manifest spec doesn't include sending credentials in an
attempt to be secure by default.

Fixes #1212.
2019-12-09 11:25:59 -06:00
Asher 015a99e87d Always install VS Code dependencies
This fixes the case where the script is killed before all the
dependencies were fully installed.
2019-12-09 10:55:24 -06:00
Asher e14362f322 Pass along Node options 2019-11-14 17:20:23 -06:00
Asher 917aa48072 Update enterprise link
Fixes #1172.
2019-11-14 11:16:08 -06:00
Asher 938c6ef829 Update fail2ban configuration
Fixes #1177.
2019-11-14 11:14:27 -06:00
Asher 2018024810 Hash password
Fixes issues with unexpected characters breaking things when setting the
cookie (like semicolons).

This change as-is does not affect the security of code-server
itself (we've just replaced the static password with a static hash) but
if we were to add a salt in the future it would let us invalidate keys
by rehashing with a new salt which could be handy.
2019-11-07 15:57:57 -06:00
Asher a1d6bcb8e5 Handle cookies more robustly
If you visit /login/ instead of /login the cookie will be set at /login
instead of / which means the cookie can't be read at the root. It will
redirect to the login page which *can* read the cookie at /login and
redirect back resulting in an infinite loop.

The previous solution relied on setting the cookie at / (any invalid
value works) which then overrode the login page cookie since
parseCookies only kept a single value. So the login page would see the
same cookie the root was seeing and not redirect back. However, that
behavior depends on the cookies being in the right order which I'm not
sure is guaranteed.

This new method tests all available cookies and always sets the cookie
so the root path will be able to read it in case the login page is
seeing a cookie the root can't.

It also goes a step further and explicitly sets the path on the cookie
which fixes the case where there is a permanent misconfiguration
redirecting /login to /login/. Otherwise the cookie would continually be
set on /login only and you'd have another loop. It also means you only
need to delete one cookie to log out.

Lastly add some properties to make the cookies a bit more secure.
2019-11-07 13:36:18 -06:00
Asher 2c15c09fc0 Add missing telemetry option 2019-11-06 15:47:34 -06:00
Asher 2ad2582cc0 Minor readme updates and fixes 2019-11-05 13:49:18 -06:00
Asher cee0ac213c Fix error activating extensions on insecure domains
Doesn't affect Firefox but it does affect other browsers.

Fixes #1136.
2019-11-04 17:10:00 -06:00
Asher 780a673017 Add meta tag to allow full screen app on iOS
Fixes #933.
2019-11-04 16:01:01 -06:00
Asher af71203955 Fix relaunching during an update 2019-11-01 10:51:23 -05:00
Asher fc3acfabb2 Fix update check 2019-10-30 17:35:50 -05:00
Asher 3d5db8313a Add secure domain to requirements 2019-10-30 10:33:07 -05:00
Asher 73cf8f34e3 Fix outgoing scheme transformation
Accidentally used local instead of remote.

Fixes #1127.
2019-10-30 10:32:57 -05:00
Asher 87485948ad Kill inner process if parent process dies
Fixes #1076.
2019-10-29 14:43:27 -05:00
Asher 7e4a73ce2d Fix schema matching against vscode-remote
Fixes #1104.
2019-10-29 11:42:28 -05:00
Asher 2f0878d9b7 Revert remote scheme change
It doesn't show in the explorer anymore so there's no point. Also remove
the local scheme transform which is no longer required with the latest
client-side extension implementation.
2019-10-29 11:26:50 -05:00
Asher cd859d117f Start pushing to latest Docker tag 2019-10-29 11:04:38 -05:00
Asher e22964915a Support opening workspaces from command line
Partly addresses #1121.
2019-10-28 16:25:51 -05:00
Asher 197d0b6ca9 Strip internal env vars when spawning the shell
This should fix all those reports of code-server dropping straight to
Node and things like #1121.
2019-10-28 16:08:32 -05:00
Asher 422503ef98 Proxy child exit code when exiting parent process
This fixes code-server exiting with zero on errors.
2019-10-28 14:57:01 -05:00
Asher ea36345d2c Allow fetching any resource
Fixes #1118.
2019-10-28 14:29:51 -05:00
Asher a89d83cbba Fix other incorrect usages of split 2019-10-28 14:03:13 -05:00
Asher 83ff31b620 Fix passwords that contain =
Fixes #1119.

Apparently `split` does not work the way I'd expect.
2019-10-28 13:47:31 -05:00
Asher 3a9b032c72 Add heartbeat file (#1115)
Fixes #1050.
2019-10-28 09:59:34 -05:00
Asher f73e9225b4 Remove directory restrictions for /webview/vscode-resource
This makes viewing images work. Fixes #1111.
2019-10-25 15:52:39 -05:00
Asher 168ccb0dfc Prevent cache changes when patch updates 2019-10-25 13:12:04 -05:00
Asher 58f7f5b769 Properly fix blank --cert flag
See #1109.
2019-10-25 12:04:43 -05:00
Asher b8e6369fbe Fix empty --cert not generating self-signed certificate
Fixes #1101.
2019-10-25 11:01:42 -05:00
Asher d81d5f499f Remove Cloud Run button
Unfortunately it doesn't allow websockets so it's not working.
2019-10-24 16:45:22 -05:00
Asher 4be178d234 Move Google Cloud button to match Digital Ocean 2019-10-24 16:09:02 -05:00
Asher 95693fb58e Handle /webview/vscode-resource/file urls
See #1103.
2019-10-24 14:35:25 -05:00
Asher e7945bea94 Enable password authentication by default
Fixes #1062.
2019-10-24 12:35:26 -05:00
Asher 91f49e1efd Set SHELL to /bin/bash in Docker
Fixes #1081, fixes #918.
2019-10-23 13:34:00 -05:00
Asher eea9c1618c Move client-side extension code out of patch 2019-10-23 13:12:11 -05:00
Asher f1b38e4e48 Fix out-of-order readme section 2019-10-23 11:54:47 -05:00
Asher ff99a1d768 Add security section to readme
See #1062.
2019-10-23 11:49:17 -05:00
Asher 7f07b8f66c Push Docker using Linux build
Instead of doing a separate redundant build. The main problem was that
the files weren't being cached. There is probably a better way of
solving this but this seems to be the simplest for now.
2019-10-22 18:43:21 -05:00
Asher faae03da6b Add prerequisites for building 2019-10-22 17:49:43 -05:00
Asher a6e4f96737 Fix webview html being excluded
Also skip the workbench html since we have our own.
2019-10-22 16:09:27 -05:00
Asher cc7585bbc2 Port onigasm fix for PHP 2019-10-22 11:39:00 -05:00
Asher 14a0cd3ffd Remove build files in source
They aren't used in subsequent files and just slow down CI since it has
to extract from the cache and then package the changes.
2019-10-22 11:26:46 -05:00
Asher 3ff83eda45 Ensure VS Code dependencies and built-in extensions exist
Fixes #1087.
2019-10-22 10:49:00 -05:00
Asher f133b00851 Fix darwin detection 2019-10-21 16:51:01 -05:00
Asher ece840834d Move login page to browser directory
Fixes it not being included in the optimized build as well as making it
more consistent.
2019-10-21 15:02:41 -05:00
Asher 76f6ff4145 Fix alpine check 2019-10-21 14:09:04 -05:00
Asher 2458cde498 Update source & build paths in Dockerfile 2019-10-21 12:25:18 -05:00
Asher 82e2b8a169 Move source to its own directory
This matches how the rest of the build is organized but also hopefully
solves an issue where the VS Code directory is empty because we try to
cache it directly and Travis might be creating it.
2019-10-21 11:16:47 -05:00
Asher 5aa2abaf9f Cache VS Code in CI 2019-10-21 11:06:09 -05:00
Asher fdb2308c62 Update path to built binary in Dockerfile 2019-10-21 10:56:27 -05:00
Asher 4cd2f2cd52 Simplify build and development steps 2019-10-18 19:10:55 -05:00
Asher 88cef85f62 Add dependencies required for running build script
They were getting pulled from VS Code which doesn't work if you are
running a build in a clean repo.
2019-10-18 18:40:10 -05:00
Asher bdd11f741b Update to 1.39.2
Also too the opportunity to rewrite the build script since there was a
change in the build steps (mainly how the product JSON is inserted) and
to get the build changes out of the patch. It also no longer relies on
external caching (we'll want to do this within CI instead).
2019-10-18 18:20:02 -05:00