Giter VIP home page Giter VIP logo

cloud-git-mongodb's Introduction

Cloud-git: Node.js git server for cloud-native applications

Cloud-git is a 100% JavaScript git server you can expose as part of the HTTP APIs of your app:

  • Expose a Git repository as an Express route of your application.
  • Pure JavaScript, no dependencies on native git libraries.
  • Extensible to use any cloud-native storage like AWS S3, no dependency on the file system.
  • HTTP or HTTPS.
  • Read/write (push/pull).
  • Supports authentication.
  • Can be used with regular git CLI.

Demo

For the demo, you can either create a .env file with your configuration settings or supply the MongoDB URL directly as an environment variable when starting the server. Additionally, there is an option to use a memory provider instead of MongoDB for testing purposes.

npm i
MONGO_URL=mongodb://localhost:27017 node sample/server.js
# or to use memory provider
node sample/server.js

MongoDB Repository

When using MongoGitRepository, it is necessary to provide:

  • A MongoDB database instance.
  • A collection name to store REFs in, which includes branch and tag references.
  • A "path" which acts as the repository name.

This setup will create a GridFS bucket to store all files in. If your path is test/myrepp, you will get a test_myrepp.files and test_myrepp.chunks collection that MongoDB uses to store files. Pushing to a repo will by default create repositories named main or master as the HEAD repo. You can set repo.uploadasync to false to speed up uploads at the risk of potential inconsistency in the repository, though this is not recommended.

In addition to the original functionality of cloud-git, this version has added:

  • report-status: Adds report-status capability.
  • parseCommit: Parses a commit object and returns commit information.
  • parseTag: Parses a tag object and returns tag information.
  • parseTree: Traverses a tree object and returns the directory listing inside it. If recursive is true, it also traverses all subfolders found and adds them as a subtree to each directory.
  • GetTree: Given the SHA of a commit or tree, it retrieves the directory listing for that.

The main differences from the original repository include support for git commands sending data gzip compressed, parsing packs after the client has sent all data to drastically improve speed and lower memory usage, fixing the retrieval of former objects when handling deltified files, minor syntax updates for easier integration into TypeScript projects, and more.

Usage

For full usage description and more information, see the original cloud-git repository.

cloud-git-mongodb's People

Contributors

skadefro avatar tjanczuk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.