<commit_before><!--
  Attractive html formatting for rendering in github. sorry text editor
  readers! Besides the header and section links, everything should be clean and
  readable.
-->
<h1 align="center">oag</h1>
<p align="center"><i>Idiomatic <a href="https://golang.org">Go</a> client package generation from <a href="https://www.openapis.org/">OpenAPI</a> documents</i></p>

<div align="center">
  <img alt="Alpha Quality" src="https://img.shields.io/badge/status-ALPHA-orange.svg" >
  <a href="https://travis-ci.org/jbowes/oag"><img alt="Build Status" src="https://travis-ci.org/jbowes/oag.svg?branch=master"></a>
  <a href="https://github.com/jbowes/oag/releases/latest"><img alt="GitHub release" src="https://img.shields.io/github/release/jbowes/oag.svg"></a>
  <a href="./LICENSE"><img alt="MIT license" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
  <a href="https://codecov.io/gh/jbowes/oag"><img alt="codecov" src="https://img.shields.io/codecov/c/github/jbowes/oag.svg"></a>
  <a href="https://goreportcard.com/report/github.com/jbowes/oag"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/jbowes/oag"></a>
</div><br /><br />


## Introduction
Introduction | [Examples] | [Usage] | [Configuration] | [Contributing] | [License] <br /><br />

🚧 ___Disclaimer___: _`oag` is alpha quality software. The API of generated code
and configuration file format may change without warning between revisions._
___Please check your generated code before use!___ 🚧

`oag` generates idiomatic [Go] client packages from [OpenAPI] documents.
[OpenAPI 2.0][openapi2] (née Swagger 2.0) is supported, with support for
[OpenAPI 3.0.0][openapi3] coming soon.

### Features

- __Idiomatic Concise Code__: `oag` generates code modeled after some of [Go]'s
  best REST API clients, like [GitHub] and [Stripe].
- __Extensible__: Generated code is written to a single file. You are free to
  add your own files to the package, adding behaviour to the generated types.
- __Fast__: Code is generated in milliseconds.
- __Commit Friendly__: Generated code is deterministic and stable. Multiple runs
  produce the same output. Document additions and removals create clean diffs.
- __Build Tool Friendly__: If the generated code has not changed, nothing is
  written, and timestamps stay the same. A run of `oag` won't needlessly trigger
  other targets in `make`.
- __Single File Output__: All generated code is written to a single file.
  Removals from an [OpenAPI] document won't result in orphaned generated files.


## Examples
[Introduction] | Examples | [Usage] | [Configuration] | [Contributing] | [License] <br /><br />
<commit_msg>Link to openapi 3 issue<commit_after><!--
  Attractive html formatting for rendering in github. sorry text editor
  readers! Besides the header and section links, everything should be clean and
  readable.
-->
<h1 align="center">oag</h1>
<p align="center"><i>Idiomatic <a href="https://golang.org">Go</a> client package generation from <a href="https://www.openapis.org/">OpenAPI</a> documents</i></p>

<div align="center">
  <img alt="Alpha Quality" src="https://img.shields.io/badge/status-ALPHA-orange.svg" >
  <a href="https://travis-ci.org/jbowes/oag"><img alt="Build Status" src="https://travis-ci.org/jbowes/oag.svg?branch=master"></a>
  <a href="https://github.com/jbowes/oag/releases/latest"><img alt="GitHub release" src="https://img.shields.io/github/release/jbowes/oag.svg"></a>
  <a href="./LICENSE"><img alt="MIT license" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
  <a href="https://codecov.io/gh/jbowes/oag"><img alt="codecov" src="https://img.shields.io/codecov/c/github/jbowes/oag.svg"></a>
  <a href="https://goreportcard.com/report/github.com/jbowes/oag"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/jbowes/oag"></a>
</div><br /><br />


## Introduction
Introduction | [Examples] | [Usage] | [Configuration] | [Contributing] | [License] <br /><br />

🚧 ___Disclaimer___: _`oag` is alpha quality software. The API of generated code
and configuration file format may change without warning between revisions._
___Please check your generated code before use!___ 🚧

`oag` generates idiomatic [Go] client packages from [OpenAPI] documents.
[OpenAPI 2.0][openapi2] (née Swagger 2.0) is supported, with support for
[OpenAPI 3.0.0][openapi3] coming [soon](https://github.com/jbowes/oag/issues/5).

### Features

- __Idiomatic Concise Code__: `oag` generates code modeled after some of [Go]'s
  best REST API clients, like [GitHub] and [Stripe].
- __Extensible__: Generated code is written to a single file. You are free to
  add your own files to the package, adding behaviour to the generated types.
- __Fast__: Code is generated in milliseconds.
- __Commit Friendly__: Generated code is deterministic and stable. Multiple runs
  produce the same output. Document additions and removals create clean diffs.
- __Build Tool Friendly__: If the generated code has not changed, nothing is
  written, and timestamps stay the same. A run of `oag` won't needlessly trigger
  other targets in `make`.
- __Single File Output__: All generated code is written to a single file.
  Removals from an [OpenAPI] document won't result in orphaned generated files.


## Examples
[Introduction] | Examples | [Usage] | [Configuration] | [Contributing] | [License] <br /><br />

{'fraction_non_alphanumeric': 0.1435477872815173, 'fraction_numerical': 0.004462625511342506, 'mean_word_length': 4.698093220338983, 'pattern_counts': {'":': 0, '<': 73, '<?xml version=': 0, '>': 73, 'https://': 25, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1808923', 'n_tokens_mistral': 1786, 'n_tokens_neox': 1699, 'n_words': 536}