From 97898e9ea0f816cf0dc301f7fa66c588594eb3da Mon Sep 17 00:00:00 2001 From: Mikhail Vanyulin <mikhail.vanyulin@rtsoft.de> Date: Fri, 1 Mar 2024 14:24:10 +0100 Subject: [PATCH] convert_md2html: use gitlab api Update convert_md2html.py to use gitlab api with gitlab flavor. Signed-off-by: Mikhail Vanyulin <mikhail.vanyulin@rtsoft.de> --- build-pipeline.yml | 6 +++- scripts/convert_md2html.py | 57 ++++++++++++++++++++++++++------------ 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/build-pipeline.yml b/build-pipeline.yml index fb8f3536..62d1d3ab 100644 --- a/build-pipeline.yml +++ b/build-pipeline.yml @@ -281,7 +281,11 @@ workflow: timeout: 5m script: - for file in ${FILES}; do - .gitlab-ci/scripts/convert_md2html.py $file; + .gitlab-ci/scripts/convert_md2html.py + --gitlab-url=${CI_SERVER_URL} + --token=${GITBOT_TOKEN} + --project=${CI_PROJECT_PATH} + --filename $file; done artifacts: paths: diff --git a/scripts/convert_md2html.py b/scripts/convert_md2html.py index b13afb93..83f5c4d6 100755 --- a/scripts/convert_md2html.py +++ b/scripts/convert_md2html.py @@ -1,11 +1,12 @@ #!/usr/bin/env python3 import argparse -import codecs import glob import os -from markdown2 import markdown_path +from gitlab.client import Gitlab + +import common HEADER = """ <!doctype html> @@ -178,35 +179,55 @@ FOOTER = """ """ -def convertmd2html(infile, outfile): - - encoding = "utf-8" - - fout = codecs.open(outfile, "w", encoding) - - fout.write(HEADER) - extras = {"tables": ""} - html = markdown_path(infile, extras=extras) - fout.write(html) - - fout.write(FOOTER) - - def main(): parser = argparse.ArgumentParser() parser.add_argument( - "filename", + "--gitlab-url", + help="""URL to the GitLab instance""", + dest="gitlab_url", + default=common.GITLAB_URL, + required=True, + ) + parser.add_argument( + "--token", + help="""GitLab REST API private access token""", + dest="token", + required=True, + ) + parser.add_argument( + "--project", + help="""name of the GitLab project""", + dest="project", + required=True, + ) + parser.add_argument( + "--filename", help="""File(s) to convert""", nargs="+", + required=True, ) args, _ = parser.parse_known_args() + gitlab = Gitlab(args.gitlab_url, private_token=args.token) + + encoding = "utf-8" + for filename in args.filename: for input_filename in glob.glob(filename): output_filename = f"{os.path.splitext(input_filename)[0]}.html" print(f"Converting {input_filename} to {output_filename}") - convertmd2html(input_filename, output_filename) + + fin = open(input_filename, encoding=encoding) + fout = open(output_filename, "w", encoding=encoding) + + fout.write(HEADER) + html = gitlab.markdown(fin.read(), True, args.project) + fout.write(html) + fout.write(FOOTER) + + fin.close() + fout.close() if __name__ == "__main__": -- GitLab