Skip to content

Commit

Permalink
Merge pull request #77 from postmanlabs/release/v0.1.8
Browse files Browse the repository at this point in the history
Release version v0.1.8
  • Loading branch information
Dhwaneet Bhatt committed Apr 17, 2023
2 parents 8aec004 + 009d6c7 commit a2eb631
Show file tree
Hide file tree
Showing 10 changed files with 264 additions and 57 deletions.
78 changes: 78 additions & 0 deletions .github/workflows/draft-new-release.yml
@@ -0,0 +1,78 @@
name: Draft new release

on:
workflow_dispatch:
inputs:
version:
description: The version you want to release. Must be a valid semver version.
required: true
type: string

jobs:
draft-new-release:
if: startsWith(github.event.inputs.version, 'v')
name: Draft a new release
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Create release branch
run: git checkout -b release/${{ github.event.inputs.version }}

- name: Update changelog
uses: thomaseizinger/keep-a-changelog-new-release@1.1.0
with:
version: ${{ github.event.inputs.version }}

- name: Initialize mandatory git config
run: |
git config user.name "GitHub Actions"
git config user.email noreply@github.com
- name: Bump version
run: npm version ${{ github.event.inputs.version }} --git-tag-version false

- name: Commit changelog and manifest files
id: make-commit
run: |
git add CHANGELOG.md package.json package-lock.json
git commit --message "Prepare release ${{ github.event.inputs.version }}"
echo "::set-output name=commit::$(git rev-parse HEAD)"
- name: Push new branch
run: git push origin release/${{ github.event.inputs.version }}

- name: Create pull request for master
uses: thomaseizinger/create-pull-request@1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
head: release/${{ github.event.inputs.version }}
base: master
title: "Release version ${{ github.event.inputs.version }}"
reviewers: ${{ github.actor }}
body: |
Hi @${{ github.actor }}!
This PR was created in response to a manual trigger of the release workflow here: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}.
I've updated the changelog and bumped the versions in the manifest files in this commit: ${{ steps.make-commit.outputs.commit }}.
- name: Create pull request for develop
uses: thomaseizinger/create-pull-request@1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
head: release/${{ github.event.inputs.version }}
base: develop
title: "Release version ${{ github.event.inputs.version }}"
reviewers: ${{ github.actor }}
body: |
Hi @${{ github.actor }}!
This PR was created in response to a manual trigger of the release workflow here: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}.
I've updated the changelog and bumped the versions in the manifest files in this commit: ${{ steps.make-commit.outputs.commit }}.
46 changes: 46 additions & 0 deletions .github/workflows/publish-new-release.yml
@@ -0,0 +1,46 @@
name: "Publish new release"

on:
pull_request:
branches:
- master
types:
- closed

jobs:
release:
name: Publish new release
runs-on: ubuntu-latest
# only merged pull requests that begin with 'release/' or 'hotfix/' must trigger this job
if: github.event.pull_request.merged == true &&
(contains(github.event.pull_request.head.ref, 'release/') || contains(github.event.pull_request.head.ref, 'hotfix/'))
permissions:
contents: write

