Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
875 commits
Select commit Hold shift + click to select a range
fcfd4f1
Add TME to clean-up (#9111)
weshaggard Oct 8, 2024
981fd3b
Bump eslint-config-prettier from 8.10.0 to 9.1.0 in /tools/sdk-testge…
dependabot[bot] Oct 9, 2024
dfc9768
Bump @types/node from 14.18.63 to 22.7.5 in /tools/sdk-testgen (#9104)
dependabot[bot] Oct 9, 2024
7f50b0a
Include optional navigation tree in JSON token schema to support cust…
praveenkuttappan Oct 10, 2024
89483a3
Bump openapi-to-typespec to 0.10.1 (#9120)
pshao25 Oct 10, 2024
af49675
Bump jest-junit from 12.3.0 to 16.0.0 in /tools/sdk-testgen (#9124)
dependabot[bot] Oct 10, 2024
4cb107a
Bump the npm_and_yarn group across 1 directory with 4 updates (#9097)
dependabot[bot] Oct 10, 2024
86498bc
Bump reflect-metadata from 0.1.13 to 0.2.2 in /tools/sdk-testgen (#9089)
dependabot[bot] Oct 10, 2024
7acda18
Bump cpy-cli from 4.2.0 to 5.0.0 in /tools/sdk-testgen (#9125)
dependabot[bot] Oct 10, 2024
9eb35a6
[js-apiview-parser] increment version to 2.0.1 (#9132)
jeremymeng Oct 10, 2024
4807474
Bump System.Text.Json (#9121)
dependabot[bot] Oct 10, 2024
88c86a6
Pylint Exception logging (#9077)
JessicaBell00 Oct 10, 2024
34d0ef6
Swagger APIView Bugfix (#9133)
chidozieononiwu Oct 10, 2024
d99e90c
Hide the navigation nodes for unmodified nodes in diff (#9015)
praveenkuttappan Oct 11, 2024
6c5d466
[Pylint] Check client methods have approved name prefix (#9081)
MJoshuaB Oct 11, 2024
6852ce7
Parse CI Artifacts (#9102)
scbedd Oct 11, 2024
7c98f1b
Do not hardcode boolean connection verify v2 (#9118)
16234397 Oct 11, 2024
68c10a4
Update JS parser verison (#9145)
praveenkuttappan Oct 11, 2024
3db4a75
Invalid use of @overload v2 (#9127)
16234397 Oct 11, 2024
7e5d208
sample-automation, bug fix on wrong api version folder (#9151)
weidongxu-microsoft Oct 14, 2024
27a2d5a
Add redirect URL to login requests (#9141)
chidozieononiwu Oct 14, 2024
77ed11b
Handle empty/null alias in function (#9155)
weshaggard Oct 14, 2024
f11ccd8
Bug fix/api view cache (#9158)
chidozieononiwu Oct 14, 2024
0ea4034
Bump the npm_and_yarn group across 2 directories with 3 updates (#9153)
dependabot[bot] Oct 14, 2024
239e12f
Upgrade the revisions on the fly (#9171)
praveenkuttappan Oct 15, 2024
e7f2d5e
091724/samples api view (#9038)
chidozieononiwu Oct 15, 2024
5b06bc0
clean up remaining TODOs (#9178)
MJoshuaB Oct 15, 2024
7a9ff94
Use $GITHUB_EVENT_PATH variable instead of inline file writing (#9134)
benbp Oct 15, 2024
582847c
[apiview-js-parser] fix some bugs (#9180)
jeremymeng Oct 16, 2024
7a0601f
Update JS API parser to 2.0.2 (#9182)
praveenkuttappan Oct 16, 2024
5f6da72
Bump @types/jest from 26.0.24 to 29.5.13 in /tools/sdk-testgen (#9139)
dependabot[bot] Oct 16, 2024
c625868
Bump eslint-plugin-prettier from 3.4.1 to 4.2.1 in /tools/sdk-testgen…
dependabot[bot] Oct 16, 2024
4909002
Changes required for sdk-repo based emitter pipelines (#9147)
hallipr Oct 16, 2024
5c33c4d
Set resource group env variable early so remove always works (#9202)
benbp Oct 16, 2024
e711878
Fix missing CloseAddressedIssues in gh event processor (#9199)
benbp Oct 16, 2024
341f987
Bump jsonpath-plus in /tools/sdk-testgen in the npm_and_yarn group (#…
dependabot[bot] Oct 17, 2024
a2c01b5
Handle missing artifacts without exception (#9179)
scbedd Oct 17, 2024
aedce14
Escape parentheses in includes to fix issues in publishing (#9177)
danieljurek Oct 17, 2024
80f9460
Resolve bug in file upload (#9185)
chidozieononiwu Oct 17, 2024
68f32a9
Update APIView token TypeSpec to generate valid JSON schema with top…
praveenkuttappan Oct 17, 2024
4554792
Add ability to not trigger `PR` diff generation if the incoming servi…
scbedd Oct 18, 2024
08a486a
Handle cleanup for leased and encrypted storage accounts. Reduce thro…
benbp Oct 18, 2024
83d4995
prettify java-packages/codesnippet-maven-plugin readme java snippets …
Meir017 Oct 18, 2024
b0ca561
CSS BugFix (#9183)
chidozieononiwu Oct 19, 2024
b674943
Move perf pipelines to TME subscription (#9216)
weshaggard Oct 21, 2024
4025ae6
Bump openapi-to-typespec to 0.10.2 (#9219)
pshao25 Oct 22, 2024
240c5e2
Remove default sub config sub-config-azure-cloud-test-resources (#9229)
weshaggard Oct 22, 2024
29ed18c
Disable auto-baseline on non default branch (#9225)
benbp Oct 22, 2024
818b3d2
Fix spelling of Regenerate in yaml (#9234)
hallipr Oct 22, 2024
439be76
fix bug causing monaco editor not to load (#9228)
chidozieononiwu Oct 23, 2024
4f150ea
Support branch name with space in create review step (#9235)
praveenkuttappan Oct 23, 2024
f4965c2
Add azure-sdk-for-rust to utility pipelines (#8737)
hallipr Oct 23, 2024
8b2d384
Refactor PackageProps to make the Yaml loading and processing methods…
JimSuplizio Oct 24, 2024
5ea3eee
Resolve Failing Java Integration Tests (#9239)
scbedd Oct 24, 2024
7e93b2e
Update apiview token prefix (#9230)
praveenkuttappan Oct 24, 2024
3e14dca
Update CODEOWNERS (#9245)
lirenhe Oct 24, 2024
4090e73
examples-automation, handle corner cases and invalid cases from upstr…
weidongxu-microsoft Oct 25, 2024
bf41c7b
[apiview-js-parser] more bug fixes (#9184)
jeremymeng Oct 25, 2024
2198ed5
Update azure-sdk-build-tools Repository Resource Refs in Yaml files (…
azure-sdk Oct 25, 2024
1580aee
Update JS parser version (#9257)
praveenkuttappan Oct 25, 2024
13d3a57
Bump typescript from 4.8.4 to 5.6.3 in /tools/sdk-testgen (#9215)
dependabot[bot] Oct 28, 2024
3e821ca
Bump oav from 3.4.0 to 3.5.1 in /tools/sdk-testgen (#9205)
dependabot[bot] Oct 28, 2024
ae456ba
[stress testing] Allow default matrix selection override (#9249)
benbp Oct 28, 2024
45e0885
Add azure-rest-api-specs to common sync (#9266)
weshaggard Oct 28, 2024
1e3fe4a
Patch Basic Detection for RLC (#9209)
wanlwanl Oct 29, 2024
f189fe4
Run perf tests under federated auth (#9259)
weshaggard Oct 29, 2024
dfc24b6
update ResourceManager to 1.13.0 (#9284)
RodgeFu Oct 30, 2024
16826b8
Support Type Alias Scope Expand Detection (#9283)
wanlwanl Oct 30, 2024
4429cef
ADD readme for APIViewJSON Utility (#9270)
praveenkuttappan Oct 30, 2024
bcf2fa9
[stress testing] Set up storage file data contributor role for cluste…
benbp Oct 30, 2024
409d7eb
`Create-PrJobMatrix` (#9281)
scbedd Oct 30, 2024
bf2e0b6
Fix Integration Issue w/ `Create-PRJobMatrix` (#9290)
scbedd Oct 31, 2024
9b3e202
Expose fullyCompatible parameter of converter (#9238)
pshao25 Oct 31, 2024
ccf2644
Reduce unnecessary delete calls to ARM for storage accounts (#9292)
benbp Oct 31, 2024
93ef611
Update Logging (#9288)
chidozieononiwu Oct 31, 2024
724f56b
naming batches shorter, separating packages by comma (#9294)
scbedd Oct 31, 2024
0b95588
Add AdditionalTags processing (#9296)
hallipr Nov 1, 2024
bf7c4cf
Update build tags before exporting to kusto (#9299)
hallipr Nov 1, 2024
266508f
Test proxy logs - sanitizer info (#9164)
HarshaNalluru Nov 1, 2024
fb5953f
target newly released proxy version (#9300)
scbedd Nov 4, 2024
a1bd217
remove unnecessary Resolve-Path in Get-PrPkgProperties (#9308)
scbedd Nov 4, 2024
b58fa8c
[stress testing] Move prod cluster to TME subscription (#9277)
benbp Nov 5, 2024
824fa55
Fix Path Issue in RLC (#9307)
wanlwanl Nov 5, 2024
8fd2675
Disable `InitializeCIArtifacts` on Non-CI Builds (#9330)
scbedd Nov 5, 2024
eec88b5
Initial check in for the sdk generation core project (#9327)
raych1 Nov 6, 2024
991e31e
Removed package config temporarily (#9338)
raych1 Nov 6, 2024
59d869d
Removed test package config (#9340)
raych1 Nov 6, 2024
ea6d516
Use local version of format diagnostic for tsp-client (#9348)
timotheeguerin Nov 7, 2024
928275a
Tsp client vitest (#9352)
timotheeguerin Nov 7, 2024
1cbab84
[tsp-client] Simplify local spec scenario for `init` command (#9108)
catalinaperalta Nov 7, 2024
79b6cd0
Live test cleanup - sub deployments, immutable containers, purge skip…
benbp Nov 7, 2024
61157fd
Finish docs cleanup (#9331)
JimSuplizio Nov 7, 2024
3b44d07
Disable adaptive sampling to AppInsights (#9339)
hallipr Nov 7, 2024
9c36aa6
[tsp-client] Print example command (#9217)
catalinaperalta Nov 8, 2024
607a9d8
Updates to dotnet example automation for recent changes on dotnet sid…
ArcturusZhang Nov 11, 2024
72316fa
[http-fault-injector] Add README.md to java samples (#9361)
mikeharder Nov 11, 2024
d9cead0
Update docindex.yml to use Python 3.11 (#9358)
danieljurek Nov 11, 2024
b153653
Reduce ingestion costs by disabling auto dependency call tracing (#9356)
hallipr Nov 11, 2024
18a51f2
[js-apiview-parser] update CodeFile models from schemas (#9256)
jeremymeng Nov 12, 2024
e405398
Bump jsonpath-plus in /tools/sdk-testgen in the npm_and_yarn group (#…
dependabot[bot] Nov 12, 2024
ec6619a
Upload ChangedServices as an `attachment` for later processing by `Pi…
scbedd Nov 12, 2024
ff4c8b0
Add SparseCheckoutPaths to archetype-typespec-emitter.yml (#9373)
live1206 Nov 13, 2024
3ed1743
Enable subscription scoped deployment cleanup (#9353)
benbp Nov 13, 2024
874eefa
Fix missing stress matrix display name filter (#9364)
benbp Nov 13, 2024
7b46596
Fix the bug when package level review line had documentation (#9377)
praveenkuttappan Nov 13, 2024
26ca7fa
Use Tag for Token File OutPut (#9274)
chidozieononiwu Nov 14, 2024
91781f0
Add step for emitting rate limits for a token (#9354)
hallipr Nov 14, 2024
5aa4f7c
Fix RG removal comment in cleanup (#9386)
benbp Nov 14, 2024
816e864
handle the rare case that an artifact contains an empty directory (#9…
chidozieononiwu Nov 14, 2024
0c9ae28
[logging.ps1] Add helpers to log a GitHub "notice" (#9389)
mikeharder Nov 16, 2024
8110561
batching adjustments for create-prjobmatrix (#9393)
scbedd Nov 18, 2024
2dc5edd
Utilize `ArtifactDetails` to avoid parsing issues in Verify-Changelog…
scbedd Nov 18, 2024
21e5aa6
add rerun pipeline (#9390)
maririos Nov 19, 2024
b190443
Fix issues in diff when end of context line has diff (#9396)
praveenkuttappan Nov 19, 2024
1717d7b
Fix bug skipping removal of worm storage resource groups (#9405)
benbp Nov 19, 2024
3d29ed3
sample-collection, limit list-releases to 5000 items (#9407)
weidongxu-microsoft Nov 20, 2024
715cecc
Bump powershell yaml versions to 0.4.7 (#9326)
benbp Nov 20, 2024
4c674df
Bump @types/node from 22.7.5 to 22.9.1 in /tools/sdk-testgen (#9406)
dependabot[bot] Nov 21, 2024
2a8b086
Bump the npm_and_yarn group across 3 directories with 1 update (#9414)
dependabot[bot] Nov 21, 2024
19ce4dc
Adding Durable Task Scheduler Label (#9410)
ronniegeraghty Nov 21, 2024
86c24f0
Support override of powershell module feeds (#9392)
benbp Nov 21, 2024
ee74cb1
need to ensure that the test-proxy can't destructively update a conta…
scbedd Nov 22, 2024
bf6a76c
Moving Issue Labeler to official repo (#9369)
jeo02 Nov 23, 2024
c333064
Log Program Files directories, fix aggregation bugs (#9424)
heaths Nov 25, 2024
91a6bfb
Deprecated code and update dependencies (#9379)
raych1 Nov 25, 2024
282c070
Revert "Use Tag for Token File OutPut (#9274)" (#9429)
chidozieononiwu Nov 26, 2024
bb71157
Add Image to Unauthorized page Instruction (#9432)
chidozieononiwu Nov 26, 2024
4cc986a
Properly handle when `git` encounters an unrecoverable error (#9423)
scbedd Nov 26, 2024
fea2bad
remove previous cadl scripts (#9428)
maririos Nov 26, 2024
f468e04
Bump prettier from 2.8.8 to 3.4.1 in /tools/sdk-testgen (#9435)
dependabot[bot] Nov 28, 2024
e61fd91
Install JS API parser from local feed view (#9446)
praveenkuttappan Dec 2, 2024
e2d6fc9
Update azure-sdk-build-tools Repository Resource Refs in Yaml files (…
azure-sdk Dec 2, 2024
b001768
Hide output from register/unregister ps module repository (#9440)
benbp Dec 2, 2024
f092873
Bump openapi-to-typespec to 0.10.4 (#9443)
pshao25 Dec 3, 2024
f5579cd
Improve common flow docs (#9437)
maririos Dec 4, 2024
1fcabcc
Add service connection permissions for generated pipelines (#9462)
weshaggard Dec 4, 2024
b806708
Create tsp, migrate test-proxy swagger to tsp (#9451)
scbedd Dec 4, 2024
d7bf063
Clean-up some noisy logging (#9471)
weshaggard Dec 5, 2024
e38df38
Use new generation tool that supports service connections (#9466)
weshaggard Dec 6, 2024
e495310
[Swift APIView] Add automated tests (#9487)
tjprescott Dec 6, 2024
568673d
Update the AI Label Service URL (#9489)
JimSuplizio Dec 6, 2024
05afa74
Bump the npm_and_yarn group across 1 directory with 2 updates (#9475)
dependabot[bot] Dec 6, 2024
813a920
Don't try and sync .github/workflows to Rust yet (#9491)
JimSuplizio Dec 6, 2024
e199ffa
apiviewgo supports tree tokens (#9409)
chlowell Dec 6, 2024
5578cb0
Support Test Proxy logging error output into a different log file (#9…
alzimmermsft Dec 6, 2024
477ff2f
Update GitHubEventProcessor version to 1.0.0-dev.20241206.2 (#9490)
JimSuplizio Dec 9, 2024
2fe7528
restore test-proxy error response to before typespec creation (#9496)
scbedd Dec 9, 2024
2c50f2f
MicrosoftDocs/AzureRestPreview's default branch is now main (#9501)
JimSuplizio Dec 10, 2024
3ee9cfc
bump proxy version to 20241209.1 (#9497)
scbedd Dec 10, 2024
67fc4eb
Convert folders to groups (#9517)
lucianopa-msft Dec 11, 2024
8ef71ab
Optimize Yml Extraction (#9493)
scbedd Dec 12, 2024
9816a06
Support new interfaces (#9474)
raych1 Dec 12, 2024
81963b1
Small test-proxy readme update (#9465)
scbedd Dec 12, 2024
f5d3e28
Update default to net8.0 for standalone exe script (#9528)
benbp Dec 12, 2024
90a01c4
[Tools] Update .NET SDK Versions (#9530)
jsquire Dec 13, 2024
5c03031
Fix Windows Path Issue in js-sdk-release-tool (#9512)
wanlwanl Dec 13, 2024
f6efa0a
[.NET] Updating to .NET 9 (#9539)
jsquire Dec 14, 2024
a1be3a1
[TestProxy] Add auto-shutdown to the proxy (#9540)
scbedd Dec 14, 2024
0de65bc
Switch labels to sentence case (#9549)
chidozieononiwu Dec 18, 2024
31ae982
Added new command line interfaces (#9537)
raych1 Dec 18, 2024
19b24b9
Revert "[.NET] Updating to .NET 9 (#9539)" (#9560)
benbp Dec 19, 2024
fe565ed
Bump openapi-to-typespec to 0.10.5 (#9564)
pshao25 Dec 20, 2024
45fc16d
Log improvements (#9565)
raych1 Dec 21, 2024
4b6011d
Migrate JS Package (#9511)
wanlwanl Dec 26, 2024
81bea60
Bump eslint-plugin-import from 2.30.0 to 2.31.0 in /tools/sdk-testgen…
dependabot[bot] Dec 30, 2024
44968ca
update changelog (#9578)
l0lawrence Jan 2, 2025
75cfb41
Update package.json (#9581)
weshaggard Jan 3, 2025
ec51c74
Fix incorrect variable name (#9580)
weshaggard Jan 3, 2025
b70e5b4
Refactor Dependecies for spec-gen-sdk (#9572)
JackTn Jan 6, 2025
55924f6
Update live-test-cleanup.yml (#9586)
weshaggard Jan 6, 2025
2130df7
updatedates (#9585)
l0lawrence Jan 6, 2025
1113ab3
Fix Migration Command Failure (#9593)
wanlwanl Jan 7, 2025
a23627a
update proxy version to one with auto-shutdown present (#9584)
scbedd Jan 7, 2025
9b9981e
[tsp-client] Support alternate entrypoint files (#9494)
catalinaperalta Jan 7, 2025
e6d16cf
Update Test-Proxy install instructions (#9600)
heaths Jan 7, 2025
67169d9
update notes on usage of the logging variables (#9598)
scbedd Jan 7, 2025
b071fed
Cleaned up dependencies and set pipeline variables (#9591)
raych1 Jan 8, 2025
e345b1d
[TypeSpec APIView] Convert TypeSpec APIView Parser to TreeToken model…
tjprescott Jan 8, 2025
4674a2b
Accesibility/linefeatures (#9456)
chidozieononiwu Jan 8, 2025
46b5bef
Bump openapi-to-typespec to 0.10.6 (#9604)
pshao25 Jan 9, 2025
9708104
[Swift APIView] Convert Swift APIView to Tree Token structure (#9506)
tjprescott Jan 9, 2025
1d31e4f
Fix `test-proxy` integration tests for .NET (#9606)
scbedd Jan 9, 2025
c55fd94
[tsp-client] Float @azure-tools/openapi-to-typespec dep (#9602)
catalinaperalta Jan 10, 2025
a3fca46
Update the version of dependencies and also fix the bug for file loca…
lirenhe Jan 10, 2025
5d1000e
Convert Typespec API reviews (#9611)
praveenkuttappan Jan 10, 2025
b0eb701
Suppress some client side error (#9613)
chidozieononiwu Jan 10, 2025
25b31b2
[Python APIView] install optional dependencies on ImportError (#9615)
swathipil Jan 13, 2025
256fc67
Add labels to revision dropdown and allow only full diff for typespec…
chidozieononiwu Jan 14, 2025
acad4ad
Ensure PrBranch variable is set (#9630)
raych1 Jan 14, 2025
08cf4f5
[Python APIView] update api stub version (#9625)
swathipil Jan 14, 2025
4f29ba2
remove erroneous package inclusion during package-properties evaluati…
scbedd Jan 15, 2025
c7d1b42
Ensure that packages that are both changed AND part of the Additional…
scbedd Jan 15, 2025
9598c33
Add typespec-rust emitter options for test-proxy (#9628)
heaths Jan 16, 2025
a652f57
Use -Mail for test resources local user lookup to support TME (#9529)
benbp Jan 16, 2025
01ce4a8
Update spellcheck.md to include a redirection at the top for users wh…
danieljurek Jan 16, 2025
c2ff453
Filter out Exclude Paths for PR Pipelines (#9649)
JimSuplizio Jan 16, 2025
eaf119d
Bump @typescript-eslint/eslint-plugin in /tools/sdk-testgen (#9627)
dependabot[bot] Jan 17, 2025
d2dc769
Bump @typescript-eslint/parser in /tools/sdk-testgen (#9626)
dependabot[bot] Jan 17, 2025
6245d6e
Bump eslint-plugin-prettier from 4.2.1 to 5.2.2 in /tools/sdk-testgen…
dependabot[bot] Jan 17, 2025
5bf108c
Add common SDK generation pipeline (#9577)
chidozieononiwu Jan 17, 2025
eb27240
Remove sovereign cloud testing support (#9650)
benbp Jan 17, 2025
a03000c
Change files sync'd in specs repo (#9657)
danieljurek Jan 17, 2025
6303e26
Updates to `PullRequest` matrix generation (#9601)
scbedd Jan 17, 2025
d3b34a0
[tsp-client] Add command to generate config files (#9566)
catalinaperalta Jan 17, 2025
1cb6727
[tsp-client] support unbranded emitters (#9632)
catalinaperalta Jan 17, 2025
d8a86e6
Fix broken link (#9620)
mccoyp Jan 18, 2025
91f9443
Bump typescript from 5.6.3 to 5.7.3 in /tools/sdk-testgen (#9661)
dependabot[bot] Jan 20, 2025
5d39a1d
[sdk-gen] render log to html (#9647)
JackTn Jan 21, 2025
10801cb
Update github.io docs to use static website instead of blobs directly…
weshaggard Jan 21, 2025
034d14a
Ensure that `TestRecordingMismatchException` doesn't exhaust default …
scbedd Jan 21, 2025
d73cf6d
updates to test-proxy TSP StartPayload obj (#9663)
scbedd Jan 21, 2025
d679ec9
Allow http interceptor to return errors in production as its needed f…
chidozieononiwu Jan 21, 2025
5bffd2e
handle only deleted files in a <language> - pullrequest build (#9658)
scbedd Jan 21, 2025
1a44261
Update Vulnerable dependencies (#9671)
chidozieononiwu Jan 22, 2025
5144d2e
[pylint] dedent rule (#9669)
l0lawrence Jan 22, 2025
4566d3a
Support incrementing semver prereleases with 'zero' versions (#9668)
hallipr Jan 22, 2025
8ba4f1b
Rename the repo (#9678)
RickWinter Jan 22, 2025
0e78e19
Do not show the line as modified if all tokens in a line is skipped f…
praveenkuttappan Jan 22, 2025
46934b1
Update dotnet parser to skip RequiresUnreferencedCode attribute (#9680)
praveenkuttappan Jan 22, 2025
81f76ad
Added label handle sdk-gen pipeline template (#9656)
raych1 Jan 22, 2025
5e51c34
[pylint] wrap excepts (#9683)
l0lawrence Jan 23, 2025
0a937f2
deprecate track2 and refine code for PR scenario (#9682)
raych1 Jan 23, 2025
2f5b35b
wrding (#9684)
l0lawrence Jan 23, 2025
e811bea
support spec PR trigger (#9670)
raych1 Jan 24, 2025
213127f
[tsp-client] Update docs (#9690)
catalinaperalta Jan 24, 2025
38869c3
[tsp-client] README updates (#9691)
catalinaperalta Jan 24, 2025
4c3e3d0
Sparse checkout 1espt auto-baselining file by default (#9681)
benbp Jan 24, 2025
758182f
Migrate stress storage cluster to TME (#9687)
benbp Jan 24, 2025
34ae067
Bump eslint from 9.17.0 to 9.19.0 in /tools/sdk-testgen (#9701)
dependabot[bot] Jan 26, 2025
de053c2
Add Database Watcher label to common labels CSV (#9703)
ronniegeraghty Jan 27, 2025
c476b1e
Add 'AI Projects' label to common-labels.csv (#9697)
ronniegeraghty Jan 28, 2025
7f6ee75
Codeline Search (#9605)
chidozieononiwu Jan 28, 2025
1c16b62
Introduce a root folder to save the logs and artifacts (#9715)
raych1 Jan 28, 2025
ed2a5fe
Non-Sparse Indirect Packages (#9699)
scbedd Jan 28, 2025
6ecd9b2
Add fallback user id lookup for test resource deployment (#9700)
benbp Jan 28, 2025
a22c0e8
Enable conversion of existing Swift reviews and disable conversion of…
praveenkuttappan Jan 29, 2025
0b4c7c6
Update Set-VcpkgWriteModeCache.ps1 (#9728)
weshaggard Jan 29, 2025
25226b7
Connect to APIView app config using managed identity (#9731)
praveenkuttappan Jan 29, 2025
174e915
Adopted 1es common template (#9724)
raych1 Jan 29, 2025
a2842e6
Update emitter template (#9732)
m-nash Jan 29, 2025
88538f4
Improve Component Communication Logic (#9730)
chidozieononiwu Jan 29, 2025
dd0058d
Publish JS parser using system identity (#9143)
praveenkuttappan Jan 30, 2025
babf56b
Update .NET API parser version to rebuild all reviews (#9738)
praveenkuttappan Jan 30, 2025
1edea30
Update .NET parser version installed to APIView (#9741)
praveenkuttappan Jan 30, 2025
eaded4a
Add support for Rust to common scripts and pipelines (#9755)
hallipr Jan 31, 2025
fb3b70e
Make the destination directory if it doesn't exist (#9767)
hallipr Feb 3, 2025
dc7c3d5
Update query count to fix automation (#9752)
weshaggard Feb 4, 2025
9520a09
Fix pipeline generation for private repos (#9698)
weshaggard Feb 4, 2025
8877fe9
Update common tool to support go (#9733)
chidozieononiwu Feb 4, 2025
d1e5fee
[js-parser] Support re-exported enums
maorleger Feb 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add service connection permissions for generated pipelines (Azure#9462)
  • Loading branch information
weshaggard authored Dec 4, 2024
commit 1fcabcc94524270a1813117f01852e6a5d2315ff
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ public class GenerateOptions : DefaultOptions
[Option('v', "variablegroups", Required = false, HelpText = "Variable groups to link, separated by a space, e.g. --variablegroups 1 9 64")]
public IEnumerable<int> VariableGroups { get; set; }

[Option("serviceconnections", Required = false, HelpText = "Name of service connection to grant permission, separated by a space, e.g. --serviceconnections \"Azure\" \"azure-sdk-tests-public\"")]
public IEnumerable<string> ServiceConnections { get; set; }

[Option("open", Required = false, HelpText = "Open a browser window to the definitions that are created")]
public bool Open { get; set; }

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Common;
using System;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
using Azure.Core;
using Azure.Identity;
using Microsoft.Azure.Services.AppAuthentication;
using Microsoft.Extensions.Logging;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.TeamFoundation.Core.WebApi;
using Microsoft.TeamFoundation.DistributedTask.WebApi;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi;
using Microsoft.VisualStudio.Services.WebApi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json.Nodes;
using System.Threading;
using System.Threading.Tasks;
using ServiceEndpoint = Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.ServiceEndpoint;

namespace PipelineGenerator
{
Expand Down Expand Up @@ -70,14 +73,19 @@ public PipelineGenerationContext(

private VssConnection cachedConnection;

private TokenCredential GetAzureCredentials()
{
return new ChainedTokenCredential(
new AzureCliCredential(),
new AzurePowerShellCredential()
);
}

private async Task<VssConnection> GetConnectionAsync()
{
if (cachedConnection == null)
{
var azureCredential = new ChainedTokenCredential(
new AzureCliCredential(),
new AzurePowerShellCredential()
);
var azureCredential = GetAzureCredentials();
var devopsCredential = new VssAzureIdentityCredential(azureCredential);
cachedConnection = new VssConnection(new Uri(organization), devopsCredential);
await cachedConnection.ConnectAsync();
Expand Down Expand Up @@ -136,7 +144,7 @@ public async Task<ServiceEndpointHttpClient> GetServiceEndpointClientAsync(Cance

private Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.ServiceEndpoint cachedServiceEndpoint;

public async Task<Microsoft.VisualStudio.Services.ServiceEndpoints.WebApi.ServiceEndpoint> GetServiceEndpointAsync(CancellationToken cancellationToken)
public async Task<ServiceEndpoint> GetServiceEndpointAsync(CancellationToken cancellationToken)
{
if (cachedServiceEndpoint == null)
{
Expand All @@ -161,6 +169,85 @@ public async Task<ServiceEndpointHttpClient> GetServiceEndpointClientAsync(Cance
return cachedServiceEndpoint;
}

public async Task<IEnumerable<ServiceEndpoint>> GetServiceConnectionsAsync(IEnumerable<string> serviceConnections, CancellationToken cancellationToken)
{
var serviceEndpointClient = await GetServiceEndpointClientAsync(cancellationToken);
var projectReference = await GetProjectReferenceAsync(cancellationToken);

var allServiceConnections = await serviceEndpointClient.GetServiceEndpointsAsync(projectReference.Id.ToString(), cancellationToken: cancellationToken);

this.logger.LogDebug("Returned a total of {Count} service endpoints", allServiceConnections.Count);

List<ServiceEndpoint> endpoints = new List<ServiceEndpoint>();
foreach (var serviceConnection in allServiceConnections)
{
if (serviceConnections.Contains(serviceConnection.Name))
{
endpoints.Add(serviceConnection);
}
}
return endpoints;
}

private HttpClient cachedRawHttpClient = null;

private async Task<HttpClient> GetRawHttpClient(CancellationToken cancellationToken)
{
if (this.cachedRawHttpClient == null)
{
var credential = GetAzureCredentials();
// Get token for Azure DevOps
var tokenRequestContext = new TokenRequestContext(new[] { "499b84ac-1321-427f-aa17-267ca6975798/.default" });
var accessToken = await credential.GetTokenAsync(tokenRequestContext, cancellationToken);
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.Token);
this.cachedRawHttpClient = client;
}
return this.cachedRawHttpClient;
}

private string GetPipelinePermissionsUrlForServiceConnections(Guid serviceConnectionId)
{
var apiVersion = "7.1-preview.1";
// https://learn.microsoft.com/en-us/rest/api/azure/devops/approvalsandchecks/pipeline-permissions/update-pipeline-permisions-for-resource?view=azure-devops-rest-7.1&tabs=HTTP
return $"{this.organization}/{this.project}/_apis/pipelines/pipelinepermissions/endpoint/{serviceConnectionId}?api-version={apiVersion}";
}

public async Task<JsonNode> GetPipelinePermissionsAsync(Guid serviceConnectionId, CancellationToken cancellationToken)
{
var url = GetPipelinePermissionsUrlForServiceConnections(serviceConnectionId);
var client = await GetRawHttpClient(cancellationToken);
var response = await client.GetAsync(url, cancellationToken);

if (response.IsSuccessStatusCode)
{
return JsonNode.Parse(await response.Content.ReadAsStringAsync());
}
else
{
var responseContent = await response.Content.ReadAsStringAsync(cancellationToken);
throw new Exception($"GetPipelinePermissionsAsync throw an error [{response.StatusCode}]: {responseContent}");
}
}

public async Task UpdatePipelinePermissionsAsync(Guid serviceConnectionId, JsonNode serviceConnectionPermissions, CancellationToken cancellationToken)
{
var url = GetPipelinePermissionsUrlForServiceConnections(serviceConnectionId);
var client = await GetRawHttpClient(cancellationToken);
var request = new HttpRequestMessage(new HttpMethod("PATCH"), url)
{
Content = new StringContent(serviceConnectionPermissions.ToString(), Encoding.UTF8, "application/json")
};

var response = await client.SendAsync(request, cancellationToken);

if (!response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync(cancellationToken);
throw new Exception($"UpdatePipelinePermissionsAsync throw an error [{response.StatusCode}]: {responseContent}");
}
}

private BuildHttpClient cachedBuildClient;

public async Task<BuildHttpClient> GetBuildHttpClientAsync(CancellationToken cancellationToken)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
using Microsoft.Extensions.Logging;
using PipelineGenerator.Conventions;
using PipelineGenerator.CommandParserOptions;
using Microsoft.TeamFoundation.Build.WebApi;
using System.Text.Json.Nodes;

namespace PipelineGenerator
{
Expand Down Expand Up @@ -49,6 +51,7 @@ public static async Task Run(object commandObj, CancellationTokenSource cancella
g.Agentpool,
g.Convention,
g.VariableGroups.ToArray(),
g.ServiceConnections,
g.DevOpsPath,
g.WhatIf,
g.Open,
Expand Down Expand Up @@ -132,6 +135,7 @@ public async Task<ExitCondition> RunAsync(
string agentPool,
string convention,
int[] variableGroups,
IEnumerable<string> serviceConnections,
string devOpsPath,
bool whatIf,
bool open,
Expand Down Expand Up @@ -181,6 +185,7 @@ public async Task<ExitCondition> RunAsync(
return ExitCondition.DuplicateComponentsFound;
}

var updatedDefinitions = new List<BuildDefinition>();
foreach (var component in components)
{
logger.LogInformation("Processing component '{0}' in '{1}'.", component.Name, component.Path);
Expand All @@ -196,6 +201,45 @@ public async Task<ExitCondition> RunAsync(
{
OpenBrowser(definition.GetWebUrl());
}

updatedDefinitions.Add(definition);
}
}

var serviceConnectionObjects = await context.GetServiceConnectionsAsync(serviceConnections, cancellationToken);

foreach (var serviceConnection in serviceConnectionObjects)
{
// Get set of permissions for the service connection
JsonNode pipelinePermissions = await context.GetPipelinePermissionsAsync(serviceConnection.Id, cancellationToken);

var pipelines = pipelinePermissions["pipelines"].AsArray();
var pipelineIdsWithPermissions = new HashSet<int>(pipelines.Select(p => p["id"].GetValue<int>()));

bool needsUpdate = false;
foreach (var definition in updatedDefinitions)
{
// Check this pipeline has permissions
if (!pipelineIdsWithPermissions.Contains(definition.Id))
{
pipelines.Add(
new JsonObject
{
["id"] = definition.Id,
["authorized"] = true,
["authorizedBy"] = null,
["authorizedOn"] = null
}
);

needsUpdate = true;
}
}

if (needsUpdate)
{
// Update the permissions if we added anything
await context.UpdatePipelinePermissionsAsync(serviceConnection.Id, pipelinePermissions, cancellationToken);
}
}

Expand Down