Distributed, offline-first bug tracker embedded in git, with bridges

Overview

git-bug

Backers on Open Collective Sponsors on Open Collective License: GPL v3 GoDoc Go Report Card Gitter chat

git-bug is a bug tracker that:

  • is fully embedded in git: you only need your git repository to have a bug tracker
  • is distributed: use your normal git remote to collaborate, push and pull your bugs!
  • works offline: in a plane or under the sea? Keep reading and writing bugs!
  • prevents vendor lock-in: your usual service is down or went bad? You already have a full backup.
  • is fast: listing bugs or opening them is a matter of milliseconds
  • doesn't pollute your project: no files are added in your project
  • integrates with your tooling: use the UI you like (CLI, terminal, web) or integrate with your existing tools through the CLI or the GraphQL API
  • bridges to other bug trackers: use bridges to import and export to other trackers.

🚧 This is now more than a proof of concept, but still not fully stable. Expect dragons and unfinished business. 🚧

Help needed!

This project has grown bigger than I can handle by myself, especially with a day job. I'm looking for people to help on or maintain part of it:

  • each bridges (go)
  • the terminal UI (go)
  • the web UI (Typescript/React/GraphQL)

Individually, those pieces are not especially complex but doing everything make it hard for me to focus on the core where things get more complicated. If this is useful for you or you just want to join the fun, maybe consider it?

Installation

Pre-compiled binaries
  1. Go to the release page and download the appropriate binary for your system.
  2. Copy the binary anywhere in your $PATH
  3. Rename the binary to git-bug (or git-bug.exe on windows)

That's all !

Linux packages
macOS packages
FreeBSD package/port

Install via the package manager

pkg install git-bug

Or from the ports collection

cd /usr/ports/devel/git-bug && make install clean
Compile from git (unstable)
git clone [email protected]:MichaelMure/git-bug.git
make install

If it's not done already, add the golang binary directory in your PATH:

export PATH=$PATH:$(go env GOROOT)/bin:$(go env GOPATH)/bin

Workflows

There are multiple ways to use git-bug:

Native workflow

Native workflow

This is the pure git-bug experience. In a similar fashion as with code, use git bug push and git bug pull to push and pull your bugs between git remotes and collaborate with your teammate.

Bridge workflow

Bridge workflow

As git-bug has bridges with other bug-trackers, you can use it as your personal local remote interface. Sync with git bug bridge pull and git bug bridge push, work from your terminal, integrate into your editor, it's up to you. And it works offline !

Web UI workflow (WIP)

Web UI workflow

Often, projects needs to have their bug-tracker public and accept editions from anyone facing a problem. To support this workflow, git-bug aims to have the web UI accept external OAuth authentication and act as a public portal. However the web UI is not up to speed for that yet. Contribution are very much welcome!

CLI usage

Create a new identity:

git bug user create

Create a new bug:

git bug add

Your favorite editor will open to write a title and a message.

You can push your new entry to a remote:

git bug push [
   
    ]

   

And pull for updates:

git bug pull [
   
    ]

   

List existing bugs:

git bug ls

Filter and sort bugs using a query:

git bug ls "status:open sort:edit"

Search for bugs by text content:

git bug ls "foo bar" baz

You can now use commands like show, comment, open or close to display and modify bugs. For more details about each command, you can run git bug --help or read the command's documentation.

Interactive terminal UI

An interactive terminal UI is available using the command git bug termui to browse and edit bugs.

Termui recording

Web UI (status: WIP)

You can launch a rich Web UI with git bug webui.

Web UI screenshot 1

Web UI screenshot 2

This web UI is entirely packed inside the same go binary and serve static content through a localhost http server.

The web UI interact with the backend through a GraphQL API. The schema is available here.

Bridges

Importer implementations

