| # See https://pre-commit.com for more information |
| # See https://pre-commit.com/hooks.html for more hooks |
| default_stages: [commit] |
| |
| default_language_version: |
| python: python3 |
| |
| files: | |
| (?x)^( |
| ( |
| .github| |
| cobalt| |
| docker| |
| internal| |
| precommit_hooks| |
| starboard| |
| tools/metrics/actions/cobalt| |
| tools/metrics/histograms/metadata/cobalt| |
| )/ |
| | ^[^/]+$ # files in the root |
| ) |
| exclude: | |
| (?x)^( |
| ( |
| internal/kokoro/third-party| |
| internal/starboard/shared/glimp/include| |
| internal/starboard/shared/playstation/glimp/shaders| |
| )/ |
| | |
| .*_pb2\.py$ | |
| .*\.pb\.cc$ | |
| .*\.pb\.h$ | |
| .*\.patch$ | |
| .*Proto.java$| |
| .*\.sig$ |
| ) |
| |
| repos: |
| - repo: https://cobalt.googlesource.com/pre-commit-hooks |
| rev: e1668fe86af3810fbca72b8653fe478e66a0afdc # v3.2.0 |
| hooks: |
| - id: check-case-conflict |
| - id: end-of-file-fixer |
| - id: trailing-whitespace |
| - id: mixed-line-ending |
| - id: check-xml |
| |
| - repo: https://cobalt.googlesource.com/codespell |
| rev: 67c489d36dd4c52cbb9e4755d90c35c6231842ef # v2.0.0 |
| hooks: |
| - id: codespell |
| name: Spell Check |
| args: [-x, .codespellignorelines, |
| # The --ignore-words-list argument has a bug where it needs to |
| # be lowercase, see |
| # https://github.com/codespell-project/codespell/issues/1390 |
| --ignore-words-list, "atleast,varius,ridiculus,statics", |
| ] |
| exclude: | |
| (?x)^( |
| (internal/)?starboard/[^/]+/i18n/| |
| cobalt/content/licenses/| |
| cobalt/content/ssl/| |
| cobalt/fetch/embedded_scripts| |
| cobalt/streams/embedded_scripts| |
| cobalt/loader/cors_preflight.cc| |
| internal/cobalt/browser/splash_screen/youtube_splash_screen.html| |
| internal/starboard/shared/playstation/storage_internal.cc| |
| starboard/loader_app/app_key_test.cc| |
| starboard/shared/starboard/player/testdata| |
| starboard/shared/win32/media_transform.cc |
| ) |
| |
| - repo: local |
| hooks: |
| - id: sync-keyboxes |
| name: sync-keyboxes |
| entry: python ./precommit_hooks/sync_keyboxes_wrapper.py |
| language: python |
| stages: [post-checkout] |
| always_run: true |
| - id: clang-format |
| name: clang-format |
| entry: clang-format |
| language: python |
| types: [c++] |
| exclude_types: [objective-c++] |
| args: [-i, -style=file] |
| additional_dependencies: ['clang-format'] |
| - id: cpplint |
| name: cpplint |
| entry: cpplint |
| language: system |
| types: [c++] |
| args: [--verbose=4, --quiet] |
| exclude: | |
| (?x)( |
| ^cobalt/bindings/(templates|generated)/| |
| ^internal/starboard/shared/uikit/.*\.h$ |
| ) |
| - id: yapf |
| name: yapf |
| description: Run yapf (the python formatter) in-place on changed files. |
| entry: yapf |
| language: system |
| types: [python] |
| args: [-i, -vv] |
| - id: pylint |
| name: pylint |
| entry: pylint |
| language: system |
| types: [python] |
| args: [-d W0201] |
| - id: google-java-format |
| name: google-java-format |
| entry: python ./precommit_hooks/google_java_format_wrapper.py |
| language: python |
| types: [java] |
| args: [-i] |
| - id: gcheckstyle |
| name: Lint Java With gcheckstyle |
| entry: python ./precommit_hooks/gcheckstyle_wrapper.py |
| language: python |
| types: [java] |
| verbose: true |
| - id: check-copyright-year |
| name: check copyright year |
| entry: python ./precommit_hooks/check_copyright_year.py |
| language: python |
| types: [file, text] |
| stages: [push] |
| exclude: | |
| (?x)^( |
| .pylintrc$| |
| .pre-commit-config.yaml$| |
| cobalt/base/unicode/| |
| cobalt/demos/content/| |
| cobalt/layout_tests/testdata/| |
| cobalt/math/| |
| cobalt/media/| |
| cobalt/streams/| |
| cobalt/webdriver/screencast/| |
| cobalt/websocket/| |
| components/crx_file/| |
| content/| |
| internal/starboard/shared/glimp/| |
| nb/| |
| starboard/android/apk/gradlew| |
| starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaDrmBridge.java$| |
| starboard/shared/starboard/player/filter/decoded_audio_queue.cc$| |
| starboard/shared/starboard/player/filter/decoded_audio_queue.h$| |
| starboard/shared/starboard/player/testdata/licences/| |
| starboard/shared/starboard/player/filter/wsola_internal.cc$ |
| ) |
| exclude_types: [markdown] |
| verbose: true |
| - id: check-if-starboard-interface-changed |
| name: check if starboard interface changed |
| entry: python ./precommit_hooks/warn_that_starboard_interface_changed_wrapper.py |
| language: python |
| files: '^starboard/[^/]+\.h$' |
| stages: [push] |
| - id: download-resources |
| name: download resources |
| entry: python ./download_resources.py |
| language: python |
| stages: [post-checkout] |
| always_run: true |
| - id: test-download-from-gcs-helper |
| name: test download from gcs helper |
| entry: python |
| language: python |
| pass_filenames: false |
| always_run: true |
| stages: [push] |
| args: [-m, unittest, cobalt/tools/download_from_gcs_test.py] |
| - id: test-python3-compatibility |
| name: Test Python 3 Compatibility |
| description: Checks that scripts can be run in Python 3 |
| entry: python precommit_hooks/python3_check.py |
| language: python |
| types: [python] |
| verbose: true |
| - id: check-bug-in-commit-message |
| name: Check Bug In Commit Message |
| description: Checks for a tracking bug in a commit message |
| entry: python precommit_hooks/check_bug_in_description_wrapper.py |
| language: python |
| stages: [push] |
| always_run: true |
| pass_filenames: false |
| - id: gn-format |
| name: GN format |
| entry: gn format |
| language: system |
| files: '.*\.gni?$' |
| - id: meta-validate |
| name: Validate METADATA files |
| entry: python -m cobalt.tools.metadata.validate |
| language: python |
| additional_dependencies: |
| - "protobuf" |
| always_run: true |
| pass_filenames: false |