Safe Haskell | None |
---|---|
Language | Haskell98 |
- 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 | m -> r where
- data RepositoryOptions = RepositoryOptions {
- repoPath :: !FilePath
- repoWorkingDir :: !(Maybe FilePath)
- repoIsBare :: !Bool
- repoAutoCreate :: !Bool
- defaultRepositoryOptions :: RepositoryOptions
- data RepositoryFactory n m r = RepositoryFactory {
- openRepository :: RepositoryOptions -> m r
- runRepository :: forall a. r -> n a -> m a
- class IsOid o where
- 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 :: (MonadGit r m, MonadGit s n) => Oid r -> n (Oid s)
- newtype SHA = SHA {
- getSHA :: ByteString
- shaToText :: SHA -> Text
- textToSha :: Monad m => Text -> m SHA
- data Blob r m = Blob {
- blobOid :: !(BlobOid r)
- blobContents :: !(BlobContents m)
- type ByteSource m = ConduitT () ByteString m ()
- data BlobContents m
- = BlobString !ByteString
- | BlobStringLazy !ByteString
- | BlobStream !(ByteSource m)
- | BlobSizedStream !(ByteSource m) !Int
- data BlobKind
- newtype TreeT r m 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 = 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
- = ModifiedBuilder (TreeBuilder r m)
- | BuilderUnchanged (TreeBuilder r m)
- fromBuilderMod :: 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 :: 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
- 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 #
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 | 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.
facts, parseOid, getRepository, closeRepository, deleteRepository, createReference, lookupReference, updateReference, deleteReference, sourceReferences, lookupObject, existsObject, sourceObjects, lookupCommit, lookupTree, lookupBlob, lookupTag, readIndex, writeIndex, newTreeBuilder, treeOid, treeEntry, sourceTreeEntries, diffContentsWithTree, hashContents, createBlob, createCommit, createTag
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 #
:: 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 #
RepositoryOptions | |
|
data RepositoryFactory n m r Source #
RepositoryFactory | |
|
BlobObjOid !(BlobOid r) | |
TreeObjOid !(TreeOid r) | |
CommitObjOid !(CommitOid r) | |
TagObjOid !(TagOid r) |
SHA | |
|
Blob | |
|
type ByteSource m = ConduitT () ByteString m () Source #
data BlobContents m Source #
BlobString !ByteString | |
BlobStringLazy !ByteString | |
BlobStream !(ByteSource m) | |
BlobSizedStream !(ByteSource m) !Int |
Eq (BlobContents m) Source # | |
BlobEntry | |
| |
TreeEntry | |
| |
CommitEntry | |
|
treeEntryToOid :: TreeEntry r -> Oid r Source #
data TreeBuilder r m Source #
TreeBuilder | |
|
data ModifiedBuilder r m Source #
ModifiedBuilder (TreeBuilder r m) | |
BuilderUnchanged (TreeBuilder r m) |
Semigroup (ModifiedBuilder r m) Source # | |
Monoid (ModifiedBuilder r m) Source # | |
fromBuilderMod :: ModifiedBuilder r m -> TreeBuilder r m Source #
Commit | |
|
untagObjOid :: ObjectOid r -> Oid r Source #
commitRefTarget :: Commit r -> RefTarget r Source #
data ModificationKind Source #
data MergeStatus Source #
data MergeResult r Source #
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.