Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
book-open

GitHub Action

goreadme

v1.2.6

goreadme

book-open

goreadme

Goreadme command line tool and Github action

Installation

Copy and paste the following snippet into your .yml file.

              

- name: goreadme

uses: posener/[email protected]

Learn more about this action in posener/goreadme

Choose a version

goreadme

Build Status codecov GoDoc

Package goreadme generates readme markdown file from go doc.

The package can be used as a command line tool and as Github action, described below:

Github Action

Github actions can be configured to update the README.md automatically every time it is needed. Below there is an example that on every time a new change is pushed to the master branch, the action is trigerred, generates a new README file, and if there is a change - commits and pushes it to the master branch.

Add the following content to .github/workflows/goreadme.yml:

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]
jobs:
    goreadme:
        runs-on: ubuntu-latest
        steps:
        - name: Check out repository
          uses: actions/checkout@v2
        - name: Update readme according to Go doc
          uses: posener/goreadme@<release>
          with:
            badge-travisci: 'true'
            badge-codecov: 'true'
            badge-godoc: 'true'
            badge-goreadme: 'true'
            github-token: '${{ secrets.GITHUB_TOKEN }}'

Use as a command line tool

$ GO111MODULE=on go get github.com/posener/goreadme/cmd/goreadme
$ goreadme -h

Why Should You Use It

Both Go doc and readme files are important. Go doc to be used by your user's library, and README file to welcome users to use your library. They share common content, which is usually duplicated from the doc to the readme or vice versa once the library is ready. The problem is that keeping documentation updated is important, and hard enough - keeping both updated is twice as hard.

Go Doc Instructions

The formatting of the README.md is done by the go doc parser. This makes the result README.md a bit more limited. Currently, goreadme supports the formatting as explained in godoc page. Meaning:

  • A header is a single line that is separated from a paragraph above.

  • Code block is recognized by indentation as Go code.

func main() {
	...
}

Additionally, some extra formatting was added.

  • Bullets are recognized when each bullet item is followed by an empty line.

  • Diff block is automatically detected:

-removed
 stay
+added

goreadme icon

Sub Packages

  • cmd/goreadme: Package main is a command line util that takes a Go repository and write to stdout the calculated README.md content.

Readme created from Go doc with goreadme