diff --git a/src/main/scala/com/codacy/rules/commituuid/CommitUUIDProvider.scala b/src/main/scala/com/codacy/rules/commituuid/CommitUUIDProvider.scala index 2c893931..815fb96d 100644 --- a/src/main/scala/com/codacy/rules/commituuid/CommitUUIDProvider.scala +++ b/src/main/scala/com/codacy/rules/commituuid/CommitUUIDProvider.scala @@ -65,6 +65,7 @@ object CommitUUIDProvider extends LogSupport { ArgoCDProvider, AWSCodeBuildProvider, AzurePipelinesProvider, + BitbucketCloudProvider, BitriseCIProvider, BuildkiteCIProvider, CircleCIProvider, diff --git a/src/main/scala/com/codacy/rules/commituuid/providers/BitbucketCloudProvider.scala b/src/main/scala/com/codacy/rules/commituuid/providers/BitbucketCloudProvider.scala new file mode 100644 index 00000000..571e4175 --- /dev/null +++ b/src/main/scala/com/codacy/rules/commituuid/providers/BitbucketCloudProvider.scala @@ -0,0 +1,18 @@ +package com.codacy.rules.commituuid.providers + +import com.codacy.model.configuration.CommitUUID +import com.codacy.rules.commituuid.CommitUUIDProvider + +/** Bitbucket Cloud Pipeline provider */ +object BitbucketCloudProvider extends CommitUUIDProvider { + val name: String = "Bitbucket Cloud Pipeline" + + override def validateEnvironment(environment: Map[String, String]): Boolean = { + // CI is a bit generic and could be used by other CI Providers as well + // Check on Bitbucket Build Number as well + environment.contains("CI") && environment.contains("BITBUCKET_BUILD_NUMBER") + } + + override def getValidCommitUUID(environment: Map[String, String]): Either[String, CommitUUID] = + parseEnvironmentVariable(environment.get("BITBUCKET_COMMIT")) +}