datadog_backup 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/rspec_and_release.yml +54 -0
- data/.gitignore +119 -0
- data/CHANGELOG.md +80 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/Gemfile +12 -0
- data/Guardfile +44 -0
- data/LICENSE +21 -0
- data/README.md +57 -0
- data/bin/datadog_backup +73 -0
- data/datadog_backup.gemspec +31 -0
- data/example/.github/workflows/backup.yml +31 -0
- data/example/.gitignore +1 -0
- data/example/Gemfile +3 -0
- data/example/README.md +17 -0
- data/lib/datadog_backup.rb +19 -0
- data/lib/datadog_backup/cli.rb +141 -0
- data/lib/datadog_backup/core.rb +113 -0
- data/lib/datadog_backup/dashboards.rb +50 -0
- data/lib/datadog_backup/local_filesystem.rb +86 -0
- data/lib/datadog_backup/monitors.rb +42 -0
- data/lib/datadog_backup/options.rb +46 -0
- data/lib/datadog_backup/thread_pool.rb +30 -0
- data/lib/datadog_backup/version.rb +5 -0
- data/release.config.js +43 -0
- data/spec/datadog_backup/cli_spec.rb +117 -0
- data/spec/datadog_backup/core_spec.rb +107 -0
- data/spec/datadog_backup/dashboards_spec.rb +102 -0
- data/spec/datadog_backup/local_filesystem_spec.rb +173 -0
- data/spec/datadog_backup/monitors_spec.rb +119 -0
- data/spec/datadog_backup_bin_spec.rb +59 -0
- data/spec/datadog_backup_spec.rb +6 -0
- data/spec/spec_helper.rb +37 -0
- metadata +199 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1a8dbd6b3fdd5e8369259f165b7117ed2234451aae4efb305a341a22e928f555
|
4
|
+
data.tar.gz: eb1514dd4d63b025f2b32e10795f489a845789162661a2c2d0fa369030cd0c0f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d01dbaf32507d8852bec2fb3f6c6615d135c124a6173071c31aceba0d9bc342dfad9985641ce80b976c138cfb4d4ed5c1507d80256f1d471871cfd5f173331cb
|
7
|
+
data.tar.gz: 71d9c25ded490956078fdb8bd563ad1e69d7aaa71c0d8fc35c10dd03fe941c094f91f4ad20b43526163b336540984bf7713c487345bdbe7d183f99ed0f896729
|
@@ -0,0 +1,54 @@
|
|
1
|
+
name: Rspec and Release
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
workflow_dispatch:
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
rspec:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- name: Set up Ruby 2.7.1
|
15
|
+
uses: actions/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: 2.7.1
|
18
|
+
- name: Test with Rspec
|
19
|
+
run: |
|
20
|
+
gem install --no-document bundler
|
21
|
+
bundle install --jobs 4 --retry 3
|
22
|
+
bundle exec rspec --format documentation
|
23
|
+
release:
|
24
|
+
if: github.event_name == 'push'
|
25
|
+
needs: rspec
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
|
28
|
+
steps:
|
29
|
+
- uses: actions/checkout@v2
|
30
|
+
- name: Set up Ruby 2.7.1
|
31
|
+
uses: actions/setup-ruby@v1
|
32
|
+
with:
|
33
|
+
ruby-version: 2.7.1
|
34
|
+
- name: Build with bundler
|
35
|
+
run: |
|
36
|
+
gem install --no-document bundler
|
37
|
+
bundle config set deployment 'true'
|
38
|
+
bundle config set without 'development test'
|
39
|
+
bundle install --jobs 4 --retry 3
|
40
|
+
- name: Zip
|
41
|
+
run : |
|
42
|
+
zip -r datadog_backup.zip ./*
|
43
|
+
- name: Semantic Release
|
44
|
+
id: semantic
|
45
|
+
uses: cycjimmy/semantic-release-action@v2
|
46
|
+
env:
|
47
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
48
|
+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_TOKEN }}
|
49
|
+
with:
|
50
|
+
semantic_version: 17
|
51
|
+
extra_plugins: |
|
52
|
+
@semantic-release/changelog
|
53
|
+
@semantic-release/git
|
54
|
+
semantic-release-rubygem
|
data/.gitignore
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
# Created by https://www.gitignore.io
|
2
|
+
|
3
|
+
### OSX ###
|
4
|
+
.DS_Store
|
5
|
+
.AppleDouble
|
6
|
+
.LSOverride
|
7
|
+
|
8
|
+
# Icon must end with two \r
|
9
|
+
Icon
|
10
|
+
|
11
|
+
|
12
|
+
# Thumbnails
|
13
|
+
._*
|
14
|
+
|
15
|
+
# Files that might appear in the root of a volume
|
16
|
+
.DocumentRevisions-V100
|
17
|
+
.fseventsd
|
18
|
+
.Spotlight-V100
|
19
|
+
.TemporaryItems
|
20
|
+
.Trashes
|
21
|
+
.VolumeIcon.icns
|
22
|
+
|
23
|
+
# Directories potentially created on remote AFP share
|
24
|
+
.AppleDB
|
25
|
+
.AppleDesktop
|
26
|
+
Network Trash Folder
|
27
|
+
Temporary Items
|
28
|
+
.apdisk
|
29
|
+
|
30
|
+
|
31
|
+
### RubyMine ###
|
32
|
+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
|
33
|
+
|
34
|
+
*.iml
|
35
|
+
|
36
|
+
## Directory-based project format:
|
37
|
+
.idea/
|
38
|
+
# if you remove the above rule, at least ignore the following:
|
39
|
+
|
40
|
+
# User-specific stuff:
|
41
|
+
# .idea/workspace.xml
|
42
|
+
# .idea/tasks.xml
|
43
|
+
# .idea/dictionaries
|
44
|
+
|
45
|
+
# Sensitive or high-churn files:
|
46
|
+
# .idea/dataSources.ids
|
47
|
+
# .idea/dataSources.xml
|
48
|
+
# .idea/sqlDataSources.xml
|
49
|
+
# .idea/dynamic.xml
|
50
|
+
# .idea/uiDesigner.xml
|
51
|
+
|
52
|
+
# Gradle:
|
53
|
+
# .idea/gradle.xml
|
54
|
+
# .idea/libraries
|
55
|
+
|
56
|
+
# Mongo Explorer plugin:
|
57
|
+
# .idea/mongoSettings.xml
|
58
|
+
|
59
|
+
## File-based project format:
|
60
|
+
*.ipr
|
61
|
+
*.iws
|
62
|
+
|
63
|
+
## Plugin-specific files:
|
64
|
+
|
65
|
+
# IntelliJ
|
66
|
+
/out/
|
67
|
+
|
68
|
+
# mpeltonen/sbt-idea plugin
|
69
|
+
.idea_modules/
|
70
|
+
|
71
|
+
# JIRA plugin
|
72
|
+
atlassian-ide-plugin.xml
|
73
|
+
|
74
|
+
# Crashlytics plugin (for Android Studio and IntelliJ)
|
75
|
+
com_crashlytics_export_strings.xml
|
76
|
+
crashlytics.properties
|
77
|
+
crashlytics-build.properties
|
78
|
+
|
79
|
+
|
80
|
+
### Ruby ###
|
81
|
+
*.gem
|
82
|
+
*.rbc
|
83
|
+
/.config
|
84
|
+
/coverage/
|
85
|
+
/InstalledFiles
|
86
|
+
/pkg/
|
87
|
+
/spec/reports/
|
88
|
+
/test/tmp/
|
89
|
+
/test/version_tmp/
|
90
|
+
/tmp/
|
91
|
+
.rspec
|
92
|
+
|
93
|
+
## Specific to RubyMotion:
|
94
|
+
.dat*
|
95
|
+
.repl_history
|
96
|
+
build/
|
97
|
+
|
98
|
+
## Documentation cache and generated files:
|
99
|
+
/.yardoc/
|
100
|
+
/_yardoc/
|
101
|
+
/doc/
|
102
|
+
/rdoc/
|
103
|
+
|
104
|
+
## Environment normalisation:
|
105
|
+
/.bundle/
|
106
|
+
/vendor/bundle
|
107
|
+
/lib/bundler/man/
|
108
|
+
|
109
|
+
# for a library or gem, you might want to ignore these files since the code is
|
110
|
+
# intended to run in multiple environments; otherwise, check them in:
|
111
|
+
Gemfile.lock
|
112
|
+
.ruby-version*
|
113
|
+
.ruby-gemset*
|
114
|
+
|
115
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
116
|
+
.rvmrc
|
117
|
+
|
118
|
+
spec/helpers/failures.txt
|
119
|
+
backup/
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# [0.9.0](https://github.com/scribd/datadog_backup/compare/v0.8.0...v0.9.0) (2020-08-11)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* public release of datadog_backup ([50d3582](https://github.com/scribd/datadog_backup/commit/50d358284fa3f2c561b1025a3b4f5ce4b4433116))
|
7
|
+
|
8
|
+
# [0.8.0](https://github.com/scribd/datadog_backup/compare/v0.7.0...v0.8.0) (2020-08-07)
|
9
|
+
|
10
|
+
|
11
|
+
### Features
|
12
|
+
|
13
|
+
* sort keys and ignore banlist for consistency ([ca683a6](https://github.com/scribd/datadog_backup/commit/ca683a63d58eeefee98b5909f830baa0e0bfa426))
|
14
|
+
|
15
|
+
# [0.7.0](https://github.com/scribd/datadog_backup/compare/v0.6.0...v0.7.0) (2020-08-07)
|
16
|
+
|
17
|
+
|
18
|
+
### Features
|
19
|
+
|
20
|
+
* Purge before backup, so that deletions can be detected. ([bdcb2b0](https://github.com/scribd/datadog_backup/commit/bdcb2b08a2e2e908f8b85359d0a43c392c5253ab))
|
21
|
+
|
22
|
+
# [0.6.0](https://github.com/scribd/datadog_backup/compare/v0.5.0...v0.6.0) (2020-08-05)
|
23
|
+
|
24
|
+
|
25
|
+
### Bug Fixes
|
26
|
+
|
27
|
+
* enable datadog_backup executable to run restore ([5094813](https://github.com/scribd/datadog_backup/commit/50948132b154c30956b87b5ec1e9070d34a48a02))
|
28
|
+
* order is not guaranteed ([d65b9a8](https://github.com/scribd/datadog_backup/commit/d65b9a872c268bcd91384f9f0215b88bdc5e9544))
|
29
|
+
* restore actually restores ([0e80999](https://github.com/scribd/datadog_backup/commit/0e80999b9d90cecb7c04c639d593987d89c35616))
|
30
|
+
* rspec properly handles SystemExit ([cf26bfb](https://github.com/scribd/datadog_backup/commit/cf26bfb7dd28d4b14c2126487848cab4d9af2bf9))
|
31
|
+
|
32
|
+
|
33
|
+
### Features
|
34
|
+
|
35
|
+
* add restore flow ([8175a03](https://github.com/scribd/datadog_backup/commit/8175a033b34b268f4a9850d1629dfdb21e86d2fa))
|
36
|
+
* Change defaults to YAML(backups) and color(diffs) ([d9ed708](https://github.com/scribd/datadog_backup/commit/d9ed7084f4cb8a5357ce0ab2927df770f0b841ed))
|
37
|
+
* ignore key ordering changes ([47e6e9f](https://github.com/scribd/datadog_backup/commit/47e6e9f7f5ac7824a57f8cee45bfe68867bba760))
|
38
|
+
* use Diffy diffs rather than HashDiff:x ([e5529b8](https://github.com/scribd/datadog_backup/commit/e5529b8f8501c2534f26bd0d541afa20c076b5c0))
|
39
|
+
|
40
|
+
# [0.5.0](https://github.com/scribd/datadog_backup/compare/v0.4.0...v0.5.0) (2020-07-30)
|
41
|
+
|
42
|
+
|
43
|
+
### Features
|
44
|
+
|
45
|
+
* Handle Ctrl-c by closing down the worker pool ([96791ba](https://github.com/scribd/datadog_backup/commit/96791ba23997114c356a097eb7a096ef2f7bd31c))
|
46
|
+
* use thread pool to globally limit thread count ([915f5c2](https://github.com/scribd/datadog_backup/commit/915f5c27be2fdf1f3bde40c34d8999ee1248de43))
|
47
|
+
|
48
|
+
# [0.4.0](https://github.com/scribd/datadog_backup/compare/v0.3.0...v0.4.0) (2020-07-27)
|
49
|
+
|
50
|
+
|
51
|
+
### Bug Fixes
|
52
|
+
|
53
|
+
* use maintained 'amazing_print' gem, rather than suffer a bajillion error messages ([a988416](https://github.com/scribd/datadog_backup/commit/a988416de11fd83ddd2d5bcf5b78bed59de65694))
|
54
|
+
|
55
|
+
|
56
|
+
### Features
|
57
|
+
|
58
|
+
* `diffs` provides a diff between what's on disk and in datadog ([8599b47](https://github.com/scribd/datadog_backup/commit/8599b47cd8761292247331982d9332f6b4da07b4))
|
59
|
+
* add `diffs` function ([3f5cd41](https://github.com/scribd/datadog_backup/commit/3f5cd41ae6bae99abb44a1495ea76c527ddc0428))
|
60
|
+
|
61
|
+
# [0.3.0](https://github.com/scribd/datadog_backup/compare/v0.2.0...v0.3.0) (2020-07-24)
|
62
|
+
|
63
|
+
|
64
|
+
### Features
|
65
|
+
|
66
|
+
* add yaml option ([5645e71](https://github.com/scribd/datadog_backup/commit/5645e71826ee474201d54f51ed061ab1d3f9e872))
|
67
|
+
|
68
|
+
# [0.2.0](https://github.com/scribd/datadog_backup/compare/v0.1.0...v0.2.0) (2020-07-18)
|
69
|
+
|
70
|
+
|
71
|
+
### Features
|
72
|
+
|
73
|
+
* send debug array to DEBUG ([0ef8bd7](https://github.com/scribd/datadog_backup/commit/0ef8bd71beba051e5ba4cddc9142507b505bc945))
|
74
|
+
|
75
|
+
# [0.1.0](https://github.com/scribd/datadog_backup/compare/v0.0.3...v0.1.0) (2020-07-17)
|
76
|
+
|
77
|
+
|
78
|
+
### Features
|
79
|
+
|
80
|
+
* change default backup directory to 'backup' ([27c8f69](https://github.com/scribd/datadog_backup/commit/27c8f6914147801b10de7e24cfa7e2742010fd89))
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
9
|
+
level of experience, education, socio-economic status, nationality, personal
|
10
|
+
appearance, race, religion, or sexual identity and orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at rtyler@scribd.com. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
72
|
+
|
73
|
+
[homepage]: https://www.contributor-covenant.org
|
74
|
+
|
75
|
+
For answers to common questions about this code of conduct, see
|
76
|
+
https://www.contributor-covenant.org/faq
|
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A sample Guardfile
|
4
|
+
# More info at https://github.com/guard/guard#readme
|
5
|
+
|
6
|
+
## Uncomment and set this to only include directories you want to watch
|
7
|
+
# directories %w(app lib config test spec features) \
|
8
|
+
# .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
9
|
+
|
10
|
+
## Note: if you are using the `directories` clause above and you are not
|
11
|
+
## watching the project directory ('.'), then you will want to move
|
12
|
+
## the Guardfile to a watched dir and symlink it back, e.g.
|
13
|
+
#
|
14
|
+
# $ mkdir config
|
15
|
+
# $ mv Guardfile config/
|
16
|
+
# $ ln -s config/Guardfile .
|
17
|
+
#
|
18
|
+
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
19
|
+
|
20
|
+
# Note: The cmd option is now required due to the increasing number of ways
|
21
|
+
# rspec may be run, below are examples of the most common uses.
|
22
|
+
# * bundler: 'bundle exec rspec'
|
23
|
+
# * bundler binstubs: 'bin/rspec'
|
24
|
+
# * spring: 'bin/rspec' (This will use spring if running and you have
|
25
|
+
# installed the spring binstubs per the docs)
|
26
|
+
# * zeus: 'zeus rspec' (requires the server to be started separately)
|
27
|
+
# * 'just' rspec: 'rspec'
|
28
|
+
|
29
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
30
|
+
require 'guard/rspec/dsl'
|
31
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
32
|
+
|
33
|
+
# Feel free to open issues for suggestions and improvements
|
34
|
+
|
35
|
+
# RSpec files
|
36
|
+
rspec = dsl.rspec
|
37
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
38
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
39
|
+
watch(rspec.spec_files)
|
40
|
+
|
41
|
+
# Ruby files
|
42
|
+
ruby = dsl.ruby
|
43
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
44
|
+
end
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2020 Scribd, Inc
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Datadog Backup
|
2
|
+
|
3
|
+
![Rspec and Release](https://github.com/scribd/datadog_backup/workflows/Rspec%20and%20Release/badge.svg)
|
4
|
+
|
5
|
+
Use `datadog_backup` to backup your datadog account.
|
6
|
+
Currently supports
|
7
|
+
|
8
|
+
- dashboards
|
9
|
+
- monitors
|
10
|
+
|
11
|
+
Additional features may be built out over time.
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
```
|
16
|
+
gem install datadog_backup
|
17
|
+
```
|
18
|
+
or
|
19
|
+
|
20
|
+
```
|
21
|
+
gem build datadog_backup.gemspec
|
22
|
+
gem install datadog_backup-*.gem
|
23
|
+
```
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
```
|
28
|
+
DATADOG_API_KEY=example123 DATADOG_APP_KEY=example123 datadog_backup <backup|diffs|restore> [--backup-dir /path/to/backups] [--debug] [--monitors-only] [--dashboards-only] [--diff-format color|html|html_simple] [--no-color] [--json]
|
29
|
+
```
|
30
|
+
|
31
|
+
```
|
32
|
+
gem install datadog_backup
|
33
|
+
export DATADOG_API_KEY=abc123
|
34
|
+
export DATADOG_APP_KEY=abc123
|
35
|
+
|
36
|
+
# Perform backup to optional/path/to/backupdir using YAML encoding
|
37
|
+
datadog_backup backup --backup-dir optional/path/to/backupdir
|
38
|
+
|
39
|
+
# Make some changes
|
40
|
+
|
41
|
+
# Just review the changes since last backup
|
42
|
+
datadog_backup diffs --backup-dir optional/path/to/backupdir
|
43
|
+
|
44
|
+
# Review and apply local changes to datadog
|
45
|
+
|
46
|
+
datadog_backup restore --backup-dir optional/path/to/backupdir
|
47
|
+
```
|
48
|
+
|
49
|
+
### Usage in a Github repo
|
50
|
+
|
51
|
+
See [example/](https://github.com/scribd/datadog_backup/tree/master/example) for an example implementation as a repo that backs up your Datadog dashboards hourly.
|
52
|
+
|
53
|
+
# Development
|
54
|
+
|
55
|
+
Releases are cut using [semantic-release](https://github.com/semantic-release/semantic-release).
|
56
|
+
|
57
|
+
Please write commit messages following [Angular commit guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines)
|