🚧 inital export with issues and wiki pages

This commit is contained in:
Neill Cox 2023-10-24 22:02:49 +11:00
parent 7c4e1c6d5f
commit 57dd12de07
3 changed files with 61 additions and 2 deletions

View file

@ -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:

View file

@ -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

View file

@ -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)