semvec/pypi-packages huggingface dataset:
degit 0.0.1
de-centrailized git
Requires Python: >=3.8

# De-Github

## Setup

We are using Python 3.8 for development.

Install required packages by running
```
pip install -r requirements.txt
```

We are using Ganache to create a blockchain network at local environment for development and testing.

Please head to the [Ganache website](https://trufflesuite.com/ganache/) and download it.

Once you have installed Ganache, you can simple click on quickstart and you should be able to call degit functions.

Remember to define the `RPC_SERVER` environment variable, by default the value is `http://127.0.0.1:7545` which is the default network of Ganache.

Also please put your private key in the `.key` file. Degit will automatically load the key and use it for git operations.

## How to run tests
We have prepare a `test.py` for your convenient.

**Before you run the tests, you must put in two different private key to `.key` and `.second_user_key` (you can randomly pick 2 from Ganache).**

Then run:
```
python test.py
```

You should obtain a console output similar to this one:
```
Owner's Log:
File last modified time on Owner machine: 2022-05-08 12:25:00
Initialized Repository. State file created in current directory.
Committed files:


Staged files:

	test.txt

Commit 076bb1b40881a287b47ca56d7d17d2c54815dd36 was successful.
Contract deployed to chain, contract address: 0x7B9ef343909fD32b8Ad7c9667Dc49Dd4034e4742. 
Pushed commits "076bb1b40881a287b47ca56d7d17d2c54815dd36" to repository "test".
Whitelisted user of address: 0xbe2545A975e8A6Efd0BA5c4600aE4CfA228DA8b5
Dumped repository config to ./repo_config.pkl.

Friend's Log:
Loaded repository config from ./repo_config.pkl
Replace your repository by commit 076bb1b40881a287b47ca56d7d17d2c54815dd36
File last modified time on friend machine: 2022-05-08 12:25:07


Process finished with exit code 0
```

This `test.py` mimic two users (1 owner and 1 collaborator):
1. The owner has written some code in `test.txt`
1. The owner runs `degit init test` (`test` is the repository name)
1. The owner runs `degit add test.txt`
1. The owner runs `degit commit`
1. The owner runs `degit push` to push `test.txt` to the blockchain network
1. The owner gets his friend account address and runs `degit whitelist_add_user <friend_address>`
1. The owner runs `degit dump_repository_config`
1. The friend runs `degit load_repository_config`
1. The friend runs `degit pull`
1. The friend now has the `test.txt` in his machine

The printed file last modified time shows that the file is truly replaced by the one pulled from the repository.

## FileStorage
At the moment we are using HKUST provided endpoint to upload file and download file. 

In the future, we might deploy a smart contract ourselves as a decentralized filestorage.

## Smart Contract
At the moment we have `./contracts/Repository.sol` only.

This is the template repository we defined to allow user to create repository with access control.

## Limited Functions
It is unfortunate that due to limited time and team members, we are unable to replicate git fully.
oc_sprint_datetime 0.1.0
The library with a few useful sprint date and time methods.
Requires Python: >=3.8

# oc_sprint_datetime

> My template for small libraries and command-line tools.

[![PyPI Version][pypi-image]][pypi-url]
[![Build Status][build-image]][build-url]
[![Code Coverage][coverage-image]][coverage-url]
[![Code Quality][quality-image]][quality-url]

## Installation

```sh
pip install oc_sprint_datetime
```

<!-- Badges -->

[pypi-image]: https://img.shields.io/pypi/v/oc_sprint_datetime
[pypi-url]: https://pypi.org/project/oc_sprint_datetime/
[build-image]: https://github.com/0x29a/oc_sprint_datetime/actions/workflows/build.yml/badge.svg
[build-url]: https://github.com/0x29a/oc_sprint_datetime/actions/workflows/build.yml
[coverage-image]: https://codecov.io/gh/0x29a/oc_sprint_datetime/branch/master/graph/badge.svg
[coverage-url]: https://codecov.io/gh/0x29a/oc_sprint_datetime
[quality-image]: https://api.codeclimate.com/v1/badges/6e64bdcfef686ced4b10/maintainability
[quality-url]: https://codeclimate.com/github/0x29a/oc_sprint_datetime