allow no tests on .gitignore files (#2096)

diff --git a/app_dart/lib/src/request_handlers/github/webhook_subscription.dart b/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
index 48d9b86..8c05af4 100644
--- a/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
+++ b/app_dart/lib/src/request_handlers/github/webhook_subscription.dart
@@ -263,7 +263,8 @@
           !filename.contains('.github') &&
           !filename.endsWith('.md') &&
           !filename.contains('CODEOWNERS') &&
-          !filename.startsWith('dev/bots/')) {
+          !filename.startsWith('dev/bots/') &&
+          !filename.endsWith('.gitignore')) {
         needsTests = !_allChangesAreCodeComments(file);
       }
 
diff --git a/app_dart/test/request_handlers/github/webhook_subscription_test.dart b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
index 57fc915..f73853c 100644
--- a/app_dart/test/request_handlers/github/webhook_subscription_test.dart
+++ b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
@@ -1010,6 +1010,26 @@
       ));
     });
 
+    test('Framework no comment if only .gitignore changed', () async {
+      const int issueNumber = 123;
+      tester.message = generateGithubWebhookMessage(action: 'opened', number: issueNumber);
+
+      when(pullRequestsService.listFiles(Config.flutterSlug, issueNumber)).thenAnswer(
+        (_) => Stream<PullRequestFile>.fromIterable(<PullRequestFile>[
+          PullRequestFile()..filename = '.gitignore',
+          PullRequestFile()..filename = 'dev/integration_tests/foo_app/.gitignore',
+        ]),
+      );
+
+      await tester.post(webhook);
+
+      verifyNever(issuesService.createComment(
+        any,
+        issueNumber,
+        argThat(contains(config.missingTestsPullRequestMessageValue)),
+      ));
+    });
+
     test('Framework no test comment if Objective-C test changed', () async {
       const int issueNumber = 123;
       tester.message = generateGithubWebhookMessage(action: 'opened', number: issueNumber);