diff --git a/.gitignore b/.gitignore index 273bbf4..1d086a2 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ website/vendor scripts/gogetcookie.sh docker-compose docker-compose-test-plugin.jar +node_modules/ \ No newline at end of file diff --git a/docusaurus/.dockerignore b/docusaurus/.dockerignore new file mode 100755 index 0000000..27d2dae --- /dev/null +++ b/docusaurus/.dockerignore @@ -0,0 +1,2 @@ +*/node_modules +*.log diff --git a/docusaurus/Dockerfile b/docusaurus/Dockerfile new file mode 100755 index 0000000..d369844 --- /dev/null +++ b/docusaurus/Dockerfile @@ -0,0 +1,10 @@ +FROM node:8.11.4 + +WORKDIR /app/website + +EXPOSE 3000 35729 +COPY ./docs /app/docs +COPY ./website /app/website +RUN yarn install + +CMD ["yarn", "start"] diff --git a/docusaurus/docker-compose.yml b/docusaurus/docker-compose.yml new file mode 100755 index 0000000..6711192 --- /dev/null +++ b/docusaurus/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3" + +services: + docusaurus: + build: . + ports: + - 3000:3000 + - 35729:35729 + volumes: + - ./docs:/app/docs + - ./website/blog:/app/website/blog + - ./website/core:/app/website/core + - ./website/i18n:/app/website/i18n + - ./website/pages:/app/website/pages + - ./website/static:/app/website/static + - ./website/sidebars.json:/app/website/sidebars.json + - ./website/siteConfig.js:/app/website/siteConfig.js + working_dir: /app/website diff --git a/docusaurus/docs/data_application_properties.md b/docusaurus/docs/data_application_properties.md new file mode 100644 index 0000000..a381ea2 --- /dev/null +++ b/docusaurus/docs/data_application_properties.md @@ -0,0 +1,19 @@ +--- +id: data_application_properties +title: bitbucketserver_application_properties +--- + +This data source allows you to retrieve version information and other application properties of Bitbucket Server. + +## Example Usage + +``` +data "bitbucketserver_application_properties" "main" { } +``` + +## Attribute Reference + +* `version` - Version of Bitbucket. +* `build_number` - Build number of the Bitbucket instance. +* `build_date` - Date the Bitbucket build was made, +* `display_name` - Name of the Bitbucket instance. diff --git a/docusaurus/docs/provider.md b/docusaurus/docs/provider.md new file mode 100755 index 0000000..4e5327b --- /dev/null +++ b/docusaurus/docs/provider.md @@ -0,0 +1,51 @@ +--- +id: provider +title: Getting Started +--- + +[Bitbucket Server](https://www.atlassian.com/software/bitbucket) is the self-hosted version of Bitbucket. +Whilst terraform provides a default bitbucket provider, this only works for _Bitbucket Cloud_ - this provider +unlocks the power of terraform to manage your self-hosted Bitbucket Server instance. + +## Provider Installation + +Download a binary for your system from the [release page](https://github.com/gavinbunney/terraform-provider-bitbucketserver/releases) and remove the `-os-arch` details so you're left with `terraform-provider-bitbucketserver`. +Use `chmod +x` to make it executable and then either place it at the root of your Terraform folder or in the Terraform plugin folder on your system. + +## Provider Configuration + +The provider supports parameters to determine the bitbucket server and admin user/password to use. + +```hcl +provider "bitbucketserver" { + server = "https://mybitbucket.example.com" + username = "admin" + password = "password" +} +``` + +You can also specify these parameters through the `BITBUCKET_SERVER`, `BITBUCKER_USERNAME` and `BITBUCKET_PASSWORD` environment variables. + +## Creating a Project and Repository + +Creating a project and repository is super simple with this provider: + +```hcl +provider "bitbucketserver" { + server = "https://mybitbucket.example.com" + username = "admin" + password = "password" +} + +resource "bitbucketserver_project" "test" { + key = "TEST" + name = "test-01" + description = "Test project" +} + +resource "bitbucketserver_repository" "test" { + project = bitbucketserver_project.test.key + name = "test-01" + description = "Test repository" +} +``` diff --git a/docusaurus/website/README.md b/docusaurus/website/README.md new file mode 100755 index 0000000..f3da77f --- /dev/null +++ b/docusaurus/website/README.md @@ -0,0 +1,193 @@ +This website was created with [Docusaurus](https://docusaurus.io/). + +# What's In This Document + +* [Get Started in 5 Minutes](#get-started-in-5-minutes) +* [Directory Structure](#directory-structure) +* [Editing Content](#editing-content) +* [Adding Content](#adding-content) +* [Full Documentation](#full-documentation) + +# Get Started in 5 Minutes + +1. Make sure all the dependencies for the website are installed: + +```sh +# Install dependencies +$ yarn +``` +2. Run your dev server: + +```sh +# Start the site +$ yarn start +``` + +## Directory Structure + +Your project file structure should look something like this + +``` +my-docusaurus/ + docs/ + doc-1.md + doc-2.md + doc-3.md + website/ + blog/ + 2016-3-11-oldest-post.md + 2017-10-24-newest-post.md + core/ + node_modules/ + pages/ + static/ + css/ + img/ + package.json + sidebar.json + siteConfig.js +``` + +# Editing Content + +## Editing an existing docs page + +Edit docs by navigating to `docs/` and editing the corresponding document: + +`docs/doc-to-be-edited.md` + +```markdown +--- +id: page-needs-edit +title: This Doc Needs To Be Edited +--- + +Edit me... +``` + +For more information about docs, click [here](https://docusaurus.io/docs/en/navigation) + +## Editing an existing blog post + +Edit blog posts by navigating to `website/blog` and editing the corresponding post: + +`website/blog/post-to-be-edited.md` +```markdown +--- +id: post-needs-edit +title: This Blog Post Needs To Be Edited +--- + +Edit me... +``` + +For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog) + +# Adding Content + +## Adding a new docs page to an existing sidebar + +1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`: + +```md +--- +id: newly-created-doc +title: This Doc Needs To Be Edited +--- + +My new content here.. +``` + +1. Refer to that doc's ID in an existing sidebar in `website/sidebar.json`: + +```javascript +// Add newly-created-doc to the Getting Started category of docs +{ + "docs": { + "Getting Started": [ + "quick-start", + "newly-created-doc" // new doc here + ], + ... + }, + ... +} +``` + +For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation) + +## Adding a new blog post + +1. Make sure there is a header link to your blog in `website/siteConfig.js`: + +`website/siteConfig.js` +```javascript +headerLinks: [ + ... + { blog: true, label: 'Blog' }, + ... +] +``` + +2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`: + +`website/blog/2018-05-21-New-Blog-Post.md` + +```markdown +--- +author: Frank Li +authorURL: https://twitter.com/foobarbaz +authorFBID: 503283835 +title: New Blog Post +--- + +Lorem Ipsum... +``` + +For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog) + +## Adding items to your site's top navigation bar + +1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`: + +`website/siteConfig.js` +```javascript +{ + headerLinks: [ + ... + /* you can add docs */ + { doc: 'my-examples', label: 'Examples' }, + /* you can add custom pages */ + { page: 'help', label: 'Help' }, + /* you can add external links */ + { href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' }, + ... + ], + ... +} +``` + +For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation) + +## Adding custom pages + +1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`: +1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element: + +`website/siteConfig.js` +```javascript +{ + headerLinks: [ + ... + { page: 'my-new-custom-page', label: 'My New Custom Page' }, + ... + ], + ... +} +``` + +For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages). + +# Full Documentation + +Full documentation can be found on the [website](https://docusaurus.io/). diff --git a/docusaurus/website/core/Footer.js b/docusaurus/website/core/Footer.js new file mode 100755 index 0000000..1799a18 --- /dev/null +++ b/docusaurus/website/core/Footer.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const React = require('react'); + +class Footer extends React.Component { + render() { + return ( + + ); + } +} + +module.exports = Footer; diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json new file mode 100644 index 0000000..768eb4e --- /dev/null +++ b/docusaurus/website/i18n/en.json @@ -0,0 +1,25 @@ +{ + "_comment": "This file is auto-generated by write-translations.js", + "localized-strings": { + "next": "Next", + "previous": "Previous", + "docs": { + "data_application_properties": { + "title": "bitbucketserver_application_properties" + }, + "provider": { + "title": "Getting Started" + } + }, + "links": {}, + "categories": { + "Bitbucket Server": "Bitbucket Server", + "Data Resources": "Data Resources" + } + }, + "pages-strings": { + "Help Translate|recruit community translators for your project": "Help Translate", + "Edit this Doc|recruitment message asking to edit the doc source": "Edit", + "Translate this Doc|recruitment message asking to translate the docs": "Translate" + } +} diff --git a/docusaurus/website/package.json b/docusaurus/website/package.json new file mode 100644 index 0000000..09ef87f --- /dev/null +++ b/docusaurus/website/package.json @@ -0,0 +1,14 @@ +{ + "scripts": { + "examples": "docusaurus-examples", + "start": "docusaurus-start", + "build": "docusaurus-build", + "publish-gh-pages": "docusaurus-publish", + "write-translations": "docusaurus-write-translations", + "version": "docusaurus-version", + "rename-version": "docusaurus-rename-version" + }, + "devDependencies": { + "docusaurus": "^1.13.0" + } +} diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json new file mode 100755 index 0000000..9c572c2 --- /dev/null +++ b/docusaurus/website/sidebars.json @@ -0,0 +1,10 @@ +{ + "docs": { + "Bitbucket Server": [ + "provider" + ], + "Data Resources": [ + "data_application_properties" + ] + } +} diff --git a/docusaurus/website/siteConfig.js b/docusaurus/website/siteConfig.js new file mode 100644 index 0000000..c564a57 --- /dev/null +++ b/docusaurus/website/siteConfig.js @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +// See https://docusaurus.io/docs/site-config for all the possible +// site configuration options. + +const siteConfig = { + title: 'Bitbucket Server Terraform Provider', + + url: 'https://gavinbunney.github.io', + baseUrl: '/', + // baseUrl: '/terraform-provider-bitbucketserver/', + + // Used for publishing and more + projectName: 'terraform-provider-bitbucketserver', + organizationName: 'gavinbunney', + + // For no header links in the top nav bar -> headerLinks: [], + headerLinks: [ + ], + + /* path to images for header/footer */ + favicon: 'img/favicon.png', + + /* Colors for website */ + colors: { + primaryColor: '#5C4EE5', + secondaryColor: '#66246c', + }, + + // This copyright info is used in /core/Footer.js and blog RSS/Atom feeds. + copyright: `Copyright © ${new Date().getFullYear()} Gavin Bunney`, + + highlight: { + // Highlight.js theme to use for syntax highlighting in code blocks. + theme: 'default', + }, + + // Add custom scripts here that would be placed in +