diff --git a/.github/linters/zizmor.yaml b/.github/linters/zizmor.yaml new file mode 100644 index 0000000..00ea2bb --- /dev/null +++ b/.github/linters/zizmor.yaml @@ -0,0 +1,5 @@ +rules: + unpinned-uses: + config: + policies: + "*": ref-pin diff --git a/.github/workflows/add-labels-standardized.yaml b/.github/workflows/add-labels-standardized.yaml index c7f1c7a..e36297f 100644 --- a/.github/workflows/add-labels-standardized.yaml +++ b/.github/workflows/add-labels-standardized.yaml @@ -6,21 +6,22 @@ on: - opened - reopened -permissions: - issues: write +permissions: {} jobs: add-issue-labels: + permissions: + issues: write secrets: ORG_MEMBERSHIP_TOKEN: ${{ secrets.ORG_MEMBERSHIP_TOKEN }} SENZING_MEMBERS: ${{ secrets.SENZING_MEMBERS }} - uses: senzing-factory/build-resources/.github/workflows/add-labels-to-issue.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/add-labels-to-issue.yaml@v3 slack-notification: needs: [add-issue-labels] if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.add-issue-labels.outputs.job-status) }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.add-issue-labels.outputs.job-status }} diff --git a/.github/workflows/add-to-project-g2-python-dependabot.yaml b/.github/workflows/add-to-project-g2-python-dependabot.yaml index 28b1df1..fa4de4c 100644 --- a/.github/workflows/add-to-project-g2-python-dependabot.yaml +++ b/.github/workflows/add-to-project-g2-python-dependabot.yaml @@ -4,14 +4,15 @@ on: pull_request: branches: [main] -permissions: - repository-projects: write +permissions: {} jobs: add-to-project-dependabot: + permissions: + repository-projects: write secrets: SENZING_GITHUB_PROJECT_RW_TOKEN: ${{ secrets.SENZING_GITHUB_PROJECT_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/add-to-project-dependabot.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/add-to-project-dependabot.yaml@v3 with: project: ${{ vars.SENZING_PROJECT_G2_PYTHON }} @@ -20,6 +21,6 @@ jobs: if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.add-to-project-dependabot.outputs.job-status) }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.add-to-project-dependabot.outputs.job-status }} diff --git a/.github/workflows/add-to-project-g2-python.yaml b/.github/workflows/add-to-project-g2-python.yaml index d44967a..52381d9 100644 --- a/.github/workflows/add-to-project-g2-python.yaml +++ b/.github/workflows/add-to-project-g2-python.yaml @@ -6,16 +6,16 @@ on: - opened - reopened -permissions: - repository-projects: write +permissions: {} jobs: add-to-project: + permissions: + repository-projects: write secrets: SENZING_GITHUB_PROJECT_RW_TOKEN: ${{ secrets.SENZING_GITHUB_PROJECT_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/add-to-project.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/add-to-project.yaml@v3 with: - classic: false project-number: ${{ vars.SENZING_PROJECT_G2_PYTHON }} org: ${{ vars.SENZING_GITHUB_ACCOUNT_NAME }} @@ -24,6 +24,6 @@ jobs: if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.add-to-project.outputs.job-status) }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.add-to-project.outputs.job-status }} diff --git a/.github/workflows/add-to-project-garage-dependabot.yaml b/.github/workflows/add-to-project-garage-dependabot.yaml index f71293e..48f1ad8 100644 --- a/.github/workflows/add-to-project-garage-dependabot.yaml +++ b/.github/workflows/add-to-project-garage-dependabot.yaml @@ -4,14 +4,15 @@ on: pull_request: branches: [main] -permissions: - repository-projects: write +permissions: {} jobs: add-to-project-dependabot: + permissions: + repository-projects: write secrets: SENZING_GITHUB_PROJECT_RW_TOKEN: ${{ secrets.SENZING_GITHUB_PROJECT_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/add-to-project-dependabot.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/add-to-project-dependabot.yaml@v3 with: project: ${{ vars.SENZING_PROJECT_GARAGE }} @@ -20,6 +21,6 @@ jobs: if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.add-to-project-dependabot.outputs.job-status) }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.add-to-project-dependabot.outputs.job-status }} diff --git a/.github/workflows/add-to-project-garage.yaml b/.github/workflows/add-to-project-garage.yaml index a8b70f2..e2007a7 100644 --- a/.github/workflows/add-to-project-garage.yaml +++ b/.github/workflows/add-to-project-garage.yaml @@ -6,16 +6,16 @@ on: - opened - reopened -permissions: - repository-projects: write +permissions: {} jobs: add-to-project: + permissions: + repository-projects: write secrets: SENZING_GITHUB_PROJECT_RW_TOKEN: ${{ secrets.SENZING_GITHUB_PROJECT_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/add-to-project.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/add-to-project.yaml@v3 with: - classic: false project-number: ${{ vars.SENZING_PROJECT_GARAGE }} org: ${{ vars.SENZING_GITHUB_ACCOUNT_NAME }} @@ -24,6 +24,6 @@ jobs: if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.add-to-project.outputs.job-status) }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.add-to-project.outputs.job-status }} diff --git a/.github/workflows/bandit.yaml b/.github/workflows/bandit.yaml index d7c2511..bb8e5de 100644 --- a/.github/workflows/bandit.yaml +++ b/.github/workflows/bandit.yaml @@ -6,12 +6,13 @@ on: pull_request: branches: [main] -permissions: - contents: read - pull-requests: write +permissions: {} jobs: bandit: + permissions: + contents: read + pull-requests: write runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/bearer.yaml b/.github/workflows/bearer.yaml index 94d2329..4963166 100644 --- a/.github/workflows/bearer.yaml +++ b/.github/workflows/bearer.yaml @@ -6,11 +6,12 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: rule_check: + permissions: + contents: read runs-on: ubuntu-latest steps: diff --git a/.github/workflows/black.yaml b/.github/workflows/black.yaml index 5ab01a2..9f570c0 100644 --- a/.github/workflows/black.yaml +++ b/.github/workflows/black.yaml @@ -6,12 +6,13 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: black: name: black Python ${{ matrix.python-version }} + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/check-development-dependencies.yaml b/.github/workflows/check-development-dependencies.yaml index cc3352f..a1e06f3 100644 --- a/.github/workflows/check-development-dependencies.yaml +++ b/.github/workflows/check-development-dependencies.yaml @@ -4,12 +4,13 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: check-development-dependencies: name: Check development dependencies + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/dependabot-approve-and-merge.yaml b/.github/workflows/dependabot-approve-and-merge.yaml index 326edea..ecee237 100644 --- a/.github/workflows/dependabot-approve-and-merge.yaml +++ b/.github/workflows/dependabot-approve-and-merge.yaml @@ -4,12 +4,13 @@ on: pull_request: branches: [main] -permissions: - contents: write - pull-requests: write +permissions: {} jobs: dependabot-approve-and-merge: + permissions: + contents: write + pull-requests: write secrets: SENZING_GITHUB_CODEOWNER_PR_RW_TOKEN: ${{ secrets.SENZING_GITHUB_CODEOWNER_PR_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/dependabot-approve-and-merge.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/dependabot-approve-and-merge.yaml@v3 diff --git a/.github/workflows/dependency-scan.yaml b/.github/workflows/dependency-scan.yaml index 7c7bff9..f37d1a7 100644 --- a/.github/workflows/dependency-scan.yaml +++ b/.github/workflows/dependency-scan.yaml @@ -4,11 +4,12 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: fpvs: + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false @@ -43,6 +44,8 @@ jobs: fpvs-scan --verbose pip-audit: + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/flake8.yaml b/.github/workflows/flake8.yaml index 9f7601f..7436c2c 100644 --- a/.github/workflows/flake8.yaml +++ b/.github/workflows/flake8.yaml @@ -6,12 +6,13 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: flake8: name: flake8 Python ${{ matrix.python-version }} + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/isort.yaml b/.github/workflows/isort.yaml index 477652a..c98f2d7 100644 --- a/.github/workflows/isort.yaml +++ b/.github/workflows/isort.yaml @@ -6,11 +6,12 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: isort: + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/lint-workflows.yaml b/.github/workflows/lint-workflows.yaml index e19c3f8..aa62139 100644 --- a/.github/workflows/lint-workflows.yaml +++ b/.github/workflows/lint-workflows.yaml @@ -6,12 +6,13 @@ on: pull_request: branches: [main] -permissions: - contents: read - packages: read - pull-requests: read - statuses: write +permissions: {} jobs: lint-workflows: - uses: senzing-factory/build-resources/.github/workflows/lint-workflows.yaml@v2 + permissions: + contents: read + packages: read + pull-requests: read + statuses: write + uses: senzing-factory/build-resources/.github/workflows/lint-workflows.yaml@v3 diff --git a/.github/workflows/move-pr-to-done-g2-python-dependabot.yaml b/.github/workflows/move-pr-to-done-g2-python-dependabot.yaml index 2634c5e..be72a01 100644 --- a/.github/workflows/move-pr-to-done-g2-python-dependabot.yaml +++ b/.github/workflows/move-pr-to-done-g2-python-dependabot.yaml @@ -5,13 +5,14 @@ on: branches: [main] types: [closed] -permissions: - repository-projects: write +permissions: {} jobs: move-pr-to-done-dependabot: + permissions: + repository-projects: write secrets: SENZING_GITHUB_PROJECT_RW_TOKEN: ${{ secrets.SENZING_GITHUB_PROJECT_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/move-pr-to-done-dependabot.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/move-pr-to-done-dependabot.yaml@v3 with: project: ${{ vars.SENZING_PROJECT_G2_PYTHON }} diff --git a/.github/workflows/move-pr-to-done-garage-dependabot.yaml b/.github/workflows/move-pr-to-done-garage-dependabot.yaml index c5e0e87..8094115 100644 --- a/.github/workflows/move-pr-to-done-garage-dependabot.yaml +++ b/.github/workflows/move-pr-to-done-garage-dependabot.yaml @@ -5,13 +5,14 @@ on: branches: [main] types: [closed] -permissions: - repository-projects: write +permissions: {} jobs: move-pr-to-done-dependabot: + permissions: + repository-projects: write secrets: SENZING_GITHUB_PROJECT_RW_TOKEN: ${{ secrets.SENZING_GITHUB_PROJECT_RW_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/move-pr-to-done-dependabot.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/move-pr-to-done-dependabot.yaml@v3 with: project: ${{ vars.SENZING_PROJECT_GARAGE }} diff --git a/.github/workflows/mypy.yaml b/.github/workflows/mypy.yaml index fe83554..acf0c4f 100644 --- a/.github/workflows/mypy.yaml +++ b/.github/workflows/mypy.yaml @@ -6,12 +6,13 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: mypy: name: mypy Python ${{ matrix.python-version }} + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/pylint.yaml b/.github/workflows/pylint.yaml index 24e1adf..f8ab2b1 100644 --- a/.github/workflows/pylint.yaml +++ b/.github/workflows/pylint.yaml @@ -6,11 +6,12 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: pylint: + permissions: + contents: read runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/pytest-darwin.yaml b/.github/workflows/pytest-darwin.yaml index a167751..9cfcd4d 100644 --- a/.github/workflows/pytest-darwin.yaml +++ b/.github/workflows/pytest-darwin.yaml @@ -11,14 +11,15 @@ env: PYTHONPATH: ${{ github.workspace }}/src SENZING_TOOLS_DATABASE_URL: sqlite3://na:na@nowhere/tmp/sqlite/G2C.db -permissions: - contents: read +permissions: {} jobs: pytest-darwin: name: "pytest with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Python ${{ matrix.python-version }}" outputs: status: ${{ job.status }} + permissions: + contents: read runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -100,13 +101,13 @@ jobs: permissions: pull-requests: write contents: write - uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v3 slack-notification: needs: [pytest-darwin] if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.pytest-darwin.outputs.status ) && github.event_name == 'schedule' }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.pytest-darwin.outputs.status }} diff --git a/.github/workflows/pytest-linux.yaml b/.github/workflows/pytest-linux.yaml index 6a12de2..8584803 100644 --- a/.github/workflows/pytest-linux.yaml +++ b/.github/workflows/pytest-linux.yaml @@ -11,14 +11,15 @@ env: PYTHONPATH: ${{ github.workspace }}/src SENZING_TOOLS_DATABASE_URL: sqlite3://na:na@nowhere/tmp/sqlite/G2C.db -permissions: - contents: read +permissions: {} jobs: pytest-linux: name: "pytest with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Python ${{ matrix.python-version }}" outputs: status: ${{ job.status }} + permissions: + contents: read runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -99,13 +100,13 @@ jobs: permissions: pull-requests: write contents: write - uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v3 slack-notification: needs: [pytest-linux] if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.pytest-linux.outputs.status ) && (github.ref_name == github.event.repository.default_branch || github.event_name == 'schedule') }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.pytest-linux.outputs.status }} diff --git a/.github/workflows/pytest-windows.yaml b/.github/workflows/pytest-windows.yaml index 464cf4b..778e67b 100644 --- a/.github/workflows/pytest-windows.yaml +++ b/.github/workflows/pytest-windows.yaml @@ -11,14 +11,15 @@ env: PYTHONPATH: ${{ github.workspace }}/src SENZING_TOOLS_DATABASE_URL: 'sqlite3://na:na@nowhere/C:\Temp\sqlite\G2C.db' -permissions: - contents: read +permissions: {} jobs: pytest-windows: name: "pytest with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Python ${{ matrix.python-version }}" outputs: status: ${{ job.status }} + permissions: + contents: read runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -95,13 +96,13 @@ jobs: permissions: pull-requests: write contents: write - uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v3 slack-notification: needs: [pytest-windows] if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.pytest-windows.outputs.status ) && github.event_name == 'schedule' }} secrets: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v2 + uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v3 with: job-status: ${{ needs.pytest-windows.outputs.status }} diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index b351a53..58b859a 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -4,11 +4,12 @@ on: pull_request: branches: [main] -permissions: - contents: read +permissions: {} jobs: spellcheck: + permissions: + contents: read runs-on: ubuntu-latest steps: