feat: migrate off vuepress to vitepress (#4515)
Signed-off-by: Rui Chen <rui@chenrui.dev> Co-authored-by: PePe Amengual <jose.amengual@gmail.com>
2
.github/labeler.yml
vendored
@@ -40,6 +40,6 @@ provider/gitlab:
|
||||
|
||||
website:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: 'runatlantis.io/.vuepress/**/*'
|
||||
- any-glob-to-any-file: 'runatlantis.io/.vitepress/**/*'
|
||||
- any-glob-to-any-file: 'package.json'
|
||||
- any-glob-to-any-file: 'pnpm-lock.yaml'
|
||||
|
||||
2
.github/workflows/website.yml
vendored
@@ -65,7 +65,7 @@ jobs:
|
||||
pnpm website:build
|
||||
|
||||
# start http-server for integration testing
|
||||
npx http-server runatlantis.io/.vuepress/dist &
|
||||
npx http-server runatlantis.io/.vitepress/dist &
|
||||
|
||||
- name: Run Playwright E2E tests
|
||||
run: |
|
||||
|
||||
12
.gitignore
vendored
@@ -30,8 +30,10 @@ tmp-CHANGELOG.md
|
||||
# draw.io backup files
|
||||
*.bkp
|
||||
|
||||
# vuepress
|
||||
**/.vuepress/*
|
||||
!runatlantis.io/.vuepress/config.*
|
||||
!runatlantis.io/.vuepress/navbar.*
|
||||
!runatlantis.io/.vuepress/sidebar.*
|
||||
# VitePress build output & cache directory
|
||||
**/.vitepress/cache
|
||||
**/.vitepress/dist
|
||||
**/.vitepress/config.ts.timestamp-*
|
||||
|
||||
# playwright
|
||||
test-results/
|
||||
|
||||
@@ -1 +1 @@
|
||||
pnpm 8.15.8
|
||||
pnpm 9.1.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Atlantis <!-- omit in toc -->
|
||||
|
||||
[](https://github.com/runatlantis/atlantis/releases/latest)
|
||||
[](https://twitter.com/kelseyhightower/status/893260922222813184)
|
||||
[](https://twitter.com/kelseyhightower/status/893260922222813184)
|
||||
[](https://goreportcard.com/report/github.com/runatlantis/atlantis)
|
||||
[](https://pkg.go.dev/github.com/runatlantis/atlantis)
|
||||
[](https://codecov.io/gh/runatlantis/atlantis)
|
||||
@@ -9,7 +9,7 @@
|
||||
[](https://join.slack.com/t/atlantis-community/shared_invite/zt-9xlxtxtc-CUSKB1ATt_sQy6um~LDPNw)
|
||||
|
||||
<p align="center">
|
||||
<img src="./runatlantis.io/.vuepress/public/hero.png" alt="Atlantis Logo"/><br><br>
|
||||
<img src="./runatlantis.io/.vitepress/public/hero.png" alt="Atlantis Logo"/><br><br>
|
||||
<b>Terraform Pull Request Automation</b>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Netlify Config, https://www.netlify.com/docs/netlify-toml-reference/
|
||||
[build]
|
||||
base = "/"
|
||||
publish = "runatlantis.io/.vuepress/dist/"
|
||||
publish = "runatlantis.io/.vitepress/dist/"
|
||||
command = "pnpm website:build"
|
||||
|
||||
[[redirects]]
|
||||
|
||||
17
package.json
@@ -1,20 +1,15 @@
|
||||
{
|
||||
"license": "Apache-2.0",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.44.0",
|
||||
"@vuepress/bundler-webpack": "2.0.0-rc.9",
|
||||
"@vuepress/plugin-docsearch": "2.0.0-rc.21",
|
||||
"@vuepress/plugin-google-analytics": "2.0.0-rc.21",
|
||||
"@vuepress/plugin-sitemap": "2.0.0-rc.21",
|
||||
"@vuepress/theme-default": "2.0.0-rc.21",
|
||||
"@vuepress/utils": "2.0.0-rc.9",
|
||||
"sass-loader": "14.2.1",
|
||||
"vue": "3.4.27",
|
||||
"vuepress": "2.0.0-rc.9"
|
||||
"@types/node": "^20.12.10",
|
||||
"sass": "^1.77.0",
|
||||
"vitepress": "^1.1.4"
|
||||
},
|
||||
"scripts": {
|
||||
"website:dev": "vuepress dev --host localhost runatlantis.io",
|
||||
"website:build": "NODE_OPTIONS=--openssl-legacy-provider vuepress build runatlantis.io",
|
||||
"website:dev": "vitepress dev --host localhost --port 8080 runatlantis.io",
|
||||
"website:build": "vitepress build runatlantis.io",
|
||||
"e2e": "playwright test"
|
||||
}
|
||||
}
|
||||
|
||||
5343
pnpm-lock.yaml
generated
97
runatlantis.io/.vitepress/config.ts
Normal file
@@ -0,0 +1,97 @@
|
||||
import { defineConfig } from 'vitepress';
|
||||
import * as navbars from "./navbars";
|
||||
import * as sidebars from "./sidebars";
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
title: 'Atlantis',
|
||||
description: 'Atlantis: Terraform Pull Request Automation',
|
||||
lang: 'en-US',
|
||||
lastUpdated: true,
|
||||
locales: {
|
||||
root: {
|
||||
label: 'English',
|
||||
lang: 'en-US',
|
||||
themeConfig: {
|
||||
nav: navbars.en,
|
||||
sidebar: sidebars.en,
|
||||
},
|
||||
},
|
||||
},
|
||||
themeConfig: {
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
search: {
|
||||
provider: 'algolia',
|
||||
options: {
|
||||
// We internally discussed how this API key is exposed in the code and decided
|
||||
// that it is a non-issue because this API key can easily be extracted by
|
||||
// looking at the browser dev tools since the key is used in the API requests.
|
||||
apiKey: '3b733dff1539ca3a210775860301fa86',
|
||||
indexName: 'runatlantis',
|
||||
appId: 'BH4D9OD16A',
|
||||
locales: {
|
||||
'/': {
|
||||
placeholder: 'Search Documentation',
|
||||
translations: {
|
||||
button: {
|
||||
buttonText: 'Search Documentation',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
socialLinks: [
|
||||
{ icon: "slack", link: "https://join.slack.com/t/atlantis-community/shared_invite/zt-9xlxtxtc-CUSKB1ATt_sQy6um~LDPNw" },
|
||||
{ icon: "twitter", link: "https://twitter.com/runatlantis" },
|
||||
{ icon: "github", link: "https://github.com/runatlantis/atlantis" },
|
||||
],
|
||||
},
|
||||
head: [
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-196x196.png', sizes: '196x196' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-96x96.png', sizes: '96x96' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-32x32.png', sizes: '32x32' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-16x16.png', sizes: '16x16' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-128.png', sizes: '128x128' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '57x57', href: '/apple-touch-icon-57x57.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '114x114', href: '/apple-touch-icon-114x114.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '72x72', href: '/apple-touch-icon-72x72.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '144x144', href: '/apple-touch-icon-144x144.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '60x60', href: '/apple-touch-icon-60x60.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '120x120', href: '/apple-touch-icon-120x120.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '76x76', href: '/apple-touch-icon-76x76.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '152x152', href: '/apple-touch-icon-152x152.png' }],
|
||||
['meta', { name: 'msapplication-TileColor', content: '#FFFFFF' }],
|
||||
['meta', { name: 'msapplication-TileImage', content: '/mstile-144x144.png' }],
|
||||
['meta', { name: 'msapplication-square70x70logo', content: '/mstile-70x70.png' }],
|
||||
['meta', { name: 'msapplication-square150x150logo', content: '/mstile-150x150.png' }],
|
||||
['meta', { name: 'msapplication-wide310x150logo', content: '/mstile-310x150.png' }],
|
||||
['meta', { name: 'msapplication-square310x310logo', content: '/mstile-310x310.png' }],
|
||||
['link', { rel: 'stylesheet', sizes: '152x152', href: 'https://fonts.googleapis.com/css?family=Lato:400,900' }],
|
||||
['meta', { name: 'google-site-verification', content: 'kTnsDBpHqtTNY8oscYxrQeeiNml2d2z-03Ct9wqeCeE' }],
|
||||
// google analytics
|
||||
[
|
||||
'script',
|
||||
{ async: '', src: 'https://www.googletagmanager.com/gtag/js?id=UA-6850151-3' }
|
||||
],
|
||||
[
|
||||
'script',
|
||||
{},
|
||||
`window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-6850151-3');`
|
||||
]
|
||||
],
|
||||
sitemap: {
|
||||
hostname: 'https://runatlantis.io'
|
||||
},
|
||||
vite: {
|
||||
server: {
|
||||
fs: {
|
||||
cachedChecks: false,
|
||||
},
|
||||
}
|
||||
}
|
||||
})
|
||||
9
runatlantis.io/.vitepress/navbars.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
const en = [
|
||||
{ text: "Home", link: "/"},
|
||||
{ text: "Guide", link: "/guide" },
|
||||
{ text: "Docs", link: "/docs" },
|
||||
{ text: "Contributing", link: "/contributing" },
|
||||
{ text: "Blog", link: "https://medium.com/runatlantis" },
|
||||
];
|
||||
|
||||
export { en };
|
||||
107
runatlantis.io/.vitepress/sidebars.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
const en = [
|
||||
{
|
||||
text: "Guide",
|
||||
link: "/guide",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "Test Drive", link: "/guide/test-drive" },
|
||||
{ text: "Testing locally", link: "/guide/testing-locally" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Docs",
|
||||
link: "/docs",
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
text: "Installing Atlantis",
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: "Installing Guide", link: "/docs/installation-guide" },
|
||||
{ text: "Requirements", link: "/docs/requirements" },
|
||||
{ text: "Git Host Access Credentials", link: "/docs/access-credentials" },
|
||||
{ text: "Webhook Secrets", link: "/docs/webhook-secrets" },
|
||||
{ text: "Deployment", link: "/docs/deployment" },
|
||||
{ text: "Configuring Webhooks", link: "/docs/configuring-webhooks" },
|
||||
{ text: "Provider Credentials", link: "/docs/provider-credentials" },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: "Configuring Atlantis",
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: "Overview", link: "/docs/configuring-atlantis" },
|
||||
"/docs/configuring-atlantis",
|
||||
"/docs/server-configuration",
|
||||
"/docs/server-side-repo-config",
|
||||
"/docs/pre-workflow-hooks",
|
||||
"/docs/post-workflow-hooks",
|
||||
"/docs/policy-checking",
|
||||
"/docs/custom-workflows",
|
||||
"/docs/repo-level-atlantis-yaml",
|
||||
"/docs/upgrading-atlantis-yaml",
|
||||
"/docs/command-requirements",
|
||||
"/docs/checkout-strategy",
|
||||
"/docs/terraform-versions",
|
||||
"/docs/terraform-cloud",
|
||||
"/docs/using-slack-hooks",
|
||||
"/docs/stats",
|
||||
"/docs/faq",
|
||||
]
|
||||
},
|
||||
{
|
||||
text: "Using Atlantis",
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: "Overview", link: "/docs/using-atlantis" },
|
||||
"/docs/api-endpoints",
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'How Atlantis Works',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
text: 'Overview',
|
||||
link: '/docs/how-atlantis-works',
|
||||
},
|
||||
'/docs/locking',
|
||||
'/docs/autoplanning',
|
||||
'/docs/automerging',
|
||||
'/docs/security',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Real-time Terraform Logs',
|
||||
collapsed: true,
|
||||
items: [
|
||||
'/docs/streaming-logs',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Troubleshooting',
|
||||
collapsed: true,
|
||||
items: [
|
||||
'/docs/troubleshooting',
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Contributing",
|
||||
link: "/contributing",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{
|
||||
text: 'Implementation Details',
|
||||
items: [
|
||||
{text: "Events Controller", link: "/contributing/events-controller"},
|
||||
]
|
||||
},
|
||||
{text: "Glossry", link: "/contributing/glossary"},
|
||||
]
|
||||
|
||||
}
|
||||
];
|
||||
|
||||
export { en };
|
||||
@@ -1,4 +1,4 @@
|
||||
// https://v2.vuepress.vuejs.org/reference/default-theme/styles.html#style-file
|
||||
// https://vitepress.dev/guide/using-vue#using-css-pre-processors
|
||||
|
||||
// colors
|
||||
$textColor: var(--c-text);
|
||||
5
runatlantis.io/.vitepress/theme/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import DefaultTheme from "vitepress/theme";
|
||||
import "./index.scss";
|
||||
import "./palette.scss";
|
||||
|
||||
export default DefaultTheme;
|
||||
@@ -1,109 +0,0 @@
|
||||
import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics';
|
||||
import { docsearchPlugin } from '@vuepress/plugin-docsearch';
|
||||
import { getDirname, path } from '@vuepress/utils';
|
||||
import { defaultTheme } from '@vuepress/theme-default';
|
||||
import { defineUserConfig } from 'vuepress';
|
||||
import { sitemapPlugin } from '@vuepress/plugin-sitemap';
|
||||
import { webpackBundler } from '@vuepress/bundler-webpack';
|
||||
import navbar from "./navbar";
|
||||
import sidebar from "./sidebar";
|
||||
|
||||
const __dirname = getDirname(import.meta.url)
|
||||
|
||||
export default defineUserConfig({
|
||||
alias: {
|
||||
'@theme/Home.vue': path.resolve(__dirname, './theme/components/Home.vue'),
|
||||
},
|
||||
bundler: webpackBundler(),
|
||||
locales: {
|
||||
'/': {
|
||||
lang: 'en-US',
|
||||
title: 'Atlantis',
|
||||
description: 'Atlantis: Terraform Pull Request Automation',
|
||||
},
|
||||
/*
|
||||
'/es/': {
|
||||
lang: 'es-ES',
|
||||
title: 'Atlantis',
|
||||
description: 'Atlantis: Automatización de Pull Requests para Terraform',
|
||||
},
|
||||
*/
|
||||
},
|
||||
plugins: [
|
||||
googleAnalyticsPlugin({
|
||||
id: 'UA-6850151-3',
|
||||
}),
|
||||
sitemapPlugin({
|
||||
hostname: 'https://runatlantis.io',
|
||||
}),
|
||||
docsearchPlugin({
|
||||
// We internally discussed how this API key is exposed in the code and decided
|
||||
// that it is a non-issue because this API key can easily be extracted by
|
||||
// looking at the browser dev tools since the key is used in the API requests.
|
||||
apiKey: '3b733dff1539ca3a210775860301fa86',
|
||||
indexName: 'runatlantis',
|
||||
appId: 'BH4D9OD16A',
|
||||
locales: {
|
||||
'/': {
|
||||
placeholder: 'Search Documentation',
|
||||
translations: {
|
||||
button: {
|
||||
buttonText: 'Search Documentation',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
],
|
||||
head: [
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-196x196.png', sizes: '196x196' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-96x96.png', sizes: '96x96' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-32x32.png', sizes: '32x32' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-16x16.png', sizes: '16x16' }],
|
||||
['link', { rel: 'icon', type: 'image/png', href: '/favicon-128.png', sizes: '128x128' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '57x57', href: '/apple-touch-icon-57x57.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '114x114', href: '/apple-touch-icon-114x114.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '72x72', href: '/apple-touch-icon-72x72.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '144x144', href: '/apple-touch-icon-144x144.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '60x60', href: '/apple-touch-icon-60x60.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '120x120', href: '/apple-touch-icon-120x120.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '76x76', href: '/apple-touch-icon-76x76.png' }],
|
||||
['link', { rel: 'apple-touch-icon-precomposed', sizes: '152x152', href: '/apple-touch-icon-152x152.png' }],
|
||||
['meta', { name: 'msapplication-TileColor', content: '#FFFFFF' }],
|
||||
['meta', { name: 'msapplication-TileImage', content: '/mstile-144x144.png' }],
|
||||
['meta', { name: 'msapplication-square70x70logo', content: '/mstile-70x70.png' }],
|
||||
['meta', { name: 'msapplication-square150x150logo', content: '/mstile-150x150.png' }],
|
||||
['meta', { name: 'msapplication-wide310x150logo', content: '/mstile-310x150.png' }],
|
||||
['meta', { name: 'msapplication-square310x310logo', content: '/mstile-310x310.png' }],
|
||||
['link', { rel: 'stylesheet', sizes: '152x152', href: 'https://fonts.googleapis.com/css?family=Lato:400,900' }],
|
||||
['meta', { name: 'google-site-verification', content: 'kTnsDBpHqtTNY8oscYxrQeeiNml2d2z-03Ct9wqeCeE' }],
|
||||
],
|
||||
themePlugins: {
|
||||
activeHeaderLinks: false,
|
||||
},
|
||||
theme: defaultTheme({
|
||||
docsBranch: "main",
|
||||
logo: '/hero.png',
|
||||
locales: {
|
||||
'/': {
|
||||
selectLanguageName: 'English',
|
||||
navbar: navbar.en,
|
||||
},
|
||||
/*
|
||||
'/es/': {
|
||||
selectLanguageName: 'Spanish',
|
||||
navbar: [
|
||||
{ text: 'Home', link: '/es/' },
|
||||
{ text: 'Guide', link: '/es/guide/' },
|
||||
{ text: 'Docs', link: '/es/docs/' },
|
||||
{ text: 'Blog', link: 'https://medium.com/runatlantis' },
|
||||
],
|
||||
},
|
||||
*/
|
||||
},
|
||||
sidebar: sidebar.en,
|
||||
repo: 'runatlantis/atlantis',
|
||||
docsDir: 'runatlantis.io',
|
||||
editLink: true,
|
||||
})
|
||||
})
|
||||
@@ -1,9 +0,0 @@
|
||||
const en = [
|
||||
{ text: 'Home', link: '/' },
|
||||
{ text: 'Guide', link: '/guide/' },
|
||||
{ text: 'Docs', link: '/docs/' },
|
||||
{ text: "Contributing", link: "/contributing/" },
|
||||
{ text: 'Blog', link: 'https://medium.com/runatlantis' },
|
||||
];
|
||||
|
||||
export default { en };
|
||||
@@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#3BCC9C" d="M32,0c17.7,0,32,14.3,32,32S49.7,64,32,64S0,49.7,0,32S14.3,0,32,0z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M13.3,44c-0.7,0-1.3-0.6-1.3-1.2V17.2c0-0.7,0.6-1.2,1.3-1.2h37.4c0.7,0,1.3,0.6,1.3,1.2v25.5
|
||||
c0,0.7-0.6,1.2-1.3,1.2H13.3z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#D3D5DD" d="M45,20c0.5,0,1,0.5,1,1s-0.5,1-1,1H18c-0.5,0-1-0.5-1-1s0.5-1,1-1H45z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#D3D5DD" d="M45,25c0.5,0,1,0.5,1,1s-0.5,1-1,1H18c-0.5,0-1-0.5-1-1s0.5-1,1-1H45z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E84B4B" points="44,43 44,44 44,53 40.1,50.8 36,53 36,44 36,43 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#316CFF" d="M26,35c0.5,0,1,0.4,1,1c0,0.5-0.5,1-1,1h-8c-0.5,0-1-0.5-1-1c0-0.6,0.5-1,1-1H26z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFC533" d="M44,43.2c-0.1,0.1-0.1,0.1-0.2,0.2l-0.5,0.8c-0.4,0.6-1.2,0.9-1.9,0.6l-0.8-0.3c-0.4-0.1-0.8-0.1-1.1,0
|
||||
l-0.8,0.3c-0.7,0.3-1.5,0-1.9-0.6l-0.5-0.8c0-0.1-0.1-0.1-0.2-0.2c-0.2-0.2-0.4-0.4-0.7-0.4l-0.9-0.3c-0.7-0.2-1.2-0.9-1.1-1.6
|
||||
l0-1.1c0-0.4-0.1-0.7-0.3-1L32.3,38c-0.4-0.6-0.4-1.3,0-1.9l0.6-0.9c0.2-0.3,0.3-0.6,0.3-1l0-1.1c0-0.7,0.4-1.4,1.1-1.6l0.9-0.3
|
||||
c0.4-0.1,0.7-0.3,0.9-0.7l0.5-0.8c0.4-0.6,1.2-0.9,1.9-0.6l0.8,0.3c0.4,0.1,0.8,0.1,1.1,0l0.8-0.3c0.7-0.3,1.5,0,1.9,0.6l0.5,0.8
|
||||
c0.2,0.3,0.5,0.5,0.9,0.7l0.9,0.3c0.7,0.2,1.2,0.9,1.1,1.6l0,1.1c0,0.4,0.1,0.7,0.3,1l0.6,0.9c0.4,0.6,0.4,1.3,0,1.9L47,38.8
|
||||
c-0.2,0.3-0.3,0.6-0.3,1l0,1.1c0,0.7-0.4,1.4-1.1,1.6l-0.9,0.3C44.4,42.9,44.2,43,44,43.2z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#F2AC0F" d="M40,32c2.8,0,5,2.2,5,5s-2.2,5-5,5s-5-2.2-5-5S37.2,32,40,32z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FCEA81" d="M40,34c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S38.3,34,40,34z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Build-Stage-Passed" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" viewBox="0 0 15 15" style="enable-background:new 0 0 15 15;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#39AA56;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<g id="stage-passed-icon">
|
||||
<circle class="st0" cx="7.5" cy="7.5" r="7"/>
|
||||
<polyline class="st0" points="10.63,4.711 7.064,10.213 4.294,8.012 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 645 B |
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<circle style="fill:#F33052;" cx="256" cy="256" r="256"/>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M213.12,319.776L99.872,270.544V243.28l113.248-49.008v32.112l-79.008,30.208l79.008,31.328V319.776
|
||||
z"/>
|
||||
<path style="fill:#FFFFFF;" d="M223.6,341.408l40.912-170.832h23.776l-41.36,170.832H223.6z"/>
|
||||
<path style="fill:#FFFFFF;" d="M298.768,319.904V288l79.104-31.104l-79.104-30.752V194.48l113.36,49.008v27.04L298.768,319.904z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 964 B |
@@ -1,49 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 58 58" style="enable-background:new 0 0 58 58;" xml:space="preserve">
|
||||
<polygon style="fill:#EDEADA;" points="51.5,14 37.5,0 6.5,0 6.5,58 51.5,58 "/>
|
||||
<polygon style="fill:#CEC9AE;" points="37.5,0 37.5,14 51.5,14 "/>
|
||||
<path style="fill:#CEC9AE;" d="M41.5,22h-16c-0.552,0-1-0.447-1-1s0.448-1,1-1h16c0.552,0,1,0.447,1,1S42.052,22,41.5,22z"/>
|
||||
<path style="fill:#14A085;" d="M17.5,23c-0.257,0-0.514-0.099-0.708-0.293l-2-2c-0.391-0.391-0.391-1.023,0-1.414
|
||||
s1.023-0.391,1.414,0l1.367,1.367l4.301-3.441c0.43-0.345,1.061-0.275,1.405,0.156c0.345,0.432,0.275,1.061-0.156,1.406l-5,4
|
||||
C17.941,22.928,17.72,23,17.5,23z"/>
|
||||
<path style="fill:#CEC9AE;" d="M41.5,33h-16c-0.552,0-1-0.447-1-1s0.448-1,1-1h16c0.552,0,1,0.447,1,1S42.052,33,41.5,33z"/>
|
||||
<path style="fill:#14A085;" d="M17.5,34c-0.257,0-0.514-0.099-0.708-0.293l-2-2c-0.391-0.391-0.391-1.023,0-1.414
|
||||
s1.023-0.391,1.414,0l1.367,1.367l4.301-3.441c0.43-0.345,1.061-0.275,1.405,0.156c0.345,0.432,0.275,1.061-0.156,1.406l-5,4
|
||||
C17.941,33.928,17.72,34,17.5,34z"/>
|
||||
<path style="fill:#CEC9AE;" d="M41.5,44h-16c-0.552,0-1-0.447-1-1s0.448-1,1-1h16c0.552,0,1,0.447,1,1S42.052,44,41.5,44z"/>
|
||||
<path style="fill:#14A085;" d="M17.5,45c-0.257,0-0.514-0.099-0.708-0.293l-2-2c-0.391-0.391-0.391-1.023,0-1.414
|
||||
s1.023-0.391,1.414,0l1.367,1.367l4.301-3.441c0.43-0.345,1.061-0.275,1.405,0.156c0.345,0.432,0.275,1.061-0.156,1.406l-5,4
|
||||
C17.941,44.928,17.72,45,17.5,45z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 187 KiB |
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#5E5C89" d="M32,0c17.7,0,32,14.3,32,32S49.7,64,32,64S0,49.7,0,32S14.3,0,32,0z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#FFD833" points="44,27 37,27 41,15 27,15 25,32 29.6,32 24,49 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 701 B |
|
Before Width: | Height: | Size: 264 KiB |
@@ -1,97 +0,0 @@
|
||||
const en = {
|
||||
'/guide/': [
|
||||
'/guide/',
|
||||
'/guide/test-drive',
|
||||
'/guide/testing-locally',
|
||||
],
|
||||
'/docs/': [
|
||||
{
|
||||
text: 'Installing Atlantis',
|
||||
collapsible: true,
|
||||
children: [
|
||||
'/docs/installation-guide',
|
||||
'/docs/requirements',
|
||||
'/docs/access-credentials',
|
||||
'/docs/webhook-secrets',
|
||||
'/docs/deployment',
|
||||
'/docs/configuring-webhooks',
|
||||
'/docs/provider-credentials',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Configuring Atlantis',
|
||||
collapsible: true,
|
||||
children: [
|
||||
{
|
||||
text: 'Overview',
|
||||
link: '/docs/configuring-atlantis',
|
||||
},
|
||||
'/docs/server-configuration',
|
||||
'/docs/server-side-repo-config',
|
||||
'/docs/pre-workflow-hooks',
|
||||
'/docs/post-workflow-hooks',
|
||||
'/docs/policy-checking',
|
||||
'/docs/custom-workflows',
|
||||
'/docs/repo-level-atlantis-yaml',
|
||||
'/docs/upgrading-atlantis-yaml',
|
||||
'/docs/command-requirements',
|
||||
'/docs/checkout-strategy',
|
||||
'/docs/terraform-versions',
|
||||
'/docs/terraform-cloud',
|
||||
'/docs/using-slack-hooks',
|
||||
'/docs/stats',
|
||||
'/docs/faq',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Using Atlantis',
|
||||
collapsible: true,
|
||||
children: [
|
||||
{
|
||||
text: 'Overview',
|
||||
link: '/docs/using-atlantis',
|
||||
},
|
||||
'/docs/api-endpoints',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'How Atlantis Works',
|
||||
collapsible: true,
|
||||
children: [
|
||||
{
|
||||
text: 'Overview',
|
||||
link: '/docs/how-atlantis-works',
|
||||
},
|
||||
'/docs/locking',
|
||||
'/docs/autoplanning',
|
||||
'/docs/automerging',
|
||||
'/docs/security',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Real-time Terraform Logs',
|
||||
collapsible: true,
|
||||
children: [
|
||||
'/docs/streaming-logs',
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Troubleshooting',
|
||||
collapsible: true,
|
||||
children: [
|
||||
'/docs/troubleshooting-https',
|
||||
]
|
||||
}
|
||||
],
|
||||
'/contributing/': [
|
||||
{
|
||||
text: 'Implementation Details',
|
||||
children: [
|
||||
'/contributing/events-controller',
|
||||
]
|
||||
},
|
||||
'/contributing/glossary',
|
||||
],
|
||||
};
|
||||
|
||||
export default { en };
|
||||
@@ -1,175 +0,0 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="home">
|
||||
<div class="hero">
|
||||
<img v-if="data.heroImage" :src="$withBase(data.heroImage)" alt="hero">
|
||||
<h1>{{ data.heroText || $title || 'Hello' }}</h1>
|
||||
<p class="description">
|
||||
Terraform Pull Request Automation
|
||||
</p>
|
||||
<p class="action" v-if="data.actionText && data.actionLink">
|
||||
<a href="/guide/" class="nav-link action-button">Get Started →</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="workflow-container">
|
||||
<div class="workflow">
|
||||
<h1>The Atlantis Workflow</h1>
|
||||
<img src="/mobile-workflow-min.png" class="mobile" alt="Atlantis Workflow">
|
||||
<img src="/workflow-min.png" class="desktop" alt="Atlantis Workflow">
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefits-container">
|
||||
<div class="benefit-container -dark">
|
||||
<div class="title">
|
||||
<h1>Benefits</h1>
|
||||
</div>
|
||||
<div class="benefit">
|
||||
<div class="item">
|
||||
<div class="description">
|
||||
<h2>Fewer Mistakes</h2>
|
||||
<p>Bring the benefits of <strong>code review</strong> to your operations
|
||||
workflow.</p>
|
||||
<ul>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Catch errors in
|
||||
the Terraform plan output before it's applied.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Ensure that you
|
||||
apply changes before merging to main.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item image">
|
||||
<div class="image">
|
||||
<img src="/list.svg">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefit-container">
|
||||
<div class="benefit">
|
||||
<div class="item image">
|
||||
<div class="image">
|
||||
<img src="/coding.svg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="description">
|
||||
<h2>Put the <span style="text-decoration: underline">Dev</span> back into DevOps</h2>
|
||||
<p>Empower your developers to write Terraform. <strong>Safely.</strong></p>
|
||||
<ul>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Developers can
|
||||
submit Terraform pull requests without needing credentials.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Operators can
|
||||
require approvals prior to allowing an apply.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefit-container -dark">
|
||||
<div class="benefit">
|
||||
<div class="item">
|
||||
<div class="description">
|
||||
<h2>Instant Audit Logs And Compliance</h2>
|
||||
<p>Pass audits without compromising your workflow.</p>
|
||||
<ul>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Each pull request now holds a detailed log of what infrastructure changes were made and when; along with who made the change and who approved it.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Atlantis can be configured to require approvals on every production change.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item image">
|
||||
<div class="image">
|
||||
<img src="/certificate.svg">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefits-container">
|
||||
<div class="benefit-container">
|
||||
<h1 class="title">Proven at Scale</h1>
|
||||
<div class="benefit">
|
||||
<div class="item image">
|
||||
<div class="image">
|
||||
<img src="/powerful.svg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="description">
|
||||
<ul>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Used by one of the world's top companies to manage over 600 Terraform repos with 300 developers.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">In production use since 2017.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefits-container">
|
||||
<div class="benefit-container">
|
||||
<h1 class="title">How It Works</h1>
|
||||
<div class="benefit">
|
||||
<div class="item">
|
||||
<div class="description">
|
||||
<ul>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Atlantis is
|
||||
self-hosted. Your credentials don't leave your infrastructure.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Runs as a Golang
|
||||
binary or Docker image and can be deployed on VMs, Kubernetes,
|
||||
Fargate, etc.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Listens for
|
||||
webhooks from GitHub/GitLab/Bitbucket/Azure DevOps.
|
||||
</li>
|
||||
<li><img class="checkmark" src="/checkmark.svg">Runs terraform
|
||||
commands remotely and comments back with their output.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item image">
|
||||
<div class="image">
|
||||
<img src="/hero.png">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="home getting-started-footer">
|
||||
<div class="hero">
|
||||
<p class="action" v-if="data.actionText && data.actionLink">
|
||||
<a href="/guide/" class="nav-link action-button">Get Started →</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer" v-if="data.footer">
|
||||
{{ data.footer }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
computed: {
|
||||
data() {
|
||||
return this.$page.frontmatter
|
||||
},
|
||||
actionLink() {
|
||||
return {
|
||||
link: this.data.actionLink,
|
||||
text: this.data.actionText
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
home: true
|
||||
pageClass: home-custom
|
||||
heroImage: /hero.png
|
||||
heroText: Atlantis
|
||||
actionText: Get Started →
|
||||
actionLink: /guide/
|
||||
title: Terraform Pull Request Automation
|
||||
---
|
||||
@@ -5,10 +5,10 @@ can vary from writing documentation, helping the community on Slack, discussing
|
||||
issues, or writing code.
|
||||
|
||||
:::tip Looking to get started or use Atlantis?
|
||||
If you're new, check out the [Guide](../guide/README.md) or the
|
||||
[Documentation](./../docs/README.md).
|
||||
If you're new, check out the [Guide](./guide.md) or the
|
||||
[Documentation](./docs.md).
|
||||
:::
|
||||
|
||||
### Next Steps
|
||||
|
||||
- [Events Controller](events-controller.md) – How do the events work?
|
||||
- [Events Controller](./contributing/events-controller.md) – How do the events work?
|
||||
14
runatlantis.io/docs.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Atlantis Documentation
|
||||
|
||||
These docs are for users that are ready to get Atlantis installed and start using it.
|
||||
|
||||
:::tip Looking to get started?
|
||||
If you're new here, check out the [Guide](./guide.md)
|
||||
where you can try our [Test Drive](./guide/test-drive.md) or [Run Atlantis Locally](./guide/testing-locally.md).
|
||||
:::
|
||||
|
||||
### Next Steps
|
||||
* [Installing Atlantis](./docs/installation-guide.md) – Get Atlantis up and running
|
||||
* [Configuring Atlantis](./docs/configuring-atlantis.md) – Configure how Atlantis works for your specific use-cases
|
||||
* [Using Atlantis](./docs/using-atlantis.md) – How do you use Atlantis?
|
||||
* [How Atlantis Works](./docs/how-atlantis-works.md) – Internals of what Atlantis is doing
|
||||
@@ -1,14 +0,0 @@
|
||||
# Atlantis Documentation
|
||||
|
||||
These docs are for users that are ready to get Atlantis installed and start using it.
|
||||
|
||||
:::tip Looking to get started?
|
||||
If you're new here, check out the [Guide](../guide/README.md)
|
||||
where you can try our [Test Drive](../guide/test-drive.md) or [Run Atlantis Locally](../guide/testing-locally.md).
|
||||
:::
|
||||
|
||||
### Next Steps
|
||||
* [Installing Atlantis](installation-guide.md) – Get Atlantis up and running
|
||||
* [Configuring Atlantis](configuring-atlantis.md) – Configure how Atlantis works for your specific use-cases
|
||||
* [Using Atlantis](using-atlantis.md) – How do you use Atlantis?
|
||||
* [How Atlantis Works](how-atlantis-works.md) – Internals of what Atlantis is doing
|
||||
@@ -1,4 +1,4 @@
|
||||
const { test } = require('@playwright/test');
|
||||
import { test } from '@playwright/test';
|
||||
|
||||
test('page should load without errors', async ({ page }) => {
|
||||
// Listen for any errors that occur within the page
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Introduction
|
||||
|
||||
## Getting Started
|
||||
* If you'd like to just test out running Atlantis on an **example repo** check out the [Test Drive](test-drive.md).
|
||||
* If you'd like to test out running Atlantis on **your repos** then read [Testing Locally](testing-locally.md).
|
||||
* If you're ready to properly install Atlantis on real infrastructure then head over to the [Installation Guide](../docs/installation-guide.md).
|
||||
* If you'd like to just test out running Atlantis on an **example repo** check out the [Test Drive](./guide/test-drive.md).
|
||||
* If you'd like to test out running Atlantis on **your repos** then read [Testing Locally](./guide/testing-locally.md).
|
||||
* If you're ready to properly install Atlantis on real infrastructure then head over to the [Installation Guide](./docs/installation-guide.md).
|
||||
|
||||
::: tip Looking for the full docs?
|
||||
Go here: [www.runatlantis.io/docs](../docs/README.md)
|
||||
Go here: [www.runatlantis.io/docs](./docs.md)
|
||||
:::
|
||||
|
||||
## Overview – What Is Atlantis?
|
||||
@@ -23,7 +23,7 @@ will run `terraform apply` and comment back with the output.
|
||||
## Watch
|
||||
Check out the video below to see it in action:
|
||||
|
||||
[](https://www.youtube.com/watch?v=TmIPWda0IKg)
|
||||
[](https://www.youtube.com/watch?v=TmIPWda0IKg)
|
||||
|
||||
## Why would you run Atlantis?
|
||||
### Increased visibility
|
||||
@@ -55,6 +55,6 @@ The exact commands that Atlantis runs are configurable. You can run custom scrip
|
||||
to construct your ideal workflow.
|
||||
|
||||
## Next Steps
|
||||
* If you'd like to just test out running Atlantis on an **example repo** check out the [Test Drive](test-drive.md).
|
||||
* If you'd like to test out running Atlantis on **your repos** then read [Testing Locally](testing-locally.md).
|
||||
* If you're ready to properly install Atlantis on real infrastructure then head over to the [Installation Guide](../docs/installation-guide.md).
|
||||
* If you'd like to just test out running Atlantis on an **example repo** check out the [Test Drive](./guide/test-drive.md).
|
||||
* If you'd like to test out running Atlantis on **your repos** then read [Testing Locally](./guide/testing-locally.md).
|
||||
* If you're ready to properly install Atlantis on real infrastructure then head over to the [Installation Guide](./docs/installation-guide.md).
|
||||
@@ -148,13 +148,13 @@ Take the URL that ngrok output and create a webhook in your GitHub, GitLab or Bi
|
||||
<li>Click <strong>Add webhook > Gitea</strong> (Gitea webhooks are service specific, but this works)</li>
|
||||
<li>set <strong>Target URL</strong> to <code>http://$URL/events</code> (or <code>https://$URL/events</code> if you're using SSL) where <code>$URL</code> is where Atlantis is hosted. <strong>Be sure to add <code>/events</code></strong></li>
|
||||
<li>double-check you added <code>/events</code> to the end of your URL.</li>
|
||||
<li>set <strong>Secret</strong> to the Webhook Secret you generated previously
|
||||
<li>set <strong>Secret</strong> to the Webhook Secret you generated previously
|
||||
<ul>
|
||||
<li><strong>NOTE</strong> If you're adding a webhook to multiple repositories, each repository will need to use the <strong>same</strong> secret.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Select <strong>Custom Events...</strong></li>
|
||||
<li>Check the boxes
|
||||
<li>Check the boxes
|
||||
<ul>
|
||||
<li><strong>Repository events > Push</strong></li>
|
||||
<li><strong>Issue events > Issue Comment</strong></li>
|
||||
@@ -207,7 +207,7 @@ TOKEN="{YOUR_TOKEN}"
|
||||
- Click **Create token**
|
||||
- Name the token **atlantis**
|
||||
- Give the token **Read** Project permissions and **Write** Pull request permissions
|
||||
- Choose an Expiry option **Do not expire** or **Expire automatically**
|
||||
- Choose an Expiry option **Do not expire** or **Expire automatically**
|
||||
- Click **Create** and set the token as an environment variable
|
||||
```
|
||||
TOKEN="{YOUR_TOKEN}"
|
||||
@@ -315,7 +315,7 @@ atlantis server \
|
||||
--ssl-key-file=file.key
|
||||
```
|
||||
|
||||
### Gitea
|
||||
### Gitea
|
||||
|
||||
```bash
|
||||
atlantis server \
|
||||
@@ -372,4 +372,4 @@ links to the log-streaming UI. This is a terminal UI where you can view your com
|
||||
* Hopefully Atlantis is working with your repo and you're ready to move on to a [production-ready deployment](../docs/deployment.md).
|
||||
* If it's not working as expected, you may need to customize how Atlantis runs with an `atlantis.yaml` file.
|
||||
See [atlantis.yaml use cases](../docs/repo-level-atlantis-yaml.md#use-cases).
|
||||
* Check out our [full documentation](../docs/README.md) for more details.
|
||||
* Check out our [full documentation](../docs.md) for more details.
|
||||
|
||||
43
runatlantis.io/index.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
# https://vitepress.dev/reference/default-theme-home-page
|
||||
layout: home
|
||||
|
||||
pageClass: home-custom
|
||||
|
||||
hero:
|
||||
name: Atlantis
|
||||
text: Terraform Pull Request Automation
|
||||
tagline: Running Terraform Workflows with Ease
|
||||
image: /hero.png
|
||||
actions:
|
||||
- theme: brand
|
||||
text: Get Started
|
||||
link: /guide
|
||||
- theme: alt
|
||||
text: What is Atlantis?
|
||||
link: https://medium.com/runatlantis/introducing-atlantis-6570d6de7281
|
||||
- theme: alt
|
||||
text: Join us on Slack
|
||||
link: https://join.slack.com/t/atlantis-community/shared_invite/zt-9xlxtxtc-CUSKB1ATt_sQy6um~LDPNw
|
||||
|
||||
features:
|
||||
- title: Fewer Mistakes
|
||||
details: "Catch errors in Terraform plan output before applying changes. Ensure changes are applied before merging."
|
||||
icon: ✅
|
||||
- title: Empower Developers
|
||||
details: "Developers can safely submit Terraform pull requests without credentials. Require approvals for applies."
|
||||
icon: 💻
|
||||
- title: Instant Audit Logs
|
||||
details: "Detailed logs for infrastructure changes, approvals, and user actions. Configure approvals for production changes."
|
||||
icon: 📋
|
||||
- title: Proven at Scale
|
||||
details: "Used by top companies to manage over 600 repos with 300 developers. In production since 2017."
|
||||
icon: 🌍
|
||||
- title: Self-Hosted
|
||||
details: "Your credentials remain secure. Deployable on VMs, Kubernetes, Fargate, etc. Supports GitHub, GitLab, Bitbucket, Azure DevOps."
|
||||
icon: ⚙️
|
||||
- title: Open Source
|
||||
details: "Atlantis is an open source project with strong community support, powered by volunteer contributions."
|
||||
icon: 🌐
|
||||
|
||||
---
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 972 B After Width: | Height: | Size: 972 B |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 223 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
@@ -316,7 +316,7 @@ func (g *AzureDevopsClient) MergePull(logger logging.SimpleLogging, pull models.
|
||||
return fmt.Errorf("the user %s is not found in the organization %s", g.UserName, owner)
|
||||
}
|
||||
|
||||
imageURL := "https://github.com/runatlantis/atlantis/raw/main/runatlantis.io/.vuepress/public/hero.png"
|
||||
imageURL := "https://github.com/runatlantis/atlantis/raw/main/runatlantis.io/.vitepress/public/hero.png"
|
||||
id := azuredevops.IdentityRef{
|
||||
Descriptor: &descriptor,
|
||||
ID: userID,
|
||||
|
||||