roundabout,
created on Thursday, 2 January 2025, 10:59:09 (1735815549),
received on Thursday, 2 January 2025, 10:59:11 (1735815551)
Author identity: vlad <vlad.muntoiu@gmail.com>
9d221448f44f0f881719790f4c6c682a5fc1c78c
README.md
@@ -1,21 +1,25 @@
Roundabout ========== The roundabout is a simple git hosting server that does a few things:Roundabout is a simple git hosting server that does a few things:* It allows you to push and pull git repositories, currently only over HTTP(S). * Why HTTP? It's easy to set up, can be more easily integrated, supports encryption (HTTPS) while still allowing anonymous cloning, and is easier for this to implement: SSH would require integration with the git daemon. * It has a web interface, without any SPA nonsense. JS is used to enhance the experience, not to replicate everything your browser natively does.* You can have an account and manage your repositories. * You can collaborate with others using forums and code reviews on commits. * You can merge, of course. * There are email notifications for various events. * There are no wikis, but there is static site hosting. * Experimental support for federated merging from other roundabouts.It doesn't try to replace your local copy. It doesn't have web editing or thingswhich don't benefit from collaboration.It doesn't try to replace your local copy. It doesn't have web editing or features which don't benefit from collaboration, in other words, it's not a SaaSS (Service as a Software Substitute).It's not yet stable, and you should always keep local repositories (this is true for any git hosting service).
@@ -26,3 +30,14 @@ the Jinja2 templating engine. It uses the git command line tool for git access.
Most importantly, it's free software, licensed under the GNU Affero General Public Licence, version 3 or later; see [the licence file](LICENCE.md) for more information. There's an official roundabout, here at <https://roundabout-host.com>. I call instances roundabouts, as a common noun. roundabout-host is just the official one, don't use that name to refer to the software itself. It was named roundabout because it's a node for branches. For the Americans, roundabout means traffic circle. Please report bugs and leave suggestions on the [forum](https://roundabout-host.com/roundabout/roundabout/forum).
api.py
@@ -1,3 +1,23 @@
""" This module provides an XML API for accessing data from Roundabout. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import uuid from models import * from app import app, db, bcrypt
app.py
@@ -1,3 +1,21 @@
""" Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """__version__ = "0.5.3+" import os
celery_integration.py
@@ -1,3 +1,23 @@
""" This module helps integrate the Celery task manager with a Flask application. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import flask from celery import Celery, Task
celery_tasks.py
@@ -1,3 +1,23 @@
""" This module contains asynchronous tasks for Roundabout using Celery. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import common import time import os
common.py
@@ -1,3 +1,23 @@
""" This module provides some essential utilities for Roundabout. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import os import subprocess
config.py
@@ -146,7 +146,7 @@ footer = f"""
Beta testing. Not for production use. </p> <p> Application © 2024 Roundabout developers. Content belongs to the repository contributors,Application © 2023-2025 Roundabout developers. Content belongs to the repository contributors,unless otherwise stated. </p> <p>
email_send.py
@@ -1,3 +1,23 @@
""" This module provides auxiliary functions for sending e-mails. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import config from jinja2 import Environment, FileSystemLoader, select_autoescape import smtplib
git_http.py
@@ -1,3 +1,23 @@
""" This module provides a Flask implementation of the Git smart HTTP protocol. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import uuid from models import * from app import app, db, bcrypt
jinja_utils.py
@@ -1,3 +1,23 @@
""" This module provides filters and other utilities for the Jinja2 templating engine. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """from app import app, _, n_ import flask from datetime import datetime
markdown.py
@@ -1,3 +1,26 @@
""" This is a parser for a Markdown-like language, but it isn't compatible with the CommonMark specification; check doc/enduser/Formatting messages.md for its syntax. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """import re import bs4 as beautifulsoup import sys
misc_utils.py
@@ -1,3 +1,24 @@
""" This module provides some more general utilities useful in various parts of the application. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """from common import * __all__ = ["git_command", "only_chars", "get_permission_level", "get_visibility", "get_favourite", "human_size",
models.py
@@ -1,3 +1,23 @@
""" This module defines Roundabout's SQLAlchemy database models. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """__all__ = [ "RepoAccess", "RepoFavourite",
syntax_colouring.py
@@ -1,3 +1,24 @@
""" This module is under development and not yet in use in Roundabout. It is an experiment to try syntax highlighting in the application's web interface. Roundabout - git hosting for everyone <https://roundabout-host.com> Copyright (C) 2023-2025 Roundabout developers <root@roundabout-host.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """from pygments import highlight from pygments.style import Style from pygments import token
templates/default.html
@@ -26,7 +26,7 @@
@licstart The following is the entire license notice for the JavaScript code in this page. Copyright 2023-2024 Roundabout contributorsCopyright 2023-2025 Roundabout contributorsThe JavaScript code in this page is free software: you can redistribute it and/or modify it under the terms of the GNU