feat: implement error notification as pr comment (#124)

* feat: implement error notification as pr comment

* Update action.yml

Co-authored-by: Earl Warren <109468362+earl-warren@users.noreply.github.com>

* feat: implement gitlab client and surround with try catch

* docs: add error notification enablment in the doc

* feat: disable comment if dry-run

* feat: update the default comment on error

---------

Co-authored-by: Earl Warren <109468362+earl-warren@users.noreply.github.com>
This commit is contained in:
Andrea Lamparelli 2024-04-10 23:01:16 +02:00 committed by GitHub
parent 6042bcc40b
commit 2bb7f73112
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 594 additions and 39 deletions

View file

@ -79,9 +79,11 @@ describe("cli args parser", () => {
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
expect(args.squash).toEqual(true);
expect(args.autoNoSquash).toEqual(false);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
expect(args.cherryPickOptions).toEqual(undefined);
expect(args.enableErrorNotification).toEqual(false);
});
test("with config file [default, short]", () => {
@ -109,9 +111,11 @@ describe("cli args parser", () => {
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
expect(args.squash).toEqual(true);
expect(args.autoNoSquash).toEqual(false);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
expect(args.cherryPickOptions).toEqual(undefined);
expect(args.enableErrorNotification).toEqual(false);
});
test("valid execution [default, long]", () => {
@ -521,4 +525,17 @@ describe("cli args parser", () => {
expect(() => parser.parse()).toThrowError("Missing option: pull request must be provided");
});
test("enable error notification flag", () => {
addProcessArgs([
"-tb",
"target, old",
"-pr",
"https://localhost/whatever/pulls/1",
"--enable-err-notification",
]);
const args: Args = parser.parse();
expect(args.enableErrorNotification).toEqual(true);
});
});

View file

@ -295,7 +295,6 @@ describe("gha args parser", () => {
expect(args.cherryPickOptions).toEqual(undefined);
});
test("invalid execution with empty target branch", () => {
spyGetInput({
"target-branch": " ",
@ -320,4 +319,15 @@ describe("gha args parser", () => {
expect(() => parser.parse()).toThrowError("Missing option: pull request must be provided");
});
test("enable error notification flag", () => {
spyGetInput({
"target-branch": "target,old",
"pull-request": "https://localhost/whatever/pulls/1",
"enable-err-notification": "true"
});
const args: Args = parser.parse();
expect(args.enableErrorNotification).toEqual(true);
});
});