From c2a994857e8e2f283ce9889c45535277a44ce2cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ricks?= Date: Wed, 27 Sep 2023 14:49:33 +0200 Subject: [PATCH] Add: Add simple GitHub script to show and update repo topics A simple script is always nice for testing the API and using it. --- pontos/github/scripts/topics.py | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pontos/github/scripts/topics.py diff --git a/pontos/github/scripts/topics.py b/pontos/github/scripts/topics.py new file mode 100644 index 00000000..48bf3d98 --- /dev/null +++ b/pontos/github/scripts/topics.py @@ -0,0 +1,44 @@ +# Copyright (C) 2022 Greenbone AG +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +""" +This script prints out all repositories existing in the space of the given +organization +""" + +from argparse import ArgumentParser, Namespace + +from pontos.github.api import GitHubAsyncRESTApi + + +def add_script_arguments(parser: ArgumentParser) -> None: + parser.add_argument("repository", help="owner/repo") + parser.add_argument("topics", nargs="*", help="new topics to set") + + +async def github_script(api: GitHubAsyncRESTApi, args: Namespace) -> int: + if not args.topics: + topics = await api.repositories.topics(args.repository) + else: + topics = await api.repositories.update_topics( + args.repository, args.topics + ) + + for topic in topics: + print(topic) + + return 0