Merge pull request #51 from karpikpl/main
Adding output to show if check succeeded or failed
This commit is contained in:
@@ -43,6 +43,8 @@ The config file is always pulled from the action's context, i.e., the branch fro
|
||||
|
||||
See [other ways to specify config file.](#other-ways-to-specify-config-file)
|
||||
|
||||
Action returns a single output: `success` that indicates if check has passed or failed.
|
||||
|
||||
## Create Workflow
|
||||
|
||||
Create a workflow file (eg: `.github/workflows/pr-title-checker.yml`) with the following content:
|
||||
@@ -115,6 +117,44 @@ Note that this has to be a url pointing to a valid, raw json file. See [#28](htt
|
||||
```
|
||||
This is useful if a repo containing the config file is pulled in a previous step using, for e.g., actions/checkout. See [#36](https://github.com/thehanimo/pr-title-checker/issues/36)
|
||||
|
||||
### Using output result
|
||||
|
||||
You can use the action output to execute follow up steps e.g. adding a comment.
|
||||
|
||||
```yml
|
||||
steps:
|
||||
- uses: thehanimo/[email protected]
|
||||
id: check
|
||||
continue-on-error: true
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
pass_on_octokit_error: false
|
||||
|
||||
- name: Add comment to fix PR title
|
||||
uses: marocchino/sticky-pull-request-comment@v2
|
||||
if: ${{ steps.check.outputs.success == 'false'}}
|
||||
with:
|
||||
header: 'PR Title Check'
|
||||
recreate: true
|
||||
message: |
|
||||
### 🚨 PR Title Needs Formatting
|
||||
The title of this PR needs to be formatted correctly and include an Azure Boards Reference.
|
||||
Please update the title to match the format `type: description AB#xxx`. Examples:
|
||||
* `bugfix: fix typo in README.md AB#123`
|
||||
* `chore: update dependencies AB#456`
|
||||
* `feat: add new feature AB#789`
|
||||
* `chore: fixing build pipeline` - no AB reference
|
||||
|
||||
- name: Add comment that PR title is fixed
|
||||
if: ${{ steps.check.outputs.success == 'true'}}
|
||||
uses: marocchino/sticky-pull-request-comment@v2
|
||||
with:
|
||||
header: 'PR Title Check'
|
||||
recreate: true
|
||||
message: |
|
||||
### ✅ PR Title Formatted Correctly
|
||||
The title of this PR has been updated to match the correct format. Thank you!
|
||||
```
|
||||
|
||||
## NOTE:
|
||||
* [`pull_request_target`](https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#pull_request_target) event trigger should be used (not [`pull_request`](https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#pull_request)) in order to support checking PRs from forks. This was added in `v1.3.2`. See [#8.](https://github.com/thehanimo/pr-title-checker/issues/8)
|
||||
|
||||
@@ -34,6 +34,9 @@ inputs:
|
||||
github_configuration_token:
|
||||
description: the github access token to be used to access the config file using other github_configuration_* parameters. can differ from GITHUB_TOKEN. defaults to GITHUB_TOKEN
|
||||
required: false
|
||||
outputs:
|
||||
success:
|
||||
description: true if the PR title is valid, false otherwise. Undefined if an error occurred.
|
||||
runs:
|
||||
using: node20
|
||||
main: dist/index.js
|
||||
|
||||
Vendored
+4
@@ -10050,6 +10050,7 @@ const run = ({ configPath, localConfigPath, remoteConfigURL, GitHubConfigOwner,
|
||||
if (labels[i].name == CHECKS.ignoreLabels[j]) {
|
||||
core.info(`Ignoring Title Check for label - ${labels[i].name}`);
|
||||
removeLabel({ labels, name: LABEL.name });
|
||||
core.setOutput("success", true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -10060,6 +10061,7 @@ const run = ({ configPath, localConfigPath, remoteConfigURL, GitHubConfigOwner,
|
||||
if (title.startsWith(CHECKS.prefixes[i])) {
|
||||
removeLabel({ labels, name: LABEL.name });
|
||||
core.info(MESSAGES.success);
|
||||
core.setOutput("success", true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -10069,10 +10071,12 @@ const run = ({ configPath, localConfigPath, remoteConfigURL, GitHubConfigOwner,
|
||||
if (re.test(title)) {
|
||||
removeLabel({ labels, name: LABEL.name });
|
||||
core.info(MESSAGES.success);
|
||||
core.setOutput("success", true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
yield titleCheckFailed({ config: { LABEL, CHECKS, MESSAGES } });
|
||||
core.setOutput("success", false);
|
||||
}
|
||||
catch (error) {
|
||||
core.info(error);
|
||||
|
||||
@@ -283,6 +283,7 @@ const run = async ({
|
||||
if (labels[i].name == CHECKS.ignoreLabels[j]) {
|
||||
core.info(`Ignoring Title Check for label - ${labels[i].name}`);
|
||||
removeLabel({ labels, name: LABEL.name });
|
||||
core.setOutput("success", true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -295,6 +296,7 @@ const run = async ({
|
||||
if (title.startsWith(CHECKS.prefixes[i])) {
|
||||
removeLabel({ labels, name: LABEL.name });
|
||||
core.info(MESSAGES.success);
|
||||
core.setOutput("success", true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -305,11 +307,13 @@ const run = async ({
|
||||
if (re.test(title)) {
|
||||
removeLabel({ labels, name: LABEL.name });
|
||||
core.info(MESSAGES.success);
|
||||
core.setOutput("success", true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
await titleCheckFailed({ config: { LABEL, CHECKS, MESSAGES } });
|
||||
core.setOutput("success", false);
|
||||
} catch (error) {
|
||||
core.info(error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user