Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

GitArgus

Python utility to synchronize state of git workspaces for developers who use multiple machines. Uses AWS free tier DynamoDB to store the state. Can automatically pull changes if fast-forwarding is possible. Currently version only supports Unix systems.

Installation

pip install gitargus

AWS Infrastructure setup

You can create a free AWS account and use the always-free allowance to run GitArgus. Consult AWS documentation on how to perform the required steps.

Create a DynamoDB table with a String partition key named 'hostname'. 1 read and write capacity should be enough, but turning on capacity auto scaling is recommended.

Install aws-cli to each machine you will run GitArgus on. Log in with a user and save it's credentails who has permission to write to the DynamoDB table. GitArgus will pick up these credentials.

Configuration

Create the '.gitargus' directory in your home folder, and create the configuration file 'config.yml':

hostname: machine
root: /home/user/Workspace
repositories:
    - repo1
    - repo2
    - project1/repo1
    - project2/repo1
    - project2/repo2
aws:
    dynamodb:
        table: git
timezone: Europe/Budapest
  • hostname - the name of the machine, will be used as key in DynamoDB
  • root - the directory where the repositories are
  • repositories - list of the repositories to handle, can handle multiple directory levels
  • aws.dynamodb.table - the name of the DynamoDB table
  • timezone - timezone of the timestamps, useful in case of remote machines in different timezones

Useage

You can start the process with the following command:

python -m gitargus

Either you can run manually or set up a cron job.

Logs

The log file is located at ~/.gitargus/gitargus.log.

User Interface

The server.py file can be used for a stop-gap method to check the contents of the DynamoDB table. First install uvicorn, then run it with uvicorn server:app. Then use the url http://127.0.0.1:8000/{hostname} to access the json response. This is a temporary solution and will be removed before realese.

A MacOS/iPadOS/iOS application is in the very early stages of development.

Release files for gitargus 1.0.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gitargus 1.0.0b1
File Size Uploaded
gitargus-1.0.0b1.tar.gz 5.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitargus 1.0.0b1
File Interpreter ABI Platform
gitargus-1.0.0b1-py3-none-any.whl Python 3 none any Details

Total release size: 10.7 kB

Release files / gitargus-1.0.0b1.tar.gz

Download URL gitargus-1.0.0b1.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
90dd1f5d5ec4c0c0a88201b4fb44d8183ebf0d6d18c514fd230f3d8da2a68466
BLAKE2b-256 checksum
How to use checksums
52df3c9016cd3b7cbfb8f434cf456b05330fe0a64d8dc15e3f00c6d174a577f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.6

Release files / gitargus-1.0.0b1-py3-none-any.whl

Download URL gitargus-1.0.0b1-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5826fcdb7f06f817e97893a3aaf6f0ff4d3dbce4751d83f4a934bc82e1418d0
BLAKE2b-256 checksum
How to use checksums
2e432ebc47944e90b423d4fbb8b8812716d45c8b102753ca5257d8c1c66645c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

1.0.0b1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page