Refactor action to use composite run steps and support cross-repository issue creation

- Changed action execution from Docker to composite with Python setup.
- Added `TARGET_REPO` input to allow issue creation in a specified repository.
- Updated `GitHubClient` to use `TARGET_REPO` for issue and milestone URLs.
- Enhanced README with instructions for cross-repository usage.
- Introduced example workflow for creating TODO issues in another repository.

Signed-off-by: Shakar Bakr <5h4k4r.b4kr@gmail.com>
This commit is contained in:
Shakar Bakr
2025-05-15 15:49:54 +03:00
parent 3bd536e14a
commit 1b4753ffdd
4 changed files with 104 additions and 14 deletions

View File

@@ -2,8 +2,43 @@ name: 'TODO to Issue'
description: 'Converts IDE TODO comments to GitHub issues'
author: 'Alastair Mooney'
runs:
using: 'docker'
image: 'docker://ghcr.io/alstr/todo-to-issue-action:v5.1.12'
using: 'composite'
steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install dependencies
run: pip install requests ruamel.yaml
shell: bash
- name: Run TODO to Issue action
run: python ${{ github.action_path }}/main.py
shell: bash
env:
INPUT_REPO: ${{ inputs.REPO }}
INPUT_BEFORE: ${{ inputs.BEFORE }}
INPUT_COMMITS: ${{ inputs.COMMITS }}
INPUT_DIFF_URL: ${{ inputs.DIFF_URL }}
INPUT_SHA: ${{ inputs.SHA }}
INPUT_TOKEN: ${{ inputs.TOKEN }}
INPUT_CLOSE_ISSUES: ${{ inputs.CLOSE_ISSUES }}
INPUT_AUTO_P: ${{ inputs.AUTO_P }}
INPUT_PROJECT: ${{ inputs.PROJECT }}
INPUT_PROJECTS_SECRET: ${{ inputs.PROJECTS_SECRET }}
INPUT_IGNORE: ${{ inputs.IGNORE }}
INPUT_AUTO_ASSIGN: ${{ inputs.AUTO_ASSIGN }}
INPUT_ACTOR: ${{ inputs.ACTOR }}
INPUT_ISSUE_TEMPLATE: ${{ inputs.ISSUE_TEMPLATE }}
INPUT_IDENTIFIERS: ${{ inputs.IDENTIFIERS }}
INPUT_GITHUB_URL: ${{ inputs.GITHUB_URL }}
INPUT_GITHUB_SERVER_URL: ${{ inputs.GITHUB_SERVER_URL }}
INPUT_ESCAPE: ${{ inputs.ESCAPE }}
INPUT_LANGUAGES: ${{ inputs.LANGUAGES }}
INPUT_NO_STANDARD: ${{ inputs.NO_STANDARD }}
INPUT_INSERT_ISSUE_URLS: ${{ inputs.INSERT_ISSUE_URLS }}
INPUT_TARGET_REPO: ${{ inputs.TARGET_REPO }}
branding:
icon: 'check-square'
color: 'orange'
@@ -31,15 +66,18 @@ inputs:
TOKEN:
description: 'The GitHub access token to allow us to retrieve, create and update issues (automatically set)'
required: false
default: ${{ github.token }}
default: '${{ github.token }}'
TARGET_REPO:
description: "Optional target repository to create issues in (e.g. 'owner/repo'). If not provided, issues will be created in the current repository."
required: false
CLOSE_ISSUES:
description: 'Optional input specifying whether to attempt to close an issue when a TODO is removed'
required: false
default: true
default: 'true'
AUTO_P:
description: 'For multiline TODOs, format each line as a new paragraph when creating the issue'
required: false
default: true
default: 'true'
PROJECT:
description: "User or organization project to link issues to, format 'project_type/owner/project_name'"
required: false
@@ -52,7 +90,7 @@ inputs:
AUTO_ASSIGN:
description: 'Automatically assign new issues to the user who triggered the action'
required: false
default: false
default: 'false'
ACTOR:
description: 'The username of the person who triggered the action (automatically set)'
required: false
@@ -74,15 +112,15 @@ inputs:
ESCAPE:
description: 'Escape all special Markdown characters'
required: false
default: true
default: 'true'
LANGUAGES:
description: 'A collection of comma-delimited URLs or local paths for custom language files'
required: false
NO_STANDARD:
description: "Exclude loading the default 'syntax.json' and 'languages.yml' files from the repository"
required: false
default: false
default: 'false'
INSERT_ISSUE_URLS:
description: 'Whether the action should insert the URL for a newly-created issue into the associated TODO comment'
required: false
default: false
default: 'false'