Github Gitlab Jira Launchpad
incremental
(can import more than once)
✔️ ✔️ ✔️ ❌
with resume
(download only new data)
✔️ ✔️ ✔️ ❌
identities ✔️ ✔️ ✔️ ✔️
identities update ❌ ❌ ❌ ❌
bug ✔️ ✔️ ✔️ ✔️
comments ✔️ ✔️ ✔️ ✔️
comment editions ✔️ ❌ ✔️ ❌
labels ✔️ ✔️ ✔️ ❌
status ✔️ ✔️ ✔️ ❌
title edition ✔️ ✔️ ✔️ ❌
media/files ❌ ❌ ❌ ❌
automated test suite ✔️ ✔️ ❌ ❌

Exporter implementations

Github Gitlab Jira Launchpad
bug ✔️ ✔️ ✔️ ❌
comments ✔️ ✔️ ✔️ ❌
comment editions ✔️ ✔️ ✔️ ❌
labels ✔️ ✔️ ✔️ ❌
status ✔️ ✔️ ✔️ ❌
title edition ✔️ ✔️ ✔️ ❌
automated test suite ✔️ ✔️ ❌ ❌

Bridge usage

Interactively configure a new github bridge:

git bug bridge configure

Or manually:

git bug bridge configure \
    --name=<bridge> \
    --target=github \
    --url=https://github.com/MichaelMure/git-bug \
    --login=<login>
    --token=<token>

Import bugs:

git bug bridge pull [<name>]

Export modifications:

git bug bridge push [<name>]

Deleting a bridge:

git bug bridge rm [<name>]

Internals

Interested by how it works ? Have a look at the data model and the internal bird-view.

Misc

Planned features

  • media embedding
  • more bridges
  • extendable data model to support arbitrary bug tracker
  • inflatable raptor

Contribute

PRs accepted. Drop by the Gitter lobby for a chat or browse the issues to see what is worked on or discussed.

git clone [email protected]:MichaelMure/git-bug.git

You can now run make to build the project, or make install to install the binary in $GOPATH/bin/.

To work on the web UI, have a look at the dedicated Readme.

Contributors ❤️

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

License

Unless otherwise stated, this project is released under the GPLv3 or later license © Michael Muré.

The git-bug logo by Viktor Teplov is released under the Creative Commons Attribution 4.0 International (CC BY 4.0) license © Viktor Teplov.

