{"id":22384710,"url":"https://github.com/stofte/gitbumr","last_synced_at":"2026-04-19T19:31:48.742Z","repository":{"id":146037830,"uuid":"151047842","full_name":"stofte/gitbumr","owner":"stofte","description":"Git client","archived":false,"fork":false,"pushed_at":"2019-12-10T15:49:48.000Z","size":445,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T20:23:43.117Z","etag":null,"topics":["cross-platform-desktop","git","libgit2","qml","qt5","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stofte.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-01T06:54:57.000Z","updated_at":"2024-09-11T16:00:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f5a6cf8-7698-4405-8778-60e45238a1f9","html_url":"https://github.com/stofte/gitbumr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stofte/gitbumr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stofte%2Fgitbumr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stofte%2Fgitbumr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stofte%2Fgitbumr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stofte%2Fgitbumr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stofte","download_url":"https://codeload.github.com/stofte/gitbumr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stofte%2Fgitbumr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32020449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform-desktop","git","libgit2","qml","qt5","rust-lang"],"created_at":"2024-12-05T01:18:55.914Z","updated_at":"2026-04-19T19:31:48.723Z","avatar_url":"https://github.com/stofte.png","language":"C++","readme":"# Gitbumr [![Build status](https://ci.appveyor.com/api/projects/status/211dlbqs63w61har?svg=true)](https://ci.appveyor.com/project/stofte/gitbumr)\n\nQt based Git client using a rust backend. WIP.\n\n![Log view](https://i.imgur.com/NLjuY5R.png \"Log view\")\n\n# Development\n\nFollowing are requirements to build the repository locally.\n\n - [rustc 1.33.0](https://rustup.rs/)\n - [Qt 5.12.1](https://www.qt.io/offline-installers)\n - [rust-qt-binding-generator](https://github.com/KDE/rust-qt-binding-generator) \n\nThe project has a QtCreator project, which doubles as a project file and a\nmakefile for [qmake](http://doc.qt.io/qt-5/qmake-manual.html).\n\n## Rust+Qt bindings\n\nThe project uses `rust-qt-binding-generator`\nto generate both a rust interface and a C++ interface for use by Qt. Since\ngenerating bindings happens only when the interface changes, it's a manual\nbuild step. Generated bindings are checked into sourcecontrol so the generator\nis not required when just building.\n\nTo use the generator check out the project and build a release executable\n`cargo build --release`, then add the executable to your path for convinience.\nRun `rust_qt_binding_generator binding.json` in the `lib` project folder to\nregenerate the binding code.\n\n## Windows requirements\n\nVisual Studio 2017 and Native SDK (check it in the VS installer). Windows CLI\nbuild steps can be found in the [appveyor.yml](appveyor.yml) build spec.\n\n## Ubuntu requirements\n\nTested on Ubuntu 18.04.2 LTS from Windows, using PuTTY/[VcXsrv](https://sourceforge.net/projects/vcxsrv/)\n\n - Get rust installed: `curl https://sh.rustup.rs -sSf | sh` and then set the path\n   `source $HOME/.cargo/env` (or restarting the shell should also work)\n - Qt installer and/or Rust requires these packages installed\n   `libgl1-mesa-glx libx11-xcb1 libxkbcommon-x11-dev libfontconfig`\n   `build-essential libxrender1 libssl-dev pkg-config libgl1-mesa-dev`\n - Download Qt installer:\n   `wget http://mirrors.dotsrc.org/qtproject/archive/qt/5.12/5.12.1/qt-opensource-linux-x64-5.12.1.run`\n - Mark installer as runnable `chmod +x qt-opensource-linux-x64-5.12.1.run`\n - Install `./qt-opensource-linux-x64-5.12.1.run`\n - Ensure *Tools \u003e QtCreator* and *Qt \u003e Desktop gcc 64-bit* are selected\n\nBe sure to run VcXsrv in the [right configuration](https://github.com/Microsoft/WSL/issues/2855#issuecomment-358861903)\nand remember to set/export `LIBGL_ALWAYS_INDIRECT=1` in the shell. If using PuTTY,\nalso remember to check \"Enable X11 forwarding\" under *Connection \u003e SSH \u003e X11*,\nand instead of setting the `DISPLAY` env variable in the shell, enter `:0` in\nthe \"X display location\" field.\n\n## Environment variables\n\nRunning the tests requires environment variables set.\n\n - `TST_GIT_PATH` path to a git repository used for tests.\n - `QML2_IMPORT_PATH` is used by Qt when looking for QML plugins. If the \nrepository is checked out at `C:\\src\\gitbumr` and shadowbuild has been configured inside\nthe repository, set the following path:\n`QML2_IMPORT_PATH=C:\\src\\gitbumr\\build-gitbumr-Desktop_Qt_5_12_1_MSVC2017_64bit-Release\\lib\\release`\n\n*QtCreator must have QML2_IMPORT_PATH set to run the application,* as the\nplugin cannot be loaded in the IDE environment otherwise. Set env variables\nvia *Projects \u003e Build Environment*.\n\n## Other notes\n\n - `app/res/gitbumr.rc` should be windows-1252 encoded\n - `itemProperties` in `binding.json` should be sorted alphabetically to avoid\n   confusion since `rust_qt_binding_generator` sorts these when generating the\n   user role index used to access the values in QML.\n\nQtCreator has some gotchas:\n\n - After editing the project files, manually run qmake by right-clicking the top\n   node in Projects pane\n - When adding qml components, Use Tools -\u003e QML/JS -\u003e Reset Code Model, to fix\n   IDE errors\n - [Qt+Win+OpenGL](https://wiki.qt.io/Qt_5_on_Windows_ANGLE_and_OpenGL) is host\n   to a multitude of [weird issues and crashes](https://bugreports.qt.io/browse/QTBUG-46074?jql=text%20~%20%22QT_OPENGL%22%20and%20text%20~%20%22Windows%22)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstofte%2Fgitbumr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstofte%2Fgitbumr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstofte%2Fgitbumr/lists"}