🚧 inital export with issues and wiki pages
This commit is contained in:
parent
7c4e1c6d5f
commit
57dd12de07
3 changed files with 61 additions and 2 deletions
|
|
@ -17,7 +17,7 @@ repos:
|
||||||
rev: 5.12.0
|
rev: 5.12.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: isort
|
- id: isort
|
||||||
args: ["--profile", "black"]
|
args: ["--profile", "black", "-l", "79"]
|
||||||
- repo: https://github.com/PyCQA/flake8
|
- repo: https://github.com/PyCQA/flake8
|
||||||
rev: 6.1.0
|
rev: 6.1.0
|
||||||
hooks:
|
hooks:
|
||||||
|
|
|
||||||
|
|
@ -47,3 +47,21 @@ def get_project_details(args):
|
||||||
raise KeyError(f"Project {args.project} not found")
|
raise KeyError(f"Project {args.project} not found")
|
||||||
|
|
||||||
print(json.dumps(project))
|
print(json.dumps(project))
|
||||||
|
|
||||||
|
|
||||||
|
def get_issues(args):
|
||||||
|
project_id = args.project_id
|
||||||
|
url = gitlab_url(
|
||||||
|
f"/projects/{project_id}/issues?pagination=offset&per_page=500&"
|
||||||
|
)
|
||||||
|
|
||||||
|
response = get(url, args)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
def get_wiki(args):
|
||||||
|
url = gitlab_url(f"/projects/{args.project_id}/wikis?with_content=1")
|
||||||
|
response = get(url, args)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,13 @@ import click
|
||||||
from prettytable import PrettyTable
|
from prettytable import PrettyTable
|
||||||
from requests.exceptions import HTTPError
|
from requests.exceptions import HTTPError
|
||||||
|
|
||||||
from .api import get_project_details, get_user, list_projects
|
from .api import (
|
||||||
|
get_issues,
|
||||||
|
get_project_details,
|
||||||
|
get_user,
|
||||||
|
get_wiki,
|
||||||
|
list_projects,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
|
|
@ -166,3 +172,38 @@ def click_get_user(ctx):
|
||||||
|
|
||||||
|
|
||||||
cli.add_command(click_get_user)
|
cli.add_command(click_get_user)
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@click.option("--project", help="Project name or ID", required=True)
|
||||||
|
@click.pass_context
|
||||||
|
def export_project(ctx, project):
|
||||||
|
project_list = [
|
||||||
|
prj
|
||||||
|
for prj in list_projects(ctx.obj)
|
||||||
|
if (prj["id"] == project or prj["name"] == project)
|
||||||
|
]
|
||||||
|
|
||||||
|
if len(project_list) > 1:
|
||||||
|
print("Multiple projects found.")
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
if len(project_list) < 1:
|
||||||
|
print("No matching projects")
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
project_details = project_list[0]
|
||||||
|
|
||||||
|
ctx.obj.project_id = project_details["id"]
|
||||||
|
|
||||||
|
issues = get_issues(ctx.obj)
|
||||||
|
|
||||||
|
project_details["issues"] = issues
|
||||||
|
|
||||||
|
wiki_pages = get_wiki(ctx.obj)
|
||||||
|
project_details["wiki_pages"] = wiki_pages
|
||||||
|
|
||||||
|
print(json.dumps(project_details))
|
||||||
|
|
||||||
|
|
||||||
|
cli.add_command(export_project)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue