A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/microsoft/PowerShellForGitHub/commit/d76f54b08ea7c3f3355ec188827fadc0035d0595 below:

Add New/Remove-GitHubRepositoryBranch Functions (#256) · microsoft/PowerShellForGitHub@d76f54b · GitHub

@@ -154,6 +154,352 @@ filter Get-GitHubRepositoryBranch

154 154

return (Invoke-GHRestMethodMultipleResult @params | Add-GitHubBranchAdditionalProperties)

155 155

}

156 156 157 +

filter New-GitHubRepositoryBranch

158 +

{

159 +

<#

160 +

.SYNOPSIS

161 +

Creates a new branch for a given GitHub repository.

162 + 163 +

.DESCRIPTION

164 +

Creates a new branch for a given GitHub repository.

165 + 166 +

The Git repo for this module can be found here: http://aka.ms/PowerShellForGitHub

167 + 168 +

.PARAMETER OwnerName

169 +

Owner of the repository.

170 +

If not supplied here, the DefaultOwnerName configuration property value will be used.

171 + 172 +

.PARAMETER RepositoryName

173 +

Name of the repository.

174 +

If not supplied here, the DefaultRepositoryName configuration property value will be used.

175 + 176 +

.PARAMETER Uri

177 +

Uri for the repository.

178 +

The OwnerName and RepositoryName will be extracted from here instead of needing to provide

179 +

them individually.

180 + 181 +

.PARAMETER BranchName

182 +

The name of the origin branch to create the new branch from.

183 + 184 +

.PARAMETER TargetBranchName

185 +

Name of the branch to be created.

186 + 187 +

.PARAMETER AccessToken

188 +

If provided, this will be used as the AccessToken for authentication with the

189 +

REST Api. Otherwise, will attempt to use the configured value or will run unauthenticated.

190 + 191 +

.PARAMETER NoStatus

192 +

If this switch is specified, long-running commands will run on the main thread

193 +

with no commandline status update. When not specified, those commands run in

194 +

the background, enabling the command prompt to provide status information.

195 +

If not supplied here, the DefaultNoStatus configuration property value will be used.

196 + 197 +

.INPUTS

198 +

GitHub.Branch

199 +

GitHub.Content

200 +

GitHub.Event

201 +

GitHub.Issue

202 +

GitHub.IssueComment

203 +

GitHub.Label

204 +

GitHub.Milestone

205 +

GitHub.PullRequest

206 +

GitHub.Project

207 +

GitHub.ProjectCard

208 +

GitHub.ProjectColumn

209 +

GitHub.Release

210 +

GitHub.Repository

211 + 212 +

.OUTPUTS

213 +

GitHub.Branch

214 + 215 +

.EXAMPLE

216 +

New-GitHubRepositoryBranch -OwnerName microsoft -RepositoryName PowerShellForGitHub -TargetBranchName new-branch

217 + 218 +

Creates a new branch in the specified repository from the master branch.

219 + 220 +

.EXAMPLE

221 +

New-GitHubRepositoryBranch -Uri 'https://github.com/microsoft/PowerShellForGitHub' -BranchName develop -TargetBranchName new-branch

222 + 223 +

Creates a new branch in the specified repository from the 'develop' origin branch.

224 + 225 +

.EXAMPLE

226 +

$repo = Get-GithubRepository -Uri https://github.com/You/YourRepo

227 +

$repo | New-GitHubRepositoryBranch -TargetBranchName new-branch

228 + 229 +

You can also pipe in a repo that was returned from a previous command.

230 +

#>

231 +

[CmdletBinding(

232 +

SupportsShouldProcess,

233 +

DefaultParameterSetName = 'Elements',

234 +

PositionalBinding = $false

235 +

)]

236 +

[OutputType({$script:GitHubBranchTypeName})]

237 +

[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '',

238 +

Justification = 'Methods called within here make use of PSShouldProcess, and the switch is

239 +

passed on to them inherently.')]

240 +

[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '',

241 +

Justification = 'One or more parameters (like NoStatus) are only referenced by helper

242 +

methods which get access to it from the stack via Get-Variable -Scope 1.')]

243 +

[Alias('New-GitHubBranch')]

244 +

param(

245 +

[Parameter(ParameterSetName = 'Elements')]

246 +

[string] $OwnerName,

247 + 248 +

[Parameter(ParameterSetName = 'Elements')]

249 +

[string] $RepositoryName,

250 + 251 +

[Parameter(

252 +

Mandatory,

253 +

ValueFromPipelineByPropertyName,

254 +

Position = 1,

255 +

ParameterSetName = 'Uri')]

256 +

[Alias('RepositoryUrl')]

257 +

[string] $Uri,

258 + 259 +

[string] $BranchName = 'master',

260 + 261 +

[Parameter(

262 +

Mandatory,

263 +

ValueFromPipeline,

264 +

Position = 2)]

265 +

[string] $TargetBranchName,

266 + 267 +

[string] $AccessToken,

268 + 269 +

[switch] $NoStatus

270 +

)

271 + 272 +

Write-InvocationLog

273 + 274 +

$elements = Resolve-RepositoryElements

275 +

$OwnerName = $elements.ownerName

276 +

$RepositoryName = $elements.repositoryName

277 + 278 +

$telemetryProperties = @{

279 +

'OwnerName' = (Get-PiiSafeString -PlainText $OwnerName)

280 +

'RepositoryName' = (Get-PiiSafeString -PlainText $RepositoryName)

281 +

}

282 + 283 +

$originBranch = $null

284 + 285 +

try

286 +

{

287 +

$getGitHubRepositoryBranchParms = @{

288 +

OwnerName = $OwnerName

289 +

RepositoryName = $RepositoryName

290 +

BranchName = $BranchName

291 +

Whatif = $false

292 +

Confirm = $false

293 +

}

294 +

if ($PSBoundParameters.ContainsKey('AccessToken'))

295 +

{

296 +

$getGitHubRepositoryBranchParms['AccessToken'] = $AccessToken

297 +

}

298 +

if ($PSBoundParameters.ContainsKey('NoStatus'))

299 +

{

300 +

$getGitHubRepositoryBranchParms['NoStatus'] = $NoStatus

301 +

}

302 + 303 +

Write-Log -Level Verbose "Getting $BranchName branch for sha reference"

304 +

$originBranch = Get-GitHubRepositoryBranch @getGitHubRepositoryBranchParms

305 +

}

306 +

catch

307 +

{

308 +

# Temporary code to handle current differences in exception object between PS5 and PS7

309 +

$throwObject = $_

310 + 311 +

if ($PSVersionTable.PSedition -eq 'Core')

312 +

{

313 +

if ($_.Exception -is [Microsoft.PowerShell.Commands.HttpResponseException] -and

314 +

($_.ErrorDetails.Message | ConvertFrom-Json).message -eq 'Branch not found')

315 +

{

316 +

$throwObject = "Origin branch $BranchName not found"

317 +

}

318 +

}

319 +

else

320 +

{

321 +

if ($_.Exception.Message -like '*Not Found*')

322 +

{

323 +

$throwObject = "Origin branch $BranchName not found"

324 +

}

325 +

}

326 + 327 +

Write-Log -Message $throwObject -Level Error

328 +

throw $throwObject

329 +

}

330 + 331 +

$uriFragment = "repos/$OwnerName/$RepositoryName/git/refs"

332 + 333 +

$hashBody = @{

334 +

ref = "refs/heads/$TargetBranchName"

335 +

sha = $originBranch.commit.sha

336 +

}

337 + 338 +

$params = @{

339 +

'UriFragment' = $uriFragment

340 +

'Body' = (ConvertTo-Json -InputObject $hashBody)

341 +

'Method' = 'Post'

342 +

'Description' = "Creating branch $TargetBranchName for $RepositoryName"

343 +

'AccessToken' = $AccessToken

344 +

'TelemetryEventName' = $MyInvocation.MyCommand.Name

345 +

'TelemetryProperties' = $telemetryProperties

346 +

'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)

347 +

}

348 + 349 +

return (Invoke-GHRestMethod @params | Add-GitHubBranchAdditionalProperties)

350 +

}

351 + 352 +

filter Remove-GitHubRepositoryBranch

353 +

{

354 +

<#

355 +

.SYNOPSIS

356 +

Removes a branch from a given GitHub repository.

357 + 358 +

.DESCRIPTION

359 +

Removes a branch from a given GitHub repository.

360 + 361 +

The Git repo for this module can be found here: http://aka.ms/PowerShellForGitHub

362 + 363 +

.PARAMETER OwnerName

364 +

Owner of the repository.

365 +

If not supplied here, the DefaultOwnerName configuration property value will be used.

366 + 367 +

.PARAMETER RepositoryName

368 +

Name of the repository.

369 +

If not supplied here, the DefaultRepositoryName configuration property value will be used.

370 + 371 +

.PARAMETER Uri

372 +

Uri for the repository.

373 +

The OwnerName and RepositoryName will be extracted from here instead of needing to provide

374 +

them individually.

375 + 376 +

.PARAMETER BranchName

377 +

Name of the branch to be removed.

378 + 379 +

.PARAMETER Force

380 +

If this switch is specified, you will not be prompted for confirmation of command execution.

381 + 382 +

.PARAMETER AccessToken

383 +

If provided, this will be used as the AccessToken for authentication with the

384 +

REST Api. Otherwise, will attempt to use the configured value or will run unauthenticated.

385 + 386 +

.PARAMETER NoStatus

387 +

If this switch is specified, long-running commands will run on the main thread

388 +

with no commandline status update. When not specified, those commands run in

389 +

the background, enabling the command prompt to provide status information.

390 +

If not supplied here, the DefaultNoStatus configuration property value will be used.

391 + 392 +

.INPUTS

393 +

GitHub.Branch

394 +

GitHub.Content

395 +

GitHub.Event

396 +

GitHub.Issue

397 +

GitHub.IssueComment

398 +

GitHub.Label

399 +

GitHub.Milestone

400 +

GitHub.PullRequest

401 +

GitHub.Project

402 +

GitHub.ProjectCard

403 +

GitHub.ProjectColumn

404 +

GitHub.Release

405 +

GitHub.Repository

406 + 407 +

.OUTPUTS

408 +

None

409 + 410 +

.EXAMPLE

411 +

Remove-GitHubRepositoryBranch -OwnerName microsoft -RepositoryName PowerShellForGitHub -BranchName develop

412 + 413 +

Removes the 'develop' branch from the specified repository.

414 + 415 +

.EXAMPLE

416 +

Remove-GitHubRepositoryBranch -OwnerName microsoft -RepositoryName PowerShellForGitHub -BranchName develop -Force

417 + 418 +

Removes the 'develop' branch from the specified repository without prompting for confirmation.

419 + 420 +

.EXAMPLE

421 +

$branch = Get-GitHubRepositoryBranch -Uri https://github.com/You/YourRepo -BranchName BranchToDelete

422 +

$branch | Remove-GitHubRepositoryBranch -Force

423 + 424 +

You can also pipe in a repo that was returned from a previous command.

425 +

#>

426 +

[CmdletBinding(

427 +

SupportsShouldProcess,

428 +

DefaultParameterSetName = 'Elements',

429 +

PositionalBinding = $false,

430 +

ConfirmImpact = 'High')]

431 +

[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSShouldProcess", "",

432 +

Justification = "Methods called within here make use of PSShouldProcess, and the switch is

433 +

passed on to them inherently.")]

434 +

[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSReviewUnusedParameter", "",

435 +

Justification = "One or more parameters (like NoStatus) are only referenced by helper

436 +

methods which get access to it from the stack via Get-Variable -Scope 1.")]

437 +

[Alias('Remove-GitHubBranch')]

438 +

[Alias('Delete-GitHubRepositoryBranch')]

439 +

[Alias('Delete-GitHubBranch')]

440 +

param(

441 +

[Parameter(ParameterSetName = 'Elements')]

442 +

[string] $OwnerName,

443 + 444 +

[Parameter(ParameterSetName = 'Elements')]

445 +

[string] $RepositoryName,

446 + 447 +

[Parameter(

448 +

Mandatory,

449 +

ValueFromPipelineByPropertyName,

450 +

Position = 1,

451 +

ParameterSetName = 'Uri')]

452 +

[Alias('RepositoryUrl')]

453 +

[string] $Uri,

454 + 455 +

[Parameter(

456 +

Mandatory,

457 +

ValueFromPipelineByPropertyName,

458 +

Position = 2)]

459 +

[string] $BranchName,

460 + 461 +

[switch] $Force,

462 + 463 +

[string] $AccessToken,

464 + 465 +

[switch] $NoStatus

466 +

)

467 + 468 +

$elements = Resolve-RepositoryElements

469 +

$OwnerName = $elements.ownerName

470 +

$RepositoryName = $elements.repositoryName

471 + 472 +

$telemetryProperties = @{

473 +

'OwnerName' = (Get-PiiSafeString -PlainText $OwnerName)

474 +

'RepositoryName' = (Get-PiiSafeString -PlainText $RepositoryName)

475 +

}

476 + 477 +

$uriFragment = "repos/$OwnerName/$RepositoryName/git/refs/heads/$BranchName"

478 + 479 +

if ($Force -and (-not $Confirm))

480 +

{

481 +

$ConfirmPreference = 'None'

482 +

}

483 + 484 +

if ($PSCmdlet.ShouldProcess($BranchName, "Remove Repository Branch"))

485 +

{

486 +

Write-InvocationLog

487 + 488 +

$params = @{

489 +

'UriFragment' = $uriFragment

490 +

'Method' = 'Delete'

491 +

'Description' = "Deleting branch $BranchName from $RepositoryName"

492 +

'AccessToken' = $AccessToken

493 +

'TelemetryEventName' = $MyInvocation.MyCommand.Name

494 +

'TelemetryProperties' = $telemetryProperties

495 +

'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue `

496 +

-Name NoStatus -ConfigValueName DefaultNoStatus)

497 +

}

498 + 499 +

Invoke-GHRestMethod @params | Out-Null

500 +

}

501 +

}

502 + 157 503

filter Add-GitHubBranchAdditionalProperties

158 504

{

159 505

<#

@@ -192,11 +538,25 @@ filter Add-GitHubBranchAdditionalProperties

192 538 193 539

if (-not (Get-GitHubConfiguration -Name DisablePipelineSupport))

194 540

{

195 -

$elements = Split-GitHubUri -Uri $item.commit.url

541 +

if ($null -ne $item.url)

542 +

{

543 +

$elements = Split-GitHubUri -Uri $item.url

544 +

}

545 +

else

546 +

{

547 +

$elements = Split-GitHubUri -Uri $item.commit.url

548 +

}

196 549

$repositoryUrl = Join-GitHubUri @elements

550 + 197 551

Add-Member -InputObject $item -Name 'RepositoryUrl' -Value $repositoryUrl -MemberType NoteProperty -Force

198 552 199 -

Add-Member -InputObject $item -Name 'BranchName' -Value $item.name -MemberType NoteProperty -Force

553 +

$branchName = $item.name

554 +

if ($null -eq $branchName)

555 +

{

556 +

$branchName = $item.ref -replace ('refs/heads/', '')

557 +

}

558 + 559 +

Add-Member -InputObject $item -Name 'BranchName' -Value $branchName -MemberType NoteProperty -Force

200 560

}

201 561 202 562

Write-Output $item


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4