A collection of GitHub Actions workflows for running linters and tests on Java, Go, and Python projects.
Runs popular Java linters on Maven and Gradle projects:
- Checkstyle: Code style checker
- SpotBugs: Static analysis for bug detection
- PMD: Source code analyzer
Runs Java tests using Maven or Gradle:
- Executes test suites
- Generates test summary reports
- Supports both Maven and Gradle projects
Runs comprehensive Go linters:
- golangci-lint: Meta-linter running multiple linters
- go vet: Official Go static analysis tool
- go fmt: Code formatting checker
- staticcheck: Advanced static analysis
Runs Go tests with detailed reporting:
- Executes tests with race detection
- Generates coverage reports
- Runs benchmarks
- Supports Go modules
Runs comprehensive Python linters:
- flake8: Style guide enforcement and error detection
- pylint: Static code analysis
- black: Code formatting checker
- mypy: Static type checking
Runs Python tests with pytest:
- Executes test suites with verbose output
- Generates coverage reports
- Supports requirements.txt, setup.py, and pyproject.toml
- Installs dev/test dependencies automatically
All workflows follow the same interface pattern:
target_repository(required): Repository to run against (format:owner/repo)resumeUrl(required): Webhook URL to receive results
Uses GitHub App authentication with the following secrets:
APP_ID: GitHub App IDAPP_PRIVATE_KEY: GitHub App private key
Results are:
- Collected in a
report.txtfile - Uploaded as a workflow artifact
- Sent to the webhook URL as JSON:
{"summary": "report content"}
Trigger workflows manually via workflow_dispatch, providing:
- The target repository to analyze
- The webhook URL to receive results
Example:
target_repository: "my-org/my-repo"
resumeUrl: "https://example.org/webhook"All workflows implement least-privilege permissions:
- Workflow level:
permissions: {} - Tool jobs:
contents: read - Webhook jobs:
permissions: {}