#!/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 \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 (, ) { 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 () { 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;