NOTICE - We have deprecated this project. The project will continue to serve as an open source solution and sample extension on GitHub.
Interested how our CI/CD pipeline works? Read Set up a CI/CD pipeline for your Yeoman generator package to learn more.
generator-team-services-extension is a Yeoman generator that creates an extension for Visual Studio Team Services or Team Foundation Server.
The extension type can be :
- New hub extension
- Custom build or release task
- Widget dashboard
- Service hooks consumer
- Node.js with NPM, Minimum version 6.9.5 LTS (https://nodejs.org/)
- Yeoman : npm install -g yo
- (Optional) Microsoft Azure subscription for monitoring with Application Insights
First, install the generator
npm install -g generator-team-services-extension
Then generate your new extension project:
yo team-services-extension
- clone this repository
- with command prompt navigate to the package folder and run this command for link npm package on this folder Use npm link
npm link
Debug this generator using Visual Studio Code
- Click Debug in the VS Code Activity Bar
- Click Configure (gear icon right to Configuration dropdown)
- Select Node.js
- From the configuration dropdown click Add Configuration
- Popup will show with a list of available configruations, select Node.js: Yeoman generator
- Change args value to generator name: team-services-extension
The final configuration should looks like below
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Yeoman generator",
"program": "${workspaceRoot}/node_modules/yo/lib/cli.js",
"args": [
"team-services-extension"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}
- on the generator folder run this command
npm run test
We've included //TODO: placeholders in the generated license, thirdpartynotices, and overview files to guide you through the changes you need to make.
Take a look at the information on getting started with extensions, RESTful APIs, SDK, and the marketplace. I
- Yeoman has a heart of gold.
- Yeoman is a person with feelings and opinions, but is very easy to work with.
- Yeoman can be too opinionated at times but is easily convinced not to be.
- Feel free to learn more about Yeoman.
Building this solution will download other software, subject to the third party license terms that are between you and the third party.
And npm dependencies list are :
- chalk
- eslint
- eslint-config-xo-space
- fs-extra
- Istanbul
- jshint
- Mocha
- Sinon
- snyk
- Typescript
- uuid
- xunit-file
- yeoman-assert
- yeoman-generator
- Yeoman-test
- Yo
- yosay
- gulp
- gulp-inline-source
The generated extensions needs these 3 rd libraries
- applicationinsights-js
- rimraf
- tfx-cli
- cpx
- ts-loader
- Typescript
- tslint
- tslint-loader
- webpack
- telemetryclient-team-services-extension
We thank the following contributor(s): Josh Garverick , Mikael Krief and Hosam Kamel
Here is how you can contribute to this project:
- Submit bugs and help us verify fixes
- Submit pull requests for bug fixes and features and discuss existing proposals
Please refer to Contribution guidelines and the Code of Conduct for more details.