steps:
- name: Extract version from branch name (for release branches)
if: contains(github.event.pull_request.head.ref, 'release/')
run: |
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
VERSION=${BRANCH_NAME#release/}
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
- name: Extract version from branch name (for hotfix branches)
if: contains(github.event.pull_request.head.ref, 'hotfix/')
run: |
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
VERSION=${BRANCH_NAME#hotfix/}
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
- name: Create Release
uses: thomaseizinger/create-release@1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
target_commitish: ${{ github.event.pull_request.merge_commit_sha }}
tag_name: ${{ env.RELEASE_VERSION }}
name: ${{ env.RELEASE_VERSION }}
draft: false
prerelease: false
22 changes: 13 additions & 9 deletions .github/workflows/test.yaml
@@ -1,18 +1,22 @@
name: Test

on: [push, pull_request]
on:
push:
branches: [develop, master]
pull_request:

jobs:
Unit-Tests:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 16.x, 18.x]
steps:
- name: Get Code
uses: actions/checkout@v3
- name: Setup Node JS
uses: actions/setup-node@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: '12.x'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm run test
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm test
58 changes: 48 additions & 10 deletions CHANGELOG.md
@@ -1,28 +1,66 @@
# RAML 1.0 to Postman Changelog

#### v0.1.7 (March 17, 2023)
* Added support for resource types.
## [Unreleased]

## [v0.1.8] - 2023-04-17

### Added

- GitHub Actions for Release management.

### Changed

- Bumped up minimum Node version to 12.
- Unit tests now run on Node versions 12, 16 and 18.

### Fixed

- Fixed an issue where conversion failed if securitySchemes are not resolved.

## [0.1.7] - 2023-03-21

### Added

- Added support for resource types.

## Previous Releases

Newer releases follow the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format.

#### v0.1.6 (Oct 15, 2020)
* Fixed type error "path must be string" when nonresolved includes are present.

- Fixed type error "path must be string" when nonresolved includes are present.

#### v0.1.5 (Jul 14, 2020)
* Update folder import flow to work in web.

- Update folder import flow to work in web.

#### v0.1.4 (April 28, 2020)
* Add a function to return meta data of a spec.

- Add a function to return meta data of a spec.

#### v0.1.3 (April 21, 2020)
* Fixed multiple responses with same code returning example with 500 code.

- Fixed multiple responses with same code returning example with 500 code.

#### v0.1.2 (March 31, 2020)
* Fixed default response body from object to null.

- Fixed default response body from object to null.

#### v0.1.1 (December 20, 2019)
* Updated flow for conversion of multiple root of document files for folder import.

- Updated flow for conversion of multiple root of document files for folder import.

#### v0.1.0 (November 29, 2019)
* npm module published

- npm module published

#### v0.0.1 (November 28, 2019)
* Base release

- Base release

[Unreleased]: https://github.com/postmanlabs/raml1-to-postman/compare/v0.1.8...HEAD

[v0.1.8]: https://github.com/postmanlabs/raml1-to-postman/compare/0.1.7...v0.1.8

[0.1.7]: https://github.com/postmanlabs/raml1-to-postman/compare/0.1.6...0.1.7
38 changes: 5 additions & 33 deletions CONTRIBUTING.md
@@ -1,4 +1,4 @@
# Contributing to @postmanlabs/read-sso-cookie
# Contributing to @postmanlabs/raml1-to-postman

## tl;dr

Expand All @@ -16,6 +16,7 @@ npm test
```

- If all checks out, push your code and create a pull with `develop` as the target
- Add a small note on what's changed in `CHANGELOG.md` under `Unreleased` section

```bash
git push feature/my-feature
Expand All @@ -27,26 +28,7 @@ This repository uses standard `git-flow` branch management policy/strategy. If y


## Preferred IDE
The preferred IDE for this project is SublimeText. You can download it from [http://www.sublimetext.com](http://www.sublimetext.com).

The repository has a sublime project file included in `develop/` directory. This project is configured with the best practices recommended for `xt-edge`. Things like using 120 character ruler, addition of end-of-file newline, cleaning up of trailing whitespace has been configured in this project.

There are a number of SublimeText Plugins that you can use to make your life simpler. One of them is the `jsDoc` autocompletion plugin. Download it from [https://github.com/spadgos/sublime-jsdocs](https://github.com/spadgos/sublime-jsdocs).

> *It is expected that changes to the file `/postman-documentator.sublime-project` is not committed back in the repository without proper discussion with all primary contributors of this project.*
### Generic IDE Settings

Most IDE settings for Sublime Text resides within the project configuration file `./develop/xt-edge.sublime-project`. In case you are using any other IDE, (not recommended,) setting the following defaults of the IDE should help.

1. Set to true to ensure the last line of the file ends in a newline character when saving.
2. Use 120the columns to display vertical ruler.
3. The number of spaces a tab is considered equal should be 4.
4. Insert spaces when tab is pressed.
5. Remove trailing white space on save.
6. Always use UTF-8 character encoding for reading and writing files.
7. Set IDE to not change file permissions upon editing.

The preferred IDE for this project is [VSCode](https://code.visualstudio.com/).

## Commit Guidelines

Expand Down Expand Up @@ -88,9 +70,9 @@ The third is the most important question to answer, as it can point out problems
A good commit message template

```
Short (50 chars or less) summary of changes with relevant project management issue ID.
Short (50 chars or less) summary of changes with relevant issue link.
More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of an email and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); tools like rebase can get confused if you run the two together.
More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of an email and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); tools like rebase can get confused if you run the two together.
Further paragraphs come after blank lines.
Expand All @@ -101,16 +83,6 @@ Further paragraphs come after blank lines.

Run `git log --no-merges` to see what a nicely formatted project-commit history looks like.

## Documentation guidelines

~~ to be documented further ~~

## The CI Platform

The CI system is built as a bunch of bash scripts to execute a set of tasks. These scripts are meant to execute tasks that can run on every local machine. In general, knowledge about these scripts are not necessary for development.

**The scripts are to be only accessed using `npm run-script script name`.** This ensures that the execution point of the scripts (`pwd`) is always the repository root.

### Ensuring your commits will not fail build

> `npm test`
Expand Down
6 changes: 4 additions & 2 deletions lib/helper.js
Expand Up @@ -565,7 +565,8 @@ helper = {

// map RAML schema security schema and PM request auths. set null by default.
auth.type = _.get(authTypeMap, _.get(securitySchemes[securedBy], 'type'), null);
securitySchemes[securedBy].description && (auth.describe(securitySchemes[securedBy].description));
typeof _.get(securitySchemes, `[${securedBy}].description`) === 'string' &&
(auth.describe(securitySchemes[securedBy].description));

return auth;
},
Expand Down Expand Up @@ -658,7 +659,8 @@ helper = {
request.body = pmRequestBody.body;
request.addHeader(pmRequestBody.contentHeader);

securedBy && (request.auth = helper.convertSecurityScheme(securedBy[0], globalParameters.securitySchemes));
!_.isEmpty(securedBy) && !_.isEmpty(globalParameters.securitySchemes) &&
(request.auth = helper.convertSecurityScheme(securedBy[0], globalParameters.securitySchemes));

request.url = requestUrl;
request.method = _.toUpper(method.method);
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "raml1-to-postman",
"version": "0.1.7",
"version": "0.1.8",
"description": "Converts RAML 1.0 files to postman v2 collection",
"homepage": "https://github.com/postmanlabs/raml1-to-postman",
"bugs": "https://github.com/postmanlabs/raml1-to-postman/issues",
Expand All @@ -27,7 +27,7 @@
}
},
"engines": {
"node": ">=6"
"node": ">=12"
},
"main": "index.js",
"scripts": {
Expand Down
40 changes: 40 additions & 0 deletions test/fixtures/valid-raml/unresolvedSecuritySchemes.raml
@@ -0,0 +1,40 @@
#%RAML 1.0
title: Unresolved SecuritySchemes
mediaType: application/json
description: This is a simple raml API where resources point to missing securitySchemes.
version: v3
baseUri: https://api.BasicRamlAPI.com/{version}
securedBy: basic
/users:
/search:
get:
responses:
201:
body:
application/json:
properties:
groupName:
default: groupName example
deptCode:
type: number
default: 12345
headers:
Location:
example: /invoices/45612
Header:
example: Bangalore
post:
body:
properties:
firstname: string
lastname: string
age: number
example:
firstname: someName
lastname: someLastName
age: 10
headers:
myHeader:
example: headerExample
SomeOtherHeader:
example: OtherExample

0 comments on commit a2eb631

Please sign in to comment.