microgit.cr

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

github.com/microgit-com/microgit

Git hosting service made in Crystal and Lucky

56 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 <hakan@dun.se>
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](https://luckyframework.org). Enjoy!

### Setting up the project

1. [Install required dependencies](https://luckyframework.org/guides/getting-started/installing#install-required-dependencies)
1. Update database settings in `config/database.cr`
1. Run `script/setup`
1. Install Libgit2 - `apt-get install libgit2-dev`
1. 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.