Comments
  • Deal with github bridge import rate limit

    Deal with github bridge import rate limit

    An attempt to solve #315. Changes:

    • New GraphQL queries: It is much more efficient with respect to the rate limit of the Github API.
    • If the Github rate limit is hit, then git-bug sleeps until the limit is reset.
    • Replaces the iterator based import interface with a Go-channel based interface
    • Fetching the data in a separate Go-routine: The import is faster.
    opened by rng-dynamics 42
  • WebUI: Add user profile

    WebUI: Add user profile

    Adds a profile page for identities. Clicking on the user name in the AppBar will display a menu. Author component will link to the profile page of the respective identity.

    Requires:

    • [x] email fix
    • [x] author dark mode color fix
    • [x] discuss, what should happen with the bug listing on profil page
    opened by GlancingMind 35
  • feat: Github import

    feat: Github import

    In a similar fashion as git-bug, Github expose in its graphql API both compiled data of an issue and a timeline of events.

    {
      repository(owner: "MichaelMure", name: "git-bug") {
        issues(first: 10) {
          nodes {
            title
            createdAt
            bodyText
            labels(first: 10) {
              nodes {
                name
              }
            }
            timeline(first: 10) {
              nodes {
                __typename
                ... on IssueComment {
                  author {
                    login
                    avatarUrl
                  }
                  authorAssociation
                  bodyText
                  createdAt
                }
                ... on LabeledEvent {
                  createdAt
                  actor {
                    login
                  }
                  label {
                    color
                    name
                  }
                }
                ... on UnlabeledEvent {
                  createdAt
                  actor {
                    login
                  }
                  label {
                    color
                    name
                  }
                }
              }
            }
          }
        }
      }
    }
    

    We can use this timeline to import issue into git-bug. However, there is some mismatch that need to be resolved. Notably, in git-bug, a person is:

    type Person struct {
    	Name  string
    	Email string
    }
    

    Where for Github, an actor is:

    avatarUrl (URI!)
    A URL pointing to the actor's public avatar.
    
    login (String!)
    The username of the actor.
    
    resourcePath (URI!)
    The HTTP path for this actor.
    
    url (URI!)
    The HTTP URL for this actor.
    
    enhancement RFC Core 
    opened by MichaelMure 35
  • WebUI - allow to create bugs

    WebUI - allow to create bugs

    If iI did not miss anything, the Web-UI is currently read-only. To be ablle to create bugs, comments, edit, remove and so on in a way that works for any kind of (non-technical) users, is very important for any project that might has such users.

    An alternative solution coudl be, to make an alreayd existing GUI/WebUI to use git-bug as a backend, like suggeste for example in https://github.com/MichaelMure/git-bug/issues/80.

    What are your thoughs about this, how hard would it be to implement it, what problems do you see?

    enhancement WebUI hacktoberfest 
    opened by hoijui 27
  • git: Allow signing of commits

    git: Allow signing of commits

    We could add more ways of specifying a key, such as picking one from the adopted identity, but for now with this change we allow users who know what they are doing to sign their bug changes.

    By simply passing "-S" to git commit-tree when "commit.gpgsign" is "true", we use git's mechanism for key choosing which is either by the configured user name and email OR by whatever is specified in "user.signingkey".

    opened by aleb 26
  • Serialization format

    Serialization format

    Bug's data are stored using git Commit, Tree and Blob. Inside a Blob is serialized an OperationPack, that is an array of edit operation on the bug's state.

    This OperationPack is currently serialized using golang's gob, which is neat because it just works. However, it might not be the best option for interoperability with other tools in the future.

    How should that be serialized ? Json ? In any case, git will compress the data using zlib so a text format might not be that terrible.

    Feel free to argue a case here.

    RFC Core 
    opened by MichaelMure 26
  • GitHub bridge doesnt' handle mutation API rate limit

    GitHub bridge doesnt' handle mutation API rate limit

    I have a GitHub project with many open issues: https://github.com/datalad/datalad

    Running bridge pull for the first time, obtains a large chunk of them until the limit is exhausted.

    % git bug bridge pull
    ...
    new issue: 1b7fd677f16d7dfea56f0caad895c5e944b57c31
    changed label: da246a71ce5a0ee9f4603b25385a9a2ab69af2921ebffe62b92740f9db66a0b6
    import error: API rate limit exceeded
    imported 1935 issues and 63 identities with default bridge
    git bug bridge pull  336.95s user 60.75s system 15% cpu 43:33.15 total
    

    I was expecting a resume (after a cool down period) would pick up a few more, but it doesn't:

    % git bug bridge pull
    import error: API rate limit exceeded
    imported 0 issues and 0 identities with default bridge
    git bug bridge pull  169.74s user 78.93s system 9% cpu 42:08.63 total
    

    Similar runtime suggests that the same issues were processed, hence none were obtained in addition, before the same rate limit kicked in.

    I can use --since to get a few more, but not all it seems. Is there a way to incrementally pull a large number of issues from github?

    bug 
    opened by mih 24
  • Question: can git-bug

    Question: can git-bug "branch" and "merge" (similar/same as regular git files/content)?

    Question: can git-bug bugs "branch" and "merge" (similar/same as regular git files/content)?

    If not, does it make sense to add such a feature in the future?

    Core 
    opened by johnnyutahh 24
  • We can't make a proper organisation because the name git-bug is already taken on Github

    We can't make a proper organisation because the name git-bug is already taken on Github

    Hello @git-bug

    This is an attempt to contact you as you don't have any other way of contact on your Github profile.

    As you can see in this repository, git-bug is a distributed bug tracker embedded in git. It is now relatively popular and I would like to promote it to a real Github organization to grow a community and regroup the various related repository.

    The obvious git-bug name is taken by your account that you haven't used in years now. Would you consider releasing this name? That would be very nice of you. It's not much but I can send you some stickers of this project in exchange.

    Could you contact me at [email protected] ?

    opened by MichaelMure 22
  • Multiple bugs with gitlab bridge.

    Multiple bugs with gitlab bridge.

    Hi,

    Playing with git-bug on a existing gitlab repository with a few existing issues on the vendor's bug tracker, I ran trough the following errors:

    After having successfully configured the bridge I could import the gitlab issues as well as creating a couple of local issues with git bug add, so far so good. Then, I meet the following errors:

    • when doing again git bug bridge pull, issues are duplicated with new hashes.
    • nothing is exported when doing git bug bridge push, it jus returns exported 0 issues with myBridge bridge.

    I've tested the bridge on a freshly created repo on gitlab, again the first steps goes well, but this time when doing git bug bridge pull a second time to test if duplicates arise, I got this crash:

    panic: runtime error: index out of range [-1]                                                                                                        
                                                                            
    goroutine 51 [running]:       
    github.com/MichaelMure/git-bug/bridge/gitlab/iterator.(*issueIterator).Value(...)
            /home/dtrckd/src/_sink/git-bug/bridge/gitlab/iterator/issue.go:38
    github.com/MichaelMure/git-bug/bridge/gitlab/iterator.(*Iterator).NextIssue(0xc0010ba000, 0xc000043dd0)
            /home/dtrckd/src/_sink/git-bug/bridge/gitlab/iterator/iterator.go:86 +0x244
    github.com/MichaelMure/git-bug/bridge/gitlab.(*gitlabImporter).ImportAll.func1(0xc000260100, 0xc0000aed00, 0xc0010bc000)
            /home/dtrckd/src/_sink/git-bug/bridge/gitlab/import.go:70 +0x547
    created by github.com/MichaelMure/git-bug/bridge/gitlab.(*gitlabImporter).ImportAll
            /home/dtrckd/src/_sink/git-bug/bridge/gitlab/import.go:66 +0x146
    
    

    Similar scenario on Github seems to work fine.

    Version: git-bug version: 0.7.1-dev-28c3ee3b71 github.com/xanzy/go-gitlab v0.29.0 go version go1.14.1 linux/amd64

    Gitlab: 12.9.2 (self hosted) OS: Linux 4.19.0-8-amd64 / Debian 10 x86_64

    bug bridge 
    opened by dtrckd 22
  • Fish completion not working

    Fish completion not working

    Fish completion for git-bug doesn't seem to work for me. Since it wasn't even listed in the readme I assumed there wasn't a completion script available and have started working on my own version, but then I found it in the repository.

    Is the script just a work in progress or should it work properly and this is an actual bug?

    opened by erazemk 19
  • build(deps): bump golang.org/x/sys from 0.3.0 to 0.4.0

    build(deps): bump golang.org/x/sys from 0.3.0 to 0.4.0

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps golang.org/x/sys from 0.3.0 to 0.4.0.

    Commits
    • b60007c unix: add Uvmexp and SysctlUvmexp for NetBSD
    • b751db5 unix: gofmt hurd files after CL 459895
    • b360406 unix: support TIOCGETA on GNU/Hurd
    • 3086868 unix: regen on OpenBSD 7.2
    • 2b11e6b unix: remove Mclpool from openbsd types
    • 7c6badc unix: convert openbsd/mips64 to direct libc calls
    • 3b1fc93 unix: avoid allocations for common uses of Readv, Writev, etc.
    • 2204b66 cpu: parse /proc/cpuinfo on linux/arm64 on old kernels when needed
    • 72f772c unix: offs2lohi should shift by bits, not bytes
    • cffae8e unix: add ClockGettime on *bsd and solaris
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • build(deps): bump json5 from 1.0.1 to 1.0.2 in /webui

    build(deps): bump json5 from 1.0.1 to 1.0.2 in /webui

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies javascript 
    opened by dependabot[bot] 0
  • Critical security vulnerabilities in Go's standard library

    Critical security vulnerabilities in Go's standard library

    Go v1.19.4 is required to resolve all the security vulnerabilities listed by govulncheck:

    govulncheck ./... 
    govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.
    
    Scanning for dependencies with known vulnerabilities...
    Found 3 known vulnerabilities.
    
    Vulnerability #1: GO-2022-1144
      An attacker can cause excessive memory growth in a Go server
      accepting HTTP/2 requests. HTTP/2 server connections contain a
      cache of HTTP header keys sent by the client. While the total
      number of entries in this cache is capped, an attacker sending
      very large keys can cause the server to allocate approximately
      64 MiB per open connection.
    
      Call stacks in your code:
          commands/webui.go:194:26: github.com/MichaelMure/git-bug/commands.runWebUI calls net/http.Server.ListenAndServe
    
      Found in: net/[email protected]
      Fixed in: net/[email protected]
      More info: https://pkg.go.dev/vuln/GO-2022-1144
    
    Vulnerability #2: GO-2022-0969
      HTTP/2 server connections can hang forever waiting for a clean
      shutdown that was preempted by a fatal error. This condition can
      be exploited by a malicious client to cause a denial of service.
    
      Call stacks in your code:
          commands/webui.go:194:26: github.com/MichaelMure/git-bug/commands.runWebUI calls net/http.Server.ListenAndServe
    
      Found in: net/[email protected]
      Fixed in: net/[email protected]
      More info: https://pkg.go.dev/vuln/GO-2022-0969
    
    Vulnerability #3: GO-2022-1039
      Programs which compile regular expressions from untrusted
      sources may be vulnerable to memory exhaustion or denial of
      service. The parsed regexp representation is linear in the size
      of the input, but in some cases the constant factor can be as
      high as 40,000, making relatively small regexps consume much
      larger amounts of memory. After fix, each regexp being parsed is
      limited to a 256 MB memory footprint. Regular expressions whose
      representation would use more space than that are rejected.
      Normal use of regular expressions is unaffected.
    
      Call stacks in your code:
          repository/index_bleve.go:115:28: github.com/MichaelMure/git-bug/repository.bleveIndex.Search calls github.com/blevesearch/bleve.indexImpl.Search, which eventually calls regexp/syntax.Parse
    
      Found in: regexp/[email protected]
      Fixed in: regexp/[email protected]
      More info: https://pkg.go.dev/vuln/GO-2022-1039
    
    === Informational ===
    
    The vulnerabilities below are in packages that you import, but your code
    doesn't appear to call any vulnerable functions. You may not need to take any
    action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
    for details.
    
    Vulnerability #1: GO-2022-0988
      JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
      Found in: net/[email protected]
      Fixed in: net/[email protected]
      More info: https://pkg.go.dev/vuln/GO-2022-0988
    
    opened by smoyer64 0
  • problem with gitlab push

    problem with gitlab push

    I have a self hosted GitLab 15.6.0-ee and I cannot push any locally created issues. I am using the pre built 0.8.0 binary for win64

    • Bridge configured correctly (I think)
    • Pulled issues from project (with some errors)
    • Adopted my gitlab user which comes when I pull
    • Add a new bug/issue using the WebUI
    • git bug ls shows the new bug
    >git bug bridge push
    exported 0 issues with default bridge
    

    As mentioned, the git bug bridge pull did not run cleanly:

    >git bug bridge pull
    [8844b1e] new identity: 8844b1eb4852a9a84f497c78a93057d2f588a4c049652d062d75885b35b1f4e5
    [abbefcc] new issue: abbefcc80a4fee9566b8205f324c4b2e8ee765a81118d77296eddb30605493a5
    import error on entity 608: issue event creation: unexpected event
    import error on entity 609: issue event creation: unexpected event
    import error on entity 610: issue event creation: unexpected event
    [abbefcc] new comment: a3b6b3efcbc80a54fee29566eb82085f3274c4bc2e8e4e7651a811018d7d7296
    [abbefcc] changed status with op: d08663dff96760da23ec10b611f48aa5662ae54f3c1c1653602bb36bf02e5fea
    [04e5722] new issue: 04e5722e69e3a4d9f32fea893bc11b7147d66efe1f76723838d82b7ed9d0b48f
    [04e5722] changed status with op: 0b67543735ca90a9662d3a4c2af39a10d945c02dfc70ae602ca7ff9195ff9492
    [2b81d80] new issue: 2b81d800b10d954848ecdfb05158cb58d5521562001725e29cc773a1b7e155b5
    [2b81d80] new comment: 2cb0851d8f00b110d95d48489ecdf9b051158cb158d5e521576200f17253e29c
    import error on entity 713: issue event creation: unexpected event
    import error on entity 714: issue event creation: unexpected event
    [2b81d80] changed status with op: b1c1eca65b76a98e22404db6ef791568b838539629070ca070391907f23764a5
    [13abb35] new issue: 13abb3506964e26e26d1a6e80416eacdf0ec88a2a398f92425819759bb1d7a94
    [13abb35] new comment: 1b3fa3bb3a5069f64e246e261d1a6de804816eabcdf0eec883a2a3098f982425
    [39f55ae] new issue: 39f55aeffc6b18e7a65fb9c4401b62fbd592fb1bb5241a8b0c870b41b24d5992
    import error on entity 913: issue event creation: unexpected event
    import error on entity 915: issue event creation: unexpected event
    [663f0f4] new issue: 663f0f4f501039cf5d29ad1ab118af1017910a1784bb8b8e819aad95a386c6be
    import error on entity 914: issue event creation: unexpected event
    [db32949] new issue: db32949776b3a09d9269749d2589f64d6ab333550149bf94339321c492d18372
    import error on entity 909: issue event creation: unexpected event
    [db32949] new comment: dcb938294e97767b3a089d928697489d25889f644d6acb33395501849bfa9433
    [cafc218] new issue: cafc218f770def0533393798257caf9d3d07c5a60bf6984a08d414e0110427a8
    [cafc218] new comment: c0a6f3c2198f77d0def1053363937a982577caf59d3d907c51a60b3f69834a08
    import error on entity 912: issue event creation: unexpected event
    import error on entity 999: issue event creation: unexpected event
    [4524143] new issue: 45241432218c61b8587453bcd68fff6445182ec752b64120db39936b318241e0
    [4524143] new comment: 44582c41463221a8c61cb858e74536bcd618fffe64453182ebc7524b641b20db
    [af16b22] new issue: af16b22e1400d0b00530603cd82ac8cbab8242ad8e7d5e63a14e2286d7491f04
    import error on entity 997: issue event creation: unexpected event
    [43dd5be] new issue: 43dd5beb54799c1ef4c5e1b73e3f6373261931ee3171bd106e6695d8fe03fc97
    import error on entity 1013: issue event creation: unexpected event
    import error on entity 1014: issue event creation: unexpected event
    imported 11 issues and 1 identities with default bridge
    
    bridge 
    opened by buestad 2
  • Submodules and working trees are not handled correctly

    Submodules and working trees are not handled correctly

    In git submodules and working trees the .git path is a file linking to the real working tree via following syntax:

    gitdir: /some/absolute/or/relative/path
    

    This is not handled correctly and throws a Error: .git exist but is not a directory error

    good first issue Easy pick 
    opened by tionis 3
