Safe Haskell | None |
---|---|
Language | Haskell98 |
Git.Types
Synopsis
- type RawFilePath = ByteString
- data RepositoryFacts = RepositoryFacts {}
- type RefName = Text
- type CommitAuthor = Text
- type CommitEmail = Text
- type CommitMessage = Text
- type TreeFilePath = RawFilePath
- class (Applicative m, Monad m, MonadThrow m, IsOid (Oid r), Show (Oid r), Eq (Oid r), Ord (Oid r)) => MonadGit r (m :: Type -> Type) | m -> r where
- type Oid r
- data Tree r
- data Options r
- facts :: m RepositoryFacts
- parseOid :: Text -> m (Oid r)
- getRepository :: m r
- closeRepository :: m ()
- deleteRepository :: m ()
- createReference :: RefName -> RefTarget r -> m ()
- lookupReference :: RefName -> m (Maybe (RefTarget r))
- updateReference :: RefName -> RefTarget r -> m ()
- deleteReference :: RefName -> m ()
- sourceReferences :: ConduitT i RefName m ()
- lookupObject :: Oid r -> m (Object r m)
- existsObject :: Oid r -> m Bool
- sourceObjects :: Maybe (CommitOid r) -> CommitOid r -> Bool -> ConduitT i (ObjectOid r) m ()
- lookupCommit :: CommitOid r -> m (Commit r)
- lookupTree :: TreeOid r -> m (Tree r)
- lookupBlob :: BlobOid r -> m (Blob r m)
- lookupTag :: TagOid r -> m (Tag r)
- readIndex :: TreeT r m ()
- writeIndex :: TreeT r m ()
- newTreeBuilder :: Maybe (Tree r) -> m (TreeBuilder r m)
- treeOid :: Tree r -> m (TreeOid r)
- treeEntry :: Tree r -> TreeFilePath -> m (Maybe (TreeEntry r))
- sourceTreeEntries :: Tree r -> ConduitT i (TreeFilePath, TreeEntry r) m ()
- diffContentsWithTree :: ConduitT () (Either TreeFilePath ByteString) m () -> Tree r -> ConduitT i ByteString m ()
- hashContents :: BlobContents m -> m (BlobOid r)
- createBlob :: BlobContents m -> m (BlobOid r)
- createCommit :: [CommitOid r] -> TreeOid r -> Signature -> Signature -> CommitMessage -> Maybe RefName -> m (Commit r)
- createTag :: CommitOid r -> Signature -> CommitMessage -> Text -> m (Tag r)
- data RepositoryOptions = RepositoryOptions {
- repoPath :: !FilePath
- repoWorkingDir :: !(Maybe FilePath)
- repoIsBare :: !Bool
- repoAutoCreate :: !Bool
- defaultRepositoryOptions :: RepositoryOptions
- data RepositoryFactory (n :: Type -> Type) (m :: Type -> Type) r = RepositoryFactory {
- openRepository :: RepositoryOptions -> m r
- runRepository :: forall a. r -> n a -> m a
- class IsOid o where
- renderOid :: o -> Text
- renderObjOid :: Tagged a o -> Text
- type BlobOid r = Tagged r (Oid r)
- type TreeOid r = Tagged (Tree r) (Oid r)
- type CommitOid r = Tagged (Commit r) (Oid r)
- type TagOid r = Tagged (Tag r) (Oid r)
- data ObjectOid r
- = BlobObjOid !(BlobOid r)
- | TreeObjOid !(TreeOid r)
- | CommitObjOid !(CommitOid r)
- | TagObjOid !(TagOid r)
- parseObjOid :: MonadGit r m => forall o. Text -> m (Tagged o (Oid r))
- copyOid :: forall r (m :: Type -> Type) s n. (MonadGit r m, MonadGit s n) => Oid r -> n (Oid s)
- newtype SHA = SHA {
- getSHA :: ByteString
- shaToText :: SHA -> Text
- textToSha :: MonadFail m => Text -> m SHA
- data Blob r (m :: Type -> Type) = Blob {
- blobOid :: !(BlobOid r)
- blobContents :: !(BlobContents m)
- type ByteSource (m :: Type -> Type) = ConduitT () ByteString m ()
- data BlobContents (m :: Type -> Type)
- = BlobString !ByteString
- | BlobStringLazy !ByteString
- | BlobStream !(ByteSource m)
- | BlobSizedStream !(ByteSource m) !Int
- data BlobKind
- newtype TreeT r (m :: Type -> Type) a = TreeT {
- runTreeT :: StateT (TreeBuilder r m) m a
- data TreeEntry r
- = BlobEntry {
- blobEntryOid :: !(BlobOid r)
- blobEntryKind :: !BlobKind
- | TreeEntry {
- treeEntryOid :: !(TreeOid r)
- | CommitEntry {
- commitEntryOid :: !(CommitOid r)
- = BlobEntry {
- treeEntryToOid :: TreeEntry r -> Oid r
- data TreeBuilder r (m :: Type -> Type) = TreeBuilder {
- mtbBaseTreeOid :: Maybe (TreeOid r)
- mtbPendingUpdates :: HashMap TreeFilePath (TreeBuilder r m)
- mtbNewBuilder :: Maybe (Tree r) -> m (TreeBuilder r m)
- mtbWriteContents :: TreeBuilder r m -> m (ModifiedBuilder r m, TreeOid r)
- mtbLookupEntry :: TreeFilePath -> m (Maybe (TreeEntry r))
- mtbEntryCount :: m Int
- mtbPutEntry :: TreeBuilder r m -> TreeFilePath -> TreeEntry r -> m (ModifiedBuilder r m)
- mtbDropEntry :: TreeBuilder r m -> TreeFilePath -> m (ModifiedBuilder r m)
- data ModifiedBuilder r (m :: Type -> Type)
- = ModifiedBuilder (TreeBuilder r m)
- | BuilderUnchanged (TreeBuilder r m)
- fromBuilderMod :: forall r (m :: Type -> Type). ModifiedBuilder r m -> TreeBuilder r m
- data Commit r = Commit {
- commitOid :: !(CommitOid r)
- commitParents :: ![CommitOid r]
- commitTree :: !(TreeOid r)
- commitAuthor :: !Signature
- commitCommitter :: !Signature
- commitLog :: !CommitMessage
- commitEncoding :: !Text
- sourceCommitParents :: forall r (m :: Type -> Type) i. MonadGit r m => Commit r -> ConduitT i (Commit r) m ()
- lookupCommitParents :: MonadGit r m => Commit r -> m [Commit r]
- data Signature = Signature {}
- defaultSignature :: Signature
- data Tag r = Tag {}
- data Object r (m :: Type -> Type)
- objectOid :: MonadGit r m => Object r m -> m (Oid r)
- loadObject :: MonadGit r m => ObjectOid r -> m (Object r m)
- objectToObjOid :: MonadGit r m => Object r m -> m (ObjectOid r)
- untagObjOid :: ObjectOid r -> Oid r
- data RefTarget r
- = RefObj !(Oid r)
- | RefSymbolic !RefName
- commitRefTarget :: Commit r -> RefTarget r
- data ModificationKind
- = Unchanged
- | Modified
- | Added
- | Deleted
- | TypeChanged
- data MergeStatus
- mergeStatus :: ModificationKind -> ModificationKind -> MergeStatus
- data MergeResult r
- = MergeSuccess {
- mergeCommit :: CommitOid r
- | MergeConflicted { }
- = MergeSuccess {
- copyMergeResult :: (MonadGit r m, IsOid (Oid s)) => MergeResult s -> m (MergeResult r)
- data GitException
- = BackendError Text
- | GitError Text
- | RepositoryNotExist
- | RepositoryInvalid
- | RepositoryCannotAccess Text
- | BlobCreateFailed Text
- | BlobEmptyCreateFailed
- | BlobEncodingUnknown Text
- | BlobLookupFailed
- | DiffBlobFailed Text
- | DiffPrintToPatchFailed Text
- | DiffTreeToIndexFailed Text
- | IndexAddFailed TreeFilePath Text
- | IndexCreateFailed Text
- | PathEncodingError Text
- | PushNotFastForward Text
- | TagLookupFailed Text
- | TranslationException Text
- | TreeCreateFailed Text
- | TreeBuilderCreateFailed
- | TreeBuilderInsertFailed TreeFilePath
- | TreeBuilderRemoveFailed TreeFilePath
- | TreeBuilderWriteFailed Text
- | TreeLookupFailed
- | TreeCannotTraverseBlob
- | TreeCannotTraverseCommit
- | TreeEntryLookupFailed TreeFilePath
- | TreeUpdateFailed
- | TreeWalkFailed Text
- | TreeEmptyCreateFailed
- | CommitCreateFailed
- | CommitLookupFailed Text
- | ReferenceCreateFailed RefName
- | ReferenceDeleteFailed RefName
- | RefCannotCreateFromPartialOid
- | ReferenceListingFailed Text
- | ReferenceLookupFailed RefName
- | ObjectLookupFailed Text Int
- | ObjectRefRequiresFullOid
- | OidCopyFailed
- | OidParseFailed Text
- | QuotaHardLimitExceeded Int Int
Documentation
type RawFilePath = ByteString Source #
data RepositoryFacts Source #
Constructors
RepositoryFacts | |
Fields |
Instances
Show RepositoryFacts Source # | |
Defined in Git.Types Methods showsPrec :: Int -> RepositoryFacts -> ShowS # show :: RepositoryFacts -> String # showList :: [RepositoryFacts] -> ShowS # |
type CommitAuthor = Text Source #
type CommitEmail = Text Source #
type CommitMessage = Text Source #
type TreeFilePath = RawFilePath Source #
class (Applicative m, Monad m, MonadThrow m, IsOid (Oid r), Show (Oid r), Eq (Oid r), Ord (Oid r)) => MonadGit r (m :: Type -> Type) | m -> r where Source #
Repository
is the central point of contact between user code and Git
data objects. Every object must belong to some repository.
Methods
facts :: m RepositoryFacts Source #
parseOid :: Text -> m (Oid r) Source #
getRepository :: m r Source #
closeRepository :: m () Source #
deleteRepository :: m () Source #
createReference :: RefName -> RefTarget r -> m () Source #
lookupReference :: RefName -> m (Maybe (RefTarget r)) Source #
updateReference :: RefName -> RefTarget r -> m () Source #
deleteReference :: RefName -> m () Source #
sourceReferences :: ConduitT i RefName m () Source #
lookupObject :: Oid r -> m (Object r m) Source #
existsObject :: Oid r -> m Bool Source #
Arguments
:: Maybe (CommitOid r) | A commit we may already have |
-> CommitOid r | The commit we need |
-> Bool | Include commit trees also? |
-> ConduitT i (ObjectOid r) m () | All the objects in between |
lookupCommit :: CommitOid r -> m (Commit r) Source #
lookupTree :: TreeOid r -> m (Tree r) Source #
lookupBlob :: BlobOid r -> m (Blob r m) Source #
lookupTag :: TagOid r -> m (Tag r) Source #
readIndex :: TreeT r m () Source #
writeIndex :: TreeT r m () Source #
newTreeBuilder :: Maybe (Tree r) -> m (TreeBuilder r m) Source #
treeOid :: Tree r -> m (TreeOid r) Source #
treeEntry :: Tree r -> TreeFilePath -> m (Maybe (TreeEntry r)) Source #
sourceTreeEntries :: Tree r -> ConduitT i (TreeFilePath, TreeEntry r) m () Source #
diffContentsWithTree :: ConduitT () (Either TreeFilePath ByteString) m () -> Tree r -> ConduitT i ByteString m () Source #
hashContents :: BlobContents m -> m (BlobOid r) Source #
createBlob :: BlobContents m -> m (BlobOid r) Source #
createCommit :: [CommitOid r] -> TreeOid r -> Signature -> Signature -> CommitMessage -> Maybe RefName -> m (Commit r) Source #
createTag :: CommitOid r -> Signature -> CommitMessage -> Text -> m (Tag r) Source #
data RepositoryOptions Source #
Constructors
RepositoryOptions | |
Fields
|
data RepositoryFactory (n :: Type -> Type) (m :: Type -> Type) r Source #
Constructors
RepositoryFactory | |
Fields
|
Minimal complete definition
Nothing
Constructors
BlobObjOid !(BlobOid r) | |
TreeObjOid !(TreeOid r) | |
CommitObjOid !(CommitOid r) | |
TagObjOid !(TagOid r) |
copyOid :: forall r (m :: Type -> Type) s n. (MonadGit r m, MonadGit s n) => Oid r -> n (Oid s) Source #
Constructors
SHA | |
Fields
|
data Blob r (m :: Type -> Type) Source #
Constructors
Blob | |
Fields
|
type ByteSource (m :: Type -> Type) = ConduitT () ByteString m () Source #
data BlobContents (m :: Type -> Type) Source #
Constructors
BlobString !ByteString | |
BlobStringLazy !ByteString | |
BlobStream !(ByteSource m) | |
BlobSizedStream !(ByteSource m) !Int |
Instances
Eq (BlobContents m) Source # | |
Defined in Git.Types Methods (==) :: BlobContents m -> BlobContents m -> Bool # (/=) :: BlobContents m -> BlobContents m -> Bool # |
Constructors
PlainBlob | |
ExecutableBlob | |
SymlinkBlob |
Instances
Enum BlobKind Source # | |
Show BlobKind Source # | |
Eq BlobKind Source # | |
newtype TreeT r (m :: Type -> Type) a Source #
Constructors
TreeT | |
Fields
|
Instances
MonadTrans (TreeT r) Source # | |
Defined in Git.Tree.Builder | |
MonadFix m => MonadFix (TreeT r m) Source # | |
Defined in Git.Tree.Builder | |
MonadIO m => MonadIO (TreeT r m) Source # | |
Defined in Git.Tree.Builder | |
(Functor m, MonadPlus m) => Alternative (TreeT r m) Source # | |
(Functor m, Monad m) => Applicative (TreeT r m) Source # | |
Functor m => Functor (TreeT r m) Source # | |
Monad m => Monad (TreeT r m) Source # | |
MonadPlus m => MonadPlus (TreeT r m) Source # | |
Constructors
BlobEntry | |
Fields
| |
TreeEntry | |
Fields
| |
CommitEntry | |
Fields
|
treeEntryToOid :: TreeEntry r -> Oid r Source #
data TreeBuilder r (m :: Type -> Type) Source #
Constructors
TreeBuilder | |
Fields
|
data ModifiedBuilder r (m :: Type -> Type) Source #
Constructors
ModifiedBuilder (TreeBuilder r m) | |
BuilderUnchanged (TreeBuilder r m) |
Instances
Monoid (ModifiedBuilder r m) Source # | |
Defined in Git.Types Methods mempty :: ModifiedBuilder r m # mappend :: ModifiedBuilder r m -> ModifiedBuilder r m -> ModifiedBuilder r m # mconcat :: [ModifiedBuilder r m] -> ModifiedBuilder r m # | |
Semigroup (ModifiedBuilder r m) Source # | |
Defined in Git.Types Methods (<>) :: ModifiedBuilder r m -> ModifiedBuilder r m -> ModifiedBuilder r m # sconcat :: NonEmpty (ModifiedBuilder r m) -> ModifiedBuilder r m # stimes :: Integral b => b -> ModifiedBuilder r m -> ModifiedBuilder r m # |
fromBuilderMod :: forall r (m :: Type -> Type). ModifiedBuilder r m -> TreeBuilder r m Source #
Constructors
Commit | |
Fields
|
sourceCommitParents :: forall r (m :: Type -> Type) i. MonadGit r m => Commit r -> ConduitT i (Commit r) m () Source #
Constructors
Signature | |
Fields |
untagObjOid :: ObjectOid r -> Oid r Source #
commitRefTarget :: Commit r -> RefTarget r Source #
data ModificationKind Source #
Constructors
Unchanged | |
Modified | |
Added | |
Deleted | |
TypeChanged |
Instances
data MergeStatus Source #
Constructors
Instances
data MergeResult r Source #
Constructors
MergeSuccess | |
Fields
| |
MergeConflicted | |
Fields |
copyMergeResult :: (MonadGit r m, IsOid (Oid s)) => MergeResult s -> m (MergeResult r) Source #
data GitException Source #
There is a separate GitException
for each possible failure when
interacting with the Git repository.
Constructors
Instances
Exception GitException Source # | |
Defined in Git.Types Methods toException :: GitException -> SomeException # fromException :: SomeException -> Maybe GitException # displayException :: GitException -> String # | |
Show GitException Source # | |
Defined in Git.Types Methods showsPrec :: Int -> GitException -> ShowS # show :: GitException -> String # showList :: [GitException] -> ShowS # | |
Eq GitException Source # | |
Defined in Git.Types |