Commit 66289c11 authored by Sascha Pfeiffer's avatar Sascha Pfeiffer

new scheduled-linter branch

parent 224f312a
---
engines:
csslint:
enabled: true
checks:
box-sizing:
enabled: false
duplication:
enabled: false
checks:
Identical code:
enabled: false
config:
languages:
javascript:
mass_threshold: 60
eslint:
enabled: true
fixme:
enabled: true
checks:
TODO:
enabled: false
ratings:
paths:
- "**.css"
- "**.inc"
- "**.js"
- "**.jsx"
- "**.module"
- "**.php"
- "**.py"
- "**.rb"
exclude_paths:
- docu/**/*
- var/**/*
- unittests/**/*
- src/common/data/js/lib/**/*
- src/common/data/css/lib/**/*
--exclude-exts=.min.css
--ignore=adjoining-classes,box-model,ids,order-alphabetical,unqualified-attributes
---
parserOptions:
sourceType: module
ecmaFeatures:
jsx: true
env:
amd: true
browser: true
es6: true
jquery: true
node: true
# http://eslint.org/docs/rules/
rules:
# Possible Errors
no-await-in-loop: off
no-cond-assign: error
no-console: off
no-constant-condition: error
no-control-regex: error
no-debugger: error
no-dupe-args: error
no-dupe-keys: error
no-duplicate-case: error
no-empty-character-class: error
no-empty: error
no-ex-assign: error
no-extra-boolean-cast: error
no-extra-parens: off
no-extra-semi: error
no-func-assign: error
no-inner-declarations:
- error
- functions
no-invalid-regexp: error
no-irregular-whitespace: error
no-negated-in-lhs: error
no-obj-calls: error
no-prototype-builtins: off
no-regex-spaces: error
no-sparse-arrays: error
no-template-curly-in-string: off
no-unexpected-multiline: error
no-unreachable: error
no-unsafe-finally: off
no-unsafe-negation: off
use-isnan: error
valid-jsdoc: off
valid-typeof: error
# Best Practices
accessor-pairs: error
array-callback-return: off
block-scoped-var: off
class-methods-use-this: off
complexity:
- error
- 6
consistent-return: off
curly: off
default-case: off
dot-location: off
dot-notation: off
eqeqeq: error
guard-for-in: error
no-alert: error
no-caller: error
no-case-declarations: error
no-div-regex: error
no-else-return: off
no-empty-function: off
no-empty-pattern: error
no-eq-null: error
no-eval: error
no-extend-native: error
no-extra-bind: error
no-extra-label: off
no-fallthrough: error
no-floating-decimal: off
no-global-assign: off
no-implicit-coercion: off
no-implied-eval: error
no-invalid-this: off
no-iterator: error
no-labels:
- error
- allowLoop: true
allowSwitch: true
no-lone-blocks: error
no-loop-func: error
no-magic-number: off
no-multi-spaces: off
no-multi-str: off
no-native-reassign: error
no-new-func: error
no-new-wrappers: error
no-new: error
no-octal-escape: error
no-octal: error
no-param-reassign: off
no-proto: error
no-redeclare: error
no-restricted-properties: off
no-return-assign: error
no-return-await: off
no-script-url: error
no-self-assign: off
no-self-compare: error
no-sequences: off
no-throw-literal: off
no-unmodified-loop-condition: off
no-unused-expressions: error
no-unused-labels: off
no-useless-call: error
no-useless-concat: error
no-useless-escape: off
no-useless-return: off
no-void: error
no-warning-comments: off
no-with: error
prefer-promise-reject-errors: off
radix: error
require-await: off
vars-on-top: off
wrap-iife: error
yoda: off
# Strict
strict: off
# Variables
init-declarations: off
no-catch-shadow: error
no-delete-var: error
no-label-var: error
no-restricted-globals: off
no-shadow-restricted-names: error
no-shadow: off
no-undef-init: error
no-undef: off
no-undefined: off
no-unused-vars: off
no-use-before-define: off
# Node.js and CommonJS
callback-return: error
global-require: error
handle-callback-err: error
no-mixed-requires: off
no-new-require: off
no-path-concat: error
no-process-env: off
no-process-exit: error
no-restricted-modules: off
no-sync: off
# Stylistic Issues
array-bracket-spacing: off
block-spacing: off
brace-style: off
camelcase: off
capitalized-comments: off
comma-dangle:
- error
- never
comma-spacing: off
comma-style: off
computed-property-spacing: off
consistent-this: off
eol-last: off
func-call-spacing: off
func-name-matching: off
func-names: off
func-style: off
id-length: off
id-match: off
indent: off
jsx-quotes: off
key-spacing: off
keyword-spacing: off
line-comment-position: off
linebreak-style: off
lines-around-comment: off
lines-around-directive: off
max-depth: off
max-len: off
max-nested-callbacks: off
max-params: off
max-statements-per-line: off
max-statements:
- error
- 30
multiline-ternary: off
new-cap: off
new-parens: off
newline-after-var: off
newline-before-return: off
newline-per-chained-call: off
no-array-constructor: off
no-bitwise: off
no-continue: off
no-inline-comments: off
no-lonely-if: off
no-mixed-operators: off
no-mixed-spaces-and-tabs: off
no-multi-assign: off
no-multiple-empty-lines: off
no-negated-condition: off
no-nested-ternary: off
no-new-object: off
no-plusplus: off
no-restricted-syntax: off
no-spaced-func: off
no-tabs: off
no-ternary: off
no-trailing-spaces: off
no-underscore-dangle: off
no-unneeded-ternary: off
object-curly-newline: off
object-curly-spacing: off
object-property-newline: off
one-var-declaration-per-line: off
one-var: off
operator-assignment: off
operator-linebreak: off
padded-blocks: off
quote-props: off
quotes: off
require-jsdoc: off
semi-spacing: off
semi: off
sort-keys: off
sort-vars: off
space-before-blocks: off
space-before-function-paren: off
space-in-parens: off
space-infix-ops: off
space-unary-ops: off
spaced-comment: off
template-tag-spacing: off
unicode-bom: off
wrap-regex: off
# ECMAScript 6
arrow-body-style: off
arrow-parens: off
arrow-spacing: off
constructor-super: off
generator-star-spacing: off
no-class-assign: off
no-confusing-arrow: off
no-const-assign: off
no-dupe-class-members: off
no-duplicate-imports: off
no-new-symbol: off
no-restricted-imports: off
no-this-before-super: off
no-useless-computed-key: off
no-useless-constructor: off
no-useless-rename: off
no-var: off
object-shorthand: off
prefer-arrow-callback: off
prefer-const: off
prefer-destructuring: off
prefer-numeric-literals: off
prefer-rest-params: off
prefer-reflect: off
prefer-spread: off
prefer-template: off
require-yield: off
rest-spread-spacing: off
sort-imports: off
symbol-description: off
template-curly-spacing: off
yield-star-spacing: off
.idea
docs
out
unittests/coverage
var/ngdocs/templates
node_modules
build/
dist/
doc/
test
*~
*.py[cod]
\ No newline at end of file
variables:
CONTAINER_TEST_IMAGE: psono-docker-local.jfrog.io/psono/psono-client:$CI_BUILD_REF_NAME
CONTAINER_RELEASE_IMAGE: psono-docker-local.jfrog.io/psono/psono-client:latest
stages:
- test
- build
- release
- deploy
unittests:
except:
- schedules
stage: test
image: ubuntu:16.04
script:
- sh ./var/build-ubuntu.sh
- apt-get install -y --no-install-recommends xvfb x11vnc fluxbox xterm
- curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
- echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
- apt-get update
- apt-get install -y google-chrome-stable
- karma start ./unittests/karma-chrome-headless.conf.js
linter:
except:
- schedules
stage: test
image: ubuntu:16.04
script:
- sh ./var/build-ubuntu.sh
- cat ./build/firefox/manifest.json
- addons-linter --help
- addons-linter ./build/firefox
docker-image:
except:
- schedules
stage: build
image: ubuntu:16.04
services:
- docker:dind
variables:
DOCKER_HOST: 'tcp://docker:2375'
script:
- sh ./var/build-ubuntu.sh
- set -x && curl -fSL "https://download.docker.com/linux/static/stable/x86_64/docker-17.12.0-ce.tgz" -o docker.tgz && echo "692e1c72937f6214b1038def84463018d8e320c8eaf8530546c84c2f8f9c767d *docker.tgz" | sha256sum -c - && tar -xzvf docker.tgz && mv docker/* /usr/local/bin/
- docker info
- echo $CI_BUILD_TOKEN | docker login --username=gitlab-ci-token --password-stdin registry.gitlab.com
- echo $artifactory_credentials | docker login --username=gitlab --password-stdin psono-docker.jfrog.io
- echo $artifactory_credentials | docker login --username=gitlab --password-stdin psono-docker-local.jfrog.io
- docker build -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
firefox-extension:
except:
- schedules
stage: build
image: ubuntu:16.04
script:
- pwd
- ls -la
- sh ./var/build-ubuntu.sh
- mv /builds/psono/psono-client/build/firefox ../
- rm -Rf *
- rm -Rf .* 2> /dev/null || true
- mv ../firefox/* ./
artifacts:
name: "firefox_$CI_BUILD_REF_NAME"
paths:
- ./*
chrome-extension:
except:
- schedules
stage: build
image: ubuntu:16.04
script:
- pwd
- ls -la
- sh ./var/build-ubuntu.sh
- mv /builds/psono/psono-client/build/chrome ../
- rm -Rf *
- rm -Rf .* 2> /dev/null || true
- mv ../chrome/* ./
artifacts:
name: "chrome_$CI_BUILD_REF_NAME"
paths:
- ./*
webclient:
except:
- schedules
stage: build
image: ubuntu:16.04
script:
- pwd
- ls -la
- sh ./var/build-ubuntu.sh
- mv /builds/psono/psono-client/build/webclient ../
- rm -Rf *
- rm -Rf .* 2> /dev/null || true
- mv ../webclient/* ./
artifacts:
name: "webclient_$CI_BUILD_REF_NAME"
paths:
- ./*
release-docker:
except:
- schedules
stage: release
image: docker:git
services:
- docker:dind
script:
- docker info
- echo $CI_BUILD_TOKEN | docker login --username=gitlab-ci-token --password-stdin registry.gitlab.com
- echo $artifactory_credentials | docker login --username=gitlab --password-stdin psono-docker.jfrog.io
- echo $artifactory_credentials | docker login --username=gitlab --password-stdin psono-docker-local.jfrog.io
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- /^v[0-9]*\.[0-9]*\.[0-9]*$/
deploy-security-scan-image:
except:
- schedules
stage: deploy
image: docker:git
services:
- docker:dind
script:
- sh ./var/deploy_security_scan_image.sh
deploy:
except:
- schedules
stage: deploy
image: docker:git
services:
- docker:dind
script:
- sh ./var/deploy.sh
environment:
name: production
url: https://psono.pw
only:
- /^v[0-9]*\.[0-9]*\.[0-9]*$/
deploy-chrome:
except:
- schedules
stage: deploy
image: ubuntu:16.04
script:
- sh ./var/build-ubuntu.sh
- sh ./var/package-chrome-extension.sh
- sh ./var/deploy-chrome-extension.sh
environment:
name: chrome-webstore
url: https://chrome.google.com/webstore/detail/psonopw/eljmjmgjkbmpmfljlmklcfineebidmlo
only:
- /^v[0-9]*\.[0-9]*\.[0-9]*$/
deploy-firefox:
except:
- schedules
stage: deploy
image: ubuntu:16.04
script:
- sh ./var/build-ubuntu.sh
- sh ./var/package-firefox-extension.sh
- sh ./var/deploy-firefox-extension.sh
environment:
name: firefox-webstore
url: https://addons.mozilla.org/de/firefox/addon/psono-pw-password-manager/
only:
- /^v[0-9]*\.[0-9]*\.[0-9]*$/
scheduled-linter:
only:
- schedules
stage: test
image: ubuntu:16.04
script:
- apt-get update
- apt-get install -y git
- git checkout develop
- git pull
- sh ./var/build-ubuntu.sh
- cat ./build/firefox/manifest.json
- addons-linter --help
......
FROM psono-docker.jfrog.io/nginx:alpine
MAINTAINER Sascha Pfeiffer <saschapfeiffer@psono.com>
COPY ./build/webclient /usr/share/nginx/html/
WORKDIR /root
\ No newline at end of file
This diff is collapsed.
# PSONO Client - Password Manager
Master: [![build status](https://gitlab.com/psono/psono-client/badges/master/build.svg)](https://gitlab.com/psono/psono-client/commits/master) [![coverage report](https://gitlab.com/psono/psono-client/badges/master/coverage.svg)](https://gitlab.com/psono/psono-client/commits/master) [![Code Climate](https://codeclimate.com/github/psono/psono-client/badges/gpa.svg)](https://codeclimate.com/github/psono/psono-client) [![build status](https://images.microbadger.com/badges/image/psono/psono-client.svg)](https://hub.docker.com/r/psono/psono-client/) [![build status](https://img.shields.io/docker/pulls/psono/psono-client.svg)](https://hub.docker.com/r/psono/psono-client/)
Develop: [![build status](https://gitlab.com/psono/psono-client/badges/develop/build.svg)](https://gitlab.com/psono/psono-client/commits/develop) [![coverage report](https://gitlab.com/psono/psono-client/badges/develop/coverage.svg)](https://gitlab.com/psono/psono-client/commits/develop)
# Canonical source
The canonical source of PSONO Client is [hosted on GitLab.com](https://gitlab.com/psono/psono-client).
# Documentation
The documentation for the psono server can be found here:
[Psono Documentation](https://doc.psono.com/)
## LICENSE
Visit the [License.md](/LICENSE.md) for more details
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'none'; connect-src 'self'; font-src 'self'; img-src 'self' www.google-analytics.com; script-src 'self' www.google-analytics.com; style-src 'self' 'unsafe-inline'";
}
server {
listen 80;
server_name www.example.com;
return 301 https://$host$request_uri;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'none'; connect-src 'self'; font-src 'self'; img-src 'self' www.google-analytics.com; script-src 'self' www.google-analytics.com; style-src 'self' 'unsafe-inline'";
}
server {
listen 443 ssl http2;
server_name example.com;
return 301 https://www.$host$request_uri;
# from https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=nginx-1.10.0&openssl=1.0.2g&hsts=yes&profile=modern
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_timeout 1d;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
# Enable the following line only if you know what you are doing :)
# add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Referrer-Policy same-origin;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'none'; connect-src 'self'; font-src 'self'; img-src 'self' www.google-analytics.com; script-src 'self' www.google-analytics.com; style-src 'self' 'unsafe-inline'";
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
}
server {
listen 443 ssl http2;
server_name www.example.com;