Add support for workflow_dispatch trigger

Closes #112
This commit is contained in:
alstr 2022-10-27 09:52:02 +01:00
parent 4fcac8cc35
commit 223e23516d
2 changed files with 24 additions and 2 deletions

View File

@ -1,5 +1,14 @@
name: "Workflow"
on: ["push"]
on:
push:
workflow_dispatch:
inputs:
BASE_MANUAL:
description: "The base SHA"
required: true
HEAD_MANUAL:
description: "The head SHA"
required: false
jobs:
build:
runs-on: "ubuntu-latest"
@ -8,5 +17,10 @@ jobs:
- name: "TODO to Issue"
uses: "alstr/todo-to-issue-action@master"
id: "todo"
env:
BASE_MANUAL:
${{ inputs.BASE_MANUAL }}
HEAD_MANUAL:
${{ inputs.HEAD_MANUAL }}
with:
PROJECTS_SECRET: ${{ secrets.PROJECTS_SECRET }}

10
main.py
View File

@ -50,7 +50,7 @@ class GitHubClient(object):
self.repo = os.getenv('INPUT_REPO')
self.before = os.getenv('INPUT_BEFORE')
self.sha = os.getenv('INPUT_SHA')
self.commits = json.loads(os.getenv('INPUT_COMMITS'))
self.commits = json.loads(os.getenv('INPUT_COMMITS')) or []
self.diff_url = os.getenv('INPUT_DIFF_URL')
self.token = os.getenv('INPUT_TOKEN')
self.issues_url = f'{self.repos_url}{self.repo}/issues'
@ -646,6 +646,14 @@ class TodoParser(object):
if __name__ == "__main__":
# Create a basic client for communicating with GitHub, automatically initialised with environment variables.
client = GitHubClient()
base_manual = os.getenv('BASE_MANUAL')
head_manual = os.getenv('HEAD_MANUAL')
if base_manual and head_manual:
print(f'Manually comparing {base_manual}...{head_manual}')
client.diff_url = f'{client.repos_url}{client.repo}/compare/{base_manual}...{head_manual}'
elif base_manual:
print(f'Manual checking {base_manual}')
client.diff_url = f'{client.repos_url}{client.repo}/commits/{base_manual}'
if client.diff_url or len(client.commits) != 0:
# Get the diff from the last pushed commit.
last_diff = StringIO(client.get_last_diff())