Releases(v0.8.0)
Owner
Michael Muré
Michael Muré
ReGit: A Tiny Git-Compatible Git Implementation written in Golang

ReGit is a tiny Git implementation written in Golang. It uses the same underlying file formats as Git. Therefore, all the changes made by ReGit can be checked by Git.

null 167 Oct 31, 2022
A Git RPC service for handling all the git calls made by GitLab

Quick Links: Roadmap | Want to Contribute? | GitLab Gitaly Issues | GitLab Gitaly Merge Requests | Gitaly is a Git RPC service for handling all the gi

null 1 Nov 13, 2021
A simple cli tool for switching git user easily inspired by Git-User-Switch

gitsu A simple cli tool for switching git user easily inspired by Git-User-Switch Installation Binary releases are here. Homebrew brew install matsuyo

Masaya Watanabe 207 Dec 31, 2022
Removes unnecessarily saved git objects to optimize the size of the .git directory.

Git Repo Cleaner Optimizes the size of the .git directory by removing all of the files that are unnecessarily-still-saved as part of the git history.

Omar Yasser 2 Mar 24, 2022
Gum - Git User Manager (GUM) - Switch between git user profiles

Git User Manager (GUM) Add your profile info to config.yaml Build project: go bu

Mehmet Tevfik YÜKSEL 6 Feb 14, 2022
Git-now-playing - Git commits are the new AIM status messages

