Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marceloavf/github-tools-vsts
π¦:octocat:π Create and modify GitHub Releases in Azure DevOps Build and Release Management
https://github.com/marceloavf/github-tools-vsts
devops github javascript marketplace vsts vsts-extension wiki-page
Last synced: 21 days ago
JSON representation
π¦:octocat:π Create and modify GitHub Releases in Azure DevOps Build and Release Management
- Host: GitHub
- URL: https://github.com/marceloavf/github-tools-vsts
- Owner: marceloavf
- License: mit
- Created: 2018-01-19T17:36:45.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T19:11:22.000Z (almost 2 years ago)
- Last Synced: 2024-10-15T15:46:36.985Z (24 days ago)
- Topics: devops, github, javascript, marketplace, vsts, vsts-extension, wiki-page
- Language: JavaScript
- Homepage: https://marketplace.visualstudio.com/items?itemName=marcelo-formentao.github-tools
- Size: 3.61 MB
- Stars: 24
- Watchers: 4
- Forks: 15
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
GitHub Tool
Create and modify GitHub Releases. For Azure DevOps Builds and Releases.
GitHub Tool Task provide full implementation to Create and Modify GitHub Release to Azure DevOps Build and Release Management. Learn More
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) ![with-coffee](https://img.shields.io/badge/made%20with-%E2%98%95%EF%B8%8F%20coffee-yellow.svg) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![Visual Studio Team services](https://img.shields.io/vso/build/precisaosistemas/bdc79f70-6107-4e5b-9455-73bbd6bc0f22/115.svg) [![GitHub release](https://img.shields.io/github/release/marceloavf/github-tools-vsts.svg)](https://github.com/marceloavf/github-tools-vsts/releases) [![VS Marketplace Version](https://vsmarketplacebadge.apphb.com/version-short/marcelo-formentao.github-tools.svg)](https://marketplace.visualstudio.com/items?itemName=marcelo-formentao.github-tools) [![VS Marketplace Installs](https://vsmarketplacebadge.apphb.com/installs/marcelo-formentao.github-tools.svg)](https://marketplace.visualstudio.com/items?itemName=marcelo-formentao.github-tools)## Tasks included
- [**Create or Modify GitHub Release:**](https://github.com/marceloavf/github-tools-vsts/wiki#create-or-modify-github-release-task) Create or modify GitHub Release, allowing to upload assets, check manifest content and more.
![create-modify-release](https://github.com/marceloavf/github-tools-vsts/blob/master/Extension/images/create-release-options.png)
![task-create-modify-release](https://github.com/marceloavf/github-tools-vsts/blob/master/Extension/images/task-create-release.png)
Options include:
- **GitHub Connection:** Connect to a service endpoint for your GitHub Connection. [More Info.](https://github.com/marceloavf/github-tools-vsts#github-connection)
- **Repository:** List all repositories based on Endpoint. If empty, it will be extracted from manifest file.
- **Tag:** Create a tag to release. If empty, the version will be extracted from manifest file.
- **Release Title:** Create a title to release. If empty, it will be the same as tag.
- **Release Notes:** Create a note to release. If empty, it will be left undefined.
- **Draft:** Check to release tagged as Draft.
- **Pre Release:** Check to release tagged as Pre Release.
- **Ignore Assets:** Check to skip upload assets to release.
- **Files to Upload as Assets:** Include files to upload as artifacts to release. Minimatch pattern are supported.
- **Manifest JSON:** Include the manifest file from which default values will be extracted if options are missing. [More Info.](https://github.com/marceloavf/github-tools-vsts#manifest-file)Advanced Options include:
- **Reuse Release:** Check to allow to reuse a release with the same tag.
- **Reuse only Draft Release:** Check to allow to reuse only draft release. Prevents from editing already published releases.
- **Skip Duplicated Assets:** Check to prevent the plugin to replace assets with the same name.
- **Edit Release** Check to allow to edit release name, notes, type (`draft, prerelease, release`) and target commitsh. [More Info.](https://github.com/marceloavf/github-tools-vsts#edit-release)
- **Delete Empty Tag** Check to delete tag if it's editing release type from `prerelease` or `release` to `draft`.
- **Target Commitsh:** Specifies the commitsh value that determines where the Git tag is created from. Can be any branch or commit SHA. Defaults to the default branch of the repository.
- **API URL:** Allow to use a custom API URL to connect to GitHub Enterprise instead of github.com. Defaults to 'https://api.github.com'.> Modify will only be valid if the release has the same tag as the other one, and you have to allow Reuse Release or/and Reuse only Draft Release
## Modify
### Overwrite assets
1. The release tag option should have the same tag of the release you want to change.
2. The assets should have the same name to replace.
3. Leave unchecked `Skip Duplicated Assets` inside `Advanced` options.### Edit release
This option allow to edit release properties based on `tag name`, changing the release name, notes, type (`draft, prerelease, release`) and target commitsh.
1. The release tag option should have the same tag of the release you want to change.
2. Write different name, notes, target commitsh or change the type of the release.
3. Check `Edit Release` inside `Advanced` options.> Tip: `Delete Empty Tag` option allow to prevent an empty tag (without release) by deleting it when you edit release type from `prerelease` or `release` to `draft`
## More details
### Manifest file
The manifest is a json file (commonly called `package.json`) that include some information about your application, the GitHub Tool can extract these information when you indicate in `Manifest JSON` field where json file is located. Your json should be like this example below.
```json
{
"version": "2.0.0",
"repository": {
"type": "git",
"url": "https://github.com/owner/repo"
}
}
```### GitHub Connection
This option is one of the mandatory fields to allow GitHub Tool interact with GitHub API. For this, you have two options to create this connection:
#### 1. Authorize using OAuth
This service provides you direct and fast connection with GitHub authentication. If you need to modify some access and grant new authorizations you will have to access your GitHub acoount, go to `Settings` > `Applications` > `Authorized OAuth Apps`, found `Azure Pipelines (OAuth)` and modify permissions and organization access.
#### 2. Authorize with a GitHub personal access token
This option needs a personal access token from GitHub, you can create it by going to your GitHub account, `Settings` > `Developer settings` > `Personal access tokens` and click on `Generate New Token`.
| Scope | Description |
| ------------- | ------------- |
| repo | Allow access to private repositories |
| public_repo | Allow access to public repositories |### Creating service endpoints
Service endpoints can be created from the Azure Devops project dashboard, login and go to `Project Settings` > `Service connections` > `New service connection`. Select `Github` from the list. Chose authentication method (e.g. `OAuth` or `Personal Access Token`). Then `Authorsize`, then Complete other details and finall `Save`.
## Why?
I was disappointed with all the current GitHub extensions tools solutions. Most of them don't have most of the options GitHub can provide and don't are maintained anymore. So, I found [publish-release](https://github.com/remixz/publish-release) repository with almost every option that I need, helped them to finish some issues and use that to create this extension for Azure DevOps Releases and Builds.
## Install the extension to your account
You can find the latest stable version of the Azure DevOps Extension tasks on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=marcelo-formentao.github-tools).
## Debug
Please refer to our debug [wiki page](https://github.com/marceloavf/github-tools-vsts/wiki/Debug)
## Contribute
Contributions, issues and feature requests are very welcome. Please make sure to read the [Contributing Guide](/CONTRIBUTING.md) before making a pull request.
## Known Issues
Please refer to our [wiki page](https://github.com/marceloavf/github-tools-vsts/wiki/Known-Issues)
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
| [
Marcelo FormentΓ£o](https://www.github.com/marceloavf)
[π»](https://github.com/marceloavf/github-tools-vsts/commits?author=marceloavf "Code") [π¨](#design-marceloavf "Design") [π](https://github.com/marceloavf/github-tools-vsts/commits?author=marceloavf "Documentation") [π€](#ideas-marceloavf "Ideas, Planning, & Feedback") [π](#infra-marceloavf "Infrastructure (Hosting, Build-Tools, etc)") | [
Heath Stewart](https://blogs.msdn.microsoft.com/heaths/)
[π»](https://github.com/marceloavf/github-tools-vsts/commits?author=heaths "Code") |
| :---: | :---: |This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!