SyncReadme
sync_readme is a gem designed to help you synchronize a readme between a repository and a confluence wiki page. The idea is that on merge to master, you can run the sync to take docs FROM the readme and put them in the confluence page.
Installation
Add this line to your application's Gemfile:
gem 'sync_readme'
And then execute:
$ bundle
Or install it yourself as:
$ gem install sync_readme
Then set up a .sync_readme.yml file
default: readme # optional if not set, default runs all configurations
readme:
url: http://confluence.url.here # required
page_id: 123456 # required
filename: Readme.md # required
username: foo # optional, can be prompted for or put in an environment variable
password: bar # optional, can be prompted for or put in an environment variable
notice: this file is sync'd! # optional, adds the notice (as html) to the top of the confluance docs
strip_title: false # optional, defaults false, strips the first h1 (#) tag from the file
syntax_highlighting: true # optional, defaults true, uses coderay syntax highlighting on code blocks
You can also set the following in your environment (ex: continuous integration) to store credentials:
CONFLUENCE_USERNAME=jsmith
CONFLUENCE_PASSWORD=$UPER $ECURE PA$$WORD
The Atlassian Cloud supports API tokens, which can be used for CONFLUENCE_PASSWORD
If credentials are not stored anywhere, they are prompted for at run time.
Usage
sync_readme [options] [profile]
-u, --user=username Confluence username
-a, --all Run all configured syncronizations
-h, --help Show help
Using in Gitlab-CI
- Create a confluence user specifically to sync with
- If you haven't already, create the pages you want to sync to on confluence and get their IDs.
- Create your
.sync_readme.ymlfile like the one above (or see the example) - Add
gem 'sync_readme'to your apps gemfile - Set
CONFLUENCE_USERNAMEandCONFLUENCE_PASSWORDas CI Variables. - Add the following job to your .gitlab-ci.yml
Sync To Confluence:
stage: update_docs # Replace that with the stage you want this to run
only: master # Only run on master branch probably after you deploy
script:
- bundle exec sync_readme --all # Alternately just the profile you want to run
Development
Set up a copy of ruby 2.3.1 (We suggest rbenv)
bundle install
Running Tests
bundle exec rspec
Contributing
Contributions are welcome as long as they contain tests for the behaviors added or changed.
License
The gem is available as open source under the terms of the BSD-3-Clause.