{"id":13400471,"url":"https://github.com/dolthub/dolt","last_synced_at":"2026-03-12T00:12:52.706Z","repository":{"id":37034338,"uuid":"198683574","full_name":"dolthub/dolt","owner":"dolthub","description":"Dolt – Git for Data","archived":false,"fork":false,"pushed_at":"2026-01-21T02:15:34.000Z","size":176773,"stargazers_count":19599,"open_issues_count":490,"forks_count":610,"subscribers_count":118,"default_branch":"main","last_synced_at":"2026-01-21T08:39:35.917Z","etag":null,"topics":["command-line","data-version-control","data-versioning","database","database-version-control","database-versioning","decentralized-database","git","git-database","git-for-data","git-for-databases","git-sql","golang","immutable-database","mariadb","mysql","sql","version-controlled-database"],"latest_commit_sha":null,"homepage":"https://www.dolthub.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dolthub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"dolthub"}},"created_at":"2019-07-24T17:46:25.000Z","updated_at":"2026-01-21T05:39:07.000Z","dependencies_parsed_at":"2023-09-22T10:56:17.540Z","dependency_job_id":"dc4e9cc7-c2c2-4260-b512-3eeabbad5eed","html_url":"https://github.com/dolthub/dolt","commit_stats":{"total_commits":14738,"total_committers":154,"mean_commits":95.7012987012987,"dds":0.8967973944904329,"last_synced_commit":"1d51563220e2af9c8b50a8dd9a099a0c35b4c90d"},"previous_names":["liquidata-inc/dolt"],"tags_count":591,"template":false,"template_full_name":null,"purl":"pkg:github/dolthub/dolt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolthub%2Fdolt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolthub%2Fdolt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolthub%2Fdolt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolthub%2Fdolt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dolthub","download_url":"https://codeload.github.com/dolthub/dolt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolthub%2Fdolt/sbom","scorecard":{"id":113458,"data":{"date":"2025-08-11","repo":{"name":"github.com/dolthub/dolt","commit":"76142299386725b0160b25066517211e6d15bc63"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 8/9 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/bump-dependency.yaml:1","Warn: no topLevel permission defined: .github/workflows/cd-bump-homebrew.yaml:1","Warn: no topLevel permission defined: .github/workflows/cd-bump-winget.yaml:1","Warn: no topLevel permission defined: .github/workflows/cd-create-release-notes.yaml:1","Warn: no topLevel permission defined: .github/workflows/cd-push-docker-image.yaml:1","Warn: no topLevel permission defined: .github/workflows/cd-release-pgo.yaml:1","Warn: no topLevel permission defined: .github/workflows/cd-release.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-bats-macos.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-bats-unix-remote.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-bats-unix.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-bats-windows.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-benchmark-runner-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-binlog-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-check-correctness.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-check-repo.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-compatibility-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-data-dump-loading-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-go-race-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-go-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-lambdabats-unix.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-mysql-client-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-orm-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/ci-sql-server-integration-tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/doltgres-dependency.yml:1","Warn: no topLevel permission defined: .github/workflows/email-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/import-benchmarks-pull-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/import-perf.yaml:1","Warn: no topLevel permission defined: .github/workflows/k8s-benchmark-latency.yaml:1","Warn: no topLevel permission defined: .github/workflows/k8s-dolt-profile.yaml:1","Warn: no topLevel permission defined: .github/workflows/k8s-fuzzer.yaml:1","Warn: no topLevel permission defined: .github/workflows/k8s-sql-correctness.yaml:1","Warn: no topLevel permission defined: .github/workflows/label-customer-issues.yaml:1","Warn: no topLevel permission defined: .github/workflows/merge-perf-pr.yaml:1","Warn: no topLevel permission defined: .github/workflows/merge-perf.yaml:1","Warn: no topLevel permission defined: .github/workflows/nightly-performance-benchmarks-email-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/performance-benchmarks-email-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/performance-benchmarks-pull-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/pull-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/sql-correctness.yaml:1","Warn: no topLevel permission defined: .github/workflows/sql-regressions.yaml:1","Warn: no topLevel permission defined: .github/workflows/sysbench-benchmarks-pull-report.yaml:1","Warn: no topLevel permission defined: .github/workflows/sysbench-perf.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.58.3 not signed: https://api.github.com/repos/dolthub/dolt/releases/239499730","Warn: release artifact v1.58.2 not signed: https://api.github.com/repos/dolthub/dolt/releases/238116398","Warn: release artifact v1.58.1 not signed: https://api.github.com/repos/dolthub/dolt/releases/238108811","Warn: release artifact v1.58.0 not signed: https://api.github.com/repos/dolthub/dolt/releases/237820640","Warn: release artifact v1.57.6 not signed: https://api.github.com/repos/dolthub/dolt/releases/237493175","Warn: release artifact v1.58.3 does not have provenance: https://api.github.com/repos/dolthub/dolt/releases/239499730","Warn: release artifact v1.58.2 does not have provenance: https://api.github.com/repos/dolthub/dolt/releases/238116398","Warn: release artifact v1.58.1 does not have provenance: https://api.github.com/repos/dolthub/dolt/releases/238108811","Warn: release artifact v1.58.0 does not have provenance: https://api.github.com/repos/dolthub/dolt/releases/237820640","Warn: release artifact v1.57.6 does not have provenance: https://api.github.com/repos/dolthub/dolt/releases/237493175"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/cd-push-docker-image.yaml:31"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: invalid parameter name: .github/workflows/bump-dependency.yaml:126","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bump-dependency.yaml:157: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/bump-dependency.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bump-dependency.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/bump-dependency.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bump-dependency.yaml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/bump-dependency.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bump-dependency.yaml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/bump-dependency.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/bump-dependency.yaml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/bump-dependency.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-bump-homebrew.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-bump-homebrew.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-bump-homebrew.yaml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-bump-homebrew.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd-create-release-notes.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-create-release-notes.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd-create-release-notes.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-create-release-notes.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-push-docker-image.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-push-docker-image.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:202: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:213: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:155: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:165: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:179: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release-pgo.yaml:191: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release-pgo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cd-release.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cd-release.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/cd-release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-bats-macos.yaml:126: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-macos.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix-remote.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix-remote.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix-remote.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix-remote.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-bats-unix.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix.yaml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-unix.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-unix.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:108: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:110: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:160: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:162: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-bats-windows.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-bats-windows.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-benchmark-runner-tests.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-benchmark-runner-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-binlog-tests.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-binlog-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-binlog-tests.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-binlog-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-binlog-tests.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-binlog-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-binlog-tests.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-binlog-tests.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-check-correctness.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-correctness.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-check-repo.yaml:147: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-check-repo.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-compatibility-tests.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-compatibility-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-compatibility-tests.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-compatibility-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-compatibility-tests.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-compatibility-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-data-dump-loading-tests.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-data-dump-loading-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-go-race-tests.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-go-race-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-go-race-tests.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-go-race-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-go-tests.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-go-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-go-tests.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-go-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-go-tests.yaml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-go-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-go-tests.yaml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-go-tests.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-lambdabats-unix.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-lambdabats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-lambdabats-unix.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-lambdabats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-lambdabats-unix.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-lambdabats-unix.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-mysql-client-tests.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-mysql-client-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-orm-tests.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-orm-tests.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-orm-tests.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-orm-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-sql-server-integration-tests.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-sql-server-integration-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-sql-server-integration-tests.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/ci-sql-server-integration-tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/doltgres-dependency.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/doltgres-dependency.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/doltgres-dependency.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/doltgres-dependency.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/doltgres-dependency.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/doltgres-dependency.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/email-report.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/email-report.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/email-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/import-benchmarks-pull-report.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-benchmarks-pull-report.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-benchmarks-pull-report.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-benchmarks-pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/import-benchmarks-pull-report.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-benchmarks-pull-report.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-benchmarks-pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:156: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:162: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/import-perf.yaml:167: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/import-perf.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/k8s-benchmark-latency.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-benchmark-latency.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-benchmark-latency.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-benchmark-latency.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-benchmark-latency.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-benchmark-latency.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/k8s-dolt-profile.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-dolt-profile.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-dolt-profile.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-dolt-profile.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-dolt-profile.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-dolt-profile.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/k8s-fuzzer.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-fuzzer.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-fuzzer.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-fuzzer.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-fuzzer.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-fuzzer.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/k8s-sql-correctness.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-sql-correctness.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-sql-correctness.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-sql-correctness.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/k8s-sql-correctness.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/k8s-sql-correctness.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/label-customer-issues.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/label-customer-issues.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/merge-perf-pr.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf-pr.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf-pr.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf-pr.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf-pr.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf-pr.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/merge-perf-pr.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf-pr.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf-pr.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf-pr.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:167: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:186: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:192: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/merge-perf.yaml:197: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/merge-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly-performance-benchmarks-email-report.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/nightly-performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly-performance-benchmarks-email-report.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/nightly-performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly-performance-benchmarks-email-report.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/nightly-performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly-performance-benchmarks-email-report.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/nightly-performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly-performance-benchmarks-email-report.yaml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/nightly-performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/nightly-performance-benchmarks-email-report.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/nightly-performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-email-report.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-email-report.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-email-report.yaml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-email-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-email-report.yaml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-email-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-pull-report.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-pull-report.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-pull-report.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-pull-report.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/performance-benchmarks-pull-report.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/performance-benchmarks-pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:171: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-report.yaml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sql-correctness.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sql-correctness.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sql-regressions.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sql-regressions.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sql-regressions.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sql-regressions.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sql-regressions.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sql-regressions.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sql-regressions.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sql-regressions.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sysbench-benchmarks-pull-report.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-benchmarks-pull-report.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-benchmarks-pull-report.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-benchmarks-pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sysbench-benchmarks-pull-report.yaml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-benchmarks-pull-report.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-benchmarks-pull-report.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-benchmarks-pull-report.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sysbench-perf.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-perf.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sysbench-perf.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-perf.yaml:138: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-perf.yaml:157: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-perf.yaml:163: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-perf.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sysbench-perf.yaml:168: update your workflow using https://app.stepsecurity.io/secureworkflow/dolthub/dolt/sysbench-perf.yaml/main?enable=pin","Warn: containerImage not pinned by hash: docker/Dockerfile:2: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1aa979d85661c488ce030ac292876cf6ed04535d3a237e49f61542d8e5de5ae0","Warn: containerImage not pinned by hash: docker/serverDockerfile:2: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1aa979d85661c488ce030ac292876cf6ed04535d3a237e49f61542d8e5de5ae0","Warn: containerImage not pinned by hash: go/performance/continuous_integration/SysbenchDockerfile:2","Warn: containerImage not pinned by hash: go/performance/continuous_integration/SysbenchDockerfile:3: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1aa979d85661c488ce030ac292876cf6ed04535d3a237e49f61542d8e5de5ae0","Warn: containerImage not pinned by hash: integration-tests/DataDumpLoadDockerfile:1: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1aa979d85661c488ce030ac292876cf6ed04535d3a237e49f61542d8e5de5ae0","Warn: containerImage not pinned by hash: integration-tests/MySQLDockerfile:1: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: containerImage not pinned by hash: integration-tests/ORMDockerfile:1: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: downloadThenRun not pinned by hash: docker/Dockerfile:17","Warn: downloadThenRun not pinned by hash: docker/serverDockerfile:17","Warn: downloadThenRun not pinned by hash: go/performance/continuous_integration/SysbenchDockerfile:63","Warn: downloadThenRun not pinned by hash: integration-tests/DataDumpLoadDockerfile:5-19","Warn: downloadThenRun not pinned by hash: integration-tests/MySQLDockerfile:5-19","Warn: downloadThenRun not pinned by hash: integration-tests/MySQLDockerfile:81-82","Warn: pipCommand not pinned by hash: integration-tests/MySQLDockerfile:90","Warn: pipCommand not pinned by hash: integration-tests/MySQLDockerfile:91","Warn: pipCommand not pinned by hash: integration-tests/MySQLDockerfile:92","Warn: npmCommand not pinned by hash: integration-tests/MySQLDockerfile:106","Warn: downloadThenRun not pinned by hash: integration-tests/MySQLDockerfile:122","Warn: downloadThenRun not pinned by hash: integration-tests/ORMDockerfile:5-10","Warn: pipCommand not pinned by hash: integration-tests/ORMDockerfile:40","Warn: goCommand not pinned by hash: go/utils/repofmt/check_fmt.sh:8","Warn: npmCommand not pinned by hash: .github/workflows/ci-bats-macos.yaml:61","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-macos.yaml:66","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-macos.yaml:67","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-macos.yaml:68","Warn: npmCommand not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:52","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:58","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:59","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-unix-remote.yaml:60","Warn: npmCommand not pinned by hash: .github/workflows/ci-bats-unix.yaml:69","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-unix.yaml:74","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-unix.yaml:75","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-unix.yaml:76","Warn: chocoCommand not pinned by hash: .github/workflows/ci-bats-windows.yaml:125","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-windows.yaml:132","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-windows.yaml:133","Warn: pipCommand not pinned by hash: .github/workflows/ci-bats-windows.yaml:134","Warn: goCommand not pinned by hash: .github/workflows/ci-check-repo.yaml:113","Warn: npmCommand not pinned by hash: .github/workflows/ci-compatibility-tests.yaml:38","Warn: goCommand not pinned by hash: .github/workflows/ci-lambdabats-unix.yaml:54","Warn: goCommand not pinned by hash: .github/workflows/doltgres-dependency.yml:75","Warn: downloadThenRun not pinned by hash: .github/workflows/sysbench-perf.yaml:36","Info:   0 out of  93 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  84 third-party GitHubAction dependencies pinned","Info:   0 out of  16 pipCommand dependencies pinned","Info:   0 out of   5 npmCommand dependencies pinned","Info:   0 out of   1 chocoCommand dependencies pinned","Info:   0 out of   7 containerImage dependencies pinned","Info:   0 out of   9 downloadThenRun dependencies pinned","Info:   5 out of   9 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-2631 / GHSA-c5q2-7r4c-mv6g","Warn: Project is vulnerable to: GHSA-735f-pc8j-v9w8"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T18:37:27.373Z","repository_id":37034338,"created_at":"2025-08-15T18:37:27.374Z","updated_at":"2025-08-15T18:37:27.374Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28651817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","data-version-control","data-versioning","database","database-version-control","database-versioning","decentralized-database","git","git-database","git-for-data","git-for-databases","git-sql","golang","immutable-database","mariadb","mysql","sql","version-controlled-database"],"created_at":"2024-07-30T19:00:52.401Z","updated_at":"2026-01-22T03:02:24.839Z","avatar_url":"https://github.com/dolthub.png","language":"Go","readme":"\u003cimg height=\"100\" src=\"./images/Dolt-Logo@3x.svg\"/\u003e\n\n# Dolt is Git for Data!\n\nDolt is a SQL database that you can fork, clone, branch, merge, push\nand pull just like a Git repository. \n\nConnect to Dolt just like any MySQL database to read or modify schema \nand data. Version control functionality is exposed in SQL via system \ntables, functions, and procedures. \n\nOr, use the Git-like command line interface to import CSV files, commit \nyour changes, push them to a remote, or merge your teammate's changes.\nAll the commands you know for Git work exactly the same for Dolt. \n\nGit versions files. Dolt versions tables. It's like Git and MySQL had a\nbaby.\n\nWe also built [DoltHub](https://www.dolthub.com), a place to share\nDolt databases. We host public data for free. If you want to host\nyour own version of DoltHub, we have [DoltLab](https://www.doltlab.com). \nIf you want us to run a Dolt server for you, we have [Hosted Dolt](https://hosted.doltdb.com). \n\nPrefer Postgres instead of MySQL? Try [Doltgres](https://github.com/dolthub/doltgresql), now\nin its Beta release.\n\n[Join us on Discord](https://discord.com/invite/RFwfYpu) to say hi and\nask questions, or [check out our roadmap](https://docs.dolthub.com/other/roadmap) \nto see what we're building next.\n\n# Video Introduction\n\n[![Dolt Explainer Video](https://img.youtube.com/vi/H2iZy0Cme10/maxresdefault.jpg)](https://www.youtube.com/watch?v=H2iZy0Cme10)\n\n# What's it for?\n\nLots of things! Dolt is a generally useful tool with countless\napplications. But if you want some ideas, [here's how people are using\nit so far](https://dolthub.com/blog/2024-10-15-dolt-use-cases/).\n\nDolt can be [set up as a replica of your existing MySQL](https://www.dolthub.com/blog/2023-02-17-binlog-replication-preview/)\ndatabase using standard MySQL binlog replication. Every write becomes\na Dolt commit. This is a great way to get the version control benefits \nof Dolt and keep an existing MySQL database. \n\n# Dolt CLI\n\nThe `dolt` CLI has the same commands as `git`, with some extras.\n\n```\n$ dolt\nValid commands for dolt are\n                init - Create an empty Dolt data repository.\n              status - Show the working tree status.\n                 add - Add table changes to the list of staged table changes.\n                diff - Diff a table.\n               reset - Remove table changes from the list of staged table changes.\n               clean - Remove untracked tables from working set.\n              commit - Record changes to the repository.\n                 sql - Run a SQL query against tables in repository.\n          sql-server - Start a MySQL-compatible server.\n                 log - Show commit logs.\n              branch - Create, list, edit, delete branches.\n            checkout - Checkout a branch or overwrite a table from HEAD.\n               merge - Merge a branch.\n           conflicts - Commands for viewing and resolving merge conflicts.\n         cherry-pick - Apply the changes introduced by an existing commit.\n              revert - Undo the changes introduced in a commit.\n               clone - Clone from a remote data repository.\n               fetch - Update the database from a remote data repository.\n                pull - Fetch from a dolt remote data repository and merge.\n                push - Push to a dolt remote.\n              config - Dolt configuration.\n              remote - Manage set of tracked repositories.\n              backup - Manage a set of server backups.\n               login - Login to a dolt remote host.\n               creds - Commands for managing credentials.\n                  ls - List tables in the working set.\n              schema - Commands for showing and importing table schemas.\n               table - Commands for copying, renaming, deleting, and exporting tables.\n                 tag - Create, list, delete tags.\n               blame - Show what revision and author last modified each row of a table.\n         constraints - Commands for handling constraints.\n             migrate - Executes a database migration to use the latest Dolt data format.\n         read-tables - Fetch table(s) at a specific commit into a new dolt repo\n                  gc - Cleans up unreferenced data from the repository.\n       filter-branch - Edits the commit history using the provided query.\n          merge-base - Find the common ancestor of two commits.\n             version - Displays the current Dolt cli version.\n                dump - Export all tables in the working set into a file.\n```\n\n# Installation\n\nDolt is a single ~103 megabyte program. \n\n```bash\ndolt $ du -h /Users/timsehn/go/bin/dolt\n103M\t/Users/timsehn/go/bin/dolt\n```\n\nIt's really easy to install. Download it and put it on your `PATH`. \nWe have a bunch of ways to make this even easier for most platforms.\n\n## From Latest Release\n\nTo install on Linux or Mac based systems run this command in your\nterminal:\n\n```\nsudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash'\n```\n\nThis will download the latest `dolt` release and put it in\n`/usr/local/bin/`, which is probably on your `$PATH`.\n\nThe install script needs sudo in order to put `dolt` in `/usr/local/bin`. If you don't have root\nprivileges or aren't comfortable running a script with them, you can download the dolt binary\nfor your platform from [the latest release](https://github.com/dolthub/dolt/releases), unzip it,\nand put the binary somewhere on your `$PATH`.\n\n### Linux\n\n#### Arch Linux\n\nDolt is packaged in the official repositories for Arch Linux.\n\n```\npacman -S dolt\n```\n\n### Mac\n\n#### Homebrew\n\nDolt is on Homebrew, updated every release.\n\n```\nbrew install dolt\n```\n#### MacPorts\n\nOn macOS, Dolt can also be installed via a [community-managed port](https://ports.macports.org/port/dolt/) via [MacPorts](https://www.macports.org):\n\n```sh\nsudo port install dolt\n```\n\n### Windows\n\nDownload the latest Microsoft Installer (`.msi` file) in\n[releases](https://github.com/dolthub/dolt/releases) and run\nit.\n\nFor information on running on Windows, see [here](https://docs.dolthub.com/introduction/installation/windows).\n\n#### Chocolatey\n\nYou can install `dolt` using [Chocolatey](https://chocolatey.org/):\n\n```sh\nchoco install dolt\n```\n\n#### Docker\n\nThere are following official Docker images for Dolt:\n\n* [`dolthub/dolt`](https://hub.docker.com/r/dolthub/dolt) for running Dolt\nas CLI tool.\n* [`dolthub/dolt-sql-server`](https://hub.docker.com/r/dolthub/dolt-sql-server) for running Dolt in server mode.\n\n## From Source\n\nMake sure you have Go installed, and that `go` is in your path. Dolt has a dependency on [cgo](https://pkg.go.dev/cmd/cgo), so you will need a working C compiler and toolchain as well.\n\nClone this repository and cd into the `go` directory. Then run:\n\n```\ngo install ./cmd/dolt\n```\n\nThe output will be in `$GOPATH/bin`, which defaults to `~/go/bin`. To test your build, try:\n\n```\n~/go/bin/dolt version\n```\n\n# Configuration\n\nVerify that your installation has succeeded by running `dolt` in your\nterminal.\n\n```\n$ dolt\nValid commands for dolt are\n[...]\n```\n\nConfigure `dolt` with your user name and email, which you'll need to\ncreate commits. The commands work exactly the same as git.\n\n```\n$ dolt config --global --add user.email YOU@DOMAIN.COM\n$ dolt config --global --add user.name \"YOUR NAME\"\n```\n\n# Getting started\n\n## Navigate to the directory where you would like your data stored\n\nDolt needs a place to store your databases. I'm going to put my databases in `~/dolt`. \n\n```bash\n% cd ~\n% mkdir dolt\n% cd dolt\n```\n\nAny databases you create will be stored in this directory. So, for this example, a directory named `getting_started` will be created here once you run `create database getting_started`. Navigating to `~/dolt/getting_started` will allow you to access this database using the Dolt command line.\n\nNOTE: For this example, the `getting_started` directory will be created after you run `create database getting_started;` in a SQL shell in the [Create a schema section](#create-a-schema). Don't do anything except make the directory and navigate to it just yet.\n\n## Start a MySQL-compatible database server\n\nDolt ships with a MySQL compatible database server built in. To start it you use the command `dolt sql-server`. Running this command starts the server on port 3306. \n\n```bash\ndolt sql-server\nStarting server with Config HP=\"localhost:3306\"|T=\"28800000\"|R=\"false\"|L=\"info\"\n```\n\nYour terminal will just hang there. This means the server is running. Any errors will be printed in this terminal. Just leave it there and open a new terminal.\n\n## Connect with a MySQL client (up to version 8.4)\n\nIn the new terminal, we will now connect to the running database server using a client. Dolt also ships with a MySQL compatible client. \n\n```bash\n% dolt -u root -p \"\" sql\n# Welcome to the Dolt MySQL client.\n# Statements must be terminated with ';'.\n# \"exit\" or \"quit\" (or Ctrl-D) to exit.\nmysql\u003e\n```\n\nIn the other terminal where you ran `dolt sql-server`, you'll see the following log line.\n\n```\n2022-06-06T13:14:32-07:00 INFO [conn 1] NewConnection {DisableClientMultiStatements=false}\n```\n\nYou are connected!\n\nWhile we're here let's grab a copy of MySQL so we can connect with that client. Head over to the [MySQL Getting Started](https://dev.mysql.com/doc/mysql-getting-started/en/) documentation and install MySQL on your machine. I used [Homebrew](https://brew.sh/) to install MySQL on my Mac: `brew install mysql@8.4`. Alternatively, you can install only the client component by running `brew install mysql-client@8.4`.\n\nNOTE: Make sure you install a MySQL 8.4 release. MySQL 8.4 is the current Long Term Support (LTS) release, meaning this is the stable and supported version of MySQL. MySQL 9.0 is also available, but is an \"innovation\" release, meaning it has more recent changes and features, but may not be as stable as the LTS release. The 9.0 release changes authentication support and isn't able to connect to a Dolt SQL server by default. You can install MySQL 8.4 with Homebrew by running `brew install mysql@8.4`. If you do want to use MySQL-9.0, read [our post on how to configure Dolt for `caching_sha2_password` authentication](https://www.dolthub.com/blog/2024-12-11-mysql9-and-caching-sha2-auth-support/). \n\nMySQL comes with a MySQL server called `mysqld` and a MySQL client called `mysql`. You're only interested in the client. After following the instructions from MySQL's documentation, make sure you have a copy of the `mysql` client on your path:\n\n```bash\n% mysql --version\nmysql  Ver 8.0.29 for macos12.2 on x86_64 (Homebrew)\n```\n\nNow, to connect the `mysql` client to Dolt, you are going to force the MySQL client through the TCP interface by passing in a host and port. The default is the socket interface which Dolt supports, but is only available on `localhost`. So, it's better to show off the TCP interface. The MySQL client also requires you specify a user, in this case `root`.\n\n```bash\n% mysql --host 127.0.0.1 --port 3306 -uroot\nWelcome to the MySQL monitor.  Commands end with ; or \\g.\nYour MySQL connection id is 2\nServer version: 5.7.9-Vitess \n\nCopyright (c) 2000, 2022, Oracle and/or its affiliates.\n\nOracle is a registered trademark of Oracle Corporation and/or its\naffiliates. Other names may be trademarks of their respective\nowners.\n\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\n\nmysql\u003e\n```\n\nAgain, to ensure the client actually connected, you should see the following in the `dolt sql-server` terminal \n\n```\n2022-06-06T13:26:55-07:00 INFO [conn 2] NewConnection {DisableClientMultiStatements=false}\n```\n\nAs you can see, Dolt supports any MySQL-compatible client. Dolt ships with a client but you can use any MySQL client, like the one that comes with MySQL.\n\n## Create a schema\n\nNow we're actually ready to do something interesting. I'll stay in the `mysql` client and execute the following SQL statements to create a database called `getting_started`. The `getting_started` database will have three tables: `employees`, `teams`, and `employees_teams`.\n\n```\nmysql\u003e create database getting_started;\nQuery OK, 1 row affected (0.04 sec)\n\nmysql\u003e use getting_started;\nDatabase changed\nmysql\u003e create table employees (\n    id int, \n    last_name varchar(255), \n    first_name varchar(255), \n    primary key(id));\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql\u003e create table teams (\n    id int, \n    team_name varchar(255), \n    primary key(id)); \nQuery OK, 0 rows affected (0.00 sec)\n\nmysql\u003e create table employees_teams(\n    team_id int, \n    employee_id int, \n    primary key(team_id, employee_id), \n    foreign key (team_id) references teams(id), \n    foreign key (employee_id) references employees(id));\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql\u003e show tables;\n+---------------------------+\n| Tables_in_getting_started |\n+---------------------------+\n| employees                 |\n| employees_teams           |\n| teams                     |\n+---------------------------+\n3 rows in set (0.00 sec)\n```\n\nDolt supports foreign keys, secondary indexes, triggers, check constraints, and stored procedures. It's a modern, feature-rich SQL database.\n\n## Make a Dolt commit\n\nIt's time to use your first Dolt feature. We're going to make a Dolt [commit](https://docs.dolthub.com/concepts/dolt/commits). A Dolt commit allows you to time travel and see lineage. Make a Dolt commit whenever you want to restore or compare to this point in time.\n\nDolt exposes version control functionality through a Git-style interface. On the command line, Dolt commands map exactly to their Git equivalent with the targets being tables instead of files. In SQL, Dolt exposes version control read operations as [system tables](https://docs.dolthub.com/sql-reference/version-control/dolt-system-tables) and version control write operations as [stored procedures](https://docs.dolthub.com/sql-reference/version-control/dolt-sql-procedures). \n\nThe naming of the system tables and stored procedures follows the `dolt_\u003ccommand\u003e` pattern. So `dolt add` on the CLI becomes `dolt_add` as a stored procedure. Passing options also follows the command line model. For instance, to specify tables to add, send the table names in as options to the `dolt_add` procedure. For named arguments like sending a message into the `dolt_commit` command use two arguments in sequence like `('-m', 'This is a message')`. If you know Git, the version control procedures and system tables should feel familiar.\n\nSo, we add and commit our new schema like so.\n\n```\nmysql\u003e call dolt_add('teams', 'employees', 'employees_teams');\n+--------+\n| status |\n+--------+\n|      0 |\n+--------+\n1 row in set (0.03 sec)\n\nmysql\u003e call dolt_commit('-m', 'Created initial schema');\n+----------------------------------+\n| hash                             |\n+----------------------------------+\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 |\n+----------------------------------+\n1 row in set (0.02 sec)\n\nmysql\u003e select * from dolt_log;\n+----------------------------------+-----------+-----------------+-------------------------+----------------------------+\n| commit_hash                      | committer | email           | date                    | message                    |\n+----------------------------------+-----------+-----------------+-------------------------+----------------------------+\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:35:49.277 | Created initial schema     |\n| vluuhvd0bn59598utedt77ed9q5okbcb | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:33:59.531 | Initialize data repository |\n+----------------------------------+-----------+-----------------+-------------------------+----------------------------+\n2 rows in set (0.01 sec)\n```\n\nThere you have it. Your schema is created and you have a Dolt commit tracking the creation, as seen in the `dolt_log` system table.\n\nNote, a Dolt commit is different than a standard SQL transaction `COMMIT`. In this case, I am running the database with [`AUTOCOMMIT`](https://dev.mysql.com/doc/refman/5.6/en/innodb-autocommit-commit-rollback.html) on, so each SQL statement is automatically generating a transaction `COMMIT`. If you want system to generate a Dolt commit for every transaction use the system variable, [`@@dolt_transaction_commit`](https://docs.dolthub.com/sql-reference/version-control/dolt-sysvars#dolt_transaction_commit).\n\n## Insert some data\n\nNow, I'm going to populate the database with a few employees here at DoltHub. Then, I'll assign the employees to two teams: engineering and sales. The CEO wears many hats at a start up so he'll be assigned to multiple teams.\n\n```\nmysql\u003e insert into employees values \n    (0, 'Sehn', 'Tim'), \n    (1, 'Hendriks', 'Brian'), \n    (2, 'Son','Aaron'), \n    (3, 'Fitzgerald', 'Brian');\nQuery OK, 4 rows affected (0.01 sec)\n\nmysql\u003e select * from employees where first_name='Brian';\n+------+------------+------------+\n| id   | last_name  | first_name |\n+------+------------+------------+\n|    1 | Hendriks   | Brian      |\n|    3 | Fitzgerald | Brian      |\n+------+------------+------------+\n2 rows in set (0.00 sec)\n\nmysql\u003e insert into teams values \n    (0, 'Engineering'), \n    (1, 'Sales');\nQuery OK, 2 rows affected (0.00 sec)\n\nmysql\u003e insert into employees_teams values \n    (0,0), \n    (1,0), \n    (2,0), \n    (0,1), \n    (3,1);\nERROR 1452 (HY000): cannot add or update a child row - Foreign key violation on fk: `rv9ek7ft`, table: `employees_teams`, referenced table: `teams`, key: `[2]`\n```\n\nOops, I violated a constraint. It looks like I created the table with teams before employees. You should always specify your columns when you insert, not rely on natural ordering. Serves me right! Dolt comes with the full power of a modern SQL relational database to ensure data integrity.\n\n```\nmysql\u003e insert into employees_teams(employee_id, team_id) values \n    (0,0), \n    (1,0), \n    (2,0), \n    (0,1), \n    (3,1);\nQuery OK, 5 rows affected (0.01 sec)\n\nmysql\u003e select first_name, last_name, team_name from employees \n    join employees_teams on (employees.id=employees_teams.employee_id) \n    join teams on (teams.id=employees_teams.team_id) \n    where team_name='Engineering';\n+------------+-----------+-------------+\n| first_name | last_name | team_name   |\n+------------+-----------+-------------+\n| Tim        | Sehn      | Engineering |\n| Brian      | Hendriks  | Engineering |\n| Aaron      | Son       | Engineering |\n+------------+-----------+-------------+\n3 rows in set (0.00 sec)\n```\n\nLooks like everything is inserted and correct. I was able to list the members of the engineering team using that three table `JOIN`. Dolt supports up to twelve table `JOIN`s. Again, Dolt is a modern SQL relational database paired with Git-style version control.\n\n## Examine the diff\n\nNow, what if you want to see what changed in your working set before you make a commit? You use the `dolt_status` and `dolt_diff_\u003ctablename\u003e` system tables. \n\n```\nmysql\u003e select * from dolt_status;\n+-----------------+--------+----------+\n| table_name      | staged | status   |\n+-----------------+--------+----------+\n| teams           |      0 | modified |\n| employees       |      0 | modified |\n| employees_teams |      0 | modified |\n+-----------------+--------+----------+\n3 rows in set (0.01 sec)\n\nmysql\u003e select * from dolt_diff_employees;\n+--------------+---------------+-------+-----------+----------------+----------------+-----------------+---------+----------------------------------+-------------------------+-----------+\n| to_last_name | to_first_name | to_id | to_commit | to_commit_date | from_last_name | from_first_name | from_id | from_commit                      | from_commit_date        | diff_type |\n+--------------+---------------+-------+-----------+----------------+----------------+-----------------+---------+----------------------------------+-------------------------+-----------+\n| Sehn         | Tim           |     0 | WORKING   | NULL           | NULL           | NULL            |    NULL | ne182jemgrlm8jnjmoubfqsstlfi1s98 | 2022-06-07 16:35:49.277 | added     |\n| Hendriks     | Brian         |     1 | WORKING   | NULL           | NULL           | NULL            |    NULL | ne182jemgrlm8jnjmoubfqsstlfi1s98 | 2022-06-07 16:35:49.277 | added     |\n| Son          | Aaron         |     2 | WORKING   | NULL           | NULL           | NULL            |    NULL | ne182jemgrlm8jnjmoubfqsstlfi1s98 | 2022-06-07 16:35:49.277 | added     |\n| Fitzgerald   | Brian         |     3 | WORKING   | NULL           | NULL           | NULL            |    NULL | ne182jemgrlm8jnjmoubfqsstlfi1s98 | 2022-06-07 16:35:49.277 | added     |\n+--------------+---------------+-------+-----------+----------------+----------------+-----------------+---------+----------------------------------+-------------------------+-----------+\n4 rows in set (0.00 sec)\n```\n\nAs you can see from the diff I've added the correct values to the `employees` table. The values were previously `NULL` and now they are populated.\n\nLet's finish off with another Dolt commit this time adding all effected tables using `-am`.\n\n```\nmysql\u003e call dolt_commit('-am', 'Populated tables with data');\n+----------------------------------+\n| hash                             |\n+----------------------------------+\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 |\n+----------------------------------+\n1 row in set (0.02 sec)\n```\n\nYou can inspect the log using `dolt_log` and see which tables changed in each commit using an unscoped `dolt_diff`. Unscoped `dolt_diff` tells you whether schema, data, or both changed in that particular commit for the table.\n\n```\nmysql\u003e select * from dolt_log;\n+----------------------------------+-----------+-----------------+-------------------------+----------------------------+\n| commit_hash                      | committer | email           | date                    | message                    |\n+----------------------------------+-----------+-----------------+-------------------------+----------------------------+\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:39:32.066 | Populated tables with data |\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:35:49.277 | Created initial schema     |\n| vluuhvd0bn59598utedt77ed9q5okbcb | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:33:59.531 | Initialize data repository |\n+----------------------------------+-----------+-----------------+-------------------------+----------------------------+\n3 rows in set (0.00 sec)\n\nmysql\u003e select * from dolt_diff;\n+----------------------------------+-----------------+-----------+-----------------+-------------------------+----------------------------+-------------+---------------+\n| commit_hash                      | table_name      | committer | email           | date                    | message                    | data_change | schema_change |\n+----------------------------------+-----------------+-----------+-----------------+-------------------------+----------------------------+-------------+---------------+\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 | teams           | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:39:32.066 | Populated tables with data |           1 |             0 |\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 | employees       | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:39:32.066 | Populated tables with data |           1 |             0 |\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 | employees_teams | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:39:32.066 | Populated tables with data |           1 |             0 |\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 | employees       | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:35:49.277 | Created initial schema     |           0 |             1 |\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 | employees_teams | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:35:49.277 | Created initial schema     |           0 |             1 |\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 | teams           | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:35:49.277 | Created initial schema     |           0 |             1 |\n+----------------------------------+-----------------+-----------+-----------------+-------------------------+----------------------------+-------------+---------------+\n6 rows in set (0.00 sec)\n```\n\n## Oh no! I made a mistake.\n\nDolt supports undoing changes via `call dolt_reset()`. Let's imagine I accidentally drop a table.\n\n```\nmysql\u003e drop table employees_teams;\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql\u003e show tables;\n+---------------------------+\n| Tables_in_getting_started |\n+---------------------------+\n| employees                 |\n| teams                     |\n+---------------------------+\n2 rows in set (0.00 sec)\n```\n\nIn a traditional database, this could be disastrous. In Dolt, you're one command away from getting your table back.\n\n```\nmysql\u003e call dolt_reset('--hard');\n+--------+\n| status |\n+--------+\n|      0 |\n+--------+\n1 row in set (0.01 sec)\n\nmysql\u003e show tables;\n+---------------------------+\n| Tables_in_getting_started |\n+---------------------------+\n| employees                 |\n| employees_teams           |\n| teams                     |\n+---------------------------+\n3 rows in set (0.01 sec)\n```\n\nDolt makes operating databases less error prone. You can always back out changes you have in progress or rewind to a known good state. You also have the ability to undo specific commits using [`dolt_revert()`](https://docs.dolthub.com/sql-reference/version-control/dolt-sql-procedures#dolt_revert). Even if you accidentally run `drop database` on the wrong database, Dolt lets you undo that by calling the [`dolt_undrop()` stored procedure](https://docs.dolthub.com/sql-reference/version-control/dolt-sql-procedures#dolt_undrop).\n\n\n## See the data in a SQL Workbench\n\nHate the command line? Let's use [Tableplus](https://tableplus.com/) to make some modifications. Tableplus is a free SQL Workbench. Follow the installation instructions from their website.\n\nNow, to connect you must select MySQL as the connection type. Then enter a name for your connection, `getting_started` as your database, and `root` as your user.\n\n![Tableplus Connection](./images/getting-started-tp-connect.png)\n\nClick connect and you'll be presented with a familiar database workbench GUI.\n\n![Tableplus](./images/getting-started-tp.png)\n\n## Make changes on a branch\n\nTo make changes on a branch, I use the `dolt_checkout()` stored procedure. Using the `-b` option creates a branch, just like in Git.\n\nTableplus gives me the ability to enter a multiple line SQL script on the SQL tab. I entered the following SQL to checkout a branch, update, insert, delete, and finally Dolt commit my changes.\n\n```SQL\ncall dolt_checkout('-b','modifications');\nupdate employees SET first_name='Timothy' where first_name='Tim';\ninsert INTO employees (id, first_name, last_name) values (4,'Daylon', 'Wilkins');\ninsert into employees_teams(team_id, employee_id) values (0,4);\ndelete from employees_teams where employee_id=0 and team_id=1;\ncall dolt_commit('-am', 'Modifications on a branch');\n```\n\nHere's the result in Tableplus.\n\n![New Updates](./images/getting-started-new-updates.png)\n\nBack in my terminal, I cannot see the table modifications made in Tableplus because they happened on a different branch than the one I have checked out in my session. \n\n```\nmysql\u003e select * from dolt_branches;\n+---------------+----------------------------------+------------------+------------------------+-------------------------+----------------------------+\n| name          | hash                             | latest_committer | latest_committer_email | latest_commit_date      | latest_commit_message      |\n+---------------+----------------------------------+------------------+------------------------+-------------------------+----------------------------+\n| main          | 13qfqa5rojq18j84d1n2htjkm6fletg4 | Tim Sehn         | tim@dolthub.com        | 2022-06-07 16:39:32.066 | Populated tables with data |\n| modifications | uhkv57j4bp2v16vcnmev9lshgkqq8ppb | Tim Sehn         | tim@dolthub.com        | 2022-06-07 16:41:49.847 | Modifications on a branch  |\n+---------------+----------------------------------+------------------+------------------------+-------------------------+----------------------------+\n2 rows in set (0.00 sec)\n\nmysql\u003e select active_branch();\n+-----------------+\n| active_branch() |\n+-----------------+\n| main            |\n+-----------------+\n1 row in set (0.00 sec)\n\nmysql\u003e select * from employees;\n+------+------------+------------+\n| id   | last_name  | first_name |\n+------+------------+------------+\n|    0 | Sehn       | Tim        |\n|    1 | Hendriks   | Brian      |\n|    2 | Son        | Aaron      |\n|    3 | Fitzgerald | Brian      |\n+------+------------+------------+\n4 rows in set (0.00 sec)\n```\n\nI can query the branch no matter what I have checked out using SQL `as of` syntax. \n\n```\nmysql\u003e select * from employees as of 'modifications';\n+------+------------+------------+\n| id   | last_name  | first_name |\n+------+------------+------------+\n|    0 | Sehn       | Timothy    |\n|    1 | Hendriks   | Brian      |\n|    2 | Son        | Aaron      |\n|    3 | Fitzgerald | Brian      |\n|    4 | Wilkins    | Daylon     |\n+------+------------+------------+\n5 rows in set (0.01 sec)\n```\n\nIf I'd like to see the diff between the two branches, I can use the `dolt_diff()` table function. It takes two branches and the table name as arguments.\n\n```\nmysql\u003e select * from dolt_diff('main', 'modifications', 'employees');\n+--------------+---------------+-------+---------------+-------------------------+----------------+-----------------+---------+-------------+-------------------------+-----------+\n| to_last_name | to_first_name | to_id | to_commit     | to_commit_date          | from_last_name | from_first_name | from_id | from_commit | from_commit_date        | diff_type |\n+--------------+---------------+-------+---------------+-------------------------+----------------+-----------------+---------+-------------+-------------------------+-----------+\n| Sehn         | Timothy       |     0 | modifications | 2022-06-07 16:41:49.847 | Sehn           | Tim             |       0 | main        | 2022-06-07 16:39:32.066 | modified  |\n| Wilkins      | Daylon        |     4 | modifications | 2022-06-07 16:41:49.847 | NULL           | NULL            |    NULL | main        | 2022-06-07 16:39:32.066 | added     |\n+--------------+---------------+-------+---------------+-------------------------+----------------+-----------------+---------+-------------+-------------------------+-----------+\n2 rows in set (0.00 sec)\n```\n\nAs you can see, you have the full power of Git-style branches and diffs in a SQL database with Dolt.\n\n## Make a schema change on another branch\n\nI can also make schema changes on branches for isolated testing of new schema. I'm going to add a `start_date` column on a new branch and populate it. \n\n```\nmysql\u003e call dolt_checkout('-b', 'schema_changes');\n+--------+\n| status |\n+--------+\n|      0 |\n+--------+\n1 row in set (0.01 sec)\n\nmysql\u003e alter table employees add column start_date date;\nQuery OK, 0 rows affected (0.02 sec)\n\nmysql\u003e update employees set start_date='2018-09-08';\nQuery OK, 4 rows affected (0.01 sec)\nRows matched: 4  Changed: 4  Warnings: 0\n\nmysql\u003e update employees set start_date='2021-04-19' where last_name='Fitzgerald';\nQuery OK, 1 row affected (0.01 sec)\nRows matched: 1  Changed: 1  Warnings: 0\n\nmysql\u003e select * from employees;\n+------+------------+------------+------------+\n| id   | last_name  | first_name | start_date |\n+------+------------+------------+------------+\n|    0 | Sehn       | Tim        | 2018-09-08 |\n|    1 | Hendriks   | Brian      | 2018-09-08 |\n|    2 | Son        | Aaron      | 2018-09-08 |\n|    3 | Fitzgerald | Brian      | 2021-04-19 |\n+------+------------+------------+------------+\n4 rows in set (0.00 sec)\n\nmysql\u003e call dolt_commit('-am', 'Added start_date column to employees');\n+----------------------------------+\n| hash                             |\n+----------------------------------+\n| pg3nfi0j1dpc5pf1rfgckpmlteaufdrt |\n+----------------------------------+\n1 row in set (0.01 sec)\n```\n\nChanging schema on a branch gives you a new method for doing isolated integration testing of new schema changes.\n\n## Merge it all together\n\nLet's assume all the testing of the new schema on the `schema_changes` branch and data on the `modifications` branch completed flawlessly. It's time to merge all our edits together onto `main`. This is done using the `dolt_merge` stored procedure.\n\n```\nmysql\u003e call dolt_checkout('main');\n+--------+\n| status |\n+--------+\n|      0 |\n+--------+\n1 row in set (0.01 sec)\n\nmysql\u003e select * from dolt_status;\nEmpty set (0.00 sec)\n\nmysql\u003e call dolt_merge('schema_changes');\n+--------------+\n| no_conflicts |\n+--------------+\n|            1 |\n+--------------+\n1 row in set (0.01 sec)\n\nmysql\u003e select * from employees;\n+------+------------+------------+------------+\n| id   | last_name  | first_name | start_date |\n+------+------------+------------+------------+\n|    0 | Sehn       | Tim        | 2018-09-08 |\n|    1 | Hendriks   | Brian      | 2018-09-08 |\n|    2 | Son        | Aaron      | 2018-09-08 |\n|    3 | Fitzgerald | Brian      | 2021-04-19 |\n+------+------------+------------+------------+\n4 rows in set (0.00 sec)\n```\n\nSchema change successful. We now have start dates. Data changes are next.\n\n```\nmysql\u003e call dolt_merge('modifications');\n+--------------+\n| no_conflicts |\n+--------------+\n|            1 |\n+--------------+\n1 row in set (0.02 sec)\n\nmysql\u003e select * from employees;\n+------+------------+------------+------------+\n| id   | last_name  | first_name | start_date |\n+------+------------+------------+------------+\n|    0 | Sehn       | Timothy    | 2018-09-08 |\n|    1 | Hendriks   | Brian      | 2018-09-08 |\n|    2 | Son        | Aaron      | 2018-09-08 |\n|    3 | Fitzgerald | Brian      | 2021-04-19 |\n|    4 | Wilkins    | Daylon     | NULL       |\n+------+------------+------------+------------+\n5 rows in set (0.00 sec)\n```\n\nData changes successful as well. As you can see, I am now \"Timothy\" instead of \"Tim\", Daylon is added, and we all have start dates except for Daylon who was added on a different branch.\n\n```\nmysql\u003e select first_name, last_name, team_name from employees \n    join employees_teams on (employees.id=employees_teams.employee_id) \n    join teams on (teams.id=employees_teams.team_id) \n    where team_name='Sales';\n+------------+------------+-----------+\n| first_name | last_name  | team_name |\n+------------+------------+-----------+\n| Brian      | Fitzgerald | Sales     |\n+------------+------------+-----------+\n1 row in set (0.01 sec)\n```\n\nI'm also gone from the Sales Team. Engineering is life.\n\nI have to commit all my changes because the last merge was not a fast-forward merge.\n\n```\nmysql\u003e call dolt_commit('-m', 'Merged all branches');\n+----------------------------------+\n| hash                             |\n+----------------------------------+\n| vn9b0qcematsj2f6ka0hfoflhr5s6p0b |\n+----------------------------------+\n1 row in set (0.01 sec)\n\nmysql\u003e select * from dolt_log;\n+----------------------------------+-----------+-----------------+-------------------------+--------------------------------------+\n| commit_hash                      | committer | email           | date                    | message                              |\n+----------------------------------+-----------+-----------------+-------------------------+--------------------------------------+\n| vn9b0qcematsj2f6ka0hfoflhr5s6p0b | Tim Sehn  | tim@dolthub.com | 2022-06-07 17:10:02.07  | Merged all branches                  |\n| pg3nfi0j1dpc5pf1rfgckpmlteaufdrt | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:44:37.513 | Added start_date column to employees |\n| uhkv57j4bp2v16vcnmev9lshgkqq8ppb | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:41:49.847 | Modifications on a branch            |\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:39:32.066 | Populated tables with data           |\n| ne182jemgrlm8jnjmoubfqsstlfi1s98 | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:35:49.277 | Created initial schema               |\n| vluuhvd0bn59598utedt77ed9q5okbcb | Tim Sehn  | tim@dolthub.com | 2022-06-07 16:33:59.531 | Initialize data repository           |\n+----------------------------------+-----------+-----------------+-------------------------+--------------------------------------+\n6 rows in set (0.00 sec)\n```\n\nNow, we have a database with all the schema and data changes merged and ready for use.\n\n## Audit Cell Lineage\n\nWhich commit changed my first name? With Dolt you have lineage for every cell in your database. Let's use the `dolt_history_\u003ctablename\u003e` and `dolt_diff_\u003ctablename\u003e` to explore the lineage features in Dolt.\n\n`dolt_history_\u003ctablename\u003e` shows you the state of the row at every commit.\n\n```\nmysql\u003e select * from dolt_history_employees where id=0 order by commit_date;\n+------+-----------+------------+------------+----------------------------------+-----------+-------------------------+\n| id   | last_name | first_name | start_date | commit_hash                      | committer | commit_date             |\n+------+-----------+------------+------------+----------------------------------+-----------+-------------------------+\n|    0 | Sehn      | Tim        | NULL       | 13qfqa5rojq18j84d1n2htjkm6fletg4 | Tim Sehn  | 2022-06-07 16:39:32.066 |\n|    0 | Sehn      | Timothy    | NULL       | uhkv57j4bp2v16vcnmev9lshgkqq8ppb | Tim Sehn  | 2022-06-07 16:41:49.847 |\n|    0 | Sehn      | Tim        | 2018-09-08 | pg3nfi0j1dpc5pf1rfgckpmlteaufdrt | Tim Sehn  | 2022-06-07 16:44:37.513 |\n|    0 | Sehn      | Timothy    | 2018-09-08 | vn9b0qcematsj2f6ka0hfoflhr5s6p0b | Tim Sehn  | 2022-06-07 17:10:02.07  |\n+------+-----------+------------+------------+----------------------------------+-----------+-------------------------+\n4 rows in set (0.00 sec)\n```\n\n`dolt_diff_\u003ctablename\u003e` allows you to filter the history down to only commits when the cell in question changed. In this case, I'm interested in the commits that are changing my first name. Note, there are two commits that changed my name because one is the original change and the second is the merge commit.\n\n```\nmysql\u003e select to_commit,from_first_name,to_first_name from dolt_diff_employees \n    where (from_id=0 or to_id=0) and (from_first_name \u003c\u003e to_first_name or from_first_name is NULL)\n    order by to_commit_date;\n+----------------------------------+-----------------+---------------+\n| to_commit                        | from_first_name | to_first_name |\n+----------------------------------+-----------------+---------------+\n| 13qfqa5rojq18j84d1n2htjkm6fletg4 | NULL            | Tim           |\n| uhkv57j4bp2v16vcnmev9lshgkqq8ppb | Tim             | Timothy       |\n| vn9b0qcematsj2f6ka0hfoflhr5s6p0b | Tim             | Timothy       |\n+----------------------------------+-----------------+---------------+\n3 rows in set (0.01 sec)\n```\n\nDolt provides powerful data audit capabilities down to individual cells. When, how, and why has each cell in your database changed over time?\n\n# Additional Reading\n\nHead over to [our documentation](https://docs.dolthub.com/introduction/what-is-dolt) now that you have a feel for Dolt. You can also read about what we've been working on in [our blog](https://www.dolthub.com/blog/).\n\n# Security Policy\n\n[Dolt's current security policy](https://github.com/dolthub/dolt/blob/main/SECURITY.md) is maintained in this repository. Please follow the disclosure instructions there. Please do not initially report security issues in this repository's public GitHub issues.\n\n# Credits and License\n\nDolt relies heavily on open source code and ideas from the\n[Noms](https://github.com/attic-labs/noms) project. We are very\nthankful to the Noms team for making this code freely available,\nwithout which we would not have been able to build Dolt so rapidly.\n\nDolt is licensed under the Apache License, Version 2.0. See\n[LICENSE](https://github.com/dolthub/dolt/blob/master/LICENSE) for\ndetails.\n","funding_links":["https://github.com/sponsors/dolthub"],"categories":["Go","Popular","HarmonyOS","开源类库","Database","Developer Tools","Open source library","Data Management","This repo contains the list of awesome repo present in github. A tribute to the freely available awesome educational resources.","Model, Data and Experiment Management","DevShit","数据库","sql","数据库管理系统","Repos","Data","golang","Corporate and Analytical Applications","Data Integration Frameworks","Uncategorized","\u003ca name=\"data-management-tabular\"\u003e\u003c/a\u003eData management - Tabular data","Data Versioning for Machine Learning","MCP Servers","5. **Data Generation, Processing and Management**","\u003ca name=\"Go\"\u003e\u003c/a\u003eGo"],"sub_categories":["Windows Manager","数据库","Databases Implemented in Go","Database","Go中实现的数据库","网络服务_其他","Data Management","Data Integration and Specialized Solutions","Uncategorized","Databases"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdolthub%2Fdolt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdolthub%2Fdolt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdolthub%2Fdolt/lists"}