Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
pull-git-repo
Advanced tools
Wrap a module implementing the abstract-pull-git-repo interface, adding utility methods
Below, source(obj)
means returns a readable stream for objects of type obj
Repo(repo): repo
Mixin pull-git-repo
methods into repo
Repo.parseCommitOrTag(object): source({name, value})
Read a git object and transform it into a stream of {name, value}
properties,
as in repo.readCommit
or repo.readTag
.
Get a repo's refs as an object.
pretty
: format ref type/prefix nicelyrefs
: refs object, in format {<type>: [name]}}
,
where type
is e.g. "heads" (or "Branches" if option pretty
is set)repo.getSymRef(name[, short], cb(err, value))
Get a symref of a repo.
name
: the symref to resolve. e.g. "HEAD"
short
: whether to shorten the value, e.g. from "refs/heads/master"
to "master"
.
value
: head pointed to by name. e.g. "refs/heads/master"
repo.readCommit(rev): source({name, value})
Read a commit. Returns a readable stream of objects for fields in the
commit. The commit message is treated as a field of type "title"
for the
first line, and a field of type "body"
for the rest.
rev
: SHA1 hash of the commit to read, or a ref pointing to itname
: name of a field, one of
["tree", "parent", "author", "committer", "body"]
value
: string value of the fieldrepo.readTag(rev): source({name, value})
Read a tag. Returns a readable stream of objects for fields in the
tag. The tag message is treated as a field of type "title"
for the
first line, and a field of type "body"
for the rest.
rev
: SHA1 hash of the tag to read, or a ref pointing to itname
: name of a field, one of
["object", "type", "tag", "tagger", "title", "body"]
value
: string value of the fieldrepo.readTree(rev): source({id, mode, name})
Get a tree and stream its entries
repo.readDir(rev, path): source({id, mode, name})
Stream entries from a tree down a given path
repo.readLog(head): source(hash)
Stream commit IDs of the repo, following the commit history backwards
head
: hash or rev of the commit from which to start reading historyrepo.resolveRef(name, cb(err, hash))
Get the hash that a ref (or symref) points to. Errors if the ref is not found.
repo.getRef(name, cb(err, object, id))
Get a git object
name
: name of a branch, tag, or ref pointing to the object,
or SHA1 of the objectrepo.getCommit(rev, cb(err, object, id))
Get a commit object. If the object refered to by rev
is a tag, get the commit
that it points to.
repo.getTag(rev, cb(err, object))
Get a tag object.
repo.getTree(rev, cb(err, object))
Get a tree object. If rev
refers to a commit or tag, get the tree that it
points to.
Repo.getCommitParsed(object, cb(err, commit))
Read a commit object and parse it into a JSON object, as in
repo.getCommitParsed
.
repo.getCommitParsed(rev, cb(err, commit))
Get a commit buffered and parsed into a JSON object
commit.id
: ID of the commitcommit.tree
: ID of the tree of the commitcommit.parents
: IDs of parent commits. There will be more than one if it is
a merge commit.commit.title
: first line of the commit messagecommit.body
: text from the commit message following the first line and an
optional blank linecommit.author
: user
object for info about the commit authorcommit.committer
: user
object for info about the committercommit.separateAuthor
: convenience value indicating the user or email in
commit.author
and commit.committer
are differentcommit.separateAuthorDate
: convenience value indicating
commit.author.date
and commit.committer.date
are differentExample:
{
"parents": [
"f7c37c43a136064e07328ee7501fad8ed7bcc4d6"
],
"author": {
"str": "root <root@localhost> 1455078653 -0500",
"name": "root",
"email": "root@localhost",
"date": new Date(1455078653)
},
"committer": {
"str": "root <root@localhost> 1455078653 -0500",
"name": "root",
"email": "root@localhost",
"date": new Date(1455078653)
},
"body": "",
"id": "9a385c1d6b48b7f472ac507a3ec08263358e9804",
"tree": "68aba62e560c0ebc3396e8ae9335232cd93a3f60",
"title": "Initial commit",
"separateAuthor": false
}
Repo.getTagParsed(object, cb(err, tag))
Read a tag object and parse it into a JSON object
tag.id
: ID of the tagtag.object
: ID of the tagged objecttag.type
: type of the tagged objecttag.tagger
: user
object for info about the creator of the tagtag.title
: first line of the tag messagetag.body
: text from the tag message following the first line and an
optional blank linerepo.getTagParsed(rev, cb(err, tag))
Get a tag object and parse into a JSON object
repo.getFile(rev, path, cb(err, {length, mode, read)
Get a file from tree at the given path.
length
: size of the file in bytes
mode
: mode of the file, e.g. "100644"
read
: readable stream of the file's contents
repo.isCommitHash(str): bool
repo.diffTrees(treeIds, recursive): source({key, values, diff})
Get a diff of changed files between two trees
Repo.diffTrees(repos, trees, recursive): source({key, values, diff})
Get a diff of changed files between trees of possibly different repos
Repo.getMergeBase(baseRepo, baseBranch, headRepo, headBranch, cb)
Find a common ancestor commit of two commits/branches
repo.getPack(heads, haves, cb(err, readPack))
Build a packfile that includes objects reachable from heads and not reachable from haves.
heads
: set of revs for head commits to includehaves
: set of revs of commits to not includecb
: callback for a stream of packfile datarepo.getFirstAvailableRev(timeout, cb): sink(rev)
Pull revs into this sink, and it will try to retrieve them, and callback the first one that resolves within the given timeout.
timeout
: milliseconds to wait for a rev before giving up on itrev
: hash of an object to try to retrieveCopyright (c) 2016 Charles Lehner
Usage of the works is permitted provided that this instrument is retained with the works, so that any entity that uses the works is notified of this instrument.
DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
FAQs
utility methods for git repos using pull streams
The npm package pull-git-repo receives a total of 8 weekly downloads. As such, pull-git-repo popularity was classified as not popular.
We found that pull-git-repo demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.