Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed bug of deleting more than expected. #3250

Merged
12 commits merged into from
Apr 28, 2022
11 changes: 7 additions & 4 deletions eng/common/scripts/Delete-RemoteBranches.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ foreach ($res in $responses)
continue
}
$branch = $res.ref
$branchName = $branch.Replace("refs/heads/","")
try {
$branchName = $branch.Replace("refs/heads/","")
$head = "${RepoId}:${branchName}"
LogDebug "Operating on branch [ $branchName ]"
$pullRequests = Get-GitHubPullRequests -RepoId $RepoId -State "all" -Head $head -AuthToken $AuthToken
Expand All @@ -53,26 +53,29 @@ foreach ($res in $responses)
continue
}

LogDebug "Branch [ $branchName ] in repo [ $RepoId ] has no associated open Pull Request. "
if ($LastCommitOlderThan) {
if (!$res.object -or !$res.object.url) {
LogWarning "No commit url returned from response. Skipping... "
continue
}
try {
$commitDate = Get-GithubReferenceCommitDate -commitUrl $res.object.url -AuthToken $AuthToken
if ($commitDate -and ($commitDate -gt $LastCommitOlderThan)) {
LogDebug "The branch $branch last commit date $commitDate is newer than the date $LastCommitOlderThan. Skipping."
if (!$commitDate -or ($commitDate -gt $LastCommitOlderThan)) {
LogDebug "No last commit date or the branch $branch last commit date [ $commitDate ] is newer than the date $LastCommitOlderThan. Skipping."
continue
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think if you broke this up into two separate if+log statements then the reader wouldn't have to guess from the log which condition was true.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


LogDebug "Branch [ $branchName ] in repo [ $RepoId ] has a last commit date [ $commitDate ] that is older than $LastCommitOlderThan. "
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I generally use single quotes for special values in strings vs. brackets with spaces, as it will make your log statement shorter and easier to read without horizontal scrolling in some situations.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is asking the change for the entire file. I am going to have follow up of switching github api to gh. I can make the changes over there.

}
catch {
LogError "Get-GithubReferenceCommitDate failed with exception:`n$_"
exit 1
}
}
LogDebug "Branch [ $branchName ] in repo [ $RepoId ] has no associated open Pull Request. "
sima-zhu marked this conversation as resolved.
Show resolved Hide resolved
try {
Remove-GitHubSourceReferences -RepoId $RepoId -Ref $branch -AuthToken $AuthToken
sima-zhu marked this conversation as resolved.
Show resolved Hide resolved
LogDebug "The branch [ $branchName ] in [ $RepoId ] has been deleted."
}
catch {
LogError "Remove-GitHubSourceReferences failed with exception:`n$_"
Expand Down
2 changes: 1 addition & 1 deletion eng/common/scripts/Invoke-GitHubAPI.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -429,5 +429,5 @@ function Get-GithubReferenceCommitDate($commitUrl, $AuthToken) {
LogDebug "No date returned from the commit sha. "
return $null
}
return $commitData.committer.date
return $commitResponse.committer.date
}