Git Product home page Git Product logo

git's Introduction

gogs-brand

GitHub Workflow Status Discord Sourcegraph

简体中文

🔮 Vision

The Gogs (/gɑgz/) project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way. With Go, this can be done with an independent binary distribution across all platforms that Go supports, including Linux, macOS, Windows and ARM-based systems.

📡 Overview

💌 Features

  • User dashboard, user profile and activity timeline.
  • Access repositories via SSH, HTTP and HTTPS protocols.
  • User, organization and repository management.
  • Repository and organization webhooks, including Slack, Discord and Dingtalk.
  • Repository Git hooks, deploy keys and Git LFS.
  • Repository issues, pull requests, wiki, protected branches and collaboration.
  • Migrate and mirror repositories with wiki from other code hosts.
  • Web editor for quick editing repository files and wiki.
  • Jupyter Notebook and PDF rendering.
  • Authentication via SMTP, LDAP, reverse proxy, GitHub.com and GitHub Enterprise with 2FA.
  • Customize HTML templates, static files and many others.
  • Rich database backend, including PostgreSQL, MySQL, SQLite3 and TiDB.
  • Have localization over 31 languages.

💾 Hardware requirements

  • A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker CaaS.
  • 2 CPU cores and 512MB RAM would be the baseline for teamwork.
  • Increase CPU cores when your team size gets significantly larger, memory footprint remains low.

💻 Browser support

  • Please see Semantic UI for specific versions of supported browsers.
  • The smallest resolution officially supported is 1024*768, however the UI may still look right in smaller resolutions, but no promises or fixes.

📜 Installation

Make sure you install the prerequisites first.

There are 6 ways to install Gogs:

Deploy to cloud

Tutorials

📦 Software, service and product support

🙇‍♂️ Acknowledgments

This project is proundly supported by:

Other acknowledgments:

  • Thanks Egon Elbre for designing the original version of the logo.
  • Thanks Crowdin for sponsoring open source translation plan.
  • Thanks MonoVM for sponsoring VPS services.
  • Thanks Buildkite for sponsoring open source CI/CD plan.

👋 Contributors

⚖️ License

This project is under the MIT License. See the LICENSE file for the full license text.

git's People

Contributors

clee avatar derdackel avatar driusan avatar kjk avatar lemmi avatar lunny avatar mechmind avatar necrophonic avatar pgundlach avatar pwaller avatar schnouki avatar slene avatar thinxer avatar unknwon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

git's Issues

Unused Functions

https://github.com/dominikh/go-tools/unused yields:

repo_history_handlers.go:7:6: func commitRootComparator is unused (U1000)
repo_object.go:91:25: func (*Repository).objectType is unused (U1000)
tree.go:36:16: func (*Tree).walk is unused (U1000)
tree.go:41:16: func (*Tree)._walk is unused (U1000)
tree_entry.go:63:2: field commited is unused (U1000)

Some of them look like they should be public, especially func (*Tree).walk. I always wondered what the TreeWalkCallback was for...

nil pointer when getting blob

// ci is *git.Commit
for _, e := range ci.ListEntries() {
if e.IsDir() || strings.HasPrefix(e.Name(), ".") {
continue
}
rc, err := e.Blob().Data()
// e.Blob().Data() will deference a nil pointer, while e.Blob() is okay.
}

This is caused by this PR #8.

Just a question

Hello there,
just a quick question... Do I understand correctly that this is Git implementation in GoLang?

Thanks.

Rich

not good enough errors

I really find it hard to debug this library. I really would like to track errors with https://github.com/pkg/errors/ .
This way we can annotate where a function call came from and can print stack traces if necessary. Otherwise this just behaves like normal errors.

Doesn't parse packed refs

Operations only work on repos that have 'loose' refs to tags i.e. have not been GC'd. Probably also goes for packed heads/remotes

Use pre-defined error instances

Hiya, right now there are a bunch of errors.New(fmt.Sprintf(...)) all over the code, and the string is often dynamic so it makes it hard to compare conditions programmatically.

For instance, when an object is not found: https://github.com/gogits/git/blob/16f4de6a9d8a6695826ef4118f58dff85174b335/repo_object.go#L81

I propose we pull out at least the more common errors into package variables so that the conditions can be compared against. We can still make the Error() messages dynamically generated, so the output will stay the same.

(Happy to work on a PR for this, just let me know!)

no way to get symbolic references

It would be nice to have some mechanism for resolving
symbolic ref names such as "HEAD" or "origin".

AFAICS the only way currently is to open the relevant
files in git to find the commit numbers.

But perhaps I've missed something and there is. If so,
perhaps better docs might help.

Ideally it would be great to have a function that
could resolve all of the various syntax described in
gitrevisions(7).

Buffer read change in Go 1.7 breaks readObjectFile()

I found that after upgrading to Go 1.7, repo.GetCommitOfBranch(branch) started returning an EOF and not the commit sha1 that I expected.

https://github.com/gogits/git/blob/564c5fe86bbef8589421582b69657cc08c4c85fb/repo_utils.go#L306

I dug in and found that simply removing the error check fixes this, which matches up with the release notes below.

In previous releases of Go, if Reader's Read method were asked for zero bytes with no data remaining, it would return a count of 0 and no error. Now it returns a count of 0 and the error io.EOF

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.