This is an automated email from the ASF dual-hosted git repository.
jiayu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-testing.git
The following commit(s) were added to refs/heads/main by this push:
new 85ac1ff gha: add pre-commit hooks with linters and fixers (#6)
85ac1ff is described below
commit 85ac1ff82e42bf3e0347f40ae2ba4beda7579b4d
Author: John Bampton <[email protected]>
AuthorDate: Fri Jun 6 06:48:34 2025 +1000
gha: add pre-commit hooks with linters and fixers (#6)
---
.github/linters/.markdown-lint.yml | 20 ++++++
.github/linters/.yaml-lint.yml | 26 +++++++
.github/workflows/license-templates/LICENSE.txt | 16 +++++
.github/workflows/pre-commit.yml | 51 ++++++++++++++
.pre-commit-config.yaml | 93 +++++++++++++++++++++++++
README.md | 19 +++++
6 files changed, 225 insertions(+)
diff --git a/.github/linters/.markdown-lint.yml
b/.github/linters/.markdown-lint.yml
new file mode 100644
index 0000000..32a7fd5
--- /dev/null
+++ b/.github/linters/.markdown-lint.yml
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# https://github.com/DavidAnson/markdownlint#rules--aliases
+# MD013/line-length Line length
+MD013: false
diff --git a/.github/linters/.yaml-lint.yml b/.github/linters/.yaml-lint.yml
new file mode 100644
index 0000000..d762a98
--- /dev/null
+++ b/.github/linters/.yaml-lint.yml
@@ -0,0 +1,26 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+# https://yamllint.readthedocs.io/en/stable/
+extends: default
+
+rules:
+ comments: disable
+ document-start: disable
+ line-length: disable
+ truthy: false
diff --git a/.github/workflows/license-templates/LICENSE.txt
b/.github/workflows/license-templates/LICENSE.txt
new file mode 100644
index 0000000..60b675e
--- /dev/null
+++ b/.github/workflows/license-templates/LICENSE.txt
@@ -0,0 +1,16 @@
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
new file mode 100644
index 0000000..3dc8683
--- /dev/null
+++ b/.github/workflows/pre-commit.yml
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Lint
+
+on: [pull_request]
+
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
+
+jobs:
+ pre-commit:
+ name: Run pre-commit # https://pre-commit.com/
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'Checkout ${{ github.ref }} ( ${{ github.sha }} )'
+ uses: actions/checkout@v4
+ - uses: actions/setup-python@v5 # https://www.python.org/
+ with:
+ python-version: '3.10' # Version range or exact version of a Python
version to use, using SemVer's version range syntax
+ architecture: 'x64' # optional x64 or x86. Defaults to x64 if not
specified
+ - name: Install dependencies # https://pip.pypa.io/en/stable/
+ run: |
+ python -m pip install --upgrade pip
+ pip install pre-commit
+ - name: set PY
+ run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
+ - uses: actions/cache@v4
+ with:
+ path: ~/.cache/pre-commit
+ key: pre-commit|${{ env.PY }}|${{
hashFiles('.pre-commit-config.yaml') }}
+ - name: Run pre-commit
+ run: pre-commit run --all-files
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..d5433cd
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,93 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+# https://pre-commit.com/#installation
+default_stages: [pre-commit, pre-push]
+default_language_version:
+ # force all unspecified Python hooks to run python3
+ python: python3
+minimum_pre_commit_version: '3.2.0'
+repos:
+ - repo: meta
+ hooks:
+ - id: identity
+ name: run identity check
+ - id: check-hooks-apply
+ name: run check hooks apply
+ - repo: https://github.com/Lucas-C/pre-commit-hooks
+ rev: v1.5.5
+ hooks:
+ - id: insert-license
+ name: add license for all Markdown files
+ files: \.md$
+ args:
+ - --comment-style
+ - '<!--|| -->'
+ - --license-filepath
+ - .github/workflows/license-templates/LICENSE.txt
+ - --fuzzy-match-generates-todo
+ - id: insert-license
+ name: add license for all YAML files
+ files: \.ya?ml$
+ args:
+ - --comment-style
+ - '|#|'
+ - --license-filepath
+ - .github/workflows/license-templates/LICENSE.txt
+ - --fuzzy-match-generates-todo
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v5.0.0
+ hooks:
+ - id: check-case-conflict
+ - id: check-illegal-windows-names
+ - id: check-merge-conflict
+ - id: check-vcs-permalinks
+ - id: check-yaml
+ - id: detect-aws-credentials
+ args: [--allow-missing-credentials]
+ - id: detect-private-key
+ - id: end-of-file-fixer
+ - id: fix-byte-order-marker
+ - id: forbid-submodules
+ - id: mixed-line-ending
+ - id: trailing-whitespace
+ args: [--markdown-linebreak-ext=md]
+ - repo: https://github.com/gitleaks/gitleaks
+ rev: v8.27.0
+ hooks:
+ - id: gitleaks
+ name: run gitleaks
+ description: check for secrets with gitleaks
+ - repo: https://github.com/igorshubovych/markdownlint-cli
+ rev: v0.45.0
+ hooks:
+ - id: markdownlint
+ name: run markdownlint
+ description: check Markdown files with markdownlint
+ args: [--config=.github/linters/.markdown-lint.yml]
+ types: [markdown]
+ files: \.(md|mdown|markdown)$
+ - repo: https://github.com/adrienverge/yamllint
+ rev: v1.37.1
+ hooks:
+ - id: yamllint
+ name: run yamllint
+ description: check YAML files with yamllint
+ args: [--strict, -c=.github/linters/.yaml-lint.yml]
+ types: [yaml]
+ files: \.ya?ml$
diff --git a/README.md b/README.md
index 7e812fd..4419cfc 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,22 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
# Apache Sedona Testing Repository
This repository contains test datasets for validating Apache Sedona and
relevant geospatial projects.