GithubHelp home page GithubHelp logo

git-rcv's Introduction

Git-Rcv

Python script to create a simple Git wrapper over SSH.

Each repo has an owner user and a list of users that may read and a list of user that may write. The owner may edit the permission list.

Git-Rcv uses the authorized_keys list to control access and authenticate the users. By now, the authorized_keys file management must be done manually.

Installing

Put the code somewhere, and edit your authorized_keys file. Use the following format for each key:

command="PATH-TO/git-rcv USERNAME",no-X11-forwarding,no-port-forwarding ssh-rsa BASE64-KEY KEY-IDENTIFIER

Replacing:

  • PATH-TO with the path where git-rcv resides.
  • USERNAME the username (in git-rcv context) for the given key.
  • BASE64-KEY the rsa public key, encoded in base64.
  • KEY-IDENTIFIER some tip for what key is it. Normally the user and the name of computer that hold this key.

It is also suggested that you create a new user dedicated only for GIT access and remove passworded access to it.

Usage

  • ssh git_rcv_user@git_rcv_host git-receive-pack repo_dir Used internally by git to write data to repo.
  • ssh git_rcv_user@git_rcv_host git-upload-pack repo_dir Used internally by git to read data from repo.
  • ssh git_rcv_user@git_rcv_host git-upload-archive repo_dir Used internally by git to read data from repo.
  • ssh git_rcv_user@git_rcv_host fork repo_dir forked_repo_dir Copies the repository at repo_dir to forked_repo_dir. This is faster (and saves disk space) than creating a forked_repo_dir manually and pushing repo_dir's data do the new repo.
  • ssh git_rcv_user@git_rcv_host create-repo repo_dir Creates a repository with path repo_dir.
  • ssh git_rcv_user@git_rcv_host receive-permissions repo_dir Outputs the list of permissions of repo in repo_dir.
  • ssh git_rcv_user@git_rcv_host upload-permissions repo_dir Read a new list of persmissions from standard input and write it over repo_dir's permission list.
  • ssh git_rcv_user@git_rcv_host list-repos List every repo that the actual user has read or write access.

Todo

  • Improve this document
  • Added mechanism to manage the keys

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.