Skip to content

[WIP] JSON Schema trigger filters implementation#4529

Closed
slinkydeveloper wants to merge 1 commit intoknative:mainfrom
slinkydeveloper:json_schema
Closed

[WIP] JSON Schema trigger filters implementation#4529
slinkydeveloper wants to merge 1 commit intoknative:mainfrom
slinkydeveloper:json_schema

Conversation

@slinkydeveloper
Copy link
Contributor

Signed-off-by: Francesco Guardiani francescoguard@gmail.com

Fixes #4495

This PR is WIP, I want to test the differences in terms of usability and performances with the #3783

Proposed Changes

  • filter implementation using json schema

Release Note

- :gift: New trigger filter using json schema

TODO

  • Trigger definition changes
  • Cache parsed json schema
  • Validate on webhook side the json schema, to reject if it's a bad one
  • Doc stuff (in knative.dev/docs too)
  • Proper unit tests
  • Proper e2e tests

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
@knative-prow-robot knative-prow-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 16, 2020
@google-cla google-cla bot added the cla: yes Indicates the PR's author has signed the CLA. label Nov 16, 2020
@knative-prow-robot knative-prow-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Nov 16, 2020
@knative-prow-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: slinkydeveloper

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow-robot knative-prow-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 16, 2020
@knative-metrics-robot
Copy link

The following is the coverage report on the affected files.
Say /test pull-knative-eventing-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/eventfilter/json_schema/filter.go Do not exist 73.0%

@codecov
Copy link

codecov bot commented Nov 16, 2020

Codecov Report

Merging #4529 (195e763) into master (ef633c0) will decrease coverage by 0.12%.
The diff coverage is 65.30%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #4529      +/-   ##
==========================================
- Coverage   81.27%   81.15%   -0.13%     
==========================================
  Files         284      285       +1     
  Lines        8017     8054      +37     