git-now-playing git-now-playing is an attempt to bring some of the panache of th

Paddy 1 Apr 4, 2022
Gogs is a painless self-hosted Git service

Gogs - A painless self-hosted Git service 简体中文 ?? Vision The Gogs (/gɑgz/) project aims to build a simple, stable and extensible self-hosted Git servi

Gogs 41.4k Jan 9, 2023
A highly extensible Git implementation in pure Go.

go-git is a highly extensible git implementation library written in pure Go. It can be used to manipulate git repositories at low level (plumbing) or

go-git 4.2k Jan 8, 2023
commit/branch/workdir explorer for git

gitin gitin is a commit/branch/status explorer for git gitin is a minimalist tool that lets you explore a git repository from the command line. You ca

Ibrahim Serdar Acikgoz 1.8k Dec 31, 2022
A command-line tool that makes git easier to use with GitHub.

hub is a command line tool that wraps git in order to extend it with extra features and commands that make working with GitHub easier. For an official

GitHub 22.2k Jan 1, 2023
A tool to monitor git repositories and automatically pull & push changes

git-o-matic A tool to monitor git repositories and automatically pull & push changes Installation Packages & Binaries Arch Linux: gitomatic Binaries f

Christian Muehlhaeuser 1k Dec 20, 2022
SQL interface to git repositories, written in Go. https://docs.sourced.tech/gitbase

