microgit.cr

Version, currently master branch1 version
  • master branchlatestSep 29, 2022

github.com/microgit-com/microgit

Git hosting service made in Crystal and Lucky

55 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  microgit.cr:
    github: microgit-com/microgit
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
0.34.0
Author
Håkan Nylén
Target
  • microgit from src/microgit.cr

Dependencies

Runtime Dependencies

  • git*github: microgit-com/libgit2.cr
  • jwt~> 1.2.0github: crystal-community/jwt
  • kilt*github: jeromegn/kilt
  • lucky~> 0.21github: luckyframework/lucky
  • markd*github: icyleaf/markd
  • redis~> 2.6github: stefanwille/crystal-redis
  • carbon~> 0.1.1github: luckyframework/carbon
  • dotenv0.3.0github: gdotdesign/cr-dotenv
  • sluggr*github: microgit-com/sluggr
  • linguist*github: microgit-com/linguist.cr
  • mosquito*github: robacarp/mosquito
  • authentic~> 0.5.4github: luckyframework/authentic
  • lucky_can*github: confact/lucky_can
  • lucky_flow~> 0.6.3github: luckyframework/lucky_flow
  • avram_scoped_id*github: microgit-com/avram_scoped_id
  • git_diff_parser*github: microgit-com/git_diff_parser
  • lucky_encrypted*github: microgit-com/lucky_encrypted

README

Microgit

Microgit is meant to be a self-hosting open source that will be an alternative to gitlab. See this as a crystal version of gitea but with own design.

What it can do now:

  • Git pull/push/fetch
  • See tree of files
  • See last commit
  • See commit list
  • See branch list
  • see commits for specific branch
  • See diffs
  • See file content (non-binary files)
  • Create issues
  • Create Merge Requests
  • See diff of merge request compare to master
  • Commenting on merge request
  • Commenting on issue
  • Merge merge request
  • teams
  • user invite to team

What is left to be done:

  • Better handling of git updates, using git hooks
  • Squash merge
  • add labels to issues and merge requests
  • Show logs of changes on issue and merge requests
  • add related issue, merge requests
  • Better assignee and owner handling
  • optmization
  • Cleaning up code
  • Upgrades of Lucky and Crystal
  • tests
  • ssh support?

This is a project written using Lucky. Enjoy!

Setting up the project

  1. Install required dependencies
  2. Update database settings in config/database.cr
  3. Run script/setup
  4. Install Libgit2 - apt-get install libgit2-dev
  5. Run lucky dev to start the app

Contributing

Microgit is built to be fully open and transparent. You can help contribute and do push this project forward.

Fork this repo, add push your changes to a new branch and create an pull request.