compliance: Use tag instead of branch name by default (#53409)

Finn Evers created

Release Notes:

- N/A

Change summary

tooling/compliance/src/git.rs         | 32 ++--------------------------
tooling/xtask/src/tasks/compliance.rs | 22 ++++++-------------
2 files changed, 10 insertions(+), 44 deletions(-)

Detailed changes

tooling/compliance/src/git.rs 🔗

@@ -303,12 +303,12 @@ impl FromStr for VersionTagList {
     }
 }
 
-pub struct CommitsFromVersionToHead {
+pub struct CommitsFromVersionToVersion {
     version_tag: VersionTag,
     branch: String,
 }
 
-impl CommitsFromVersionToHead {
+impl CommitsFromVersionToVersion {
     pub fn new(version_tag: VersionTag, branch: String) -> Self {
         Self {
             version_tag,
@@ -317,7 +317,7 @@ impl CommitsFromVersionToHead {
     }
 }
 
-impl Subcommand for CommitsFromVersionToHead {
+impl Subcommand for CommitsFromVersionToVersion {
     type ParsedOutput = CommitList;
 
     fn args(&self) -> impl IntoIterator<Item = String> {
@@ -343,32 +343,6 @@ impl FromStr for NoOutput {
     }
 }
 
-pub struct FetchRefs {
-    branch: String,
-}
-
-impl FetchRefs {
-    pub fn new(branch: String) -> Self {
-        Self { branch }
-    }
-}
-
-impl Subcommand for FetchRefs {
-    type ParsedOutput = NoOutput;
-
-    fn args(&self) -> impl IntoIterator<Item = String> {
-        [
-            "fetch".to_string(),
-            "origin".to_string(),
-            "refs/tags/*:refs/tags/*".to_string(),
-            format!(
-                "refs/heads/{}:refs/remotes/origin/{}",
-                self.branch, self.branch
-            ),
-        ]
-    }
-}
-
 #[cfg(test)]
 mod tests {
     use super::*;

tooling/xtask/src/tasks/compliance.rs 🔗

@@ -5,7 +5,7 @@ use clap::Parser;
 
 use compliance::{
     checks::Reporter,
-    git::{CommitsFromVersionToHead, FetchRefs, GetVersionTags, GitCommand, VersionTag},
+    git::{CommitsFromVersionToVersion, GetVersionTags, GitCommand, VersionTag},
     github::GitHubClient,
     report::ReportReviewSummary,
 };
@@ -28,14 +28,10 @@ impl ComplianceArgs {
         &self.version_tag
     }
 
-    fn version_branch(&self) -> String {
-        self.branch.clone().unwrap_or_else(|| {
-            format!(
-                "v{major}.{minor}.x",
-                major = self.version_tag().version().major,
-                minor = self.version_tag().version().minor
-            )
-        })
+    fn version_head(&self) -> String {
+        self.branch
+            .clone()
+            .unwrap_or_else(|| self.version_tag().to_string())
     }
 }
 
@@ -44,10 +40,6 @@ async fn check_compliance_impl(args: ComplianceArgs) -> Result<()> {
     let key = std::env::var("GITHUB_APP_KEY").context("Missing GITHUB_APP_KEY")?;
 
     let tag = args.version_tag();
-    let version_branch = args.version_branch();
-
-    println!("Fetching tags and branch {version_branch}...");
-    GitCommand::run(FetchRefs::new(version_branch.clone()))?;
 
     let previous_version = GitCommand::run(GetVersionTags)?
         .sorted()
@@ -66,9 +58,9 @@ async fn check_compliance_impl(args: ComplianceArgs) -> Result<()> {
         previous_version.version()
     );
 
-    let commits = GitCommand::run(CommitsFromVersionToHead::new(
+    let commits = GitCommand::run(CommitsFromVersionToVersion::new(
         previous_version,
-        version_branch,
+        args.version_head(),
     ))?;
 
     let Some(range) = commits.range() else {