==========================================
+ Hits         6516     6536      +20     
- Misses       1113     1124      +11     
- Partials      388      394       +6     
Impacted Files Coverage Δ
pkg/eventfilter/json_schema/filter.go 58.53% <58.53%> (ø)
pkg/channel/config.go 86.95% <100.00%> (-1.94%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ef633c0...d68ef92. Read the comment docs.

slinkydeveloper added a commit to slinkydeveloper/eventing that referenced this pull request Nov 16, 2020
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
@slinkydeveloper
Copy link
Contributor Author

Raw values:

BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_id-8         	1000000000	         3.26 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_id-8         	1000000000	         3.29 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_id-8         	1000000000	         3.35 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_id-8         	1000000000	         3.31 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_id-8         	1000000000	         3.41 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_id-8              	 1697821	      3747 ns/op	    2453 B/op	      19 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_id-8              	 1642106	      3734 ns/op	    2453 B/op	      19 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_id-8              	 1632127	      3862 ns/op	    2453 B/op	      19 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_id-8              	 1463379	      3992 ns/op	    2453 B/op	      19 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_id-8              	 1465968	      3979 ns/op	    2453 B/op	      19 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	1000000000	         3.61 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	1000000000	         3.51 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	1000000000	         3.57 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	1000000000	         3.48 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	1000000000	         3.52 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	 1553840	      3822 ns/op	    2517 B/op	      20 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	 1463460	      4176 ns/op	    2517 B/op	      20 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	 1406436	      4152 ns/op	    2517 B/op	      20 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	 1388064	      4148 ns/op	    2517 B/op	      20 allocs/op
BenchmarkAttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	 1410082	      4157 ns/op	    2517 B/op	      20 allocs/op
BenchmarkAttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	1000000000	         3.57 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	1000000000	         3.54 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	1000000000	         3.54 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	1000000000	         3.63 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	1000000000	         3.65 ns/op	       0 B/op	       0 allocs/op
BenchmarkAttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	 1526535	      3965 ns/op	    2645 B/op	      22 allocs/op
BenchmarkAttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	 1465962	      4274 ns/op	    2645 B/op	      22 allocs/op
BenchmarkAttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	 1373545	      4273 ns/op	    2645 B/op	      22 allocs/op
BenchmarkAttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	 1374686	      4266 ns/op	    2645 B/op	      22 allocs/op
BenchmarkAttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	 1373654	      4258 ns/op	    2645 B/op	      22 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                           	  497547	     11241 ns/op	    5259 B/op	      87 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                           	  501093	     11345 ns/op	    5259 B/op	      87 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                           	  507709	     11310 ns/op	    5259 B/op	      87 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                           	  507099	     11306 ns/op	    5259 B/op	      87 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                           	  512083	     11250 ns/op	    5259 B/op	      87 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                                	  666700	      8625 ns/op	    6087 B/op	      60 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                                	  679521	      8592 ns/op	    6087 B/op	      60 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                                	  674307	      8619 ns/op	    6087 B/op	      60 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                                	  654022	      8755 ns/op	    6087 B/op	      60 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                                	  630012	      8576 ns/op	    6087 B/op	      60 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	  124387	     44911 ns/op	   17190 B/op	     269 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	  128893	     44930 ns/op	   17190 B/op	     269 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	  128254	     44842 ns/op	   17190 B/op	     269 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	  129147	     45009 ns/op	   17190 B/op	     269 allocs/op
BenchmarkJsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         	  128726	     45053 ns/op	   17190 B/op	     269 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	  355076	     14921 ns/op	    8447 B/op	     120 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	  397048	     14957 ns/op	    8447 B/op	     120 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	  380944	     14367 ns/op	    8447 B/op	     120 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	  394473	     14731 ns/op	    8447 B/op	     120 allocs/op
BenchmarkJsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8              	  396458	     14661 ns/op	    8447 B/op	     120 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	  292788	     19605 ns/op	    7781 B/op	     125 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	  302697	     19469 ns/op	    7781 B/op	     125 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	  296874	     19513 ns/op	    7781 B/op	     125 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	  298851	     19533 ns/op	    7781 B/op	     125 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                             	  298918	     19553 ns/op	    7781 B/op	     125 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	  468393	     12069 ns/op	    7232 B/op	      92 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	  487952	     11975 ns/op	    7232 B/op	      92 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	  524100	     11960 ns/op	    7232 B/op	      92 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	  513410	     11894 ns/op	    7232 B/op	      92 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                                  	  486684	     11940 ns/op	    7232 B/op	      92 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_if_then-8                                                  	  165498	     35203 ns/op	   14009 B/op	     233 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_if_then-8                                                  	  162728	     34899 ns/op	   14009 B/op	     233 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_if_then-8                                                  	  164929	     35037 ns/op	   14009 B/op	     233 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_if_then-8                                                  	  165186	     35140 ns/op	   14009 B/op	     233 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_if_then-8                                                  	  166128	     35028 ns/op	   14009 B/op	     233 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_if_then-8                                                       	  439340	     12955 ns/op	    8473 B/op	     102 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_if_then-8                                                       	  444332	     12978 ns/op	    8474 B/op	     102 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_if_then-8                                                       	  443185	     12970 ns/op	    8474 B/op	     102 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_if_then-8                                                       	  452053	     12977 ns/op	    8474 B/op	     102 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_if_then-8                                                       	  442387	     12921 ns/op	    8474 B/op	     102 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                             	  103486	     55882 ns/op	   21002 B/op	     343 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                             	  103180	     55905 ns/op	   21002 B/op	     343 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                             	  102464	     55784 ns/op	   21002 B/op	     343 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                             	  103568	     55893 ns/op	   21002 B/op	     343 allocs/op
BenchmarkJsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                             	  102982	     55992 ns/op	   21002 B/op	     343 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                                  	  346183	     16635 ns/op	   10444 B/op	     148 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                                  	  344782	     16638 ns/op	   10444 B/op	     148 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                                  	  344208	     16733 ns/op	   10443 B/op	     148 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                                  	  341037	     16838 ns/op	   10444 B/op	     148 allocs/op
BenchmarkJsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                                  	  341425	     16645 ns/op	   10444 B/op	     148 allocs/op

Benchstat:

name                                                                                        time/op
AttributesFilter/Creation:_Pass_with_exact_match_of_id-8                                    3.32ns ± 3%
AttributesFilter/Run:_Pass_with_exact_match_of_id-8                                         3.86µs ± 3%
AttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8  3.54ns ± 2%
AttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8       4.16µs ± 0%
AttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                      3.59ns ± 2%
AttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                           4.27µs ± 0%
JsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                    11.3µs ± 0%
JsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                         8.63µs ± 1%
JsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8  44.9µs ± 0%
JsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8       14.7µs ± 2%
JsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                      19.5µs ± 0%
JsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                           12.0µs ± 1%
JsonSchemaFilter/Creation:_No_pass_with_if_then-8                                           35.1µs ± 0%
JsonSchemaFilter/Run:_No_pass_with_if_then-8                                                13.0µs ± 0%
JsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                      55.9µs ± 0%
JsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                           16.7µs ± 1%

name                                                                                        alloc/op
AttributesFilter/Creation:_Pass_with_exact_match_of_id-8                                     0.00B     
AttributesFilter/Run:_Pass_with_exact_match_of_id-8                                         2.45kB ± 0%
AttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8   0.00B     
AttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8       2.52kB ± 0%
AttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                       0.00B     
AttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                           2.65kB ± 0%
JsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                    5.26kB ± 0%
JsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                         6.09kB ± 0%
JsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8  17.2kB ± 0%
JsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8       8.45kB ± 0%
JsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                      7.78kB ± 0%
JsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                           7.23kB ± 0%
JsonSchemaFilter/Creation:_No_pass_with_if_then-8                                           14.0kB ± 0%
JsonSchemaFilter/Run:_No_pass_with_if_then-8                                                8.47kB ± 0%
JsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                      21.0kB ± 0%
JsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                           10.4kB ± 0%

name                                                                                        allocs/op
AttributesFilter/Creation:_Pass_with_exact_match_of_id-8                                      0.00     
AttributesFilter/Run:_Pass_with_exact_match_of_id-8                                           19.0 ± 0%
AttributesFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8    0.00     
AttributesFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8         20.0 ± 0%
AttributesFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                        0.00     
AttributesFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                             22.0 ± 0%
JsonSchemaFilter/Creation:_Pass_with_exact_match_of_id-8                                      87.0 ± 0%
JsonSchemaFilter/Run:_Pass_with_exact_match_of_id-8                                           60.0 ± 0%
JsonSchemaFilter/Creation:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8     269 ± 0%
JsonSchemaFilter/Run:_Pass_with_exact_match_of_all_context_attributes_(except_time)-8          120 ± 0%
JsonSchemaFilter/Creation:_No_pass_with_exact_match_of_id_and_source-8                         125 ± 0%
JsonSchemaFilter/Run:_No_pass_with_exact_match_of_id_and_source-8                             92.0 ± 0%
JsonSchemaFilter/Creation:_No_pass_with_if_then-8                                              233 ± 0%
JsonSchemaFilter/Run:_No_pass_with_if_then-8                                                   102 ± 0%
JsonSchemaFilter/Creation:_No_pass_with_nested_logic-8                                         343 ± 0%
JsonSchemaFilter/Run:_No_pass_with_nested_logic-8                                              148 ± 0%

@slinkydeveloper
Copy link
Contributor Author

Comments of the results with a comparison with json schema proposal https://docs.google.com/document/d/1Pz2vaLWKUrMQDLNyDW7ksjgLG4GAxBY546dT7_jF5Rk/edit#heading=h.nqj7kw3uqc6m

@lberk
Copy link
Member

lberk commented Jan 11, 2021

@slinkydeveloper is this still the direction we were looking to go? should we still have this WIP open?

@slinkydeveloper
Copy link
Contributor Author

I'm not focused on this anymore, although I think we should keep it open, since it's working and it's a viable solution :)

@knative-prow-robot
Copy link
Contributor

@slinkydeveloper: PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@knative-prow-robot knative-prow-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 30, 2021
Base automatically changed from master to main March 8, 2021 17:40
@knative-prow-robot
Copy link
Contributor

@slinkydeveloper: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-knative-eventing-reconciler-tests d68ef92 link /test pull-knative-eventing-reconciler-tests

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@github-actions
Copy link

github-actions bot commented Jun 7, 2021

This Pull Request is stale because it has been open for 90 days with
no activity. It will automatically close after 30 more days of
inactivity. Reopen with /reopen. Mark as fresh by adding the
comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 7, 2021
@github-actions github-actions bot closed this Jul 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cla: yes Indicates the PR's author has signed the CLA. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Json Schema as expression language for trigger filter

4 participants