🚧 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
|
||||
hooks:
|
||||
- id: isort
|
||||
args: ["--profile", "black"]
|
||||
args: ["--profile", "black", "-l", "79"]
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: 6.1.0
|
||||
hooks:
|
||||
|
|
|
|||
|
|
@ -47,3 +47,21 @@ def get_project_details(args):
|
|||
raise KeyError(f"Project {args.project} not found")
|
||||
|
||||
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 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():
|
||||
|
|
@ -166,3 +172,38 @@ def click_get_user(ctx):
|
|||
|
||||
|
||||
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