Metadata-Version: 2.4
Name: vcs_mirrors
Version: 0.0.7
Home-page: https://git.lxch.eu/pcdummy/vcs-mirrors
Author: René Jochum
Author-email: rene@jochums.at
License: MIT
Keywords: Console VCS mirror vcs-mirrors
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: Software Development :: Version Control :: Bazaar
Classifier: Topic :: Software Development :: Version Control :: Git
License-File: LICENSE
Requires-Dist: ruamel.yaml
Requires-Dist: zope.interface
Provides-Extra: gitlab
Requires-Dist: python-gitlab; extra == "gitlab"
Provides-Extra: github
Requires-Dist: pygithub; extra == "github"
Provides-Extra: development
Requires-Dist: pylint; extra == "development"
Requires-Dist: autopep8; extra == "development"
Requires-Dist: flake8; extra == "development"
Requires-Dist: ipython; extra == "development"
Requires-Dist: zest.releaser; extra == "development"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist

.. image:: https://badge.fury.io/py/vcs-mirrors.svg
   :target: https://badge.fury.io/py/vcs-mirrors

.. image:: https://img.shields.io/pypi/pyversions/vcs-mirrors.svg
   :target: https://pypi.python.org/pypi/vcs-mirrors

vcs-mirrors
===========

A python-only clone of https://github.com/samrocketman/gitlab-mirrors/ with a YAML config file.

Requirements
------------

- Python 3.5+ (Debian Stretch+, Ubuntu Xenial+)
- virtualenv if you don't want to mess with System Python
- git-remote-bzr https://github.com/felipec/git-remote-bzr for Bazaar support

Features
--------

* Mirror different types of source repositories: Bazaar, Git, Subversion. Mirror all into git.
* GitLab mirror adding.
    * When adding a mirror if the project doesn't exist in GitLab it will be auto-created.
    * Set project creation defaults (e.g. issues enabled, wiki enabled, etc.)
* Github mirror adding.
    * Same as with Gitlab.
* mirror anything to Git (not just Gitlab and Github).
* Update a single mirror.
* Update all known mirrors.


Installation
++++++++++++

On Debian
---------

For Bazaar support:

.. code:: bash

    $ apt install git-remote-bzr

Install into a virtualenv:

.. code:: bash

    $ virtualenv -p /usr/bin/python3 --no-site-packages venv
    $ venv/bin/pip install "vcs-mirrors[gitlab,github]"

Then copy vcs-mirrors.yaml.example into your current-working-directory:

.. code:: bash

    $ cp venv/lib/python3.6/site-packages/vcs-mirrors/vcs-mirrors.yaml.sample vcs-mirrors.yaml

Edit it for your needs.

Usage
+++++
.. code:: bash

    venv/bin/vcs-mirrors -h
    venv/bin/vcs-mirrors add -h

add examples:
-------------

This one try to create a repo "pcdummy/proxmox-dockerfiles" on git.lxch.eu - the identifier must be unique in the config file:

.. code:: bash

   $ vcs-mirrors add me/p-dockerfiles https://github.com/pcdummy/proxmox-dockerfiles.git git.lxch.eu:pcdummy/proxmox-dockerfiles


This doesn't:

.. code:: bash

    $ vcs-mirrors add me/p-dockerfiles https://github.com/pcdummy/proxmox-dockerfiles.git git@git.lxch.eu:pcdummy/proxmox-dockerfiles.git

Full mirroring include "prune" and "force" pull/push:

.. code:: bash

    $ vcs-mirrors add -f -p me/p-dockerfiles https://github.com/pcdummy/proxmox-dockerfiles.git git.lxch.eu:pcdummy/proxmox-dockerfiles

If you give an host as target "add" creates the repo on the host and translates it to a git URL else add does nothing else than adding the params to your configuration file.


Development
+++++++++++

.. code:: bash

    $ pip install -e ."[development,gitlab,github]"


Keywords
++++++++

gitlab github sync mirror vcs-mirror bazaar

Changelog
=========

This document describes changes between each past release.

0.0.7 (2018-04-23)
------------------

- Fix pip install by moving away of PEP 420 Namespaces. [pcdummy]


0.0.6 (2018-04-23)
------------------

- Fix another typo in MANIFEST.in. [pcdummy]


0.0.5 (2018-04-23)
------------------

- Include python files in the pip packages, part2. [pcdummy]


0.0.4 (2018-04-23)
------------------

- Include python files in the pip packages. [pcdummy]


0.0.3 (2018-04-22)
------------------

- Add another debug line (to show CWD changes). [pcdummy]
- Add tag pushes. [pcdummy]
- Make mirroring finaly working by using "--mirror". [pcdummy]

0.0.2 (2018-04-21)
------------------

- Fixup classifiers. [pcdummy]

0.0.1 (2018-04-21)
------------------

- Initial Release. [pcdummy]

Contributors
============

* Sam Gleske - Idea and some code from https://github.com/samrocketman
* René Jochum <rene@jochums.at>
