Safe Haskell | None |
---|---|
Language | Haskell98 |
Git.Types
- 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 #
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.
Minimal complete definition
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
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 m r Source #
Constructors
RepositoryFactory | |
Fields
|
Constructors
BlobObjOid !(BlobOid r) | |
TreeObjOid !(TreeOid r) | |
CommitObjOid !(CommitOid r) | |
TagObjOid !(TagOid r) |
Constructors
SHA | |
Fields
|
Constructors
Blob | |
Fields
|
type ByteSource m = ConduitT () ByteString m () Source #
data BlobContents m Source #
Constructors
BlobString !ByteString | |
BlobStringLazy !ByteString | |
BlobStream !(ByteSource m) | |
BlobSizedStream !(ByteSource m) !Int |
Instances
Eq (BlobContents m) Source # | |
Constructors
PlainBlob | |
ExecutableBlob | |
SymlinkBlob |
Constructors
BlobEntry | |
Fields
| |
TreeEntry | |
Fields
| |
CommitEntry | |
Fields
|
treeEntryToOid :: TreeEntry r -> Oid r Source #
data TreeBuilder r m Source #
Constructors
TreeBuilder | |
Fields
|
data ModifiedBuilder r m Source #
Constructors
ModifiedBuilder (TreeBuilder r m) | |
BuilderUnchanged (TreeBuilder r m) |
Instances
Semigroup (ModifiedBuilder r m) Source # | |
Monoid (ModifiedBuilder r m) Source # | |
fromBuilderMod :: ModifiedBuilder r m -> TreeBuilder r m Source #
Constructors
Commit | |
Fields
|
Constructors
Signature | |
Fields |
untagObjOid :: ObjectOid r -> Oid r Source #
commitRefTarget :: Commit r -> RefTarget r Source #
data ModificationKind Source #
Constructors
Unchanged | |
Modified | |
Added | |
Deleted | |
TypeChanged |
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