8fbebb7989
* Added Google Platform Library * Added Meta Element for Client ID * Added Google Sign-In Button * Authenticating the id_token on our backend * Saving id_token in flask session, using the id_token to fetch the current user and replaced the usages of AppEngine Users API (not from *_tests.py) * Correct the flow on pressing SignIn and SignOut * Code refactor * Added Comment for is_current_user_admin * Supporting GAE Users library for post request * Made some fixes * Changed Admin User condition * Reloading only on 200 response code * Do not require sign in and xsrf token while sending post request for login * Sign Out using Google Sign In if cookie is not set after login * Clearing the session if the id_token stored in the session variable becomes invalid or expires * Replaced GAE Users from tests * Replaced GAE users with framework users in tests.py |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
api | ||
customtags | ||
data | ||
framework | ||
http2push@7b63c8d258 | ||
internals | ||
pages | ||
scripts | ||
static | ||
templates | ||
travis | ||
.babelrc | ||
.coveragerc | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CODE_OF_CONDUCT.md | ||
LICENSE | ||
README.md | ||
app.yaml | ||
appengine_config.py | ||
bulkloader.yaml | ||
bulkloader_helpers.py | ||
config.rb | ||
cron.yaml | ||
developer-documentation.md | ||
dispatch.yaml | ||
gcloud-client-secret.json.enc | ||
gulpfile.babel.js | ||
hack_components.py | ||
hack_wf_components.py | ||
index.yaml | ||
notifier.yaml | ||
package-lock.json | ||
package.json | ||
queue.yaml | ||
requirements.dev.txt | ||
requirements.travis.txt | ||
requirements.txt | ||
settings.py | ||
skip_files.yaml | ||
testing_config.py |
README.md
Chrome Platform Status
Get the code
git clone --recursive https://github.com/GoogleChrome/chromium-dashboard
Installation
- Install global CLIs
- Google App Engine SDK for Python.
- pip, node, npm.
- Gulp
npm install -g gulp
- Install npm dependencies
npm ci
- Install other dependencies
npm run deps
andnpm run dev-deps
Add env_vars.yaml
Create a file named env_vars.yaml
in the root directory and fill it with:
env_variables:
DJANGO_SETTINGS_MODULE: 'settings'
DJANGO_SECRET: 'this-is-a-secret'
Developing
To start the main server and the notifier backend, run:
npm start
Then visit http://localhost:8080/
.
To start front end code watching (sass, js lint check, babel, minify files), run
npm run watch
To run lint & lit-analyzer:
npm run lint
To run unit tests:
npm run test
Note: featurelist is temporarily excluded because lit-analyzer throws Maximum call stack size exceeded
.
There are some developing information in developer-documentation.md.
Notes
-
If you get an error saying
No module named protobuf
, try installing it locally withpython -m pip install protobuf
. -
When installing the GAE SDK, make sure to get the version for python 2.7. It is no longer the default version.
-
When running
npm start
you may get an ImportError for jinja2.tests. This was caused by an over-general line in skip_files.yaml. Pulling the latest source code should resolve the problem.
Blink components
Chromestatus gets the list of Blink components from a separate app running on Firebase. See source.
Seed the blink component owners
Visit http://localhost:8080/admin/blink/populate_blink to see the list of Blink component owners.
Debugging / settings
settings.py
contains a list
of globals for debugging and running the site locally.
Deploying
If you have uncommited local changes, the appengine version name will end with -tainted
.
It is OK to test on staging with tainted versions, but everything should be committed
(and thus not tainted) before staging a version that can later be pushed to prod.
Note you need to have admin privileges on the cr-status-staging
and cr-status
cloud projects to be able to deploy the site.
Run the npm target:
npm run staging
Open the Google Developer Console for the staging site and flip to the new version by selecting from the list and clicking MIGRATE TRAFFIC. Make sure to do this for both the 'default' service as well as for the 'notifier' service.
If manual testing on the staging server looks good, then repeat the same steps to deploy to prod:
npm run deploy
Open the Google Developer Console for the production site
The production site should only have versions that match versions on staging.
LICENSE
Copyright (c) 2013-2016 Google Inc. All rights reserved.
Apache2 License.