diff --git a/README.md b/README.md index ff611cf..4e9ae2f 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Create a `workflow.yml` file in your `.github/workflows` directory like: steps: - uses: "actions/checkout@master" - name: "TODO to Issue" - uses: "alstr/todo-to-issue-action@v4.6.3" + uses: "alstr/todo-to-issue-action@v4.6.4" id: "todo" ``` diff --git a/action.yml b/action.yml index b7c8020..4ee047a 100644 --- a/action.yml +++ b/action.yml @@ -1,71 +1,71 @@ -name: "TODO to Issue" -description: "Converts IDE TODO comments to GitHub issues" -author: "Alastair Mooney" +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:v4.6" + using: 'docker' + image: 'docker://ghcr.io/alstr/todo-to-issue-action:v4.6' branding: - icon: "check-square" - color: "orange" + icon: 'check-square' + color: 'orange' inputs: REPO: description: "The path to the repository where the action will be used, e.g. 'alstr/my-repo' (automatically set)" required: true - default: "${{ github.repository }}" + default: '${{ github.repository }}' BEFORE: - description: "The SHA of the last pushed commit (automatically set)" + description: 'The SHA of the last pushed commit (automatically set)' required: true - default: "${{ github.event.before || github.base_ref }}" + default: '${{ github.event.before || github.base_ref }}' COMMITS: - description: "An array of commit objects describing the pushed commits" + description: 'An array of commit objects describing the pushed commits' required: true - default: "${{ toJSON(github.event.commits) }}" + default: '${{ toJSON(github.event.commits) }}' DIFF_URL: - description: "The URL to use to get the diff (automatically set)" + description: 'The URL to use to get the diff (automatically set)' required: true - default: "${{ github.event.pull_request.diff_url }}" + default: '${{ github.event.pull_request.diff_url }}' SHA: - description: "The SHA of the latest commit (automatically set)" + description: 'The SHA of the latest commit (automatically set)' required: true - default: "${{ github.sha }}" + default: '${{ github.sha }}' TOKEN: - description: "The GitHub access token to allow us to retrieve, create and update issues (automatically set)" + description: 'The GitHub access token to allow us to retrieve, create and update issues (automatically set)' required: false default: ${{ github.token }} LABEL: - description: "The label that will be used to identify TODO comments (deprecated)" + description: 'The label that will be used to identify TODO comments (deprecated)' required: false COMMENT_MARKER: - description: "The marker used to signify a line comment in your code (deprecated)" + description: 'The marker used to signify a line comment in your code (deprecated)' required: false CLOSE_ISSUES: - description: "Optional input that specifies whether to attempt to close an issue when a TODO is removed" + description: 'Optional input that specifies whether to attempt to close an issue when a TODO is removed' required: true default: true AUTO_P: - description: "For multiline TODOs, format each line as a new paragraph when creating the issue" + description: 'For multiline TODOs, format each line as a new paragraph when creating the issue' required: true default: true PROJECTS_SECRET: - description: "Encrypted secret corresponding to your personal access token (do not enter the actual secret)" + description: 'Encrypted secret corresponding to your personal access token (do not enter the actual secret)' required: false USER_PROJECTS: - description: "Default user projects" + description: 'Default user projects' required: false ORG_PROJECTS: - description: "Default organisation projects" + description: 'Default organisation projects' required: false IGNORE: - description: "A collection of comma-delimited regular expression that matches files that should be ignored when searching for TODOs" + description: 'A collection of comma-delimited regular expression that matches files that should be ignored when searching for TODOs' required: false AUTO_ASSIGN: - description: "Automatically assign new issues to the user who triggered the action" + description: 'Automatically assign new issues to the user who triggered the action' required: true default: false ACTOR: - description: "The username of the person who triggered the action" + description: 'The username of the person who triggered the action' required: true - default: "${{ github.actor }}" + default: '${{ github.actor }}' ISSUE_TEMPLATE: - description: "The template used to format new issues" + description: 'The template used to format new issues' required: false diff --git a/syntax.json b/syntax.json index 58d6935..8e20108 100644 --- a/syntax.json +++ b/syntax.json @@ -365,6 +365,17 @@ "start": "" } + }, + { + "type": "block", + "pattern": { + "start": "{/\\*", + "end": "\\*/}" + } + }, + { + "type": "line", + "pattern": "- \\[ \\]" } ] }, @@ -546,7 +557,7 @@ }, { "language": "HCL", - "markers" : [ + "markers": [ { "type": "line", "pattern": "#" @@ -566,7 +577,7 @@ }, { "language": "SCSS", - "markers" : [ + "markers": [ { "type": "line", "pattern": "//" @@ -578,11 +589,11 @@ "end": "\\*/" } } - ] + ] }, { "language": "Twig", - "markers" : [ + "markers": [ { "type": "block", "pattern": { diff --git a/tests/test_closed.diff b/tests/test_closed.diff index f49f688..581cfdf 100644 --- a/tests/test_closed.diff +++ b/tests/test_closed.diff @@ -222,6 +222,30 @@ index 525e25d..ba4e68d 100644 - also need to be turned into todos, and hopefully - kept together as one todo - #} +diff --git a/tests/example_file.md b/src/tests/example_file.md +index 525e25d..ba4e68d 100644 +--- a/src/tests/example_file.md ++++ b/src/tests/example_file.md +@@ -1,7 +0,0 @@ +- {/* TODO: Hopefully this comment turns into a todo issue */} +- {/* +- TODO:Multiline comments +- also need to be turned into todos, and hopefully +- kept together as one todo +- */} +- - [ ] TODO: An inline todo that's NOT a comment (what) +diff --git a/tests/example_file.mdx b/src/tests/example_file.mdx +index 525e25d..ba4e68d 100644 +--- a/src/tests/example_file.mdx ++++ b/src/tests/example_file.mdx +@@ -1,7 +0,0 @@ +- {/* TODO: Hopefully this comment turns into a todo issue */} +- {/* +- TODO:Multiline comments +- also need to be turned into todos, and hopefully +- kept together as one todo +- */} +- - [ ] TODO: An inline todo that's NOT a comment (what) diff --git a/tests/example_file.py b/tests/example_file.R index 525e25d..ba4e68d 100644 --- a/tests/example_file.R @@ -234,4 +258,4 @@ hello_world <- function() { - # TODO: Do more stuff - # This function should probably do something more interesting - # labels: help wanted - +} \ No newline at end of file diff --git a/tests/test_new.diff b/tests/test_new.diff index 6df3bae..c9aadb7 100644 --- a/tests/test_new.diff +++ b/tests/test_new.diff @@ -232,6 +232,32 @@ index 0000000..7cccc5b + also need to be turned into todos, and hopefully + kept together as one todo + #} +diff --git a/tests/example_file.md b/src/tests/example_file.md +new file mode 100644 +index 0000000..7cccc5b +--- /dev/null ++++ b/src/tests/example_file.md +@@ -0,0 +1,7 @@ ++ {/* TODO: Hopefully this comment turns into a todo issue */} ++ {/* ++ TODO:Multiline comments ++ also need to be turned into todos, and hopefully ++ kept together as one todo ++ */} ++ - [ ] TODO: An inline todo that's NOT a comment (what) +diff --git a/tests/example_file.mdx b/src/tests/example_file.mdx +new file mode 100644 +index 0000000..7cccc5b +--- /dev/null ++++ b/src/tests/example_file.mdx +@@ -0,0 +1,7 @@ ++ {/* TODO: Hopefully this comment turns into a todo issue */} ++ {/* ++ TODO:Multiline comments ++ also need to be turned into todos, and hopefully ++ kept together as one todo ++ */} ++ - [ ] TODO: An inline todo that's NOT a comment (what) diff --git a/tests/example_file.py b/tests/example_file.R new file mode 100644 index 0000000..525e25d diff --git a/tests/test_todo_parser.py b/tests/test_todo_parser.py index f02c8f5..4dec87a 100644 --- a/tests/test_todo_parser.py +++ b/tests/test_todo_parser.py @@ -64,6 +64,9 @@ class NewIssueTests(unittest.TestCase): def test_twig_issues(self): self.assertEqual(count_issues_for_file_type(self.raw_issues, 'twig'), 2) + def test_md_issues(self): + self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 6) + def test_r_issues(self): self.assertEqual(count_issues_for_file_type(self.raw_issues, 'r'), 2) @@ -120,6 +123,9 @@ class ClosedIssueTests(unittest.TestCase): def test_twig_issues(self): self.assertEqual(count_issues_for_file_type(self.raw_issues, 'twig'), 2) + def test_md_issues(self): + self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 6) + def test_r_issues(self): self.assertEqual(count_issues_for_file_type(self.raw_issues, 'r'), 2)