diff --git a/Dockerfile b/Dockerfile index 45b6459..9ca2ad2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-slim +FROM python:3.14-slim@sha256:2751cbe93751f0147bc1584be957c6dd4c5f977c3d4e0396b56456a9fd4ed137 # Install deps COPY requirements.txt . diff --git a/action.yaml b/action.yaml index bf30c30..c812eea 100644 --- a/action.yaml +++ b/action.yaml @@ -1,13 +1,13 @@ name: "Forgejo Release Drafter" description: "Custom action that drafts releases in Forgejo using a Python script" inputs: - forgejo-token: - description: "API token for Forgejo" + token: + description: "Forgejo API token" required: true repo: description: "Forgejo repo (e.g. org/project)" required: true - api-endpoint: + endpoint: description: "Forgejo api endpoint (e.g. https:///api/v1)" required: true outputs: diff --git a/entrypoint.sh b/entrypoint.sh index f039340..ddd9324 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,7 +1,4 @@ #!/bin/sh set -e -python /release_drafter.py \ - --token "${INPUT_FORGEJO_TOKEN}" \ - --repo "${INPUT_REPO}" \ - --endpoint "${INPUT_API_ENDPOINT}" +python /release_drafter.py diff --git a/release_drafter.py b/release_drafter.py index 19d9a36..e344300 100644 --- a/release_drafter.py +++ b/release_drafter.py @@ -1,6 +1,5 @@ import os import re -import argparse from dataclasses import dataclass, field from datetime import datetime from datetime import timezone @@ -11,6 +10,10 @@ import semver from requests.adapters import HTTPAdapter from urllib3 import Retry +print("DEBUG: env vars seen by Python") +for k, v in os.environ.items(): + if k.startswith("INPUT_"): + print(f"{k}={v}") @dataclass @@ -46,16 +49,10 @@ class ReleaseManager: @staticmethod def validate_environment() -> Dict[str, str]: """Validate all required environment variables are present.""" - parser = argparse.ArgumentParser() - parser.add_argument("--token", required=True) - parser.add_argument("--repo", required=True) - parser.add_argument("--endpoint", required=True) - args = parser.parse_args() - required_vars = { - "FORGEJO_API_URL": args.endpoint, - "REPO": args.repo, - "FORGEJO_TOKEN": args.token, + "FORGEJO_API_URL": os.getenv("INPUT_ENDPOINT"), + "REPO": os.getenv("INPUT_REPO"), + "FORGEJO_TOKEN": os.getenv("INPUT_TOKEN"), } missing_vars = [var for var, value in required_vars.items() if not value] @@ -469,7 +466,9 @@ Compare with previous version: [{previous_tag}...{new_tag}]({url_base}/{self.rep release_notes, latest_tag, comparison_tag ) url = self.create_or_update_release(comparison_tag, release_notes, existing_draft) - print(f"::set-output name=release-url::{url}") + + with open(os.environ["GITHUB_OUTPUT"], "a") as gh_out: + gh_out.write(f"release-url={url}\n") except Exception as e: print(f"An error occurred: {str(e)}") diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..27ef67b --- /dev/null +++ b/renovate.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "local>entwirr.me/renovate-config" + ], + "commitMessagePrefix": "chore(deps):", + "enabledManagers": ["dockerfile", "github-actions", "pip_requirements"], + "rangeStrategy": "update-lockfile", + "updatePinnedDependencies": true, + "packageRules": [ + { + "matchPackageNames": ["*"], + "matchUpdateTypes": ["major", "minor", "patch", "pin", "digest"] + }, + { + "matchManagers": ["composer", "github-actions", "pip_requirements"], + "addLabels": ["chore"] + } + ] +} diff --git a/requirements.txt b/requirements.txt index 2db6103..9181e4c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ -requests -semver +requests~=2.32.5 +semver~=3.0.4 +urllib3~=2.6.0 \ No newline at end of file