oxidized 0.29.1 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.coderabbit.yaml +21 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +45 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- data/.github/ISSUE_TEMPLATE/support-request.md +39 -0
- data/.github/workflows/codeql.yml +4 -4
- data/.github/workflows/publishdocker.yml +108 -13
- data/.github/workflows/ruby.yml +3 -12
- data/.github/workflows/stale.yml +6 -1
- data/.gitignore +2 -0
- data/.rubocop.yml +69 -13
- data/.rubocop_todo.yml +13 -143
- data/CHANGELOG.md +431 -4
- data/CONTRIBUTING.md +189 -0
- data/Dockerfile +89 -34
- data/README.md +59 -188
- data/Rakefile +58 -12
- data/bin/oxidized +2 -5
- data/docs/Configuration.md +382 -149
- data/docs/Creating-Models.md +262 -10
- data/docs/DeviceSimulation.md +196 -0
- data/docs/Docker.md +246 -0
- data/docs/Hooks.md +146 -51
- data/docs/Inputs.md +237 -0
- data/docs/Issues.md +123 -0
- data/docs/Model-Notes/APC.md +72 -0
- data/docs/Model-Notes/Cumulus.md +5 -0
- data/docs/Model-Notes/EatonNetwork.md +18 -0
- data/docs/Model-Notes/ExaLink.md +43 -0
- data/docs/Model-Notes/FSOS.md +17 -0
- data/docs/Model-Notes/Fortinet.md +75 -0
- data/docs/Model-Notes/GrandstreamHT8xx.md +8 -0
- data/docs/Model-Notes/HPEAruba.md +32 -0
- data/docs/Model-Notes/IvantiConnectSecure.md +59 -0
- data/docs/Model-Notes/OS6.md +10 -0
- data/docs/Model-Notes/README.md +1 -20
- data/docs/Model-Notes/RouterOS.md +28 -0
- data/docs/Model-Notes/SikluMHTG.md +7 -0
- data/docs/Model-Notes/TrueNAS.md +23 -0
- data/docs/Model-Notes/XGS4600-Zyxel.md +5 -0
- data/docs/ModelUnitTests.md +219 -0
- data/docs/Outputs.md +102 -5
- data/docs/Release.md +102 -0
- data/docs/Ruby-API.md +135 -2
- data/docs/Sources.md +34 -0
- data/docs/Supported-OS-Types.md +207 -270
- data/docs/Troubleshooting.md +43 -1
- data/extra/device2yaml.rb +259 -0
- data/extra/gitdiff-msteams.sh +32 -5
- data/extra/hooks/modelrules.rb +55 -0
- data/extra/hooks/modelrulesadvanced.rb +167 -0
- data/extra/hooks/srcipmap.rb +54 -0
- data/extra/nagios_check_failing_nodes.rb +1 -1
- data/extra/oxidized.runit +1 -1
- data/extra/rest_client.rb +5 -4
- data/extra/syslog.rb +11 -6
- data/lib/oxidized/cli/support.rb +152 -0
- data/lib/oxidized/cli.rb +21 -6
- data/lib/oxidized/config/vars.rb +33 -14
- data/lib/oxidized/config.rb +28 -17
- data/lib/oxidized/core.rb +50 -8
- data/lib/oxidized/hook/ciscosparkdiff.rb +11 -9
- data/lib/oxidized/hook/exec.rb +5 -4
- data/lib/oxidized/hook/githubrepo.rb +55 -18
- data/lib/oxidized/hook/noophook.rb +2 -2
- data/lib/oxidized/hook/slackdiff.rb +50 -14
- data/lib/oxidized/hook/xmppdiff.rb +9 -9
- data/lib/oxidized/hook.rb +68 -16
- data/lib/oxidized/input/cli.rb +8 -3
- data/lib/oxidized/input/debugtext.rb +40 -0
- data/lib/oxidized/input/debugyaml.rb +82 -0
- data/lib/oxidized/input/exec.rb +2 -11
- data/lib/oxidized/input/ftp.rb +2 -19
- data/lib/oxidized/input/http.rb +67 -17
- data/lib/oxidized/input/input.rb +35 -14
- data/lib/oxidized/input/scp.rb +27 -0
- data/lib/oxidized/input/ssh.rb +59 -83
- data/lib/oxidized/input/sshbase.rb +102 -0
- data/lib/oxidized/input/telnet.rb +20 -19
- data/lib/oxidized/input/tftp.rb +8 -8
- data/lib/oxidized/job.rb +18 -7
- data/lib/oxidized/jobs.rb +11 -1
- data/lib/oxidized/logger.rb +51 -0
- data/lib/oxidized/manager.rb +18 -17
- data/lib/oxidized/model/acos.rb +2 -1
- data/lib/oxidized/model/addpack.rb +26 -0
- data/lib/oxidized/model/adtran.rb +5 -1
- data/lib/oxidized/model/adva.rb +3 -3
- data/lib/oxidized/model/airfiber.rb +1 -1
- data/lib/oxidized/model/aos7.rb +11 -0
- data/lib/oxidized/model/aoscx.rb +37 -29
- data/lib/oxidized/model/aosw.rb +39 -29
- data/lib/oxidized/model/apc_aos.rb +7 -2
- data/lib/oxidized/model/apcaos.rb +39 -0
- data/lib/oxidized/model/aricentiss.rb +9 -2
- data/lib/oxidized/model/arubainstant.rb +93 -0
- data/lib/oxidized/model/asa.rb +11 -10
- data/lib/oxidized/model/asternos.rb +22 -0
- data/lib/oxidized/model/asyncos.rb +3 -3
- data/lib/oxidized/model/audiocodes.rb +2 -2
- data/lib/oxidized/model/awplus.rb +15 -12
- data/lib/oxidized/model/axos.rb +1 -1
- data/lib/oxidized/model/bdcom.rb +1 -0
- data/lib/oxidized/model/c4cmts.rb +1 -2
- data/lib/oxidized/model/ciscosma.rb +1 -1
- data/lib/oxidized/model/ciscosmb.rb +6 -1
- data/lib/oxidized/model/cnos.rb +13 -10
- data/lib/oxidized/model/comtrol.rb +1 -1
- data/lib/oxidized/model/comware.rb +5 -3
- data/lib/oxidized/model/cumulus.rb +14 -2
- data/lib/oxidized/model/defacto.rb +26 -0
- data/lib/oxidized/model/dellx.rb +1 -1
- data/lib/oxidized/model/dlink.rb +5 -2
- data/lib/oxidized/model/dlinknextgen.rb +55 -0
- data/lib/oxidized/model/dnos.rb +3 -0
- data/lib/oxidized/model/dslcommands.rb +93 -0
- data/lib/oxidized/model/dslsetup.rb +102 -0
- data/lib/oxidized/model/eatonnetwork.rb +70 -0
- data/lib/oxidized/model/edgecos.rb +3 -1
- data/lib/oxidized/model/edgeos.rb +7 -6
- data/lib/oxidized/model/edgeswitch.rb +3 -1
- data/lib/oxidized/model/efos.rb +41 -0
- data/lib/oxidized/model/eltex.rb +4 -2
- data/lib/oxidized/model/enterasys800.rb +2 -2
- data/lib/oxidized/model/enterprise_sonic.rb +46 -0
- data/lib/oxidized/model/eos.rb +3 -1
- data/lib/oxidized/model/exalink.rb +36 -0
- data/lib/oxidized/model/f5os.rb +17 -0
- data/lib/oxidized/model/fabricos.rb +2 -2
- data/lib/oxidized/model/fastiron.rb +5 -3
- data/lib/oxidized/model/firebrick.rb +2 -2
- data/lib/oxidized/model/firelinuxos.rb +13 -6
- data/lib/oxidized/model/firewareos.rb +10 -1
- data/lib/oxidized/model/fortigate.rb +160 -0
- data/lib/oxidized/model/fortios.rb +38 -48
- data/lib/oxidized/model/fsos.rb +46 -0
- data/lib/oxidized/model/gaiaos.rb +4 -4
- data/lib/oxidized/model/garderos.rb +38 -0
- data/lib/oxidized/model/grandstreamht8xx.rb +19 -0
- data/lib/oxidized/model/h3c.rb +1 -1
- data/lib/oxidized/model/ibos.rb +1 -0
- data/lib/oxidized/model/ingate.rb +47 -0
- data/lib/oxidized/model/ios.rb +57 -30
- data/lib/oxidized/model/iosxr.rb +2 -2
- data/lib/oxidized/model/ironware.rb +7 -5
- data/lib/oxidized/model/ivanti.rb +54 -0
- data/lib/oxidized/model/junos.rb +12 -5
- data/lib/oxidized/model/kornfeldos.rb +33 -0
- data/lib/oxidized/model/lenovonos.rb +2 -0
- data/lib/oxidized/model/linksyssrw.rb +3 -3
- data/lib/oxidized/model/linuxgeneric.rb +4 -2
- data/lib/oxidized/model/macros.rb +60 -0
- data/lib/oxidized/model/mimosab11.rb +34 -0
- data/lib/oxidized/model/ml66.rb +33 -0
- data/lib/oxidized/model/mlnxos.rb +18 -14
- data/lib/oxidized/model/model.rb +98 -103
- data/lib/oxidized/model/mtrlrfs.rb +1 -0
- data/lib/oxidized/model/ndms.rb +6 -0
- data/lib/oxidized/model/netgear.rb +14 -3
- data/lib/oxidized/model/netonix.rb +1 -1
- data/lib/oxidized/model/netscaler.rb +1 -1
- data/lib/oxidized/model/nodegrid.rb +1 -1
- data/lib/oxidized/model/nsxdfw.rb +31 -0
- data/lib/oxidized/model/nsxfirewall.rb +2 -1
- data/lib/oxidized/model/nxos.rb +20 -15
- data/lib/oxidized/model/ocnos.rb +42 -0
- data/lib/oxidized/model/onefinity.rb +18 -0
- data/lib/oxidized/model/openbsd.rb +1 -1
- data/lib/oxidized/model/opengear.rb +36 -1
- data/lib/oxidized/model/openwrt.rb +6 -6
- data/lib/oxidized/model/opnsense.rb +9 -1
- data/lib/oxidized/model/os6.rb +48 -0
- data/lib/oxidized/model/outputs.rb +5 -0
- data/lib/oxidized/model/panos.rb +2 -0
- data/lib/oxidized/model/perle.rb +41 -0
- data/lib/oxidized/model/pfsense.rb +9 -0
- data/lib/oxidized/model/powerconnect.rb +32 -11
- data/lib/oxidized/model/procurve.rb +6 -2
- data/lib/oxidized/model/qtech.rb +3 -1
- data/lib/oxidized/model/quantaos.rb +8 -6
- data/lib/oxidized/model/rgos.rb +33 -0
- data/lib/oxidized/model/riverbed.rb +104 -0
- data/lib/oxidized/model/routeros.rb +18 -11
- data/lib/oxidized/model/saos.rb +18 -1
- data/lib/oxidized/model/saos10.rb +38 -0
- data/lib/oxidized/model/siklu.rb +1 -1
- data/lib/oxidized/model/siklumhtg.rb +22 -0
- data/lib/oxidized/model/sixwind.rb +28 -0
- data/lib/oxidized/model/slxos.rb +3 -3
- data/lib/oxidized/model/smartbyte.rb +48 -0
- data/lib/oxidized/model/sonicos.rb +27 -20
- data/lib/oxidized/model/speedtouch.rb +1 -1
- data/lib/oxidized/model/sros.rb +3 -3
- data/lib/oxidized/model/srosmd.rb +1 -1
- data/lib/oxidized/model/supermicro.rb +1 -1
- data/lib/oxidized/model/telco.rb +1 -1
- data/lib/oxidized/model/tmos.rb +1 -0
- data/lib/oxidized/model/tnsr.rb +57 -0
- data/lib/oxidized/model/tplink.rb +5 -5
- data/lib/oxidized/model/trango.rb +4 -2
- data/lib/oxidized/model/truenas.rb +64 -3
- data/lib/oxidized/model/ucs.rb +1 -1
- data/lib/oxidized/model/unifiap.rb +144 -0
- data/lib/oxidized/model/uplinkolt.rb +46 -0
- data/lib/oxidized/model/voltaire.rb +1 -1
- data/lib/oxidized/model/voss.rb +3 -0
- data/lib/oxidized/model/vrp.rb +5 -1
- data/lib/oxidized/model/vyatta.rb +9 -3
- data/lib/oxidized/model/vyos.rb +37 -0
- data/lib/oxidized/model/xos.rb +10 -1
- data/lib/oxidized/model/zhoneolt.rb +4 -2
- data/lib/oxidized/model/zynos.rb +67 -3
- data/lib/oxidized/model/zynosadsl.rb +14 -0
- data/lib/oxidized/model/zynoscli.rb +1 -1
- data/lib/oxidized/model/zynosgs.rb +2 -0
- data/lib/oxidized/model/zynosmgs.rb +32 -0
- data/lib/oxidized/node.rb +99 -64
- data/lib/oxidized/nodes.rb +40 -19
- data/lib/oxidized/output/file.rb +80 -43
- data/lib/oxidized/output/git.rb +295 -151
- data/lib/oxidized/output/gitcrypt.rb +193 -185
- data/lib/oxidized/output/http.rb +63 -51
- data/lib/oxidized/output/output.rb +20 -4
- data/lib/oxidized/signals.rb +44 -0
- data/lib/oxidized/source/csv.rb +49 -49
- data/lib/oxidized/source/http.rb +76 -63
- data/lib/oxidized/source/jsonfile.rb +68 -0
- data/lib/oxidized/source/source.rb +73 -18
- data/lib/oxidized/source/sql.rb +71 -59
- data/lib/oxidized/version.rb +6 -4
- data/lib/oxidized/worker.rb +57 -29
- data/lib/oxidized.rb +4 -24
- data/lib/refinements.rb +21 -1
- data/oxidized.gemspec +45 -21
- metadata +248 -41
- data/lib/oxidized/model/timos.rb +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 59eeea5dc9024b545f633379b4ab663cf5ea26fe478a4dafffe0e0b80909d2b7
|
|
4
|
+
data.tar.gz: 26363d11d322e4f797db86050dce16532b8cf2e0e5419de0b92b0dae0b8076df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b47b07aaa4528bfa49559ae27785f64da5de07e00305878b840cad7f00068e83c84951350494b37765e0a2499a59881d15979360a8c911702f81531613dd674
|
|
7
|
+
data.tar.gz: e103734e361736470524ea88f650fa0007a498273c2b54597a0d6fe3d0e768013f2a13f9edea755b72955ce57684614b7a824a745b81c41f0f2fe539b3d13b4d
|
data/.coderabbit.yaml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
reviews:
|
|
2
|
+
auto_review:
|
|
3
|
+
enabled: false
|
|
4
|
+
auto_incremental_review: false
|
|
5
|
+
|
|
6
|
+
commit_status: false
|
|
7
|
+
review_status: false
|
|
8
|
+
high_level_summary: false
|
|
9
|
+
suggested_labels: false
|
|
10
|
+
suggested_reviewers: false
|
|
11
|
+
changed_files_summary: false
|
|
12
|
+
poem: false
|
|
13
|
+
sequence_diagrams: false
|
|
14
|
+
estimate_code_review_effort: false
|
|
15
|
+
assess_linked_issues: false
|
|
16
|
+
related_issues: false
|
|
17
|
+
in_progress_fortune: false
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
chat:
|
|
21
|
+
auto_reply: false
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve oxidized
|
|
4
|
+
title: ''
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
<!-- Check the box [X] -->
|
|
10
|
+
- [ ] I have read and understood [docs/Issues.md](https://github.com/ytti/oxidized/blob/master/docs/Issues.md).
|
|
11
|
+
|
|
12
|
+
**Describe the bug**
|
|
13
|
+
A clear and concise description of what the bug is.
|
|
14
|
+
|
|
15
|
+
**To Reproduce**
|
|
16
|
+
Steps to reproduce the behavior:
|
|
17
|
+
1. Configure '...'
|
|
18
|
+
2. Use model '....'
|
|
19
|
+
3. Run '....'
|
|
20
|
+
4. See error
|
|
21
|
+
|
|
22
|
+
**Expected behavior**
|
|
23
|
+
A clear and concise description of what you expected to happen.
|
|
24
|
+
|
|
25
|
+
**Configuration**
|
|
26
|
+
```
|
|
27
|
+
If applicable, publish your configuration.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Logs**
|
|
31
|
+
```
|
|
32
|
+
If applicable, add logs to help explain your problem.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Running environment (please complete the following information):**
|
|
36
|
+
<!-- complete the following information and add further details if needed.
|
|
37
|
+
Always test the latest version of oxidized -->
|
|
38
|
+
- OS: [e.g. Debian Bookworm, official container version xxx, ...]
|
|
39
|
+
- oxidized version: [e.g. 0.32.2]
|
|
40
|
+
- oxidized-web version: [e.g. 0.15.1, if applicable]
|
|
41
|
+
- Manufacturer model an software version:
|
|
42
|
+
- oxidized model name:
|
|
43
|
+
|
|
44
|
+
**Additional context**
|
|
45
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: feature request
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
<!-- Check the box [X] -->
|
|
10
|
+
- [ ] I have read and understood [docs/Issues.md](https://github.com/ytti/oxidized/blob/master/docs/Issues.md).
|
|
11
|
+
|
|
12
|
+
**Is your feature request related to a problem? Please describe.**
|
|
13
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
14
|
+
|
|
15
|
+
**Describe the solution you'd like**
|
|
16
|
+
A clear and concise description of what you want to happen.
|
|
17
|
+
|
|
18
|
+
**Describe alternatives you've considered**
|
|
19
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
20
|
+
|
|
21
|
+
**Additional context**
|
|
22
|
+
Add any other context about the feature request here.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Support request
|
|
3
|
+
about: Ask for help
|
|
4
|
+
title: ''
|
|
5
|
+
labels: question
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
<!-- Check the box [X] -->
|
|
10
|
+
- [ ] I have read and understood [docs/Issues.md](https://github.com/ytti/oxidized/blob/master/docs/Issues.md).
|
|
11
|
+
|
|
12
|
+
**Describe the problem**
|
|
13
|
+
A clear and concise description of what your problem is.
|
|
14
|
+
|
|
15
|
+
**Expected behavior**
|
|
16
|
+
A clear and concise description of what you expected to happen.
|
|
17
|
+
|
|
18
|
+
**Configuration**
|
|
19
|
+
```
|
|
20
|
+
If applicable, publish your configuration.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Logs**
|
|
24
|
+
```
|
|
25
|
+
If applicable, add logs to help explain your problem.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Running environment (please complete the following information):**
|
|
29
|
+
<!-- complete the following information and add further details if needed.
|
|
30
|
+
Always test the latest version of oxidized -->
|
|
31
|
+
- OS: [e.g. Debian Bookworm, official container version xxx, ...]
|
|
32
|
+
- oxidized version: [e.g. 0.32.2]
|
|
33
|
+
- oxidized-web version: [e.g. 0.15.1, if applicable]
|
|
34
|
+
- Manufacturer model an software version:
|
|
35
|
+
- oxidized model name:
|
|
36
|
+
|
|
37
|
+
**Additional context**
|
|
38
|
+
Add any other context about the problem here.
|
|
39
|
+
|
|
@@ -40,11 +40,11 @@ jobs:
|
|
|
40
40
|
|
|
41
41
|
steps:
|
|
42
42
|
- name: Checkout repository
|
|
43
|
-
uses: actions/checkout@
|
|
43
|
+
uses: actions/checkout@v6
|
|
44
44
|
|
|
45
45
|
# Initializes the CodeQL tools for scanning.
|
|
46
46
|
- name: Initialize CodeQL
|
|
47
|
-
uses: github/codeql-action/init@
|
|
47
|
+
uses: github/codeql-action/init@v4
|
|
48
48
|
with:
|
|
49
49
|
languages: ${{ matrix.language }}
|
|
50
50
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
|
59
59
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
60
60
|
- name: Autobuild
|
|
61
|
-
uses: github/codeql-action/autobuild@
|
|
61
|
+
uses: github/codeql-action/autobuild@v4
|
|
62
62
|
|
|
63
63
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
64
64
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
|
@@ -71,6 +71,6 @@ jobs:
|
|
|
71
71
|
# ./location_of_script_within_repo/buildscript.sh
|
|
72
72
|
|
|
73
73
|
- name: Perform CodeQL Analysis
|
|
74
|
-
uses: github/codeql-action/analyze@
|
|
74
|
+
uses: github/codeql-action/analyze@v4
|
|
75
75
|
with:
|
|
76
76
|
category: "/language:${{matrix.language}}"
|
|
@@ -2,21 +2,116 @@ name: Publish Docker
|
|
|
2
2
|
on:
|
|
3
3
|
push:
|
|
4
4
|
branches: [ "master" ]
|
|
5
|
+
tags: [ "[0-9]+.[0-9]+.[0-9]+" ]
|
|
6
|
+
env:
|
|
7
|
+
REGISTRY_IMAGE: oxidized/oxidized
|
|
8
|
+
|
|
5
9
|
jobs:
|
|
6
10
|
build:
|
|
7
11
|
if: github.repository_owner == 'ytti'
|
|
12
|
+
runs-on: ${{ matrix.runner }}
|
|
13
|
+
strategy:
|
|
14
|
+
fail-fast: false
|
|
15
|
+
matrix:
|
|
16
|
+
include:
|
|
17
|
+
- platform: linux/amd64
|
|
18
|
+
runner: ubuntu-latest
|
|
19
|
+
- platform: linux/arm64
|
|
20
|
+
runner: ubuntu-24.04-arm
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: Prepare
|
|
24
|
+
run: |
|
|
25
|
+
platform=${{ matrix.platform }}
|
|
26
|
+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
|
27
|
+
|
|
28
|
+
- name: Docker meta
|
|
29
|
+
id: meta
|
|
30
|
+
uses: docker/metadata-action@v6
|
|
31
|
+
with:
|
|
32
|
+
images: ${{ env.REGISTRY_IMAGE }}
|
|
33
|
+
tags: |
|
|
34
|
+
type=semver,pattern={{version}}
|
|
35
|
+
type=semver,pattern={{major}}
|
|
36
|
+
type=sha,prefix=master-
|
|
37
|
+
flavor: |
|
|
38
|
+
latest=true
|
|
39
|
+
|
|
40
|
+
- name: Login to Docker Hub
|
|
41
|
+
uses: docker/login-action@v4
|
|
42
|
+
with:
|
|
43
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
|
44
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
45
|
+
|
|
46
|
+
- name: Set up Docker Buildx
|
|
47
|
+
uses: docker/setup-buildx-action@v4
|
|
48
|
+
|
|
49
|
+
- name: Build and push by digest
|
|
50
|
+
id: build
|
|
51
|
+
uses: docker/build-push-action@v7
|
|
52
|
+
with:
|
|
53
|
+
platforms: ${{ matrix.platform }}
|
|
54
|
+
tags: ${{ env.REGISTRY_IMAGE }}
|
|
55
|
+
labels: |
|
|
56
|
+
${{ steps.meta.outputs.labels }}
|
|
57
|
+
org.opencontainers.image.ref.name=${{ steps.meta.outputs.version }}
|
|
58
|
+
build-args: |
|
|
59
|
+
BUILDKIT_CONTEXT_KEEP_GIT_DIR=true
|
|
60
|
+
outputs: type=image,push-by-digest=true,name-canonical=true,push=true
|
|
61
|
+
|
|
62
|
+
- name: Export digest
|
|
63
|
+
run: |
|
|
64
|
+
mkdir -p ${{ runner.temp }}/digests
|
|
65
|
+
digest="${{ steps.build.outputs.digest }}"
|
|
66
|
+
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
|
67
|
+
|
|
68
|
+
- name: Upload digest
|
|
69
|
+
uses: actions/upload-artifact@v7
|
|
70
|
+
with:
|
|
71
|
+
name: digests-${{ env.PLATFORM_PAIR }}
|
|
72
|
+
path: ${{ runner.temp }}/digests/*
|
|
73
|
+
if-no-files-found: error
|
|
74
|
+
retention-days: 1
|
|
75
|
+
|
|
76
|
+
merge:
|
|
8
77
|
runs-on: ubuntu-latest
|
|
78
|
+
needs:
|
|
79
|
+
- build
|
|
9
80
|
steps:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
81
|
+
- name: Download digests
|
|
82
|
+
uses: actions/download-artifact@v8
|
|
83
|
+
with:
|
|
84
|
+
path: ${{ runner.temp }}/digests
|
|
85
|
+
pattern: digests-*
|
|
86
|
+
merge-multiple: true
|
|
87
|
+
|
|
88
|
+
- name: Login to Docker Hub
|
|
89
|
+
uses: docker/login-action@v4
|
|
90
|
+
with:
|
|
91
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
|
92
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
93
|
+
|
|
94
|
+
- name: Set up Docker Buildx
|
|
95
|
+
uses: docker/setup-buildx-action@v4
|
|
96
|
+
|
|
97
|
+
- name: Docker meta
|
|
98
|
+
id: meta
|
|
99
|
+
uses: docker/metadata-action@v6
|
|
100
|
+
with:
|
|
101
|
+
images: ${{ env.REGISTRY_IMAGE }}
|
|
102
|
+
tags: |
|
|
103
|
+
type=semver,pattern={{version}}
|
|
104
|
+
type=semver,pattern={{major}}
|
|
105
|
+
type=sha,prefix=master-
|
|
106
|
+
flavor: |
|
|
107
|
+
latest=true
|
|
108
|
+
|
|
109
|
+
- name: Create manifest list and push
|
|
110
|
+
working-directory: ${{ runner.temp }}/digests
|
|
111
|
+
run: |
|
|
112
|
+
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
|
113
|
+
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
|
|
114
|
+
|
|
115
|
+
- name: Inspect image
|
|
116
|
+
run: |
|
|
117
|
+
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -19,24 +19,15 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
strategy:
|
|
21
21
|
matrix:
|
|
22
|
-
ruby-version: ['3.0', '3.1', '3.2']
|
|
22
|
+
ruby-version: ['3.0', '3.1', '3.2', '3.3', '3.4', 'ruby-head']
|
|
23
|
+
continue-on-error: ${{ matrix.ruby-version == 'ruby-head' }}
|
|
23
24
|
|
|
24
25
|
steps:
|
|
25
|
-
- uses: actions/checkout@
|
|
26
|
+
- uses: actions/checkout@v6
|
|
26
27
|
- name: Set up Ruby
|
|
27
|
-
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
|
28
|
-
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
|
29
28
|
uses: ruby/setup-ruby@v1
|
|
30
29
|
with:
|
|
31
30
|
ruby-version: ${{ matrix.ruby-version }}
|
|
32
31
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
33
|
-
- name: rubocop
|
|
34
|
-
uses: reviewdog/action-rubocop@v2
|
|
35
|
-
with:
|
|
36
|
-
rubocop_version: gemfile
|
|
37
|
-
rubocop_extensions: rubocop-minitest:gemfile rubocop-rake:gemfile
|
|
38
|
-
reporter: github-pr-review
|
|
39
32
|
- name: Run tests
|
|
40
33
|
run: bundle exec rake
|
|
41
|
-
- uses: codecov/codecov-action@v3
|
|
42
|
-
if: ${{ always() }}
|
data/.github/workflows/stale.yml
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
---
|
|
1
2
|
name: "Stale Issue/PR cleanup"
|
|
2
3
|
on:
|
|
3
4
|
schedule:
|
|
@@ -11,6 +12,10 @@ jobs:
|
|
|
11
12
|
stale:
|
|
12
13
|
runs-on: ubuntu-latest
|
|
13
14
|
steps:
|
|
14
|
-
- uses: actions/stale@
|
|
15
|
+
- uses: actions/stale@v10
|
|
15
16
|
with:
|
|
17
|
+
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity.'
|
|
18
|
+
stale-pr-message: 'This PR is stale because it has been open 90 days with no activity.'
|
|
16
19
|
operations-per-run: 500
|
|
20
|
+
days-before-stale: 90
|
|
21
|
+
days-before-close: -1
|
data/.gitignore
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
Gemfile.lock
|
|
14
14
|
.ruby-version
|
|
15
15
|
.sass-cache/
|
|
16
|
+
.vscode/
|
|
16
17
|
|
|
17
18
|
# Used by dotenv library to load environment variables.
|
|
18
19
|
# .env
|
|
@@ -52,3 +53,4 @@ build-iPhoneSimulator/
|
|
|
52
53
|
|
|
53
54
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
54
55
|
.rvmrc
|
|
56
|
+
/.rake_tasks~
|
data/.rubocop.yml
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
inherit_mode:
|
|
4
|
+
merge:
|
|
5
|
+
- Exclude
|
|
6
|
+
|
|
7
|
+
plugins:
|
|
8
|
+
- rubocop-rake
|
|
9
|
+
- rubocop-minitest
|
|
10
|
+
- rubocop-sequel
|
|
11
|
+
|
|
4
12
|
AllCops:
|
|
5
13
|
NewCops: enable
|
|
6
|
-
|
|
14
|
+
# Do not attempt to police vendored code
|
|
7
15
|
Exclude:
|
|
8
16
|
- 'vendor/**/*'
|
|
9
17
|
|
|
18
|
+
Gemspec/DevelopmentDependencies:
|
|
19
|
+
EnforcedStyle: gemspec
|
|
20
|
+
|
|
21
|
+
# We prefer to use ”” by default and use ’’ to signal that interpolation is
|
|
22
|
+
# intentionally turned off, but we don't enforce it.
|
|
10
23
|
Style/StringLiterals:
|
|
11
24
|
Enabled: false
|
|
12
25
|
|
|
@@ -14,10 +27,19 @@ Style/FrozenStringLiteralComment:
|
|
|
14
27
|
Enabled: false
|
|
15
28
|
|
|
16
29
|
Layout/LineLength:
|
|
17
|
-
Enabled:
|
|
30
|
+
Enabled: true
|
|
31
|
+
Max: 120
|
|
32
|
+
# Too much models have long lines, which is unsafe to reduce without
|
|
33
|
+
# having an existing model unit test.
|
|
34
|
+
Exclude:
|
|
35
|
+
- lib/oxidized/model/*.rb
|
|
18
36
|
|
|
37
|
+
# We do not enforce the cop in the models as it would not work with the
|
|
38
|
+
# DSL style of the models
|
|
19
39
|
Lint/AmbiguousRegexpLiteral:
|
|
20
|
-
Enabled:
|
|
40
|
+
Enabled: true
|
|
41
|
+
Exclude:
|
|
42
|
+
- lib/oxidized/model/*.rb
|
|
21
43
|
|
|
22
44
|
Lint/RaiseException:
|
|
23
45
|
Enabled: true
|
|
@@ -33,6 +55,7 @@ Layout/HashAlignment:
|
|
|
33
55
|
EnforcedHashRocketStyle: table
|
|
34
56
|
EnforcedColonStyle: table
|
|
35
57
|
|
|
58
|
+
# Explicitly allow the use of "not"
|
|
36
59
|
Style/Not:
|
|
37
60
|
Enabled: false
|
|
38
61
|
|
|
@@ -40,24 +63,45 @@ Style/Not:
|
|
|
40
63
|
Style/CommandLiteral:
|
|
41
64
|
EnforcedStyle: percent_x
|
|
42
65
|
|
|
66
|
+
Style/ConditionalAssignment:
|
|
67
|
+
Enabled: false
|
|
68
|
+
|
|
43
69
|
Style/FormatString:
|
|
44
70
|
EnforcedStyle: percent
|
|
45
71
|
|
|
72
|
+
Style/FileOpen:
|
|
73
|
+
Exclude:
|
|
74
|
+
- lib/oxidized/input/*.rb
|
|
75
|
+
|
|
46
76
|
Style/FormatStringToken:
|
|
47
77
|
EnforcedStyle: unannotated
|
|
78
|
+
AllowedMethods: ['metadata']
|
|
48
79
|
|
|
49
80
|
Style/HashEachMethods:
|
|
50
81
|
Enabled: true
|
|
51
82
|
|
|
83
|
+
Style/HashSyntax:
|
|
84
|
+
EnforcedShorthandSyntax: either
|
|
85
|
+
|
|
52
86
|
Style/HashTransformKeys:
|
|
53
87
|
Enabled: true
|
|
54
88
|
|
|
55
89
|
Style/HashTransformValues:
|
|
56
90
|
Enabled: true
|
|
57
91
|
|
|
92
|
+
Style/OneClassPerFile:
|
|
93
|
+
Exclude:
|
|
94
|
+
- spec/**/*.rb
|
|
95
|
+
|
|
96
|
+
Style/RegexpLiteral:
|
|
97
|
+
EnforcedStyle: slashes
|
|
98
|
+
AllowInnerSlashes: true
|
|
99
|
+
|
|
100
|
+
# Explicitly allow the use of rescue as a Modifier
|
|
58
101
|
Style/RescueModifier:
|
|
59
102
|
Enabled: false
|
|
60
103
|
|
|
104
|
+
# Intentionally left deactivated as used in the models
|
|
61
105
|
Style/SymbolProc:
|
|
62
106
|
Enabled: false
|
|
63
107
|
|
|
@@ -65,29 +109,41 @@ Style/Documentation:
|
|
|
65
109
|
Enabled: false
|
|
66
110
|
|
|
67
111
|
Style/ParallelAssignment:
|
|
68
|
-
Enabled:
|
|
112
|
+
Enabled: true
|
|
69
113
|
|
|
70
114
|
Metrics/MethodLength:
|
|
71
|
-
Max:
|
|
115
|
+
Max: 50
|
|
72
116
|
|
|
73
|
-
|
|
74
|
-
|
|
117
|
+
Metrics/AbcSize:
|
|
118
|
+
Enabled: false
|
|
75
119
|
|
|
76
120
|
Metrics/ClassLength:
|
|
77
121
|
Max: 200
|
|
78
122
|
|
|
79
|
-
|
|
80
|
-
|
|
123
|
+
Metrics/ModuleLength:
|
|
124
|
+
Max: 200
|
|
125
|
+
|
|
126
|
+
Metrics/PerceivedComplexity:
|
|
127
|
+
Enabled: false
|
|
128
|
+
|
|
129
|
+
Metrics/CyclomaticComplexity:
|
|
130
|
+
Enabled: false
|
|
81
131
|
|
|
132
|
+
# The BlockLength metric does not apply to unit tests. They are in nature
|
|
133
|
+
# long and not very pretty
|
|
82
134
|
Metrics/BlockLength:
|
|
83
135
|
Max: 150
|
|
136
|
+
Exclude:
|
|
137
|
+
- spec/**/*_spec.rb
|
|
84
138
|
|
|
85
139
|
Metrics/ParameterLists:
|
|
86
140
|
Max: 6
|
|
87
141
|
|
|
142
|
+
# Used in the models
|
|
88
143
|
Lint/EmptyBlock:
|
|
89
144
|
Enabled: false
|
|
90
145
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
146
|
+
# Disable the cop as string concatenation is widely used in oxidized
|
|
147
|
+
Style/StringConcatenation:
|
|
148
|
+
Enabled: false
|
|
149
|
+
|