Add information about protop2g app
Signed-off-by: Akashdeep Dhar <akashdeep.dhar@gmail.com>
This commit is contained in:
parent
9addec0744
commit
1552736e56
5 changed files with 184 additions and 0 deletions
BIN
docs/_static/cli-protop2g.png
vendored
Normal file
BIN
docs/_static/cli-protop2g.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 181 KiB |
BIN
docs/_static/tui-protop2g-main.png
vendored
Normal file
BIN
docs/_static/tui-protop2g-main.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
BIN
docs/_static/tui-protop2g-repo.png
vendored
Normal file
BIN
docs/_static/tui-protop2g-repo.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
|
@ -47,6 +47,7 @@ Following are the investigations of Pagure options to export and GitLab options
|
|||
pagure
|
||||
gitlab
|
||||
gitlab_file_import
|
||||
protop2g
|
||||
|
||||
|
||||
Conclusions
|
||||
|
|
183
docs/pagure2gitlab/protop2g.rst
Normal file
183
docs/pagure2gitlab/protop2g.rst
Normal file
|
@ -0,0 +1,183 @@
|
|||
.. _protop2g:
|
||||
|
||||
Prototypes built
|
||||
====
|
||||
|
||||
In order to be able to better understand what both the Pagure and GitLab APIs
|
||||
are capable of and how they would be able to be of assistance in helping us
|
||||
move assets from the source namespace to the destination namespace, we created
|
||||
a prototype tool called "protop2g".
|
||||
|
||||
First rendition
|
||||
----
|
||||
|
||||
The initial version of protop2g was hacked together in around a couple of days
|
||||
using libraries like
|
||||
`Requests <https://requests.readthedocs.io/>`_,
|
||||
`Asciimatics <https://asciimatics.readthedocs.io/en/stable/intro.html>` etc. to
|
||||
build an interactive text-based user interface.
|
||||
|
||||
The following is a screenshot of the TUI screen where the users are given the
|
||||
option to enter their source namespace location, API key for accessing the
|
||||
source namespace location, destination namespace location, API key for
|
||||
accessing the destination namespace location.
|
||||
|
||||
.. image:: ../_static/tui-protop2g-main.png
|
||||
:target: ../_static/tui-protop2g-main.png
|
||||
|
||||
The following is a screenshot of the TUI screen where the users are shown the
|
||||
metadata of both the source namespace and destination namespace. They are also
|
||||
given the option to pick which assets they wish to interact with and transfer,
|
||||
like repository data, issue tickets etc.
|
||||
|
||||
.. image:: ../_static/tui-protop2g-repo.png
|
||||
:target: ../_static/tui-protop2g-repo.png
|
||||
|
||||
Unfortunately, this approach was scrapped due to the following reasons :-
|
||||
|
||||
* The TUI application approach would not allow for a simpler automation to help
|
||||
folks who either own and/or maintain a lot of repositories.
|
||||
* The logic for building the screens and sharing information around the screens
|
||||
could possibly deviate from the actual feasibility checks.
|
||||
* The colour palette and the elements used in the TUI might not be accessible
|
||||
on a variety of terminal and console setups, that people have.
|
||||
|
||||
Second rendition
|
||||
----
|
||||
|
||||
After the initial version was archived in a different branch, the next version
|
||||
of protop2g was created using libraries like
|
||||
`Requests <https://requests.readthedocs.io/>`_,
|
||||
`Click <https://click.palletsprojects.com/en/8.1.x/>`_,
|
||||
`GitPython <https://gitpython.readthedocs.io/en/stable/tutorial.html>`_ etc. to
|
||||
better facilitate an interactive command-line interface.
|
||||
|
||||
The following is a console snippet of the help documentation of the overall
|
||||
usage of the protop2g application.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
(venv) [t0xic0der@fedorable protop2g]$ protop2g -g xxxxxxxxxxxxxxxxxx -p xxxxxxxxxxxxxxxxxx -s mdapi -d 42823949 -f t0xic0der -t t0xic0der repo --help
|
||||
Usage: protop2g [OPTIONS] COMMAND [ARGS]...
|
||||
|
||||
Options:
|
||||
-s, --srce TEXT Source namespace for importing assets from [required]
|
||||
-d, --dest TEXT Destination namespace for exporting assets to [required]
|
||||
-p, --pkey TEXT Pagure API key for accessing the source namespace
|
||||
[required]
|
||||
-g, --gkey TEXT GitLab API key for accessing the destination namespace
|
||||
[required]
|
||||
-f, --fusr TEXT Username of the account that owns the Pagure API key
|
||||
[required]
|
||||
-t, --tusr TEXT Username of the account that owns the GitLab API key
|
||||
[required]
|
||||
--version Show the version and exit.
|
||||
--help Show this message and exit.
|
||||
|
||||
Commands:
|
||||
repo Initialize transfer of repository assets
|
||||
tkts Initiate transfer of issue tickets
|
||||
|
||||
|
||||
The following is a console snippet of the help documentation for the "repo"
|
||||
command of the protop2g application.
|
||||
|
||||
The options for the command allow for people to be able to choose the branches
|
||||
that should be transferred.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
(venv) [t0xic0der@fedorable protop2g]$ protop2g -g xxxxxxxxxxxxxxxxxx -p xxxxxxxxxxxxxxxxxx -s mdapi -d 42823949 -f t0xic0der -t t0xic0der repo --help
|
||||
Usage: protop2g repo [OPTIONS]
|
||||
|
||||
Initialize transfer of repository assets
|
||||
|
||||
Options:
|
||||
-b, --brcs TEXT List of branches to extract
|
||||
--help Show this message and exit.
|
||||
|
||||
|
||||
The following is a console snippet of the help documentation for the "tkts"
|
||||
command of the protop2g application.
|
||||
|
||||
The options for the command allow for people to be able to choose the nature of
|
||||
issues they want to transfer.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
(venv) [t0xic0der@fedorable protop2g]$ protop2g -g xxxxxxxxxxxxxxxxxx -p xxxxxxxxxxxxxxxxxx -s mdapi -d 42823949 -f t0xic0der -t t0xic0der tkts --help
|
||||
Usage: protop2g tkts [OPTIONS]
|
||||
|
||||
Initiate transfer of issue tickets
|
||||
|
||||
Options:
|
||||
-o, --open Extract only the open issue tickets
|
||||
-c, --shut Extract only the closed issue tickets
|
||||
-a, --full Extract all the issue tickets
|
||||
--help Show this message and exit.
|
||||
|
||||
|
||||
The following is a console snippet of the protop2g application at work, where
|
||||
it is transferring the repository assets of all the branches from the source
|
||||
namespace to the destination namespace.
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
(venv) [t0xic0der@fedorable protop2g]$ protop2g -g xxxxxxxxxxxxxxxxxx -p xxxxxxxxxxxxxxxxxx -s mdapi -d 42823949 -f t0xic0der -t t0xic0der repo
|
||||
[ BUSY ] Requesting for source namespace metadata...
|
||||
[ PASS ] Source namespace metadata acquisition succeeded!
|
||||
Name: mdapi
|
||||
Identifier: 221
|
||||
Maintainer: Pierre-YvesChibon (ID pingou)
|
||||
Location: https://pagure.io/mdapi
|
||||
Address: https://t0xic0der:xxxxxxxxxxxxxxxxxx@pagure.io/mdapi.git
|
||||
Created on: Thu Oct 22 16:33:58 2015
|
||||
Last modified on: Thu Oct 22 16:33:58 2015
|
||||
Tags: ['fedmsg', 'fedora-infra']
|
||||
[ BUSY ] Requesting for destination namespace metadata...
|
||||
[ PASS ] Destination namespace metadata acquisition succeeded!
|
||||
Name: t0xic0der/protop2g-test
|
||||
Identifier: 42823949
|
||||
Maintainer: Akashdeep Dhar (ID t0xic0der)
|
||||
Location: https://gitlab.com/t0xic0der/protop2g-test
|
||||
Address: https://t0xic0der:xxxxxxxxxxxxxxxxxx@gitlab.com/t0xic0der/protop2g-test.git
|
||||
Created on: 2023-01-23T16:18:30.217Z
|
||||
Last modified on: 2023-01-28T18:44:14.075Z
|
||||
Tags: []
|
||||
[ BUSY ] Attempting source namespace assets clone...
|
||||
[ PASS ] Source namespace assets clone succeeded!
|
||||
Directory: /var/tmp/protop2g-tempsrce-a63xrvkc
|
||||
Time taken: 6.77 second(s)
|
||||
[ BUSY ] Attempting destination namespace assets clone...
|
||||
[ PASS ] Destination namespace assets clone succeeded!
|
||||
Directory: /var/tmp/protop2g-tempdest-w6_kxcbz
|
||||
Time taken: 2.36 second(s)
|
||||
[ BUSY ] Reading branches data from the locally cloned assets...
|
||||
[ PASS ] Branches data reading succeeded!
|
||||
Available in source namespace: 4 branch(es)
|
||||
- (SRCE branch) HEAD
|
||||
- (SRCE branch) master
|
||||
- (SRCE branch) production
|
||||
- (SRCE branch) staging
|
||||
Available in destination namespace: 5 branch(es)
|
||||
- (DEST branch) HEAD
|
||||
- (DEST branch) main
|
||||
- (DEST branch) master
|
||||
- (DEST branch) production
|
||||
- (DEST branch) staging
|
||||
Requested for transferring: 0 branch(es)
|
||||
[ BUSY ] Initializing namespace assets transfer...
|
||||
[ WARN ] Transferring 4 available branches
|
||||
[1/4] Branch 'HEAD' was transferred to the destination namespace
|
||||
[2/4] Branch 'master' was transferred to the destination namespace
|
||||
[3/4] Branch 'production' was transferred to the destination namespace
|
||||
[4/4] Branch 'staging' was transferred to the destination namespace
|
||||
Assets transferred: 4 branch(es) completed, 4 branch(es) requested
|
||||
Time taken: 4.99 second(s)
|
||||
[ PASS ] Namespace assets transfer succeeded!
|
||||
|
||||
|
||||
Resources
|
||||
----
|
||||
|
||||
The project can be found over `here <https://github.com/t0xic0der/protop2g>`_.
|
Loading…
Add table
Add a link
Reference in a new issue