gitbase gitbase, is a SQL database interface to Git repositories. This project is now part of source{d} Community Edition, which provides the simplest

source{d} 2k Dec 25, 2022
Fast and powerful Git hooks manager for any type of projects.

Lefthook The fastest polyglot Git hooks manager out there Fast and powerful Git hooks manager for Node.js, Ruby or any other type of projects. Fast. I

Abroskin Alexander 2.6k Jan 4, 2023
Implementation of git internals from scratch in Go language

This project is part of a learning exercise to implement a subset of "git" commands. It can be used to create and maintain git objects, such as blobs, trees, commits, references and tags.

Shyamsunder Rathi 39 Nov 27, 2022
A Simple and Comprehensive Vulnerability Scanner for Container Images, Git Repositories and Filesystems. Suitable for CI

A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Abstract Trivy (tri pronounced like trigger, vy

Aqua Security 15.6k Jan 9, 2023
go mod vendor lets you check in your dependencies to git, but that's both bloaty (for developers) and tedious (remembering to update it).

go-mod-archiver Afraid of being unable to build historical versions of your Go program? go mod vendor lets you check in your dependencies to git, but

Tailscale 86 Dec 1, 2022
Quickly clone git repositories into a nested folders like GOPATH.

cl cl clones git repositories into nested folders like GOPATH and outputs the path of the cloned directory. Example: cl https://github.com/foo/bar Is

Felix Geisendörfer 13 Nov 30, 2022
Switch between your git profiles easily

Git Profile Switcher Switch between your git profiles easily Install With Brew brew install theykk/tap/git-switcher With golang go get github.com/the

Kaan Karakaya 216 Dec 11, 2022
Store private data inside a git repository.

git-private lets you store private data inside a git repo. A common use case is protecting files containing API keys et.c.

Erik Agsjö 10 Nov 13, 2022