├── .github └── workflows │ ├── main.yml │ └── release.yml ├── .gitignore ├── .goreleaser-linux.yml ├── .goreleaser.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── cmd ├── destroy.go ├── docs.go ├── list.go ├── new.go ├── root.go └── validate.go ├── credits ├── LIST.md ├── cloud.google.com │ └── go │ │ ├── LICENSE │ │ └── storage │ │ └── LICENSE ├── github.com │ ├── OpenSLO │ │ └── oslo │ │ │ └── pkg │ │ │ └── manifest │ │ │ └── LICENSE │ ├── agaurav │ │ └── slogen │ │ │ └── LICENSE │ ├── aws │ │ └── aws-sdk-go │ │ │ ├── LICENSE.txt │ │ │ ├── NOTICE.txt │ │ │ └── internal │ │ │ └── sync │ │ │ └── singleflight │ │ │ └── LICENSE │ ├── bgentry │ │ └── go-netrc │ │ │ └── netrc │ │ │ └── LICENSE │ ├── cpuguy83 │ │ └── go-md2man │ │ │ └── v2 │ │ │ └── md2man │ │ │ └── LICENSE.md │ ├── fatih │ │ └── color │ │ │ └── LICENSE.md │ ├── fsnotify │ │ └── fsnotify │ │ │ └── LICENSE │ ├── go-resty │ │ └── resty │ │ │ └── v2 │ │ │ └── LICENSE │ ├── golang │ │ ├── groupcache │ │ │ └── lru │ │ │ │ └── LICENSE │ │ └── protobuf │ │ │ └── LICENSE │ ├── google │ │ └── go-cmp │ │ │ └── cmp │ │ │ └── LICENSE │ ├── googleapis │ │ └── gax-go │ │ │ └── v2 │ │ │ └── LICENSE │ ├── hashicorp │ │ ├── go-checkpoint │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── check.go │ │ │ ├── check_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── telemetry.go │ │ │ ├── telemetry_test.go │ │ │ ├── versions.go │ │ │ └── versions_test.go │ │ ├── go-cleanhttp │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── cleanhttp.go │ │ │ ├── doc.go │ │ │ ├── go.mod │ │ │ ├── handlers.go │ │ │ └── handlers_test.go │ │ ├── go-getter │ │ │ ├── .circleci │ │ │ │ └── config.yml │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ ├── codeql-analysis.yml │ │ │ │ │ └── release.yml │ │ │ ├── .goreleaser.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── checksum.go │ │ │ ├── client.go │ │ │ ├── client_mode.go │ │ │ ├── client_option.go │ │ │ ├── client_option_insecure.go │ │ │ ├── client_option_progress.go │ │ │ ├── client_option_progress_test.go │ │ │ ├── cmd │ │ │ │ └── go-getter │ │ │ │ │ ├── main.go │ │ │ │ │ └── progress_tracking.go │ │ │ ├── common.go │ │ │ ├── copy_dir.go │ │ │ ├── decompress.go │ │ │ ├── decompress_bzip2.go │ │ │ ├── decompress_bzip2_test.go │ │ │ ├── decompress_gzip.go │ │ │ ├── decompress_gzip_test.go │ │ │ ├── decompress_tar.go │ │ │ ├── decompress_tar_test.go │ │ │ ├── decompress_tbz2.go │ │ │ ├── decompress_tbz2_test.go │ │ │ ├── decompress_testing.go │ │ │ ├── decompress_tgz.go │ │ │ ├── decompress_tgz_test.go │ │ │ ├── decompress_txz.go │ │ │ ├── decompress_txz_test.go │ │ │ ├── decompress_tzst.go │ │ │ ├── decompress_tzst_test.go │ │ │ ├── decompress_xz.go │ │ │ ├── decompress_xz_test.go │ │ │ ├── decompress_zip.go │ │ │ ├── decompress_zip_test.go │ │ │ ├── decompress_zstd.go │ │ │ ├── decompress_zstd_test.go │ │ │ ├── detect.go │ │ │ ├── detect_bitbucket.go │ │ │ ├── detect_bitbucket_test.go │ │ │ ├── detect_file.go │ │ │ ├── detect_file_test.go │ │ │ ├── detect_file_unix_test.go │ │ │ ├── detect_gcs.go │ │ │ ├── detect_gcs_test.go │ │ │ ├── detect_git.go │ │ │ ├── detect_git_test.go │ │ │ ├── detect_github.go │ │ │ ├── detect_github_test.go │ │ │ ├── detect_gitlab.go │ │ │ ├── detect_gitlab_test.go │ │ │ ├── detect_s3.go │ │ │ ├── detect_s3_test.go │ │ │ ├── detect_ssh.go │ │ │ ├── detect_test.go │ │ │ ├── folder_storage.go │ │ │ ├── folder_storage_test.go │ │ │ ├── get.go │ │ │ ├── get_base.go │ │ │ ├── get_file.go │ │ │ ├── get_file_copy.go │ │ │ ├── get_file_copy_test.go │ │ │ ├── get_file_test.go │ │ │ ├── get_file_unix.go │ │ │ ├── get_file_windows.go │ │ │ ├── get_gcs.go │ │ │ ├── get_gcs_test.go │ │ │ ├── get_git.go │ │ │ ├── get_git_test.go │ │ │ ├── get_hg.go │ │ │ ├── get_hg_test.go │ │ │ ├── get_http.go │ │ │ ├── get_http_test.go │ │ │ ├── get_mock.go │ │ │ ├── get_s3.go │ │ │ ├── get_s3_test.go │ │ │ ├── get_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── helper │ │ │ │ └── url │ │ │ │ │ ├── url.go │ │ │ │ │ ├── url_test.go │ │ │ │ │ ├── url_unix.go │ │ │ │ │ └── url_windows.go │ │ │ ├── module_test.go │ │ │ ├── netrc.go │ │ │ ├── netrc_test.go │ │ │ ├── source.go │ │ │ ├── source_test.go │ │ │ ├── storage.go │ │ │ ├── test-fixtures │ │ │ │ ├── decompress-tar │ │ │ │ │ └── permissions.tar │ │ │ │ └── decompress-zip │ │ │ │ │ └── permissions.zip │ │ │ ├── testdata │ │ │ │ ├── archive-rooted-multi │ │ │ │ │ └── archive.tar.gz │ │ │ │ ├── archive-rooted │ │ │ │ │ └── archive.tar.gz │ │ │ │ ├── archive.tar.gz │ │ │ │ ├── basic%2Ftest │ │ │ │ │ ├── foo │ │ │ │ │ │ └── main.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ └── subdir │ │ │ │ │ │ └── sub.tf │ │ │ │ ├── basic-dot │ │ │ │ │ └── main.tf │ │ │ │ ├── basic-file-archive │ │ │ │ │ └── archive.tar.gz │ │ │ │ ├── basic-file │ │ │ │ │ └── foo.txt │ │ │ │ ├── basic-hg │ │ │ │ │ ├── .hg │ │ │ │ │ │ ├── 00changelog.i │ │ │ │ │ │ ├── branch │ │ │ │ │ │ ├── cache │ │ │ │ │ │ │ ├── branch2-served │ │ │ │ │ │ │ ├── rbc-names-v1 │ │ │ │ │ │ │ ├── rbc-revs-v1 │ │ │ │ │ │ │ └── tags │ │ │ │ │ │ ├── dirstate │ │ │ │ │ │ ├── last-message.txt │ │ │ │ │ │ ├── requires │ │ │ │ │ │ ├── store │ │ │ │ │ │ │ ├── 00changelog.i │ │ │ │ │ │ │ ├── 00manifest.i │ │ │ │ │ │ │ ├── data │ │ │ │ │ │ │ │ ├── foo.txt.i │ │ │ │ │ │ │ │ ├── main.tf.i │ │ │ │ │ │ │ │ └── main__branch.tf.i │ │ │ │ │ │ │ ├── fncache │ │ │ │ │ │ │ ├── phaseroots │ │ │ │ │ │ │ ├── undo │ │ │ │ │ │ │ ├── undo.backup.fncache │ │ │ │ │ │ │ ├── undo.backupfiles │ │ │ │ │ │ │ └── undo.phaseroots │ │ │ │ │ │ ├── undo.bookmarks │ │ │ │ │ │ ├── undo.branch │ │ │ │ │ │ ├── undo.desc │ │ │ │ │ │ └── undo.dirstate │ │ │ │ │ ├── foo.txt │ │ │ │ │ └── main.tf │ │ │ │ ├── basic-parent │ │ │ │ │ ├── a │ │ │ │ │ │ └── a.tf │ │ │ │ │ ├── c │ │ │ │ │ │ └── c.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── basic-subdir │ │ │ │ │ ├── foo │ │ │ │ │ │ └── sub │ │ │ │ │ │ │ ├── baz │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── basic-tgz │ │ │ │ │ └── main.tf │ │ │ │ ├── basic │ │ │ │ │ ├── foo │ │ │ │ │ │ └── main.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ └── subdir │ │ │ │ │ │ └── sub.tf │ │ │ │ ├── checksum-file │ │ │ │ │ ├── content.txt │ │ │ │ │ ├── md5-bsd-bad.sum │ │ │ │ │ ├── md5-bsd-wrong.sum │ │ │ │ │ ├── md5-bsd.sum │ │ │ │ │ ├── md5-p.sum │ │ │ │ │ ├── sha1-p.sum │ │ │ │ │ ├── sha1.sum │ │ │ │ │ ├── sha256-p.sum │ │ │ │ │ ├── sha512-p-EOF.sum │ │ │ │ │ └── sha512-p.sum │ │ │ │ ├── child │ │ │ │ │ ├── foo │ │ │ │ │ │ ├── bar │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── decompress-bz2 │ │ │ │ │ └── single.bz2 │ │ │ │ ├── decompress-gz │ │ │ │ │ └── single.gz │ │ │ │ ├── decompress-tar │ │ │ │ │ ├── extended_header.tar │ │ │ │ │ ├── implied_dir.tar │ │ │ │ │ └── unix_time_0.tar │ │ │ │ ├── decompress-tbz2 │ │ │ │ │ ├── empty.tar.bz2 │ │ │ │ │ ├── multiple.tar.bz2 │ │ │ │ │ ├── ordering.tar.bz2 │ │ │ │ │ └── single.tar.bz2 │ │ │ │ ├── decompress-tgz │ │ │ │ │ ├── empty.tar.gz │ │ │ │ │ ├── multiple.tar.gz │ │ │ │ │ ├── multiple_dir.tar.gz │ │ │ │ │ ├── ordering.tar.gz │ │ │ │ │ ├── outside_parent.tar.gz │ │ │ │ │ └── single.tar.gz │ │ │ │ ├── decompress-txz │ │ │ │ │ ├── empty.tar.xz │ │ │ │ │ ├── multiple.tar.xz │ │ │ │ │ ├── multiple_dir.tar.xz │ │ │ │ │ ├── ordering.tar.xz │ │ │ │ │ └── single.tar.xz │ │ │ │ ├── decompress-tzst │ │ │ │ │ ├── empty.tar.zst │ │ │ │ │ ├── multiple.tar.zst │ │ │ │ │ ├── multiple_dir.tar.zst │ │ │ │ │ ├── ordering.tar.zst │ │ │ │ │ ├── outside_parent.tar.zst │ │ │ │ │ └── single.tar.zst │ │ │ │ ├── decompress-xz │ │ │ │ │ └── single.xz │ │ │ │ ├── decompress-zip │ │ │ │ │ ├── empty.zip │ │ │ │ │ ├── multiple.zip │ │ │ │ │ ├── outside_parent.zip │ │ │ │ │ ├── single.zip │ │ │ │ │ ├── subdir.zip │ │ │ │ │ ├── subdir_empty.zip │ │ │ │ │ └── subdir_missing_dir.zip │ │ │ │ ├── decompress-zst │ │ │ │ │ └── single.zst │ │ │ │ ├── detect-file-symlink-pwd │ │ │ │ │ └── real │ │ │ │ │ │ └── hello.txt │ │ │ │ ├── dup │ │ │ │ │ ├── foo │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── netrc │ │ │ │ │ └── basic │ │ │ │ ├── validate-bad-output-to-module │ │ │ │ │ ├── child │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── validate-bad-output │ │ │ │ │ ├── child │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── validate-bad-var │ │ │ │ │ ├── child │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── validate-child-bad │ │ │ │ │ ├── child │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── validate-child-good │ │ │ │ │ ├── child │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── validate-required-var │ │ │ │ │ ├── child │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ └── validate-root-bad │ │ │ │ │ └── main.tf │ │ │ ├── url.go │ │ │ ├── url_test.go │ │ │ └── util_test.go │ │ ├── go-safetemp │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ ├── safetemp.go │ │ │ └── safetemp_test.go │ │ ├── go-uuid │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ ├── uuid.go │ │ │ └── uuid_test.go │ │ ├── go-version │ │ │ ├── .circleci │ │ │ │ └── config.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── constraint.go │ │ │ ├── constraint_test.go │ │ │ ├── go.mod │ │ │ ├── version.go │ │ │ ├── version_collection.go │ │ │ ├── version_collection_test.go │ │ │ └── version_test.go │ │ ├── hcl │ │ │ ├── .github │ │ │ │ └── ISSUE_TEMPLATE.md │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── appveyor.yml │ │ │ ├── decoder.go │ │ │ ├── decoder_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── hcl.go │ │ │ ├── hcl │ │ │ │ ├── ast │ │ │ │ │ ├── ast.go │ │ │ │ │ ├── ast_test.go │ │ │ │ │ └── walk.go │ │ │ │ ├── fmtcmd │ │ │ │ │ ├── fmtcmd.go │ │ │ │ │ ├── fmtcmd_test.go │ │ │ │ │ └── test-fixtures │ │ │ │ │ │ ├── .hidden.ignore │ │ │ │ │ │ ├── dir.ignore │ │ │ │ │ │ ├── file.ignore │ │ │ │ │ │ └── good.hcl │ │ │ │ ├── parser │ │ │ │ │ ├── error.go │ │ │ │ │ ├── error_test.go │ │ │ │ │ ├── parser.go │ │ │ │ │ ├── parser_test.go │ │ │ │ │ └── test-fixtures │ │ │ │ │ │ ├── array_comment.hcl │ │ │ │ │ │ ├── array_comment_2.hcl │ │ │ │ │ │ ├── assign_colon.hcl │ │ │ │ │ │ ├── assign_deep.hcl │ │ │ │ │ │ ├── comment.hcl │ │ │ │ │ │ ├── comment_crlf.hcl │ │ │ │ │ │ ├── comment_lastline.hcl │ │ │ │ │ │ ├── comment_single.hcl │ │ │ │ │ │ ├── complex.hcl │ │ │ │ │ │ ├── complex_crlf.hcl │ │ │ │ │ │ ├── complex_key.hcl │ │ │ │ │ │ ├── empty.hcl │ │ │ │ │ │ ├── git_crypt.hcl │ │ │ │ │ │ ├── key_without_value.hcl │ │ │ │ │ │ ├── list.hcl │ │ │ │ │ │ ├── list_comma.hcl │ │ │ │ │ │ ├── missing_braces.hcl │ │ │ │ │ │ ├── multiple.hcl │ │ │ │ │ │ ├── object_key_assign_without_value.hcl │ │ │ │ │ │ ├── object_key_assign_without_value2.hcl │ │ │ │ │ │ ├── object_key_assign_without_value3.hcl │ │ │ │ │ │ ├── object_key_without_value.hcl │ │ │ │ │ │ ├── object_list_comma.hcl │ │ │ │ │ │ ├── old.hcl │ │ │ │ │ │ ├── structure.hcl │ │ │ │ │ │ ├── structure_basic.hcl │ │ │ │ │ │ ├── structure_empty.hcl │ │ │ │ │ │ ├── types.hcl │ │ │ │ │ │ ├── unterminated_object.hcl │ │ │ │ │ │ └── unterminated_object_2.hcl │ │ │ │ ├── printer │ │ │ │ │ ├── nodes.go │ │ │ │ │ ├── printer.go │ │ │ │ │ ├── printer_test.go │ │ │ │ │ └── testdata │ │ │ │ │ │ ├── comment.golden │ │ │ │ │ │ ├── comment.input │ │ │ │ │ │ ├── comment_aligned.golden │ │ │ │ │ │ ├── comment_aligned.input │ │ │ │ │ │ ├── comment_array.golden │ │ │ │ │ │ ├── comment_array.input │ │ │ │ │ │ ├── comment_crlf.input │ │ │ │ │ │ ├── comment_end_file.golden │ │ │ │ │ │ ├── comment_end_file.input │ │ │ │ │ │ ├── comment_multiline_indent.golden │ │ │ │ │ │ ├── comment_multiline_indent.input │ │ │ │ │ │ ├── comment_multiline_no_stanza.golden │ │ │ │ │ │ ├── comment_multiline_no_stanza.input │ │ │ │ │ │ ├── comment_multiline_stanza.golden │ │ │ │ │ │ ├── comment_multiline_stanza.input │ │ │ │ │ │ ├── comment_newline.golden │ │ │ │ │ │ ├── comment_newline.input │ │ │ │ │ │ ├── comment_object_multi.golden │ │ │ │ │ │ ├── comment_object_multi.input │ │ │ │ │ │ ├── comment_standalone.golden │ │ │ │ │ │ ├── comment_standalone.input │ │ │ │ │ │ ├── complexhcl.golden │ │ │ │ │ │ ├── complexhcl.input │ │ │ │ │ │ ├── empty_block.golden │ │ │ │ │ │ ├── empty_block.input │ │ │ │ │ │ ├── list.golden │ │ │ │ │ │ ├── list.input │ │ │ │ │ │ ├── list_comment.golden │ │ │ │ │ │ ├── list_comment.input │ │ │ │ │ │ ├── list_of_objects.golden │ │ │ │ │ │ ├── list_of_objects.input │ │ │ │ │ │ ├── multiline_string.golden │ │ │ │ │ │ ├── multiline_string.input │ │ │ │ │ │ ├── object_singleline.golden │ │ │ │ │ │ ├── object_singleline.input │ │ │ │ │ │ ├── object_with_heredoc.golden │ │ │ │ │ │ └── object_with_heredoc.input │ │ │ │ ├── scanner │ │ │ │ │ ├── scanner.go │ │ │ │ │ └── scanner_test.go │ │ │ │ ├── strconv │ │ │ │ │ ├── quote.go │ │ │ │ │ └── quote_test.go │ │ │ │ ├── test-fixtures │ │ │ │ │ ├── array_comment.hcl │ │ │ │ │ ├── assign_colon.hcl │ │ │ │ │ ├── comment.hcl │ │ │ │ │ ├── comment_single.hcl │ │ │ │ │ ├── complex.hcl │ │ │ │ │ ├── complex_key.hcl │ │ │ │ │ ├── empty.hcl │ │ │ │ │ ├── list.hcl │ │ │ │ │ ├── list_comma.hcl │ │ │ │ │ ├── multiple.hcl │ │ │ │ │ ├── old.hcl │ │ │ │ │ ├── structure.hcl │ │ │ │ │ ├── structure_basic.hcl │ │ │ │ │ ├── structure_empty.hcl │ │ │ │ │ └── types.hcl │ │ │ │ └── token │ │ │ │ │ ├── position.go │ │ │ │ │ ├── token.go │ │ │ │ │ └── token_test.go │ │ │ ├── hcl_test.go │ │ │ ├── json │ │ │ │ ├── parser │ │ │ │ │ ├── flatten.go │ │ │ │ │ ├── parser.go │ │ │ │ │ ├── parser_test.go │ │ │ │ │ └── test-fixtures │ │ │ │ │ │ ├── array.json │ │ │ │ │ │ ├── bad_input_128.json │ │ │ │ │ │ ├── bad_input_tf_8110.json │ │ │ │ │ │ ├── basic.json │ │ │ │ │ │ ├── good_input_tf_8110.json │ │ │ │ │ │ ├── object.json │ │ │ │ │ │ └── types.json │ │ │ │ ├── scanner │ │ │ │ │ ├── scanner.go │ │ │ │ │ └── scanner_test.go │ │ │ │ ├── test-fixtures │ │ │ │ │ ├── array.json │ │ │ │ │ ├── basic.json │ │ │ │ │ ├── object.json │ │ │ │ │ └── types.json │ │ │ │ └── token │ │ │ │ │ ├── position.go │ │ │ │ │ ├── token.go │ │ │ │ │ └── token_test.go │ │ │ ├── lex.go │ │ │ ├── lex_test.go │ │ │ ├── parse.go │ │ │ ├── test-fixtures │ │ │ │ ├── assign_deep.hcl │ │ │ │ ├── basic.hcl │ │ │ │ ├── basic.json │ │ │ │ ├── basic_int_string.hcl │ │ │ │ ├── basic_squish.hcl │ │ │ │ ├── block_assign.hcl │ │ │ │ ├── decode_policy.hcl │ │ │ │ ├── decode_policy.json │ │ │ │ ├── decode_tf_variable.hcl │ │ │ │ ├── decode_tf_variable.json │ │ │ │ ├── empty.hcl │ │ │ │ ├── escape.hcl │ │ │ │ ├── escape_backslash.hcl │ │ │ │ ├── flat.hcl │ │ │ │ ├── float.hcl │ │ │ │ ├── float.json │ │ │ │ ├── git_crypt.hcl │ │ │ │ ├── interpolate.json │ │ │ │ ├── list_of_lists.hcl │ │ │ │ ├── list_of_maps.hcl │ │ │ │ ├── multiline.hcl │ │ │ │ ├── multiline.json │ │ │ │ ├── multiline_bad.hcl │ │ │ │ ├── multiline_indented.hcl │ │ │ │ ├── multiline_literal.hcl │ │ │ │ ├── multiline_literal_with_hil.hcl │ │ │ │ ├── multiline_no_eof.hcl │ │ │ │ ├── multiline_no_hanging_indent.hcl │ │ │ │ ├── multiline_no_marker.hcl │ │ │ │ ├── nested_block_comment.hcl │ │ │ │ ├── nested_provider_bad.hcl │ │ │ │ ├── null_strings.json │ │ │ │ ├── object_list.json │ │ │ │ ├── object_with_bool.hcl │ │ │ │ ├── scientific.hcl │ │ │ │ ├── scientific.json │ │ │ │ ├── slice_expand.hcl │ │ │ │ ├── structure.hcl │ │ │ │ ├── structure.json │ │ │ │ ├── structure2.hcl │ │ │ │ ├── structure2.json │ │ │ │ ├── structure_flat.json │ │ │ │ ├── structure_flatmap.hcl │ │ │ │ ├── structure_list.hcl │ │ │ │ ├── structure_list.json │ │ │ │ ├── structure_list_deep.json │ │ │ │ ├── structure_list_empty.json │ │ │ │ ├── structure_multi.hcl │ │ │ │ ├── structure_multi.json │ │ │ │ ├── terraform_heroku.hcl │ │ │ │ ├── terraform_heroku.json │ │ │ │ ├── terraform_variable_invalid.json │ │ │ │ ├── tfvars.hcl │ │ │ │ ├── unterminated_block_comment.hcl │ │ │ │ └── unterminated_brace.hcl │ │ │ └── testhelper │ │ │ │ └── unix2dos.go │ │ ├── terraform-exec │ │ │ ├── .circleci │ │ │ │ ├── SlackTemplate.json │ │ │ │ └── config.yml │ │ │ ├── .github │ │ │ │ └── dependabot.yml │ │ │ ├── .gitignore │ │ │ ├── .goreleaser.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── cmd │ │ │ │ └── tfinstall │ │ │ │ │ └── main.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── internal │ │ │ │ └── version │ │ │ │ │ └── version.go │ │ │ ├── scripts │ │ │ │ └── release │ │ │ │ │ ├── changelog_links.sh │ │ │ │ │ └── release.sh │ │ │ ├── tfexec │ │ │ │ ├── apply.go │ │ │ │ ├── apply_test.go │ │ │ │ ├── cmd.go │ │ │ │ ├── cmd_default.go │ │ │ │ ├── cmd_linux.go │ │ │ │ ├── cmd_test.go │ │ │ │ ├── cmdstring.go │ │ │ │ ├── cmdstring_go112.go │ │ │ │ ├── destroy.go │ │ │ │ ├── destroy_test.go │ │ │ │ ├── doc.go │ │ │ │ ├── errors.go │ │ │ │ ├── exit_errors.go │ │ │ │ ├── fmt.go │ │ │ │ ├── fmt_test.go │ │ │ │ ├── get.go │ │ │ │ ├── get_test.go │ │ │ │ ├── import.go │ │ │ │ ├── import_test.go │ │ │ │ ├── init.go │ │ │ │ ├── init_test.go │ │ │ │ ├── internal │ │ │ │ │ ├── e2etest │ │ │ │ │ │ ├── apply_test.go │ │ │ │ │ │ ├── cmp.go │ │ │ │ │ │ ├── destroy_test.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── errors_test.go │ │ │ │ │ │ ├── fmt_test.go │ │ │ │ │ │ ├── import_test.go │ │ │ │ │ │ ├── init_test.go │ │ │ │ │ │ ├── main_test.go │ │ │ │ │ │ ├── output_test.go │ │ │ │ │ │ ├── plan_test.go │ │ │ │ │ │ ├── providers_schema_test.go │ │ │ │ │ │ ├── refresh_test.go │ │ │ │ │ │ ├── show_test.go │ │ │ │ │ │ ├── state_mv_test.go │ │ │ │ │ │ ├── state_rm_test.go │ │ │ │ │ │ ├── testdata │ │ │ │ │ │ │ ├── basic │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── basic_with_state │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── terraform.tfstate │ │ │ │ │ │ │ ├── bigint │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── deep_module │ │ │ │ │ │ │ │ ├── foo │ │ │ │ │ │ │ │ │ ├── bar │ │ │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ ├── plan.json │ │ │ │ │ │ │ │ └── schemas.json │ │ │ │ │ │ │ ├── empty_with_tf_file │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── import │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── invalid │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── non_default_planfile_012 │ │ │ │ │ │ │ │ ├── human_readable_output.txt │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── planfilefoo │ │ │ │ │ │ │ ├── non_default_planfile_013 │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── human_readable_output.txt │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── planfilefoo │ │ │ │ │ │ │ ├── non_default_planfile_014 │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── human_readable_output.txt │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── planfilefoo │ │ │ │ │ │ │ ├── non_default_statefile_012 │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── statefilefoo │ │ │ │ │ │ │ ├── non_default_statefile_013 │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── statefilefoo │ │ │ │ │ │ │ ├── non_default_statefile_014 │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ └── statefilefoo │ │ │ │ │ │ │ ├── pre_011_syntax │ │ │ │ │ │ │ │ ├── file1.golden.txt │ │ │ │ │ │ │ │ ├── file1.tf │ │ │ │ │ │ │ │ ├── file2.golden.txt │ │ │ │ │ │ │ │ └── file2.tf │ │ │ │ │ │ │ ├── registry_module │ │ │ │ │ │ │ │ ├── main.tf │ │ │ │ │ │ │ │ ├── plan.json │ │ │ │ │ │ │ │ └── schemas.json │ │ │ │ │ │ │ ├── sleep │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── tf99 │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ ├── unformatted │ │ │ │ │ │ │ │ ├── file1.golden.txt │ │ │ │ │ │ │ │ ├── file1.tf │ │ │ │ │ │ │ │ ├── file2.golden.txt │ │ │ │ │ │ │ │ └── file2.tf │ │ │ │ │ │ │ ├── var │ │ │ │ │ │ │ │ └── main.tf │ │ │ │ │ │ │ └── workspaces │ │ │ │ │ │ │ │ ├── .terraform │ │ │ │ │ │ │ │ └── environment │ │ │ │ │ │ │ │ └── terraform.tfstate.d │ │ │ │ │ │ │ │ └── foo │ │ │ │ │ │ │ │ └── .keep │ │ │ │ │ │ ├── upgrade012_test.go │ │ │ │ │ │ ├── util_test.go │ │ │ │ │ │ ├── validate_test.go │ │ │ │ │ │ ├── version_test.go │ │ │ │ │ │ └── workspace_test.go │ │ │ │ │ └── testutil │ │ │ │ │ │ ├── temp_dir.go │ │ │ │ │ │ ├── tfcache.go │ │ │ │ │ │ ├── tfcache_find.go │ │ │ │ │ │ └── tfcache_find_noop.go │ │ │ │ ├── options.go │ │ │ │ ├── output.go │ │ │ │ ├── output_test.go │ │ │ │ ├── plan.go │ │ │ │ ├── plan_test.go │ │ │ │ ├── providers_schema.go │ │ │ │ ├── providers_schema_test.go │ │ │ │ ├── refresh.go │ │ │ │ ├── refresh_test.go │ │ │ │ ├── show.go │ │ │ │ ├── show_test.go │ │ │ │ ├── state_mv.go │ │ │ │ ├── state_mv_test.go │ │ │ │ ├── state_rm.go │ │ │ │ ├── state_rm_test.go │ │ │ │ ├── terraform.go │ │ │ │ ├── terraform_test.go │ │ │ │ ├── upgrade012.go │ │ │ │ ├── upgrade012_test.go │ │ │ │ ├── upgrade013.go │ │ │ │ ├── upgrade013_test.go │ │ │ │ ├── validate.go │ │ │ │ ├── version.go │ │ │ │ ├── version_test.go │ │ │ │ ├── workspace_list.go │ │ │ │ ├── workspace_list_test.go │ │ │ │ ├── workspace_new.go │ │ │ │ ├── workspace_new_test.go │ │ │ │ └── workspace_select.go │ │ │ └── tfinstall │ │ │ │ ├── doc.go │ │ │ │ ├── download.go │ │ │ │ ├── exact_path.go │ │ │ │ ├── exact_path_test.go │ │ │ │ ├── exact_version.go │ │ │ │ ├── exact_version_test.go │ │ │ │ ├── gitref │ │ │ │ ├── git_ref.go │ │ │ │ └── git_ref_test.go │ │ │ │ ├── http.go │ │ │ │ ├── latest_version.go │ │ │ │ ├── latest_version_test.go │ │ │ │ ├── look_path.go │ │ │ │ ├── pubkey.go │ │ │ │ ├── tfinstall.go │ │ │ │ └── tfinstall_test.go │ │ └── terraform-json │ │ │ ├── .circleci │ │ │ └── config.yml │ │ │ ├── .gitignore │ │ │ ├── .go-version │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── action.go │ │ │ ├── cmd │ │ │ └── round-trip-dumper │ │ │ │ ├── README.md │ │ │ │ └── main.go │ │ │ ├── config.go │ │ │ ├── config_test.go │ │ │ ├── expression.go │ │ │ ├── expression_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── parse_test.go │ │ │ ├── plan.go │ │ │ ├── plan_test.go │ │ │ ├── sanitize │ │ │ ├── copy.go │ │ │ ├── copy_test.go │ │ │ ├── sanitize_change.go │ │ │ ├── sanitize_change_test.go │ │ │ ├── sanitize_plan.go │ │ │ ├── sanitize_plan_test.go │ │ │ ├── sanitize_plan_variables.go │ │ │ ├── sanitize_plan_variables_test.go │ │ │ ├── sanitize_state.go │ │ │ ├── sanitize_state_test.go │ │ │ └── testdata │ │ │ │ ├── basic.golden │ │ │ │ └── basic.json │ │ │ ├── schemas.go │ │ │ ├── schemas_test.go │ │ │ ├── state.go │ │ │ ├── state_test.go │ │ │ ├── testdata │ │ │ ├── 013_module_depends_on │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ └── schemas.json │ │ │ ├── 110_sensitive_values │ │ │ │ ├── foo │ │ │ │ │ └── main.tf │ │ │ │ ├── module.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── plan.json │ │ │ │ ├── providers.tf │ │ │ │ ├── resources.tf │ │ │ │ ├── state.json │ │ │ │ ├── terraform.tfstate │ │ │ │ └── variables.tf │ │ │ ├── Makefile │ │ │ ├── basic │ │ │ │ ├── foo │ │ │ │ │ └── main.tf │ │ │ │ ├── module.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── plan-0.15.json │ │ │ │ ├── plan.json │ │ │ │ ├── providers.tf │ │ │ │ ├── resources.tf │ │ │ │ ├── schemas.json │ │ │ │ └── variables.tf │ │ │ ├── config_resource_depends_on │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ ├── schemas.json │ │ │ │ └── terraform.tfstate │ │ │ ├── deep_module │ │ │ │ ├── foo │ │ │ │ │ ├── bar │ │ │ │ │ │ └── main.tf │ │ │ │ │ └── main.tf │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ └── schemas.json │ │ │ ├── explicit_null │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ ├── schemas.json │ │ │ │ └── terraform.tfvars │ │ │ ├── has_changes │ │ │ │ ├── foo │ │ │ │ │ └── main.tf │ │ │ │ ├── module.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── plan.json │ │ │ │ ├── providers.tf │ │ │ │ ├── resources.tf │ │ │ │ ├── schemas.json │ │ │ │ ├── terraform.tfstate │ │ │ │ └── variables.tf │ │ │ ├── nested_config_keys │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ └── schemas.json │ │ │ ├── no_changes │ │ │ │ ├── foo │ │ │ │ │ └── main.tf │ │ │ │ ├── module.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── plan.json │ │ │ │ ├── providers.tf │ │ │ │ ├── resources.tf │ │ │ │ ├── schemas.json │ │ │ │ ├── state.json │ │ │ │ ├── terraform.tfstate │ │ │ │ └── variables.tf │ │ │ ├── output_depends_on │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ └── schemas.json │ │ │ ├── provider_version │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ └── schemas.json │ │ │ └── registry_module │ │ │ │ ├── main.tf │ │ │ │ ├── plan.json │ │ │ │ └── schemas.json │ │ │ ├── tfjson.go │ │ │ ├── validate.go │ │ │ ├── validate_test.go │ │ │ ├── version.go │ │ │ └── version_test.go │ ├── jmespath │ │ └── go-jmespath │ │ │ └── LICENSE │ ├── klauspost │ │ └── compress │ │ │ ├── LICENSE │ │ │ ├── internal │ │ │ └── snapref │ │ │ │ └── LICENSE │ │ │ └── zstd │ │ │ └── internal │ │ │ └── xxhash │ │ │ └── LICENSE.txt │ ├── kr │ │ ├── pretty │ │ │ └── License │ │ └── text │ │ │ └── License │ ├── magiconair │ │ └── properties │ │ │ └── LICENSE.md │ ├── mattn │ │ ├── go-colorable │ │ │ └── LICENSE │ │ └── go-isatty │ │ │ └── LICENSE │ ├── mitchellh │ │ ├── go-homedir │ │ │ └── LICENSE │ │ ├── go-testing-interface │ │ │ └── LICENSE │ │ └── mapstructure │ │ │ └── LICENSE │ ├── pelletier │ │ └── go-toml │ │ │ └── LICENSE │ ├── rogpeppe │ │ └── go-internal │ │ │ └── fmtsort │ │ │ └── LICENSE │ ├── russross │ │ └── blackfriday │ │ │ └── v2 │ │ │ └── LICENSE.txt │ ├── spf13 │ │ ├── afero │ │ │ └── LICENSE.txt │ │ ├── cast │ │ │ └── LICENSE │ │ ├── cobra │ │ │ └── LICENSE.txt │ │ ├── jwalterweatherman │ │ │ └── LICENSE │ │ ├── pflag │ │ │ └── LICENSE │ │ └── viper │ │ │ └── LICENSE │ ├── subosito │ │ └── gotenv │ │ │ └── LICENSE │ ├── ulikunitz │ │ └── xz │ │ │ └── LICENSE │ └── zclconf │ │ └── go-cty │ │ └── cty │ │ └── LICENSE ├── go.opencensus.io │ └── LICENSE ├── go.uber.org │ ├── atomic │ │ └── LICENSE.txt │ ├── multierr │ │ └── LICENSE.txt │ └── zap │ │ └── LICENSE.txt ├── golang.org │ └── x │ │ ├── crypto │ │ └── LICENSE │ │ ├── net │ │ └── LICENSE │ │ ├── oauth2 │ │ └── LICENSE │ │ ├── sys │ │ └── LICENSE │ │ ├── text │ │ └── LICENSE │ │ └── xerrors │ │ └── LICENSE ├── google.golang.org │ ├── api │ │ ├── LICENSE │ │ └── internal │ │ │ └── third_party │ │ │ └── uritemplates │ │ │ └── LICENSE │ ├── genproto │ │ └── googleapis │ │ │ └── LICENSE │ ├── grpc │ │ ├── LICENSE │ │ └── NOTICE.txt │ └── protobuf │ │ └── LICENSE └── gopkg.in │ ├── ini.v1 │ └── LICENSE │ ├── yaml.v2 │ ├── LICENSE │ └── NOTICE │ └── yaml.v3 │ ├── LICENSE │ └── NOTICE ├── docs ├── slogen.md ├── slogen_apply.md ├── slogen_completion.md ├── slogen_completion_bash.md ├── slogen_completion_fish.md ├── slogen_completion_powershell.md ├── slogen_completion_zsh.md ├── slogen_docs.md ├── slogen_gen.md ├── slogen_new.md ├── slogen_plan.md └── slogen_validate.md ├── go.mod ├── go.sum ├── libs ├── connections.go ├── connections_test.go ├── dashboard.go ├── gen.go ├── graph │ └── graph.go ├── log.go ├── lookup.go ├── lookup_test.go ├── monitor.go ├── monitor_test.go ├── out.go ├── overview.go ├── overview_test.go ├── plan.go ├── queries.go ├── spec.go ├── spec_test.go ├── specs │ └── specs.go ├── sumologic │ ├── native.go │ ├── sumotf │ │ └── sumotf.go │ ├── templates │ │ ├── slo-monitors.tf.gotf │ │ └── slo.tf.gotf │ └── tf.go ├── templates │ ├── dashboard.tf │ ├── openslo │ │ └── sample.yaml │ ├── slogen_lookup.csv │ ├── terraform │ │ ├── main.tf.gotf │ │ └── sumologic │ │ │ ├── dash-folders.tf.gotf │ │ │ ├── dashboard.tf.gotf │ │ │ ├── global-tracker.tf.gotf │ │ │ ├── module_interface.tf.gotf │ │ │ ├── monitor-folders.tf.gotf │ │ │ ├── monitor.tf.gotf │ │ │ ├── sched-view.tf.gotf │ │ │ ├── service-overview.tf.gotf │ │ │ └── slo-folders.tf.gotf │ └── visual-settings │ │ ├── breakdown-panel.gojson │ │ ├── budget-left.gojson │ │ ├── burn-trend.gojson │ │ ├── forecasted-panel.json │ │ ├── gauge-viz-settings.gojson │ │ └── hourly-burn-rate.gojson ├── util.go ├── validate.go ├── view.go └── view_test.go ├── main.go ├── misc ├── SLO-breakdow.png ├── budget-forecast.png ├── monitors.png ├── overview.png ├── samples-flowchart.png ├── service-overview.png ├── slo_panel.png ├── sumo-sli-list.gif ├── sumo-slo-dashboard.png └── view_search.png └── samples └── sumologic ├── README.md ├── logs ├── drift-calculation.yaml ├── ingest-lag-timeslice-budgeting.yaml └── trend-calculation.yaml ├── tracing ├── checkout-latency.yaml ├── order-api-errors.yaml ├── order-api-latency.yaml ├── page-load-time.yaml ├── payment-api-latency.yaml └── user-journey.yaml ├── v1-alpha.md └── v1 ├── alert-policy ├── burn-rate.yaml └── slo-breach.yaml ├── logs-req-calendar.yaml ├── logs-req-rolling.yaml ├── notification-target ├── email.yaml ├── pagerduty.yaml └── webhook.yaml └── th-based ├── logs-req-threshold-based.yaml └── logs-window-threshold-based.yaml /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Run Gosec 2 | on: 3 | push: 4 | branches: 5 | - master 6 | pull_request: 7 | branches: 8 | - master 9 | jobs: 10 | tests: 11 | runs-on: ubuntu-latest 12 | env: 13 | GO111MODULE: on 14 | steps: 15 | - name: Checkout Source 16 | uses: actions/checkout@v2 17 | - name: Run Gosec Security Scanner 18 | uses: securego/gosec@master 19 | with: 20 | args: ./… 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Go template 2 | # Binaries for programs and plugins 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | 9 | # Test binary, built with `go test -c` 10 | *.test 11 | 12 | # Output of the go coverage tool, specifically when used with LiteIDE 13 | *.out 14 | 15 | # Dependency directories (remove the comment below to include it) 16 | # vendor/ 17 | 18 | tf/* 19 | 20 | dist/ 21 | .idea 22 | -------------------------------------------------------------------------------- /.goreleaser-linux.yml: -------------------------------------------------------------------------------- 1 | # This is an example .goreleaser.yml file with some sensible defaults. 2 | # Make sure to check the documentation at https://goreleaser.com 3 | before: 4 | hooks: 5 | # You may remove this if you don't use go modules. 6 | - go mod tidy 7 | # you may remove this if you don't need go generate 8 | - go generate ./... 9 | builds: 10 | - env: 11 | - CGO_ENABLED=1 12 | goos: 13 | - linux 14 | goarch: 15 | - amd64 16 | - 386 17 | archives: 18 | - replacements: 19 | darwin: Darwin 20 | linux: Linux 21 | 386: i386 22 | amd64: x86_64 23 | checksum: 24 | name_template: 'checksums.txt' 25 | snapshot: 26 | name_template: "{{ incpatch .Version }}" 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - '^docs:' 32 | - '^test:' 33 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## adding support for a new source type 2 | 3 | 4 | ###### implement a new package under `libs` for that source 5 | 6 | The package should expose function `IsSource` that given a parsed SLO object returns true if the source is supported by the package. 7 | An example for sumologic source detection is [here](https://github.com/OpenSLO/slogen/blob/sumo-agaurav/libs/sumologic/tf.go#L78-L92) 8 | 9 | The package should also expose a function `GiveTerraform` that returns the terraform content to be added for that source when provided with the parsed slo configs. 10 | The above function can then be called in [`libs/gen.go`](https://github.com/OpenSLO/slogen/blob/sumo-agaurav/libs/gen.go#L111) to create the corresponding terraform files. 11 | 12 | 13 | ###### add the required terraform providers for that source in [libs/templates/terraform//main.tf.gotf](libs/templates/terraform/main.tf.gotf) 14 | 15 | -------------------------------------------------------------------------------- /credits/github.com/aws/aws-sdk-go/NOTICE.txt: -------------------------------------------------------------------------------- 1 | AWS SDK for Go 2 | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | Copyright 2014-2015 Stripe, Inc. 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-checkpoint/README.md: -------------------------------------------------------------------------------- 1 | # Go Checkpoint Client 2 | 3 | [Checkpoint](http://checkpoint.hashicorp.com) is an internal service at 4 | Hashicorp that we use to check version information, broadcast security 5 | bulletins, etc. 6 | 7 | We understand that software making remote calls over the internet 8 | for any reason can be undesirable. Because of this, Checkpoint can be 9 | disabled in all of our software that includes it. You can view the source 10 | of this client to see that we're not sending any private information. 11 | 12 | Each Hashicorp application has it's specific configuration option 13 | to disable checkpoint calls, but the `CHECKPOINT_DISABLE` makes 14 | the underlying checkpoint component itself disabled. For example 15 | in the case of packer: 16 | ``` 17 | CHECKPOINT_DISABLE=1 packer build 18 | ``` 19 | 20 | **Note:** This repository is probably useless outside of internal HashiCorp 21 | use. It is open source for disclosure and because our open source projects 22 | must be able to link to it. 23 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-checkpoint/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/hashicorp/go-checkpoint 2 | 3 | require ( 4 | github.com/hashicorp/go-cleanhttp v0.5.0 5 | github.com/hashicorp/go-uuid v1.0.0 6 | ) 7 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-checkpoint/go.sum: -------------------------------------------------------------------------------- 1 | github.com/hashicorp/go-cleanhttp v0.5.0 h1:wvCrVc9TjDls6+YGAF2hAifE1E5U1+b4tH6KdvN3Gig= 2 | github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= 3 | github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= 4 | github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= 5 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-checkpoint/telemetry_test.go: -------------------------------------------------------------------------------- 1 | package checkpoint 2 | 3 | import ( 4 | "encoding/json" 5 | "strings" 6 | "testing" 7 | ) 8 | 9 | func TestReport_sendsRequest(t *testing.T) { 10 | expected := &ReportParams{ 11 | Signature: "sig", 12 | Product: "prod", 13 | } 14 | 15 | req, err := ReportRequest(expected) 16 | if err != nil { 17 | t.Fatalf("unexpected error: %v", err) 18 | } 19 | defer req.Body.Close() 20 | 21 | if !strings.HasSuffix(req.URL.Path, "/telemetry/prod") { 22 | t.Fatalf("expected url to include the product, got %s", req.URL.String()) 23 | } 24 | 25 | var actual ReportParams 26 | if err := json.NewDecoder(req.Body).Decode(&actual); err != nil { 27 | t.Fatalf("unexpected error: %v", err) 28 | } 29 | 30 | if actual.Signature != expected.Signature { 31 | t.Fatalf("expected %#v, got %#v", expected, actual) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-cleanhttp/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/hashicorp/go-cleanhttp 2 | 3 | go 1.13 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/client_mode.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | // ClientMode is the mode that the client operates in. 4 | type ClientMode uint 5 | 6 | const ( 7 | ClientModeInvalid ClientMode = iota 8 | 9 | // ClientModeAny downloads anything it can. In this mode, dst must 10 | // be a directory. If src is a file, it is saved into the directory 11 | // with the basename of the URL. If src is a directory or archive, 12 | // it is unpacked directly into dst. 13 | ClientModeAny 14 | 15 | // ClientModeFile downloads a single file. In this mode, dst must 16 | // be a file path (doesn't have to exist). src must point to a single 17 | // file. It is saved as dst. 18 | ClientModeFile 19 | 20 | // ClientModeDir downloads a directory. In this mode, dst must be 21 | // a directory path (doesn't have to exist). src must point to an 22 | // archive or directory (such as in s3). 23 | ClientModeDir 24 | ) 25 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/client_option_insecure.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | // WithInsecure allows for a user to avoid 4 | // checking certificates (not recommended). 5 | // For example, when connecting on HTTPS where an 6 | // invalid certificate is presented. 7 | // User assumes all risk. 8 | // Not all getters have support for insecure mode yet. 9 | func WithInsecure() func(*Client) error { 10 | return func(c *Client) error { 11 | c.Insecure = true 12 | return nil 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/common.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "io/ioutil" 5 | ) 6 | 7 | func tmpFile(dir, pattern string) (string, error) { 8 | f, err := ioutil.TempFile(dir, pattern) 9 | if err != nil { 10 | return "", err 11 | } 12 | f.Close() 13 | return f.Name(), nil 14 | } 15 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_bzip2.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "compress/bzip2" 5 | "fmt" 6 | "os" 7 | "path/filepath" 8 | ) 9 | 10 | // Bzip2Decompressor is an implementation of Decompressor that can 11 | // decompress bz2 files. 12 | type Bzip2Decompressor struct{} 13 | 14 | func (d *Bzip2Decompressor) Decompress(dst, src string, dir bool, umask os.FileMode) error { 15 | // Directory isn't supported at all 16 | if dir { 17 | return fmt.Errorf("bzip2-compressed files can only unarchive to a single file") 18 | } 19 | 20 | // If we're going into a directory we should make that first 21 | if err := os.MkdirAll(filepath.Dir(dst), mode(0755, umask)); err != nil { 22 | return err 23 | } 24 | 25 | // File first 26 | f, err := os.Open(src) 27 | if err != nil { 28 | return err 29 | } 30 | defer f.Close() 31 | 32 | // Bzip2 compression is second 33 | bzipR := bzip2.NewReader(f) 34 | 35 | // Copy it out 36 | return copyReader(dst, bzipR, 0622, umask) 37 | } 38 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_bzip2_test.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "path/filepath" 5 | "testing" 6 | ) 7 | 8 | func TestBzip2Decompressor(t *testing.T) { 9 | cases := []TestDecompressCase{ 10 | { 11 | "single.bz2", 12 | false, 13 | false, 14 | nil, 15 | "d3b07384d113edec49eaa6238ad5ff00", 16 | nil, 17 | }, 18 | 19 | { 20 | "single.bz2", 21 | true, 22 | true, 23 | nil, 24 | "", 25 | nil, 26 | }, 27 | } 28 | 29 | for i, tc := range cases { 30 | cases[i].Input = filepath.Join("./testdata", "decompress-bz2", tc.Input) 31 | } 32 | 33 | TestDecompressor(t, new(Bzip2Decompressor), cases) 34 | } 35 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_gzip_test.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "path/filepath" 5 | "testing" 6 | ) 7 | 8 | func TestGzipDecompressor(t *testing.T) { 9 | cases := []TestDecompressCase{ 10 | { 11 | "single.gz", 12 | false, 13 | false, 14 | nil, 15 | "d3b07384d113edec49eaa6238ad5ff00", 16 | nil, 17 | }, 18 | 19 | { 20 | "single.gz", 21 | true, 22 | true, 23 | nil, 24 | "", 25 | nil, 26 | }, 27 | } 28 | 29 | for i, tc := range cases { 30 | cases[i].Input = filepath.Join("./testdata", "decompress-gz", tc.Input) 31 | } 32 | 33 | TestDecompressor(t, new(GzipDecompressor), cases) 34 | } 35 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_tbz2.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "compress/bzip2" 5 | "os" 6 | "path/filepath" 7 | ) 8 | 9 | // TarBzip2Decompressor is an implementation of Decompressor that can 10 | // decompress tar.bz2 files. 11 | type TarBzip2Decompressor struct{} 12 | 13 | func (d *TarBzip2Decompressor) Decompress(dst, src string, dir bool, umask os.FileMode) error { 14 | // If we're going into a directory we should make that first 15 | mkdir := dst 16 | if !dir { 17 | mkdir = filepath.Dir(dst) 18 | } 19 | if err := os.MkdirAll(mkdir, mode(0755, umask)); err != nil { 20 | return err 21 | } 22 | 23 | // File first 24 | f, err := os.Open(src) 25 | if err != nil { 26 | return err 27 | } 28 | defer f.Close() 29 | 30 | // Bzip2 compression is second 31 | bzipR := bzip2.NewReader(f) 32 | return untar(bzipR, dst, src, dir, umask) 33 | } 34 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_tgz.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "compress/gzip" 5 | "fmt" 6 | "os" 7 | "path/filepath" 8 | ) 9 | 10 | // TarGzipDecompressor is an implementation of Decompressor that can 11 | // decompress tar.gzip files. 12 | type TarGzipDecompressor struct{} 13 | 14 | func (d *TarGzipDecompressor) Decompress(dst, src string, dir bool, umask os.FileMode) error { 15 | // If we're going into a directory we should make that first 16 | mkdir := dst 17 | if !dir { 18 | mkdir = filepath.Dir(dst) 19 | } 20 | if err := os.MkdirAll(mkdir, mode(0755, umask)); err != nil { 21 | return err 22 | } 23 | 24 | // File first 25 | f, err := os.Open(src) 26 | if err != nil { 27 | return err 28 | } 29 | defer f.Close() 30 | 31 | // Gzip compression is second 32 | gzipR, err := gzip.NewReader(f) 33 | if err != nil { 34 | return fmt.Errorf("Error opening a gzip reader for %s: %s", src, err) 35 | } 36 | defer gzipR.Close() 37 | 38 | return untar(gzipR, dst, src, dir, umask) 39 | } 40 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_txz.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "path/filepath" 7 | 8 | "github.com/ulikunitz/xz" 9 | ) 10 | 11 | // TarXzDecompressor is an implementation of Decompressor that can 12 | // decompress tar.xz files. 13 | type TarXzDecompressor struct{} 14 | 15 | func (d *TarXzDecompressor) Decompress(dst, src string, dir bool, umask os.FileMode) error { 16 | // If we're going into a directory we should make that first 17 | mkdir := dst 18 | if !dir { 19 | mkdir = filepath.Dir(dst) 20 | } 21 | if err := os.MkdirAll(mkdir, mode(0755, umask)); err != nil { 22 | return err 23 | } 24 | 25 | // File first 26 | f, err := os.Open(src) 27 | if err != nil { 28 | return err 29 | } 30 | defer f.Close() 31 | 32 | // xz compression is second 33 | txzR, err := xz.NewReader(f) 34 | if err != nil { 35 | return fmt.Errorf("Error opening an xz reader for %s: %s", src, err) 36 | } 37 | 38 | return untar(txzR, dst, src, dir, umask) 39 | } 40 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_xz.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "path/filepath" 7 | 8 | "github.com/ulikunitz/xz" 9 | ) 10 | 11 | // XzDecompressor is an implementation of Decompressor that can 12 | // decompress xz files. 13 | type XzDecompressor struct{} 14 | 15 | func (d *XzDecompressor) Decompress(dst, src string, dir bool, umask os.FileMode) error { 16 | // Directory isn't supported at all 17 | if dir { 18 | return fmt.Errorf("xz-compressed files can only unarchive to a single file") 19 | } 20 | 21 | // If we're going into a directory we should make that first 22 | if err := os.MkdirAll(filepath.Dir(dst), mode(0755, umask)); err != nil { 23 | return err 24 | } 25 | 26 | // File first 27 | f, err := os.Open(src) 28 | if err != nil { 29 | return err 30 | } 31 | defer f.Close() 32 | 33 | // xz compression is second 34 | xzR, err := xz.NewReader(f) 35 | if err != nil { 36 | return err 37 | } 38 | 39 | // Copy it out 40 | return copyReader(dst, xzR, 0622, umask) 41 | } 42 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_xz_test.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "path/filepath" 5 | "testing" 6 | ) 7 | 8 | func TestXzDecompressor(t *testing.T) { 9 | cases := []TestDecompressCase{ 10 | { 11 | "single.xz", 12 | false, 13 | false, 14 | nil, 15 | "d3b07384d113edec49eaa6238ad5ff00", 16 | nil, 17 | }, 18 | 19 | { 20 | "single.xz", 21 | true, 22 | true, 23 | nil, 24 | "", 25 | nil, 26 | }, 27 | } 28 | 29 | for i, tc := range cases { 30 | cases[i].Input = filepath.Join("./testdata", "decompress-xz", tc.Input) 31 | } 32 | 33 | TestDecompressor(t, new(XzDecompressor), cases) 34 | } 35 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/decompress_zstd_test.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "path/filepath" 5 | "testing" 6 | ) 7 | 8 | func TestZstdDecompressor(t *testing.T) { 9 | cases := []TestDecompressCase{ 10 | { 11 | "single.zst", 12 | false, 13 | false, 14 | nil, 15 | "d3b07384d113edec49eaa6238ad5ff00", 16 | nil, 17 | }, 18 | 19 | { 20 | "single.zst", 21 | true, 22 | true, 23 | nil, 24 | "", 25 | nil, 26 | }, 27 | } 28 | 29 | for i, tc := range cases { 30 | cases[i].Input = filepath.Join("./testdata", "decompress-zst", tc.Input) 31 | } 32 | 33 | TestDecompressor(t, new(ZstdDecompressor), cases) 34 | } 35 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/detect_gcs_test.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestGCSDetector(t *testing.T) { 8 | cases := []struct { 9 | Input string 10 | Output string 11 | }{ 12 | { 13 | "www.googleapis.com/storage/v1/bucket/foo", 14 | "gcs::https://www.googleapis.com/storage/v1/bucket/foo", 15 | }, 16 | { 17 | "www.googleapis.com/storage/v1/bucket/foo/bar", 18 | "gcs::https://www.googleapis.com/storage/v1/bucket/foo/bar", 19 | }, 20 | { 21 | "www.googleapis.com/storage/v1/foo/bar.baz", 22 | "gcs::https://www.googleapis.com/storage/v1/foo/bar.baz", 23 | }, 24 | } 25 | 26 | pwd := "/pwd" 27 | f := new(GCSDetector) 28 | for i, tc := range cases { 29 | output, ok, err := f.Detect(tc.Input, pwd) 30 | if err != nil { 31 | t.Fatalf("err: %s", err) 32 | } 33 | if !ok { 34 | t.Fatal("not ok") 35 | } 36 | 37 | if output != tc.Output { 38 | t.Fatalf("%d: bad: %#v", i, output) 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/detect_git.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | // GitDetector implements Detector to detect Git SSH URLs such as 4 | // git@host.com:dir1/dir2 and converts them to proper URLs. 5 | type GitDetector struct{} 6 | 7 | func (d *GitDetector) Detect(src, _ string) (string, bool, error) { 8 | if len(src) == 0 { 9 | return "", false, nil 10 | } 11 | 12 | u, err := detectSSH(src) 13 | if err != nil { 14 | return "", true, err 15 | } 16 | if u == nil { 17 | return "", false, nil 18 | } 19 | 20 | // We require the username to be "git" to assume that this is a Git URL 21 | if u.User.Username() != "git" { 22 | return "", false, nil 23 | } 24 | 25 | return "git::" + u.String(), true, nil 26 | } 27 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/get_base.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import "context" 4 | 5 | // getter is our base getter; it regroups 6 | // fields all getters have in common. 7 | type getter struct { 8 | client *Client 9 | } 10 | 11 | func (g *getter) SetClient(c *Client) { g.client = c } 12 | 13 | // Context tries to returns the Contex from the getter's 14 | // client. otherwise context.Background() is returned. 15 | func (g *getter) Context() context.Context { 16 | if g == nil || g.client == nil { 17 | return context.Background() 18 | } 19 | return g.client.Ctx 20 | } 21 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/get_file.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import ( 4 | "net/url" 5 | "os" 6 | ) 7 | 8 | // FileGetter is a Getter implementation that will download a module from 9 | // a file scheme. 10 | type FileGetter struct { 11 | getter 12 | 13 | // Copy, if set to true, will copy data instead of using a symlink. If 14 | // false, attempts to symlink to speed up the operation and to lower the 15 | // disk space usage. If the symlink fails, may attempt to copy on windows. 16 | Copy bool 17 | } 18 | 19 | func (g *FileGetter) ClientMode(u *url.URL) (ClientMode, error) { 20 | path := u.Path 21 | if u.RawPath != "" { 22 | path = u.RawPath 23 | } 24 | 25 | fi, err := os.Stat(path) 26 | if err != nil { 27 | return 0, err 28 | } 29 | 30 | // Check if the source is a directory. 31 | if fi.IsDir() { 32 | return ClientModeDir, nil 33 | } 34 | 35 | return ClientModeFile, nil 36 | } 37 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/helper/url/url.go: -------------------------------------------------------------------------------- 1 | package url 2 | 3 | import ( 4 | "net/url" 5 | ) 6 | 7 | // Parse parses rawURL into a URL structure. 8 | // The rawURL may be relative or absolute. 9 | // 10 | // Parse is a wrapper for the Go stdlib net/url Parse function, but returns 11 | // Windows "safe" URLs on Windows platforms. 12 | func Parse(rawURL string) (*url.URL, error) { 13 | return parse(rawURL) 14 | } 15 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/helper/url/url_unix.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package url 4 | 5 | import ( 6 | "net/url" 7 | ) 8 | 9 | func parse(rawURL string) (*url.URL, error) { 10 | return url.Parse(rawURL) 11 | } 12 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/storage.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | // Storage is an interface that knows how to lookup downloaded directories 4 | // as well as download and update directories from their sources into the 5 | // proper location. 6 | type Storage interface { 7 | // Dir returns the directory on local disk where the directory source 8 | // can be loaded from. 9 | Dir(string) (string, bool, error) 10 | 11 | // Get will download and optionally update the given directory. 12 | Get(string, string, bool) error 13 | } 14 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/test-fixtures/decompress-zip/permissions.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/test-fixtures/decompress-zip/permissions.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/archive-rooted-multi/archive.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/archive-rooted-multi/archive.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/archive-rooted/archive.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/archive-rooted/archive.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/archive.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/archive.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic%2Ftest/foo/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic%2Ftest/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | module "foo" { 4 | source = "./foo" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic%2Ftest/subdir/sub.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic%2Ftest/subdir/sub.tf -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-dot/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | module "foo" { 4 | source = "./foo" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-file-archive/archive.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-file-archive/archive.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-file/foo.txt: -------------------------------------------------------------------------------- 1 | Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/00changelog.i: -------------------------------------------------------------------------------- 1 |  dummy changelog to prevent using the old repo layout -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/branch: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/cache/branch2-served: -------------------------------------------------------------------------------- 1 | 992604507bcd66370bf91a0c9d526ccd833412bf 2 2 | 992604507bcd66370bf91a0c9d526ccd833412bf o default 3 | c65e998d747ffbb1fe3b1c067a50664bb3fb5da4 o test-branch 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/cache/rbc-names-v1: -------------------------------------------------------------------------------- 1 | default -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/cache/rbc-revs-v1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/cache/rbc-revs-v1 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/cache/tags: -------------------------------------------------------------------------------- 1 | 1 c65e998d747ffbb1fe3b1c067a50664bb3fb5da4 2 | 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/dirstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/dirstate -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/last-message.txt: -------------------------------------------------------------------------------- 1 | add file 2 | 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/requires: -------------------------------------------------------------------------------- 1 | dotencode 2 | fncache 3 | revlogv1 4 | store 5 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/00changelog.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/00changelog.i -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/00manifest.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/00manifest.i -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/data/foo.txt.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/data/foo.txt.i -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/data/main.tf.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/data/main.tf.i -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/data/main__branch.tf.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/data/main__branch.tf.i -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/fncache: -------------------------------------------------------------------------------- 1 | data/main.tf.i 2 | data/foo.txt.i 3 | data/main_branch.tf.i 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/phaseroots: -------------------------------------------------------------------------------- 1 | 1 dcaed7754d58264cb9a5916215a5442377307bd1 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/undo: -------------------------------------------------------------------------------- 1 | data/foo.txt.i0 2 | 00manifest.i246 3 | 00changelog.i355 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/undo.backup.fncache: -------------------------------------------------------------------------------- 1 | data/main.tf.i 2 | data/main_branch.tf.i 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/undo.backupfiles: -------------------------------------------------------------------------------- 1 | 2 2 | fncacheundo.backup.fncache0 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/store/undo.phaseroots: -------------------------------------------------------------------------------- 1 | 1 dcaed7754d58264cb9a5916215a5442377307bd1 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/undo.bookmarks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/undo.bookmarks -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/undo.branch: -------------------------------------------------------------------------------- 1 | default -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/undo.desc: -------------------------------------------------------------------------------- 1 | 2 2 | commit 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/undo.dirstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-hg/.hg/undo.dirstate -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/foo.txt: -------------------------------------------------------------------------------- 1 | Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-hg/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | module "foo" { 4 | source = "./foo" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-parent/a/a.tf: -------------------------------------------------------------------------------- 1 | module "b" { 2 | source = "../c" 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-parent/c/c.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-parent/main.tf: -------------------------------------------------------------------------------- 1 | module "a" { 2 | source = "./a" 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-subdir/foo/sub/baz/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic-subdir/foo/sub/baz/main.tf -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-subdir/foo/sub/main.tf: -------------------------------------------------------------------------------- 1 | module "bar" { 2 | source = "./baz" 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-subdir/main.tf: -------------------------------------------------------------------------------- 1 | module "foo" { 2 | source = "./foo//sub" 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic-tgz/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic/foo/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | module "foo" { 4 | source = "./foo" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/basic/subdir/sub.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/basic/subdir/sub.tf -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/content.txt: -------------------------------------------------------------------------------- 1 | I am a file with some content 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/md5-bsd-bad.sum: -------------------------------------------------------------------------------- 1 | MD5 (content.txt) = bad 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/md5-bsd-wrong.sum: -------------------------------------------------------------------------------- 1 | MD5 (content.txt) = 074729f0ccb41a391fb646c38f86ea53 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/md5-bsd.sum: -------------------------------------------------------------------------------- 1 | MD5 (content.txt) = 074729f0ccb41a391fb646c38f86ea54 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/md5-p.sum: -------------------------------------------------------------------------------- 1 | 074729f0ccb41a391fb646c38f86ea54 content.txt 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/sha1-p.sum: -------------------------------------------------------------------------------- 1 | e2c7dc83ac8aa7f181314387f6dfb132cd117e3a ?content.txt 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/sha1.sum: -------------------------------------------------------------------------------- 1 | e2c7dc83ac8aa7f181314387f6dfb132cd117e3a 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/sha256-p.sum: -------------------------------------------------------------------------------- 1 | 47afcdfff05a6e5d9db5f6c6df2140f04a6e7422d7ad7f6a7006a4f5a78570e4 ?content.txt 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/sha512-p-EOF.sum: -------------------------------------------------------------------------------- 1 | 060a8cc41c501e41b4537029661090597aeb4366702ac3cae8959f24b2c49005d6bd339833ebbeb481b127ac822d70b937c1637c8d0eaf81b6979d4c1d75d0e1 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/checksum-file/sha512-p.sum: -------------------------------------------------------------------------------- 1 | 060a8cc41c501e41b4537029661090597aeb4366702ac3cae8959f24b2c49005d6bd339833ebbeb481b127ac822d70b937c1637c8d0eaf81b6979d4c1d75d0e1 ?content.txt 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/child/foo/bar/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/child/foo/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | module "bar" { 4 | source = "./bar" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/child/main.tf: -------------------------------------------------------------------------------- 1 | # Hello 2 | 3 | module "foo" { 4 | source = "./foo" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-bz2/single.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-bz2/single.bz2 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-gz/single.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-gz/single.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/empty.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/empty.tar.bz2 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/multiple.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/multiple.tar.bz2 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/ordering.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/ordering.tar.bz2 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/single.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tbz2/single.tar.bz2 -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/empty.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/empty.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/multiple.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/multiple.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/multiple_dir.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/multiple_dir.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/ordering.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/ordering.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/outside_parent.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/outside_parent.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/single.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tgz/single.tar.gz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-txz/empty.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-txz/empty.tar.xz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-txz/multiple.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-txz/multiple.tar.xz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-txz/multiple_dir.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-txz/multiple_dir.tar.xz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-txz/ordering.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-txz/ordering.tar.xz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-txz/single.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-txz/single.tar.xz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/empty.tar.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/empty.tar.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/multiple.tar.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/multiple.tar.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/multiple_dir.tar.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/multiple_dir.tar.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/ordering.tar.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/ordering.tar.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/outside_parent.tar.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/outside_parent.tar.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/single.tar.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-tzst/single.tar.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-xz/single.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-xz/single.xz -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/empty.zip: -------------------------------------------------------------------------------- 1 | PK -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/multiple.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zip/multiple.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/outside_parent.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zip/outside_parent.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/single.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zip/single.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/subdir.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zip/subdir.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/subdir_empty.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zip/subdir_empty.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zip/subdir_missing_dir.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zip/subdir_missing_dir.zip -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/decompress-zst/single.zst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/decompress-zst/single.zst -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/detect-file-symlink-pwd/real/hello.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/detect-file-symlink-pwd/real/hello.txt -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/dup/foo/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/dup/foo/main.tf -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/dup/main.tf: -------------------------------------------------------------------------------- 1 | module "foo" { 2 | source = "./foo" 3 | } 4 | 5 | module "foo" { 6 | source = "./foo" 7 | } 8 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/netrc/basic: -------------------------------------------------------------------------------- 1 | machine example.com 2 | login foo 3 | password bar 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-bad-output-to-module/child/main.tf: -------------------------------------------------------------------------------- 1 | variable "memory" { default = "foo" } 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-bad-output-to-module/main.tf: -------------------------------------------------------------------------------- 1 | module "child" { 2 | source = "./child" 3 | } 4 | 5 | module "child2" { 6 | source = "./child" 7 | memory = "${module.child.memory_max}" 8 | } 9 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-bad-output/child/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/validate-bad-output/child/main.tf -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-bad-output/main.tf: -------------------------------------------------------------------------------- 1 | module "child" { 2 | source = "./child" 3 | } 4 | 5 | resource "aws_instance" "foo" { 6 | memory = "${module.child.memory}" 7 | } 8 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-bad-var/child/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/go-getter/testdata/validate-bad-var/child/main.tf -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-bad-var/main.tf: -------------------------------------------------------------------------------- 1 | module "child" { 2 | source = "./child" 3 | 4 | memory = "foo" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-child-bad/child/main.tf: -------------------------------------------------------------------------------- 1 | # Duplicate resources 2 | resource "aws_instance" "foo" {} 3 | resource "aws_instance" "foo" {} 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-child-bad/main.tf: -------------------------------------------------------------------------------- 1 | module "foo" { 2 | source = "./child" 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-child-good/child/main.tf: -------------------------------------------------------------------------------- 1 | variable "memory" {} 2 | 3 | output "result" {} 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-child-good/main.tf: -------------------------------------------------------------------------------- 1 | module "child" { 2 | source = "./child" 3 | memory = "1G" 4 | } 5 | 6 | resource "aws_instance" "foo" { 7 | memory = "${module.child.result}" 8 | } 9 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-required-var/child/main.tf: -------------------------------------------------------------------------------- 1 | variable "memory" {} 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-required-var/main.tf: -------------------------------------------------------------------------------- 1 | module "child" { 2 | source = "./child" 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/testdata/validate-root-bad/main.tf: -------------------------------------------------------------------------------- 1 | # Duplicate resources 2 | resource "aws_instance" "foo" {} 3 | resource "aws_instance" "foo" {} 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-getter/url.go: -------------------------------------------------------------------------------- 1 | package getter 2 | 3 | import "net/url" 4 | 5 | // RedactURL is a port of url.Redacted from the standard library, 6 | // which is like url.String but replaces any password with "xxxxx". 7 | // Only the password in u.URL is redacted. This allows the library 8 | // to maintain compatibility with go1.14. 9 | func RedactURL(u *url.URL) string { 10 | if u == nil { 11 | return "" 12 | } 13 | 14 | ru := *u 15 | if _, has := ru.User.Password(); has { 16 | ru.User = url.UserPassword(ru.User.Username(), "xxxxx") 17 | } 18 | return ru.String() 19 | } 20 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-safetemp/README.md: -------------------------------------------------------------------------------- 1 | # go-safetemp 2 | [![Godoc](https://godoc.org/github.com/hashcorp/go-safetemp?status.svg)](https://godoc.org/github.com/hashicorp/go-safetemp) 3 | 4 | Functions for safely working with temporary directories and files. 5 | 6 | ## Why? 7 | 8 | The Go standard library provides the excellent `ioutil` package for 9 | working with temporary directories and files. This library builds on top 10 | of that to provide safe abstractions above that. 11 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-safetemp/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/hashicorp/go-safetemp 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-uuid/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | sudo: false 4 | 5 | go: 6 | - 1.4 7 | - 1.5 8 | - 1.6 9 | - tip 10 | 11 | script: 12 | - go test -bench . -benchmem -v ./... 13 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-uuid/README.md: -------------------------------------------------------------------------------- 1 | # uuid [![Build Status](https://travis-ci.org/hashicorp/go-uuid.svg?branch=master)](https://travis-ci.org/hashicorp/go-uuid) 2 | 3 | Generates UUID-format strings using high quality, _purely random_ bytes. It is **not** intended to be RFC compliant, merely to use a well-understood string representation of a 128-bit value. It can also parse UUID-format strings into their component bytes. 4 | 5 | Documentation 6 | ============= 7 | 8 | The full documentation is available on [Godoc](http://godoc.org/github.com/hashicorp/go-uuid). 9 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-uuid/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/hashicorp/go-uuid 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-version/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 1.3.0 (March 31, 2021) 2 | 3 | Please note that CHANGELOG.md does not exist in the source code prior to this release. 4 | 5 | FEATURES: 6 | - Add `Core` function to return a version without prerelease or metadata ([#85](https://github.com/hashicorp/go-version/pull/85)) 7 | 8 | # 1.2.1 (June 17, 2020) 9 | 10 | BUG FIXES: 11 | - Prevent `Version.Equal` method from panicking on `nil` encounter ([#73](https://github.com/hashicorp/go-version/pull/73)) 12 | 13 | # 1.2.0 (April 23, 2019) 14 | 15 | FEATURES: 16 | - Add `GreaterThanOrEqual` and `LessThanOrEqual` helper methods ([#53](https://github.com/hashicorp/go-version/pull/53)) 17 | 18 | # 1.1.0 (Jan 07, 2019) 19 | 20 | FEATURES: 21 | - Add `NewSemver` constructor ([#45](https://github.com/hashicorp/go-version/pull/45)) 22 | 23 | # 1.0.0 (August 24, 2018) 24 | 25 | Initial release. 26 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-version/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/hashicorp/go-version 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-version/version_collection.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | // Collection is a type that implements the sort.Interface interface 4 | // so that versions can be sorted. 5 | type Collection []*Version 6 | 7 | func (v Collection) Len() int { 8 | return len(v) 9 | } 10 | 11 | func (v Collection) Less(i, j int) bool { 12 | return v[i].LessThan(v[j]) 13 | } 14 | 15 | func (v Collection) Swap(i, j int) { 16 | v[i], v[j] = v[j], v[i] 17 | } 18 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/go-version/version_collection_test.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | import ( 4 | "reflect" 5 | "sort" 6 | "testing" 7 | ) 8 | 9 | func TestCollection(t *testing.T) { 10 | versionsRaw := []string{ 11 | "1.1.1", 12 | "1.0", 13 | "1.2", 14 | "2", 15 | "0.7.1", 16 | } 17 | 18 | versions := make([]*Version, len(versionsRaw)) 19 | for i, raw := range versionsRaw { 20 | v, err := NewVersion(raw) 21 | if err != nil { 22 | t.Fatalf("err: %s", err) 23 | } 24 | 25 | versions[i] = v 26 | } 27 | 28 | sort.Sort(Collection(versions)) 29 | 30 | actual := make([]string, len(versions)) 31 | for i, v := range versions { 32 | actual[i] = v.String() 33 | } 34 | 35 | expected := []string{ 36 | "0.7.1", 37 | "1.0.0", 38 | "1.1.1", 39 | "1.2.0", 40 | "2.0.0", 41 | } 42 | 43 | if !reflect.DeepEqual(actual, expected) { 44 | t.Fatalf("bad: %#v", actual) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### HCL Template 2 | ```hcl 3 | # Place your HCL configuration file here 4 | ``` 5 | 6 | ### Expected behavior 7 | What should have happened? 8 | 9 | ### Actual behavior 10 | What actually happened? 11 | 12 | ### Steps to reproduce 13 | 1. 14 | 2. 15 | 3. 16 | 17 | ### References 18 | Are there any other GitHub issues (open or closed) that should 19 | be linked here? For example: 20 | - GH-1234 21 | - ... 22 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/.gitignore: -------------------------------------------------------------------------------- 1 | y.output 2 | 3 | # ignore intellij files 4 | .idea 5 | *.iml 6 | *.ipr 7 | *.iws 8 | 9 | *.test 10 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: go 4 | 5 | go: 6 | - 1.x 7 | - tip 8 | 9 | branches: 10 | only: 11 | - master 12 | 13 | script: make test 14 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/Makefile: -------------------------------------------------------------------------------- 1 | TEST?=./... 2 | 3 | default: test 4 | 5 | fmt: generate 6 | go fmt ./... 7 | 8 | test: generate 9 | go get -t ./... 10 | go test $(TEST) $(TESTARGS) 11 | 12 | generate: 13 | go generate ./... 14 | 15 | updatedeps: 16 | go get -u golang.org/x/tools/cmd/stringer 17 | 18 | .PHONY: default generate test updatedeps 19 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: "build-{branch}-{build}" 2 | image: Visual Studio 2015 3 | clone_folder: c:\gopath\src\github.com\hashicorp\hcl 4 | environment: 5 | GOPATH: c:\gopath 6 | init: 7 | - git config --global core.autocrlf false 8 | install: 9 | - cmd: >- 10 | echo %Path% 11 | 12 | go version 13 | 14 | go env 15 | 16 | go get -t ./... 17 | 18 | build_script: 19 | - cmd: go test -v ./... 20 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/hashicorp/hcl 2 | 3 | require github.com/davecgh/go-spew v1.1.1 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/go.sum: -------------------------------------------------------------------------------- 1 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 2 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl.go: -------------------------------------------------------------------------------- 1 | // Package hcl decodes HCL into usable Go structures. 2 | // 3 | // hcl input can come in either pure HCL format or JSON format. 4 | // It can be parsed into an AST, and then decoded into a structure, 5 | // or it can be decoded directly from a string into a structure. 6 | // 7 | // If you choose to parse HCL into a raw AST, the benefit is that you 8 | // can write custom visitor implementations to implement custom 9 | // semantic checks. By default, HCL does not perform any semantic 10 | // checks. 11 | package hcl 12 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/fmtcmd/test-fixtures/.hidden.ignore: -------------------------------------------------------------------------------- 1 | invalid 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/fmtcmd/test-fixtures/dir.ignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/hcl/hcl/fmtcmd/test-fixtures/dir.ignore -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/fmtcmd/test-fixtures/file.ignore: -------------------------------------------------------------------------------- 1 | invalid 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/fmtcmd/test-fixtures/good.hcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/hcl/hcl/fmtcmd/test-fixtures/good.hcl -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/error.go: -------------------------------------------------------------------------------- 1 | package parser 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/hashicorp/hcl/hcl/token" 7 | ) 8 | 9 | // PosError is a parse error that contains a position. 10 | type PosError struct { 11 | Pos token.Pos 12 | Err error 13 | } 14 | 15 | func (e *PosError) Error() string { 16 | return fmt.Sprintf("At %s: %s", e.Pos, e.Err) 17 | } 18 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/error_test.go: -------------------------------------------------------------------------------- 1 | package parser 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestPosError_impl(t *testing.T) { 8 | var _ error = new(PosError) 9 | } 10 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/array_comment.hcl: -------------------------------------------------------------------------------- 1 | foo = [ 2 | "1", 3 | "2", # comment 4 | ] 5 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/array_comment_2.hcl: -------------------------------------------------------------------------------- 1 | provisioner "remote-exec" { 2 | scripts = [ 3 | "${path.module}/scripts/install-consul.sh" // missing comma 4 | "${path.module}/scripts/install-haproxy.sh" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/assign_colon.hcl: -------------------------------------------------------------------------------- 1 | resource = [{ 2 | "foo": { 3 | "bar": {}, 4 | "baz": [1, 2, "foo"], 5 | } 6 | }] 7 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/assign_deep.hcl: -------------------------------------------------------------------------------- 1 | resource = [{ 2 | foo = [{ 3 | bar = {} 4 | }] 5 | }] 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/comment.hcl: -------------------------------------------------------------------------------- 1 | // Foo 2 | 3 | /* Bar */ 4 | 5 | /* 6 | /* 7 | Baz 8 | */ 9 | 10 | # Another 11 | 12 | # Multiple 13 | # Lines 14 | 15 | foo = "bar" 16 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/comment_crlf.hcl: -------------------------------------------------------------------------------- 1 | // Foo 2 | 3 | /* Bar */ 4 | 5 | /* 6 | /* 7 | Baz 8 | */ 9 | 10 | # Another 11 | 12 | # Multiple 13 | # Lines 14 | 15 | foo = "bar" 16 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/comment_lastline.hcl: -------------------------------------------------------------------------------- 1 | #foo -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/comment_single.hcl: -------------------------------------------------------------------------------- 1 | # Hello 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/complex.hcl: -------------------------------------------------------------------------------- 1 | variable "foo" { 2 | default = "bar" 3 | description = "bar" 4 | } 5 | 6 | variable "groups" { } 7 | 8 | provider "aws" { 9 | access_key = "foo" 10 | secret_key = "bar" 11 | } 12 | 13 | provider "do" { 14 | api_key = "${var.foo}" 15 | } 16 | 17 | resource "aws_security_group" "firewall" { 18 | count = 5 19 | } 20 | 21 | resource aws_instance "web" { 22 | ami = "${var.foo}" 23 | security_groups = [ 24 | "foo", 25 | "${aws_security_group.firewall.foo}", 26 | "${element(split(\",\", var.groups)}", 27 | ] 28 | network_interface = { 29 | device_index = 0 30 | description = "Main network interface" 31 | } 32 | } 33 | 34 | resource "aws_instance" "db" { 35 | security_groups = "${aws_security_group.firewall.*.id}" 36 | VPC = "foo" 37 | depends_on = ["aws_instance.web"] 38 | } 39 | 40 | output "web_ip" { 41 | value = "${aws_instance.web.private_ip}" 42 | } 43 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/complex_crlf.hcl: -------------------------------------------------------------------------------- 1 | variable "foo" { 2 | default = "bar" 3 | description = "bar" 4 | } 5 | 6 | variable "groups" { } 7 | 8 | provider "aws" { 9 | access_key = "foo" 10 | secret_key = "bar" 11 | } 12 | 13 | provider "do" { 14 | api_key = "${var.foo}" 15 | } 16 | 17 | resource "aws_security_group" "firewall" { 18 | count = 5 19 | } 20 | 21 | resource aws_instance "web" { 22 | ami = "${var.foo}" 23 | security_groups = [ 24 | "foo", 25 | "${aws_security_group.firewall.foo}", 26 | "${element(split(\",\", var.groups)}", 27 | ] 28 | network_interface = { 29 | device_index = 0 30 | description = "Main network interface" 31 | } 32 | } 33 | 34 | resource "aws_instance" "db" { 35 | security_groups = "${aws_security_group.firewall.*.id}" 36 | VPC = "foo" 37 | depends_on = ["aws_instance.web"] 38 | } 39 | 40 | output "web_ip" { 41 | value = "${aws_instance.web.private_ip}" 42 | } 43 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/complex_key.hcl: -------------------------------------------------------------------------------- 1 | foo.bar = "baz" 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/empty.hcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSLO/slogen/4c0173205fa0d17fc08ca580b873c0325ad64b1d/credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/empty.hcl -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/git_crypt.hcl: -------------------------------------------------------------------------------- 1 | GITCRYPT 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/key_without_value.hcl: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/list.hcl: -------------------------------------------------------------------------------- 1 | foo = [1, 2, "foo"] 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/list_comma.hcl: -------------------------------------------------------------------------------- 1 | foo = [1, 2, "foo",] 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/missing_braces.hcl: -------------------------------------------------------------------------------- 1 | # should error, but not crash 2 | resource "template_file" "cloud_config" { 3 | template = "$file("${path.module}/some/path")" 4 | } 5 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/multiple.hcl: -------------------------------------------------------------------------------- 1 | foo = "bar" 2 | key = 7 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/object_key_assign_without_value.hcl: -------------------------------------------------------------------------------- 1 | foo { 2 | bar = 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/object_key_assign_without_value2.hcl: -------------------------------------------------------------------------------- 1 | foo { 2 | baz = 7 3 | bar = 4 | } 5 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/object_key_assign_without_value3.hcl: -------------------------------------------------------------------------------- 1 | foo { 2 | bar = 3 | baz = 7 4 | } 5 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/object_key_without_value.hcl: -------------------------------------------------------------------------------- 1 | foo { 2 | bar 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/object_list_comma.hcl: -------------------------------------------------------------------------------- 1 | foo = {one = 1, two = 2} 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/old.hcl: -------------------------------------------------------------------------------- 1 | default = { 2 | "eu-west-1": "ami-b1cf19c6", 3 | } 4 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/structure.hcl: -------------------------------------------------------------------------------- 1 | // This is a test structure for the lexer 2 | foo bar "baz" { 3 | key = 7 4 | foo = "bar" 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/structure_basic.hcl: -------------------------------------------------------------------------------- 1 | foo { 2 | value = 7 3 | "value" = 8 4 | "complex::value" = 9 5 | } 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/structure_empty.hcl: -------------------------------------------------------------------------------- 1 | resource "foo" "bar" {} 2 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/types.hcl: -------------------------------------------------------------------------------- 1 | foo = "bar" 2 | bar = 7 3 | baz = [1,2,3] 4 | foo = -12 5 | bar = 3.14159 6 | foo = true 7 | bar = false 8 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/unterminated_object.hcl: -------------------------------------------------------------------------------- 1 | foo "baz" { 2 | bar = "baz" 3 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/parser/test-fixtures/unterminated_object_2.hcl: -------------------------------------------------------------------------------- 1 | resource "aws_eip" "EIP1" { a { a { a { a { a { 2 | count = "1" 3 | 4 | resource "aws_eip" "EIP2" { 5 | count = "1" 6 | } 7 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment.golden: -------------------------------------------------------------------------------- 1 | // A standalone comment is a comment which is not attached to any kind of node 2 | 3 | // This comes from Terraform, as a test 4 | variable "foo" { 5 | # Standalone comment should be still here 6 | 7 | default = "bar" 8 | description = "bar" # yooo 9 | } 10 | 11 | /* This is a multi line standalone 12 | comment*/ 13 | 14 | // fatih arslan 15 | /* This is a developer test 16 | account and a multine comment */ 17 | developer = ["fatih", "arslan"] // fatih arslan 18 | 19 | # One line here 20 | numbers = [1, 2] // another line here 21 | 22 | # Another comment 23 | variable = { 24 | description = "bar" # another yooo 25 | 26 | foo { 27 | # Nested standalone 28 | 29 | bar = "fatih" 30 | } 31 | } 32 | 33 | // lead comment 34 | foo { 35 | bar = "fatih" // line comment 2 36 | } // line comment 3 37 | 38 | // comment 39 | multiline = "assignment" 40 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment.input: -------------------------------------------------------------------------------- 1 | // A standalone comment is a comment which is not attached to any kind of node 2 | 3 | // This comes from Terraform, as a test 4 | variable "foo" { 5 | # Standalone comment should be still here 6 | 7 | default = "bar" 8 | description = "bar" # yooo 9 | } 10 | 11 | /* This is a multi line standalone 12 | comment*/ 13 | 14 | 15 | // fatih arslan 16 | /* This is a developer test 17 | account and a multine comment */ 18 | developer = [ "fatih", "arslan"] // fatih arslan 19 | 20 | # One line here 21 | numbers = [1,2] // another line here 22 | 23 | # Another comment 24 | variable = { 25 | description = "bar" # another yooo 26 | foo { 27 | # Nested standalone 28 | 29 | bar = "fatih" 30 | } 31 | } 32 | 33 | // lead comment 34 | foo { 35 | bar = "fatih" // line comment 2 36 | } // line comment 3 37 | 38 | multiline = // comment 39 | "assignment" 40 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_aligned.golden: -------------------------------------------------------------------------------- 1 | aligned { 2 | # We have some aligned items below 3 | foo = "fatih" # yoo1 4 | default = "bar" # yoo2 5 | bar = "bar and foo" # yoo3 6 | 7 | default = { 8 | bar = "example" 9 | } 10 | 11 | #deneme arslan 12 | fatih = ["fatih"] # yoo4 13 | 14 | #fatih arslan 15 | fatiharslan = ["arslan"] // yoo5 16 | 17 | default = { 18 | bar = "example" 19 | } 20 | 21 | security_groups = [ 22 | "foo", # kenya 1 23 | "${aws_security_group.firewall.foo}", # kenya 2 24 | ] 25 | 26 | security_groups2 = [ 27 | "foo", # kenya 1 28 | "bar", # kenya 1.5 29 | "${aws_security_group.firewall.foo}", # kenya 2 30 | "foobar", # kenya 3 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_aligned.input: -------------------------------------------------------------------------------- 1 | aligned { 2 | # We have some aligned items below 3 | foo = "fatih" # yoo1 4 | default = "bar" # yoo2 5 | bar = "bar and foo" # yoo3 6 | default = { 7 | bar = "example" 8 | } 9 | #deneme arslan 10 | fatih = ["fatih"] # yoo4 11 | #fatih arslan 12 | fatiharslan = ["arslan"] // yoo5 13 | default = { 14 | bar = "example" 15 | } 16 | 17 | security_groups = [ 18 | "foo", # kenya 1 19 | "${aws_security_group.firewall.foo}", # kenya 2 20 | ] 21 | 22 | security_groups2 = [ 23 | "foo", # kenya 1 24 | "bar", # kenya 1.5 25 | "${aws_security_group.firewall.foo}", # kenya 2 26 | "foobar", # kenya 3 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_array.golden: -------------------------------------------------------------------------------- 1 | banana = [ 2 | # I really want to comment this item in the array. 3 | "a", 4 | 5 | # This as well 6 | "b", 7 | 8 | "c", # And C 9 | "d", 10 | 11 | # And another 12 | "e", 13 | ] 14 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_array.input: -------------------------------------------------------------------------------- 1 | banana = [ 2 | # I really want to comment this item in the array. 3 | "a", 4 | 5 | # This as well 6 | "b", 7 | 8 | "c", # And C 9 | "d", 10 | 11 | # And another 12 | "e", 13 | ] 14 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_crlf.input: -------------------------------------------------------------------------------- 1 | // A standalone comment is a comment which is not attached to any kind of node 2 | 3 | // This comes from Terraform, as a test 4 | variable "foo" { 5 | # Standalone comment should be still here 6 | 7 | default = "bar" 8 | description = "bar" # yooo 9 | } 10 | 11 | /* This is a multi line standalone 12 | comment*/ 13 | 14 | 15 | // fatih arslan 16 | /* This is a developer test 17 | account and a multine comment */ 18 | developer = [ "fatih", "arslan"] // fatih arslan 19 | 20 | # One line here 21 | numbers = [1,2] // another line here 22 | 23 | # Another comment 24 | variable = { 25 | description = "bar" # another yooo 26 | foo { 27 | # Nested standalone 28 | 29 | bar = "fatih" 30 | } 31 | } 32 | 33 | // lead comment 34 | foo { 35 | bar = "fatih" // line comment 2 36 | } // line comment 3 37 | 38 | multiline = // comment 39 | "assignment" 40 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_end_file.golden: -------------------------------------------------------------------------------- 1 | resource "blah" "blah" {} 2 | 3 | // 4 | // 5 | // 6 | 7 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_end_file.input: -------------------------------------------------------------------------------- 1 | resource "blah" "blah" {} 2 | 3 | // 4 | // 5 | // 6 | -------------------------------------------------------------------------------- /credits/github.com/hashicorp/hcl/hcl/printer/testdata/comment_multiline_indent.golden: -------------------------------------------------------------------------------- 1 | resource "provider" "resource" { 2 | /* 3 | SPACE_SENSITIVE_CODE = < slogen completion powershell | Out-String | Invoke-Expression 12 | 13 | To load completions for every new session, add the output of the above command 14 | to your powershell profile. 15 | 16 | 17 | ``` 18 | slogen completion powershell [flags] 19 | ``` 20 | 21 | ### Options 22 | 23 | ``` 24 | -h, --help help for powershell 25 | --no-descriptions disable completion descriptions 26 | ``` 27 | 28 | ### Options inherited from parent commands 29 | 30 | ``` 31 | --config string config file (default is $HOME/.slogen.yaml) 32 | ``` 33 | 34 | ### SEE ALSO 35 | 36 | * [slogen completion](slogen_completion.md) - generate the autocompletion script for the specified shell 37 | 38 | ###### Auto generated by spf13/cobra on 29-Sep-2021 39 | -------------------------------------------------------------------------------- /docs/slogen_docs.md: -------------------------------------------------------------------------------- 1 | ## slogen docs 2 | 3 | A brief description of your command 4 | 5 | ### Synopsis 6 | 7 | A longer description that spans multiple lines and likely contains examples 8 | and usage of using your command. For example: 9 | 10 | Cobra is a CLI library for Go that empowers applications. 11 | This application is a tool to generate the needed files 12 | to quickly create a Cobra application. 13 | 14 | ``` 15 | slogen docs [flags] 16 | ``` 17 | 18 | ### Options 19 | 20 | ``` 21 | -h, --help help for docs 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ``` 27 | --config string config file (default is $HOME/.slogen.yaml) 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [slogen](slogen.md) - generates terraform files from openslo compatible yaml configs 33 | 34 | ###### Auto generated by spf13/cobra on 29-Sep-2021 35 | -------------------------------------------------------------------------------- /docs/slogen_gen.md: -------------------------------------------------------------------------------- 1 | ## slogen gen 2 | 3 | A brief description of your command 4 | 5 | ### Synopsis 6 | 7 | A longer description that spans multiple lines and likely contains examples 8 | and usage of using your command. For example: 9 | 10 | Cobra is a CLI library for Go that empowers applications. 11 | This application is a tool to generate the needed files 12 | to quickly create a Cobra application. 13 | 14 | ``` 15 | slogen gen [flags] 16 | ``` 17 | 18 | ### Options 19 | 20 | ``` 21 | -h, --help help for gen 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ``` 27 | --config string config file (default is $HOME/.slogen.yaml) 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [slogen](slogen.md) - generates terraform files from openslo compatible yaml configs 33 | 34 | ###### Auto generated by spf13/cobra on 29-Sep-2021 35 | -------------------------------------------------------------------------------- /docs/slogen_new.md: -------------------------------------------------------------------------------- 1 | ## slogen new 2 | 3 | A brief description of your command 4 | 5 | ### Synopsis 6 | 7 | A longer description that spans multiple lines and likely contains examples 8 | and usage of using your command. For example: 9 | 10 | Cobra is a CLI library for Go that empowers applications. 11 | This application is a tool to generate the needed files 12 | to quickly create a Cobra application. 13 | 14 | ``` 15 | slogen new [flags] 16 | ``` 17 | 18 | ### Options 19 | 20 | ``` 21 | -h, --help help for new 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ``` 27 | --config string config file (default is $HOME/.slogen.yaml) 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [slogen](slogen.md) - generates terraform files from openslo compatible yaml configs 33 | 34 | ###### Auto generated by spf13/cobra on 29-Sep-2021 35 | -------------------------------------------------------------------------------- /docs/slogen_plan.md: -------------------------------------------------------------------------------- 1 | ## slogen plan 2 | 3 | A brief description of your command 4 | 5 | ### Synopsis 6 | 7 | A longer description that spans multiple lines and likely contains examples 8 | and usage of using your command. For example: 9 | 10 | Cobra is a CLI library for Go that empowers applications. 11 | This application is a tool to generate the needed files 12 | to quickly create a Cobra application. 13 | 14 | ``` 15 | slogen plan [flags] 16 | ``` 17 | 18 | ### Options 19 | 20 | ``` 21 | -h, --help help for plan 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ``` 27 | --config string config file (default is $HOME/.slogen.yaml) 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [slogen](slogen.md) - generates terraform files from openslo compatible yaml configs 33 | 34 | ###### Auto generated by spf13/cobra on 29-Sep-2021 35 | -------------------------------------------------------------------------------- /libs/connections_test.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import ( 4 | "reflect" 5 | "testing" 6 | ) 7 | 8 | func Test_GiveConnectionIDS(t *testing.T) { 9 | tests := []struct { 10 | name string 11 | want []MonitorConnections 12 | wantErr bool 13 | }{ 14 | // TODO: Add test cases. 15 | { 16 | name: "basic", 17 | want: nil, 18 | wantErr: false, 19 | }, 20 | } 21 | for _, tt := range tests { 22 | t.Run(tt.name, func(t *testing.T) { 23 | got, err := GiveConnectionIDS("") 24 | if (err != nil) != tt.wantErr { 25 | t.Errorf("giveConnectionIDS() error = %v, wantErr %v", err, tt.wantErr) 26 | return 27 | } 28 | if !reflect.DeepEqual(got, tt.want) { 29 | t.Errorf("giveConnectionIDS() got = %v, want %v", got, tt.want) 30 | } 31 | }) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /libs/log.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import ( 4 | "github.com/mattn/go-colorable" 5 | "go.uber.org/zap" 6 | "go.uber.org/zap/zapcore" 7 | ) 8 | 9 | var log *zap.SugaredLogger 10 | 11 | func init() { 12 | 13 | base := zap.NewDevelopmentEncoderConfig() 14 | base.EncodeLevel = zapcore.CapitalColorLevelEncoder 15 | nosugar := zap.New(zapcore.NewCore( 16 | zapcore.NewConsoleEncoder(base), 17 | zapcore.AddSync(colorable.NewColorableStdout()), 18 | zapcore.DebugLevel, 19 | )) 20 | 21 | log = nosugar.Sugar() 22 | } 23 | 24 | func Log() *zap.SugaredLogger { 25 | return log 26 | } 27 | 28 | type InfoLogger struct { 29 | } 30 | 31 | func (t InfoLogger) Printf(format string, vals ...interface{}) { 32 | log.Infof(format, vals...) 33 | } 34 | -------------------------------------------------------------------------------- /libs/lookup.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import ( 4 | "fmt" 5 | "github.com/go-resty/resty/v2" 6 | "os" 7 | ) 8 | 9 | const csvData = `"service", "name", "goal" 10 | tsat, drift-gen, 0.99 11 | ` 12 | 13 | func UploadSLOLookup(id, url, filename string) error { 14 | //filetype := "csv" 15 | //file, err := os.ReadFile(filename) 16 | 17 | client := resty.New() 18 | 19 | resp, err := client.R().SetBasicAuth(os.Getenv(EnvKeySumoAccessID), os.Getenv(EnvKeySumoAccessKey)). 20 | SetFile("file", filename). 21 | Post(url) 22 | 23 | fmt.Println(resp.Status(), resp.String()) 24 | 25 | return err 26 | } 27 | -------------------------------------------------------------------------------- /libs/lookup_test.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import "testing" 4 | 5 | func TestUploadSLOLookup(t *testing.T) { 6 | type args struct { 7 | id string 8 | url string 9 | filename string 10 | } 11 | tests := []struct { 12 | name string 13 | args args 14 | wantErr bool 15 | }{ 16 | // TODO: Add test cases. 17 | { 18 | name: "check", 19 | args: args{ 20 | //id: "000000000", 21 | url: "https://api.sumologic.com/api/v1/lookupTables/000000000/upload", 22 | //url: "https://api.sumologic.com/api/v1/lookupTables/000000000", 23 | filename: "templates/slogen_lookup.csv", 24 | }, 25 | wantErr: false, 26 | }, 27 | } 28 | for _, tt := range tests { 29 | t.Run(tt.name, func(t *testing.T) { 30 | if err := UploadSLOLookup(tt.args.id, tt.args.url, tt.args.filename); (err != nil) != tt.wantErr { 31 | t.Errorf("UploadSLOLookup() error = %v, wantErr %v", err, tt.wantErr) 32 | } 33 | }) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /libs/monitor_test.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import ( 4 | "reflect" 5 | "testing" 6 | ) 7 | 8 | func TestMonitorConfigFromOpenSLO(t *testing.T) { 9 | type args struct { 10 | sloConf SLOv1Alpha 11 | } 12 | tests := []struct { 13 | name string 14 | args args 15 | want []SLOMonitorConfig 16 | wantErr bool 17 | }{ 18 | // TODO: Add test cases. 19 | } 20 | for _, tt := range tests { 21 | t.Run(tt.name, func(t *testing.T) { 22 | got, err := MonitorConfigFromOpenSLO(tt.args.sloConf) 23 | if (err != nil) != tt.wantErr { 24 | t.Errorf("MonitorConfigFromOpenSLO() error = %v, wantErr %v", err, tt.wantErr) 25 | return 26 | } 27 | if !reflect.DeepEqual(got, tt.want) { 28 | t.Errorf("MonitorConfigFromOpenSLO() got = %v, want %v", got, tt.want) 29 | } 30 | }) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /libs/out.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import "github.com/fatih/color" 4 | 5 | var ( 6 | GoodResult = color.New(color.FgHiGreen).Add(color.Bold).Printf 7 | GoodUResult = color.New(color.FgHiGreen).Add(color.Bold, color.Underline).Printf 8 | BadResult = color.New(color.FgHiRed).Add(color.Bold).Printf 9 | BadUResult = color.New(color.FgHiRed).Add(color.Bold, color.Underline).Printf 10 | BadInfo = color.New(color.FgHiRed).Add(color.BlinkSlow).Printf 11 | GoodInfo = color.New(color.FgGreen).Printf 12 | WarnInfo = color.New(color.FgHiMagenta).Add(color.Italic, color.Faint).Printf 13 | WarnUInfo = color.New(color.FgHiMagenta).Add(color.Underline, color.Faint).Printf 14 | OkInfo = color.New(color.FgHiMagenta).Printf 15 | ) 16 | -------------------------------------------------------------------------------- /libs/overview_test.go: -------------------------------------------------------------------------------- 1 | package libs 2 | 3 | import ( 4 | "reflect" 5 | "testing" 6 | ) 7 | 8 | func Test_giveMostCommonVars(t *testing.T) { 9 | type args struct { 10 | slos SLOMap 11 | n int 12 | } 13 | tests := []struct { 14 | name string 15 | args args 16 | want []string 17 | }{ 18 | // TODO: Add test cases. 19 | { 20 | name: "a", 21 | args: args{ 22 | slos: nil, 23 | n: 4, 24 | }, 25 | want: nil, 26 | }, 27 | } 28 | for _, tt := range tests { 29 | t.Run(tt.name, func(t *testing.T) { 30 | if got := giveMostCommonVars(tt.args.slos, tt.args.n); !reflect.DeepEqual(got, tt.want) { 31 | t.Errorf("giveMostCommonVars() = %v, want %v", got, tt.want) 32 | } 33 | }) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /libs/specs/specs.go: -------------------------------------------------------------------------------- 1 | package specs 2 | 3 | import v1 "github.com/OpenSLO/oslo/pkg/manifest/v1" 4 | 5 | type OpenSLOSpec struct { 6 | *v1.SLO `yaml:",inline"` 7 | } 8 | -------------------------------------------------------------------------------- /libs/templates/slogen_lookup.csv: -------------------------------------------------------------------------------- 1 | "service", "name", "goal" 2 | tsat, drift-gen, 0.99 3 | -------------------------------------------------------------------------------- /libs/templates/terraform/sumologic/dash-folders.tf.gotf: -------------------------------------------------------------------------------- 1 | {{range $folder := .}} 2 | resource "sumologic_folder" "slg_tf_{{$folder}}" { 3 | name = "{{$folder}}" 4 | description = "SLO dashboards for service {{$folder}}" 5 | parent_id = var.slo_dash_root_folder_id 6 | } 7 | {{end}} 8 | -------------------------------------------------------------------------------- /libs/templates/terraform/sumologic/module_interface.tf.gotf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | sumologic = { 4 | source = "sumologic/sumologic" 5 | } 6 | } 7 | } 8 | 9 | {{range $var := . }} 10 | 11 | variable "{{$var}}" { 12 | type = string 13 | } 14 | 15 | {{end}} 16 | -------------------------------------------------------------------------------- /libs/templates/terraform/sumologic/monitor-folders.tf.gotf: -------------------------------------------------------------------------------- 1 | {{range $folder := .}} 2 | resource "sumologic_monitor_folder" "slg_tf_{{$folder}}" { 3 | name = "{{$folder}}" 4 | description = "folder for SLO monitors for service : {{$folder}}" 5 | parent_id = var.slo_mon_root_folder_id 6 | } 7 | {{end}} 8 | -------------------------------------------------------------------------------- /libs/templates/terraform/sumologic/sched-view.tf.gotf: -------------------------------------------------------------------------------- 1 | resource "sumologic_scheduled_view" "slg_tf_{{.Index}}" { 2 | index_name = "{{.Index}}" 3 | query = <