Files
2026-07-13 12:32:21 +08:00

41 lines
1.3 KiB
Perl
Executable File

#!/usr/bin/env perl
# Script to verify that the labeler configuration contains entries for
# all plugins. If any plugins are missing, the script errors out and
# prints the missing entries.
# The pre- and post-function plugins are tracked together under the
# label "plugins/serverless-functions". Special code is present below
# to ensure that the label exists.
use strict;
die "usage: $0 <labeler-config-file>\n" unless ($#ARGV == 0);
my $labeler_config = $ARGV[0];
-f $labeler_config
or die "$0: cannot find labeler config file $labeler_config\n";
my %plugins = ( "plugins/serverless-functions", "plugins/serverless-functions:\n- kong/plugins/pre-function\n- kong/plugins/post-function\n\n" );
for my $path (<kong/plugins/*>, <plugins-ee/*>) {
my $plugin = $path =~ s,kong/,,r;
$plugins{$plugin} = "$plugin:\n- $path/**/*\n\n" unless ($plugin =~ m,plugins/(pre|post)-function,);
}
open(LABELER_CONFIG, "<", $labeler_config) or die "$0: can't open labeler config file $labeler_config: $!\n";
while (<LABELER_CONFIG>) {
delete $plugins{$1} if (m,^(plugins.*):,);;
}
close(LABELER_CONFIG);
exit 0 unless (keys %plugins);
print STDERR "Missing plugins in labeler configuration $labeler_config.\n";
print STDERR "Please add the following sections to the file:\n\n";
for my $plugin (sort keys %plugins) {
print STDERR $plugins{$plugin};
}
exit 1;