Skip to content

Commit 7235276

Browse files
authored
Merge pull request #130 from rust-lang/ignore-noops-in-diff
ignore noops in diff
2 parents aacf0f2 + ef643fc commit 7235276

File tree

2 files changed

+25
-42
lines changed

2 files changed

+25
-42
lines changed

sync-team/src/github/mod.rs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ impl SyncGitHub {
107107
// Remove the current team from the collection of unseen GitHub teams
108108
unseen_github_teams.remove(&github_team.name);
109109

110-
diffs.push(self.diff_team(github_team)?);
110+
let diff_team = self.diff_team(github_team)?;
111+
if !diff_team.noop() {
112+
diffs.push(diff_team);
113+
}
111114
}
112115
}
113116
}
@@ -222,7 +225,10 @@ impl SyncGitHub {
222225
fn diff_repos(&self) -> anyhow::Result<Vec<RepoDiff>> {
223226
let mut diffs = Vec::new();
224227
for repo in &self.repos {
225-
diffs.push(self.diff_repo(repo)?);
228+
let repo_diff = self.diff_repo(repo)?;
229+
if !repo_diff.noop() {
230+
diffs.push(repo_diff);
231+
}
226232
}
227233
Ok(diffs)
228234
}
@@ -588,6 +594,13 @@ impl RepoDiff {
588594
RepoDiff::Update(u) => u.apply(sync),
589595
}
590596
}
597+
598+
fn noop(&self) -> bool {
599+
match self {
600+
RepoDiff::Create(_c) => false,
601+
RepoDiff::Update(u) => u.noop(),
602+
}
603+
}
591604
}
592605

593606
impl std::fmt::Display for RepoDiff {
@@ -944,6 +957,13 @@ impl TeamDiff {
944957

945958
Ok(())
946959
}
960+
961+
fn noop(&self) -> bool {
962+
match self {
963+
TeamDiff::Create(_) | TeamDiff::Delete(_) => false,
964+
TeamDiff::Edit(e) => e.noop(),
965+
}
966+
}
947967
}
948968

949969
impl std::fmt::Display for TeamDiff {

sync-team/src/github/tests/mod.rs

Lines changed: 3 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -92,29 +92,7 @@ fn team_dont_add_member_if_invitation_is_pending() {
9292
gh.add_invitation("admins-gh", "jan");
9393

9494
let team_diff = model.diff_teams(gh);
95-
insta::assert_debug_snapshot!(team_diff, @r###"
96-
[
97-
Edit(
98-
EditTeamDiff {
99-
org: "rust-lang",
100-
name: "admins-gh",
101-
name_diff: None,
102-
description_diff: None,
103-
privacy_diff: None,
104-
member_diffs: [
105-
(
106-
"mark",
107-
Noop,
108-
),
109-
(
110-
"jan",
111-
Noop,
112-
),
113-
],
114-
},
115-
),
116-
]
117-
"###);
95+
insta::assert_debug_snapshot!(team_diff, @"[]");
11896
}
11997

12098
#[test]
@@ -172,23 +150,8 @@ fn team_delete() {
172150
model.get_team("admins").remove_gh_team("users-gh");
173151

174152
let team_diff = model.diff_teams(gh);
175-
insta::assert_debug_snapshot!(team_diff, @r###"
153+
insta::assert_debug_snapshot!(team_diff, @r#"
176154
[
177-
Edit(
178-
EditTeamDiff {
179-
org: "rust-lang",
180-
name: "admins-gh",
181-
name_diff: None,
182-
description_diff: None,
183-
privacy_diff: None,
184-
member_diffs: [
185-
(
186-
"mark",
187-
Noop,
188-
),
189-
],
190-
},
191-
),
192155
Delete(
193156
DeleteTeamDiff {
194157
org: "rust-lang",
@@ -197,7 +160,7 @@ fn team_delete() {
197160
},
198161
),
199162
]
200-
"###);
163+
"#);
201164
}
202165

203166
#[test]

0 commit comments

Comments
 (0)