* adjustments to Assets.Maintenance.Tool to allow a bit more flexibility as to which commits are pulled down
* add a script which can retrieve multiple assets tags at a time, then scan them for contents
Co-authored-by: Ben Broderick Phillips <ben@benbp.net>
* Add ConflictedFile to git-helpers.ps1, add git-helpers.tests.ps1 to exercise basic functionality.
* Add `resolve-asset-conflict.ps1` a script that can autoresolve an assets.json file.
---------
Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
- update the pipeline yaml to use
- stop ignoring *-lock.json files in .gitignore
- pin the floating @typespec/compiler peer dependency in devDependencies
- add tsp-client's package-lock.json to the repository
* Initial Assets-Sync Proposal Document.
* Prototype of Assets-Sync Script 'tools/asset-sync/assets.ps1` and accompanying Pester integration test suite. To properly enable integration testing in CI, additional effort is still required.
* Test Helper can create local language and assets repo scenarios. This means that we can fully integration test individual conflict scenarios as they are discovered by users.
* Powershell Test YML enabling CI checks for a powershell project. 'archetype-sdk-tool-pwsh'. This is usable outside of the this specific commit's new code.
Co-authored-by: James Suplizio <jasupliz@microsoft.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* add new tool oav-traffic-converter, a typescript cli tool that will convert azsdk test-proxy recordings to the payload format required by the liveValidation within `oav`
* Initial skeleton commit.
* In-Progress Commit
* In progress commit
* Update models for proper serialization. Basic iterative token generation. (#1790)
* Work in progress
* In progress commit
* Removed unused pod stuff
* Remove unused podfile and json edits
* In progress commit
* In progress commit:
Tokens
Navigation
* Swift: Refactoring and streamlining (#1791)
* Tweak helper names.
* Refactoring and indentation.
* Add missing properties to TokenFile.swift
* Fix up rebase issues.
* Work in progress
* SwiftAPIView: Load all swift files in a folder, not just a single source file (#1794)
* Load entire folder, not single source file
* Work with either a single file or folder.
* Remove unused file
* Fix bad merge.
* Add line IDs for structs and enums. (#1795)
* More progress
* In progress commit: added function support
* Swift APIView: Added support for variables and functions (#1797)
* Swiftformat and let/var annotations
* Rough support for functions
Co-authored-by: Jair <67484440+jairmyree@users.noreply.github.com>
* Stable APIView for demonstration
* Added navigation functionality
* Swift APIView: Clean up style issues. (#1801)
* Clean up style issues.
* Eliminate double : in type annotations
* Fix default log level.
* Sort navigation. (#1802)
* Swift APIView: Clickable type enhancements (#1805)
* Refactor type info.
* Refactoring
* Clickable inheritance clauses.
* Clickable result types.
* Partially clickable types in function signatures.
* Add Package.swift
* Revert Package.swift changes.
* Fixed the dest URL problem (#1812)
Co-authored-by: Jair Myree <t-jairmyree@microsoft.com>
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Add rudimentary dictionary support.
* Support generation from SwiftInterface files. (#1816)
* Swift APIView: Extract package name from --source (#1817)
* Extract package name from --source.
* Fix temp file deletion bug.
* Clean up unused code.
* Fail if unsupported declaration is needed instead of silent fail.
* Update README.md
Co-authored-by: Jair Myree <t-jairmyree@microsoft.com>
Co-authored-by: Jair <67484440+jairmyree@users.noreply.github.com>
This commit adds a C# tool package called `test-proxy`. The proxy is intended to enable out-of-process recordings for any language.
Included
* Test-proxy and accompanying test project
* Extended readme to assist with installation and running via docker or .NET.
* Built with .NET 5.0, installable via `dotnet tool install`.
* Supports both in-memory and persisted storage playback.
* Supports adding sanitizers, matchers, and transforms to either an entire session or an individual recording.
* Allows extensive manipulation of any part of a recording via regex sanitization.
* Available sanitizers, matchers, and transforms are documented by runtime access of the comment XML. Available at <proxy-host-url>/Info/Available.
* Copies` x-ms-client-id` and `x-ms-client-request-id` from the request to the response during playback.
* Proxy handles gzip compressed responses. Gzipped responses are written to disk uncompressed to enable proper storage, sanitization, and transformation. Re-zipped prior to sending to requester.
* Multiple sample projects in .NET and Python to give examples of interaction with the proxy.
* Docker Container (along with yml publishing of said container) that abstracts installation and running of the proxy.
* Example startup scripts in python, powershell, and js. These abstract the docker invocation and are easily applicable to language-specific test frameworks.
Co-authored-by: Mike Harder <mharder@microsoft.com>
Co-authored-by: Krista Pratico <krpratic@microsoft.com>
* Initial commit
* remove link to sdk repo from README
* add gitignore
* yeoman setup
* update package.json with json library, keywords, and repository info
* reconfigure package.json
* attempt at including json processor
* styling
* move json processor import to lib/index.js
* add .eslintrc
* remove json plugin from .eslintrc
* update json processor with variable assignment
* add first rule (empty) to lib and tests
* create docs folder with first rule
* starter docs for ts-config-strict
* Fix sample JSON syntax
* forgot a comma
* setup ts-config-strict (empty create method)
* attempt at esquery syntax
* forgot a colon
* change typescript version to one currently compatible with eslint
* esquery works, need to get processor running and handle invalid case properly
* use require instead of import in index
* temporary fix to json processing
* hacky workaround to what seems to be deficiencies in ruletester, will implement reports to verify
* report on ts-config-strict failure
* identify compilerOptions.strict value in ts-config-strict error message
* ensure proper nesting in json for ts-config-strict
* create helper to feed processor information to RuleTester
* add header to processTests.js
* change Object.Assign to Object.Create to avoid modifying in-place
* better handle how current filename detection works
* more comprehensive tests (still need to implement robust structural tests)
* check that compilerOptions is in the outermost level
* modify checking for compilerOptions to look for existence at outermost level of the object
* forgot to save on top of previous commit
* check that strict is a member of compilerOptions
* make strict-checking esquery case more specific
* change rule url to official docs
* remove rules folder from docs (urls will point to official guideline documentation)
* make nested value checking modular
* rename nestedValue to structure (will be more general)
* feed info into helper in object instead of individual params
* rename to more general case and more intuitive names
* attempt at typescript conversion
* implement ts-config-esmoduleinterop
* implement ts-config-allowsyntheticdefaultimports
* Create LICENSE
* proper casing for rule type
* add ts-config-isolatedmodules rule
* add ts-config-isolatedmodules test
* add recommended config to index.js
* add typescript parser to recommended config
* update fileoverview headers with respective rule info
* fix comments to match proper object requirements
* add ts-config-forceconsistentcasinginfilenames rule
* add ts-config-forceconsistentcasinginfilenames to tests and index.js
* update comments in tests to reflect respective rule (was left as 'strict' from copy-paste)
* add ts-config-module rule
* add ts-config-module tests
* add ts-config-declaration rule
* add ts-config-declaration tests
* remove unnecessary parser options from tests
* add ts-config-no-experimentaldecorators rule
* add ts-config-no-experimentaldecorators test
* add ts-config-importhelpers rule
* add ts-config-importherlpers rule & tests
* update rule comments with the expected value
* add outer comparison functionality to structure helpers
* add ts-package-json-repo rule
* add ts-package-json-repo tests
* cleanup leftovers from tsconfig testing
* add ts-package-json-bugs
* add ts-package-json-bugs tests
* something works
* update structure and add configs file
* convert ts-config-allowsyntheticdefaultimports to ts
* compiles through commonjs
* clean up/update package.json and tsconfig.json
* more tsconfig.json changes
* move items out of tests/lib to tests
* convert ts-config-declaration to ts
* convert ts-config-esmoduleinterop and ts-config-forceconsistentcasinginfilenames to ts
* remove default imports
* convert ts-config-importhelpers to ts
* convert ts-config-isolatedmodules to ts
* convert ts-config-module to ts
* convert ts-config-noexperimentaldecorators to ts
* convert ts-package-json-bugs to ts
* make inner and fileName inputs to structure methods optional
* clean up package.json
* convert ts-config-strict to ts
* initial setup for processor testing
* finish testing of current processor functionality
* move dependences to and from devDependencies
* formatting
* fix postprocess to take in proper types and ignore no-unused-vars rule
* change export syntax for rules
* strip unnecessary info from path to verify filename
* change 'export =' to 'export default'
* revert previous export changes
* standardize imports
* use same export syntax on structure.js
* use consistent export syntax on processJSON.ts (previously processTests.ts)
* add processJSON.ts (forgot to add in previous commit)
* remove unused listener from ts-package-json-repo and other leftover clutter from copy-paste
* format does not affect .js files (only found in /dist)
* add ts-package-json-author rule
* add ts-package-json-author tests
* add ts-package-json-sideeffects rule
* add ts-package-json-sideeffects tests
* add ts-package-json-license rule
* add helper to extract filename from path
* add fields required/recommended for npm publication
* add rules to recommended config
* change warning to warn
* more pre-publish cleanup
* move processors and configs to respective folders
* fix casing
* add configuration instructions and list of currently supported rules
* clean up unused packages and inconsistencies
* add file overview
* add prepublish script
* add outerContainsExpected helper
* rename expectedValue to expected to denote type ambiguity
* add ts-package-json-keywords rule
* update comment grammar and consistency
* add ts-package-json-keywords tests (failing)
* add filename checking to outerContainsExpected
* move eslint to devDependencies and peerDependencies
* change config env from array to object
* properly export ts-config-no-experimentaldecorators
* remove filename from reports (already mentioned by default
* fix ts-config-no-experimentaldecorators file name
* add ts-package-json-license test
* rename prepublish (deprecated) to prepare
* add typescript-specific unused vars rule to json excluded messages
* add ts-config-exclude rule
* fix typo
* add ts-config-exclude tests
* fix comments
* add ts-config-sourcemap rule
* add ts-config-exclude and ts-config-sourcemap to README.md
* fix README.md lint issues
* add ts-config-sourcemap tests
* fix comments
* add ts-config-lib rule
* add ts-config-lib tests
* add ts-package-json-required-scripts rule
* add ts-package-json-required-scripts-tests
* clean up syntax
* add ts-package-json-name rule
* change checkers variable name to verifiers
* add ts-package-json-license back into rules/index.ts (was removed somehow)
* check for existence of service in eslint settings
* remove reliance on settings and implement regex
* add kebab-case checking
* add ts-package-json-name tests
* remove prefix testing from structure.js
* fix regex
* add ts-package-json-homepage rule
* add ts-package-json-homepage tests
* add ts-package-json-homepage tests (file not added on previous commit)
* rename structure to verifiers
* change let and var to const where appropriate
* change syntax (still incorrect)
* it works?
* remove processor
* change test timeout
* add instructions about adding parserOptions.project to .eslintrc
* add processor back in to exempt json files from no-unused-expression rule
* fix improper param naming in file headers
* change owner to Microsoft Corporation
* add contributors
* change package name
* change version
* forgot to add '-sdk' to one instance of plugin name
* add typescript-specific linting rules (for this repo)
* change snake_case to camelCase
* remove unnecessary identifiers
* remove explicit anys unless necessary
* add lint to prepare script
* fix ts-config-lib to want empty array instead of being not used at all
* change version and make typescript a dev/peer dependency
* move imported .gitignore to repo base .gitignore
* add package lock
* update descriptions
* add tests verifying plugin structure
* cleanup
* test using compiled JS instead of TS
* use same directory for tests and final dist
* restructure scripts
* update package-lock.json
* change filename checking to occur at highest level possible for least repetitions
* remove filename param from package.json rules
* restructure scripts
* remove npm hooks
* clean up loop syntax
* clean up lint warnings
* remove redundant files from package.json files array
* make esquery syntax more strict when querying for property nodes
* add type checking to verifiers and jsdocs
* add jsdocs to tests
* move from src/ts to tools/
* move types to devDependencies
* make ts-config-module case-insensitive
* remove types from tsconfig.build.json
* update package location in README
* remove unnecessary replaces
* move npm commands under single script
* add tabs
* add some conditions and displayNames
* remove npm global installs
* add one back
* change npm run pack to npm pack
* rename artifact
1. azure-sdk-for-net
2. Fluent .NET SDK
3. Multi-Api-Sdk
Pre-req:
Install dotnet SDK 2.2.300 prior using toolset
https://dotnet.microsoft.com/download/dotnet-core/2.2
This PR contains following functionality:
1. All build tools wrapped as nuget package (no longer have to download prior to build)
2. Toolset is .NET Core based. Same set of build targets will work cross platform. Tested on mac.
3. Ability to detect PR validation CI runs and find appropriate SDKs to build based on the PR
4. Based on the SDK, it detects appropriate test projects within the same scope
5. Supports parity build scenarios that worked earlier.
6. This PR currently supports all parity searching projects scenarios based on following criteria
6.1 Search projects when no scope is provided
6.2 Search projects when scope is provided (partial scope)
6.3 Search projects when fully qualified scope dir path is provided
6.4 Search projects when ProjectType is specified
6.5 Search projects when ProjectCategory is specified (not extensively tested/checked for data plane project types, as data plane decided not to participate in this workflow)
6.6 Search projects when Include/Exclude tokens are specified at command line
6.7 Search project honoring exclusion/inclusion settings specified in project files (swagger to SDK scenarios)
7. Ability to get KeyVault secrets.
8. KV auth based on SPN (SPN has to be configured based on new KV)
9. Added tests