diff --git a/.github/scripts/sync-rpc-cmds.py b/.github/scripts/sync-rpc-cmds.py index 1657900dc..368f37a07 100644 --- a/.github/scripts/sync-rpc-cmds.py +++ b/.github/scripts/sync-rpc-cmds.py @@ -35,7 +35,7 @@ def check_renderable(response, action, title): renderable = data.get("renderable") if renderable is None: - # Some endpoints don’t include renderable (e.g. DELETE) + # Some endpoints don't include renderable (e.g. DELETE) return True if not renderable.get("status", False): @@ -121,8 +121,18 @@ def main(): "Authorization": "Bearer " + os.environ.get("README_API_KEY"), } + # Validate API key exists + if not os.environ.get("README_API_KEY"): + print("❌ ERROR: README_API_KEY environment variable not set") + return + # path to the rst file from where we fetch all the RPC commands path_to_rst = "doc/index.rst" + + if not os.path.exists(path_to_rst): + print(f"❌ ERROR: File not found: {path_to_rst}") + return + with open(path_to_rst, "r") as file: rst_content = file.read() @@ -131,24 +141,31 @@ def main(): # Compare local and server commands list to get the list of command to add or delete commands_local_title = set(command[0] for command in commands_from_local) - commands_readme_title = set(command['title'] for command in commands_from_readme) + commands_readme_title = set(command['slug'] for command in commands_from_readme) commands_to_delete = commands_readme_title - commands_local_title commands_to_add = commands_local_title - commands_readme_title for name in commands_to_delete: publishDoc(Action.DELETE, name, "", 0, headers) - sleep(3) + sleep(1) if commands_from_local: position = 0 for name, file in commands_from_local: - with open("doc/" + file) as f: + file_path = "doc/" + file + if not os.path.exists(file_path): + print(f"⚠️ WARNING: File not found: {file_path}, skipping {name}") + continue + + with open(file_path) as f: body = f.read() action = Action.ADD if name in commands_to_add else Action.UPDATE publishDoc(action, name, body, position, headers) position += 1 sleep(1) else: - print("No commands found in the Manpages block.") + print("⚠️ No commands found in the Manpages block.") + + print("\n✨ Sync complete!") if __name__ == "__main__":