pr-tools-0.2.0.0: pr-tools.cabal
cabal-version: 3.0
name: pr-tools
version: 0.2.0.0
synopsis: Decentralized git pull request and code review flows
description: A set of command-line tools for managing descentralized
git pull requests and code review workflows. These tools
help with creating PR snapshots, sending notifications
to Slack, tracking approvals, merging PRs, reviewing
changes, and viewing annotated diffs.
- pr-snapshot: Generate a Markdown snapshot of the PR including commits and diff summary.
- pr-send: Send the PR snapshot to a Slack channel for review.
- pr-track: Track PR approvals, status, and commit history.
- pr-merge: Merge approved PRs with various strategies and update changelog.
- pr-review: Interactive code review tool with comment management.
- pr-view: View annotated diffs with review comments.
- pr-fix: Fix comments received in a review.
- pr-init: Interactively generate configuration file for pr-tools.
license: BSD-3-Clause
license-file: LICENSE
author: Mihai Giurgeanu
copyright: (c) 2025 Mihai Giurgeanu
maintainer: mihai.giurgeanu@gmail.com
homepage: https://github.com/mihaigiurgeanu/pr-tools
build-type: Simple
extra-doc-files: README.md, CHANGELOG.md
category: Git, Development
stability: beta
bug-reports: https://github.com/mihaigiurgeanu/pr-tools/issues
source-repository head
type: git
location: https://github.com/mihaigiurgeanu/pr-tools.git
source-repository this
type: git
location: https://github.com/mihaigiurgeanu/pr-tools.git
tag: 0.1.0.0
common commons
default-language: Haskell2010
build-depends: base >=4.14 && <5
library
import: commons
exposed-modules: PRTools.Config
, PRTools.PRState
, PRTools.ReviewState
, PRTools.CommentRenderer
, PRTools.CommentFormatter
, PRTools.Slack
, PRTools.ReviewLogic
, PRTools.FixParser
, PRTools.ContentHash
build-depends: aeson >= 2.2.3 && < 2.3
, containers >= 0.6.7 && < 0.7
, directory >= 1.3.8 && < 1.4
, process >= 1.6.19 && < 1.7
, yaml >= 0.11.11 && < 0.12
, Diff >= 1.0.2 && < 1.1
, time >= 1.12.2 && < 1.13
, extra >= 1.8 && < 1.9
, uuid >= 1.3.16 && < 1.4
, bytestring >= 0.11.5 && < 0.12
, http-client >= 0.7.19 && < 0.8
, http-client-tls >= 0.3.6 && < 0.4
, http-types >= 0.12.4 && < 0.13
, text >= 2.0.2 && < 2.1
, case-insensitive >= 1.2.1 && < 1.3
, split >= 0.2.5 && < 0.3
, hashable >= 1.3.0 && < 1.6
hs-source-dirs: src
executable pr-snapshot
import: commons
main-is: pr-snapshot.hs
build-depends: pr-tools
, directory >= 1.3.8 && < 1.4
, filepath >= 1.4.301 && < 1.5
, optparse-applicative >= 0.19.0 && < 0.20
, process >= 1.6.19 && < 1.7
hs-source-dirs: app
executable pr-send
import: commons
main-is: pr-send.hs
build-depends: aeson >= 2.2.3 && < 2.3
, bytestring >= 0.11.5 && < 0.12
, case-insensitive >= 1.2.1 && < 1.3
, directory >= 1.3.8 && < 1.4
, filepath >= 1.4.301 && < 1.5
, http-client >= 0.7.19 && < 0.8
, http-client-tls >= 0.3.6 && < 0.4
, http-types >= 0.12.4 && < 0.13
, process >= 1.6.19 && < 1.7
, pr-tools
hs-source-dirs: app
executable pr-track
import: commons
main-is: pr-track.hs
build-depends: pr-tools
, containers >= 0.6.7 && < 0.7
, optparse-applicative >= 0.19.0 && < 0.20
, process >= 1.6.19 && < 1.7
, time >= 1.12.2 && < 1.13
hs-source-dirs: app
executable pr-merge
import: commons
main-is: pr-merge.hs
build-depends: pr-tools
, aeson >= 2.2.3 && < 2.3
, bytestring >= 0.11.5 && < 0.12
, case-insensitive >= 1.2.1 && < 1.3
, containers >= 0.6.7 && < 0.7
, filepath >= 1.4.301 && < 1.5
, http-client >= 0.7.19 && < 0.8
, http-client-tls >= 0.3.6 && < 0.4
, http-types >= 0.12.4 && < 0.13
, optparse-applicative >= 0.19.0 && < 0.20
, process >= 1.6.19 && < 1.7
, time >= 1.12.2 && < 1.13
hs-source-dirs: app
executable pr-review
import: commons
main-is: pr-review.hs
build-depends: pr-tools
, aeson >= 2.2.3 && < 2.3
, bytestring >= 0.11.5 && < 0.12
, containers >= 0.6.7 && < 0.7
, Diff >= 1.0.2 && < 1.1
, directory >= 1.3.8 && < 1.4
, filepath >= 1.4.301 && < 1.5
, Glob >= 0.10.2 && < 0.11
, http-client >= 0.7.19 && < 0.8
, http-client-tls >= 0.3.6 && < 0.4
, http-types >= 0.12.4 && < 0.13
, optparse-applicative >= 0.19.0 && < 0.20
, process >= 1.6.19 && < 1.7
, temporary >= 1.3 && < 1.4
, uuid >= 1.3.16 && < 1.4
, split >= 0.2.5 && < 0.3
hs-source-dirs: app
executable pr-view
import: commons
main-is: pr-view.hs
build-depends: pr-tools
, containers >= 0.6.7 && < 0.7
, filepath >= 1.4.301 && < 1.5
, Glob >= 0.10.2 && < 0.11
, optparse-applicative >= 0.19.0 && < 0.20
, process >= 1.6.19 && < 1.7
, yaml >= 0.11.11 && < 0.12
hs-source-dirs: app
executable pr-fix
import: commons
main-is: pr-fix.hs
build-depends: pr-tools
, aeson >= 2.2.3 && < 2.3
, bytestring >= 0.11.5 && < 0.12
, containers >= 0.6.7 && < 0.7
, directory >= 1.3.8 && < 1.4
, filepath >= 1.4.301 && < 1.5
, http-client >= 0.7.19 && < 0.8
, http-client-tls >= 0.3.6 && < 0.4
, http-types >= 0.12.4 && < 0.13
, optparse-applicative >= 0.19.0 && < 0.20
, process >= 1.6.19 && < 1.7
, split >= 0.2.5 && < 0.3
, temporary >= 1.3 && < 1.4
, uuid >= 1.3.16 && < 1.4
, yaml >= 0.11.11 && < 0.12
hs-source-dirs: app
executable pr-init
import: commons
main-is: pr-init.hs
build-depends: pr-tools
, directory >= 1.3.8 && < 1.4
, process >= 1.6.19 && < 1.7
hs-source-dirs: app
test-suite pr-tools-tests
type: exitcode-stdio-1.0
main-is: Spec.hs
hs-source-dirs: test
build-depends:
base >=4.7 && <5
, pr-tools
, hspec
, hspec-discover
, containers
build-tool-depends:
hspec-discover:hspec-discover
other-modules:
FixParserSpec
, ReviewLogicSpec
, PRStateSpec
, CommentRendererSpec
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010