jekyll-agent-audit 0.1.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 +7 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +17 -0
- data/README.md +180 -0
- data/Rakefile +38 -0
- data/doc/Jekyll/AgentAudit/BuildInventory.md +29 -0
- data/doc/Jekyll/AgentAudit/Configuration.md +42 -0
- data/doc/Jekyll/AgentAudit/ConfigurationError.md +6 -0
- data/doc/Jekyll/AgentAudit/Error.md +6 -0
- data/doc/Jekyll/AgentAudit/Extractor.md +20 -0
- data/doc/Jekyll/AgentAudit/Finding.md +30 -0
- data/doc/Jekyll/AgentAudit/InputError.md +6 -0
- data/doc/Jekyll/AgentAudit/LinkGraph.md +26 -0
- data/doc/Jekyll/AgentAudit/Registry.md +38 -0
- data/doc/Jekyll/AgentAudit/Report.md +27 -0
- data/doc/Jekyll/AgentAudit/ReportError.md +6 -0
- data/doc/Jekyll/AgentAudit/Reporters/Console.md +19 -0
- data/doc/Jekyll/AgentAudit/Reporters/JSON.md +9 -0
- data/doc/Jekyll/AgentAudit/Reporters.md +5 -0
- data/doc/Jekyll/AgentAudit/Rules/Provenance.md +127 -0
- data/doc/Jekyll/AgentAudit/Rules/Publication.md +73 -0
- data/doc/Jekyll/AgentAudit/Rules.md +5 -0
- data/doc/Jekyll/AgentAudit/Runner.md +13 -0
- data/doc/Jekyll/AgentAudit/UrlResolver.md +13 -0
- data/doc/Jekyll/AgentAudit.md +35 -0
- data/doc/Jekyll/Commands/AgentAudit/CommandParser.md +9 -0
- data/doc/Jekyll/Commands/AgentAudit/ParserErrors.md +9 -0
- data/doc/Jekyll/Commands/AgentAudit.md +13 -0
- data/doc/Jekyll/Commands.md +5 -0
- data/doc/Jekyll.md +5 -0
- data/doc/README.md +180 -0
- data/doc/index.csv +154 -0
- data/docs/example-report.json +281 -0
- data/docs/implementation-plan.md +26 -0
- data/docs/limitations.md +31 -0
- data/docs/verification.md +52 -0
- data/lib/jekyll/agent_audit/build_inventory.rb +196 -0
- data/lib/jekyll/agent_audit/command.rb +179 -0
- data/lib/jekyll/agent_audit/configuration.rb +196 -0
- data/lib/jekyll/agent_audit/errors.rb +10 -0
- data/lib/jekyll/agent_audit/extractor.rb +230 -0
- data/lib/jekyll/agent_audit/finding.rb +57 -0
- data/lib/jekyll/agent_audit/link_graph.rb +82 -0
- data/lib/jekyll/agent_audit/registry.rb +133 -0
- data/lib/jekyll/agent_audit/report.rb +79 -0
- data/lib/jekyll/agent_audit/reporters/console.rb +144 -0
- data/lib/jekyll/agent_audit/reporters/json.rb +16 -0
- data/lib/jekyll/agent_audit/rules/provenance.rb +412 -0
- data/lib/jekyll/agent_audit/rules/publication.rb +186 -0
- data/lib/jekyll/agent_audit/runner.rb +266 -0
- data/lib/jekyll/agent_audit/url_resolver.rb +98 -0
- data/lib/jekyll/agent_audit/version.rb +7 -0
- data/lib/jekyll-agent-audit.rb +24 -0
- data/llms.txt +35 -0
- data/schema/report-1.0.json +66 -0
- data/script/benchmark.rb +68 -0
- metadata +133 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4b88653ad0aae082e172a8ceb319711ed790ebf7f23180a20b9b9d63c9e883ba
|
|
4
|
+
data.tar.gz: cc9c187003514356d851ad8b01f7da6df7f54b6825c56c8b76c5ed3106e8aba2
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 425e7f130492105c22bcac894e31d715eda5c739ac0bc117adca57a1bdd9f28437b92263f7f4b1a8cbe8d3eafbfb954bb74604df11b39430b7cbd55e32d7a7df
|
|
7
|
+
data.tar.gz: '0034998e52a8f13bc8088e7dc9f74d9de202e5b179b309b9b065ef093129ff7add37ab54274816cc8774798c3dd4888578fdb66cff18947215c869e123ce47fe'
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.1.0] - Unreleased
|
|
4
|
+
|
|
5
|
+
- Add an offline audit of rendered Jekyll publications.
|
|
6
|
+
- Report broken local references, conflicting document identity, structural markup problems, and observable metadata contradictions.
|
|
7
|
+
- Provide configurable console and JSON reports, rule selection, explanations, suppressions, and bounded resource limits.
|
|
8
|
+
- Add the `jekyll agent:audit` command with isolated temporary builds and generated API documentation.
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2026 Lucian Ghinda
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
data/README.md
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# jekyll-agent-audit
|
|
2
|
+
|
|
3
|
+
An offline audit of rendered Jekyll publications. It finds broken local references, conflicting document identity, structural markup problems, and observable metadata contradictions. It does not predict search rankings or AI citations, score pages, rewrite content, or check deployed HTTP behavior.
|
|
4
|
+
|
|
5
|
+
## Install and run
|
|
6
|
+
|
|
7
|
+
Add the gem to your site's **Gemfile**, in the command-loading group:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
group :jekyll_plugins do
|
|
11
|
+
gem "jekyll-agent-audit", "~> 0.1.0"
|
|
12
|
+
end
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
For an unpublished local checkout, add `path: "/path/to/jekyll-agent-audit"` to that declaration. Run `bundle install`, then:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
bundle exec jekyll agent:audit
|
|
19
|
+
bundle exec jekyll agent:audit --format json --output tmp/agent-audit.json
|
|
20
|
+
bundle exec jekyll agent:audit --config _config.yml,_config.production.yml
|
|
21
|
+
bundle exec jekyll agent:audit --fail-on warning
|
|
22
|
+
bundle exec jekyll agent:audit --only links.target_missing,identity.canonical_multiple
|
|
23
|
+
bundle exec jekyll agent:audit --list-rules --format json
|
|
24
|
+
bundle exec jekyll agent:audit --explain identity.canonical_multiple
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Putting the gem only under `_config.yml`'s `plugins` setting is too late for initial command discovery. See [Jekyll's command integration documentation](https://jekyllrb.com/docs/plugins/commands/).
|
|
28
|
+
|
|
29
|
+
The command makes one full build in a temporary directory, with a separate temporary cache, and inspects the final output. Existing `_site` output is preserved. Build logs go to stderr; JSON stdout contains one report. `--output` writes atomically. Merely loading the gem does not audit an ordinary `jekyll build`.
|
|
30
|
+
|
|
31
|
+
The analyzer performs no network requests. Your site's ordinary build plugins retain their own behavior, including any network requests or custom filesystem writes they perform. Temporary build isolation cannot constrain arbitrary third-party plugin side effects.
|
|
32
|
+
|
|
33
|
+
## Findings and exit codes
|
|
34
|
+
|
|
35
|
+
The default release enables these 17 rules:
|
|
36
|
+
|
|
37
|
+
| Severity | Rules |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| Error | `architecture.output_collision`, `links.target_missing`, `links.fragment_missing`, `identity.canonical_invalid`, `identity.canonical_multiple`, `identity.canonical_target_missing`, `structure.id_duplicate`, `provenance.jsonld_invalid` |
|
|
40
|
+
| Warning | `architecture.orphan`, `structure.title_missing`, `structure.heading_empty`, `structure.link_unnamed`, `provenance.date_invalid`, `provenance.date_order`, `provenance.metadata_conflict` |
|
|
41
|
+
| Info | `structure.h1_absent`, `structure.heading_jump` |
|
|
42
|
+
|
|
43
|
+
`--explain RULE` gives applicability, evidence, limitations, and remediation. Deferred catalog rules cannot be selected. Multiple H1s, an external canonical, no modification date, long prose, and no external citations are acceptable by themselves.
|
|
44
|
+
|
|
45
|
+
| Exit | Meaning |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| 0 | Completed; no active findings meet the failure policy |
|
|
48
|
+
| 1 | Completed; active errors, or warnings with `--fail-on warning` |
|
|
49
|
+
| 2 | Invalid configuration/invocation, failed build/report write, resource limit, or incomplete supported-input analysis |
|
|
50
|
+
| 130 | Interrupted by SIGINT |
|
|
51
|
+
|
|
52
|
+
Default `fail_on: error` leaves warnings and info nonblocking. `none` disables finding-based failure; operational failures still return 2. A build with no HTML returns 2. Discovery always reports **not assessed**, owned by `jekyll-agent-discovery`.
|
|
53
|
+
|
|
54
|
+
## Configuration
|
|
55
|
+
|
|
56
|
+
These are the defaults, under `_config.yml`. CLI audit options override them after ordinary Jekyll config layering. Jekyll environment, drafts, future posts, URL, and baseurl retain the site's configuration.
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
agent_audit:
|
|
60
|
+
fail_on: error
|
|
61
|
+
format: console
|
|
62
|
+
include: ["**/*"]
|
|
63
|
+
exclude: []
|
|
64
|
+
content:
|
|
65
|
+
selector: null
|
|
66
|
+
exclude_selectors: [nav, footer, aside, script, style, template]
|
|
67
|
+
metadata:
|
|
68
|
+
selectors:
|
|
69
|
+
author: null
|
|
70
|
+
publisher: null
|
|
71
|
+
published: null
|
|
72
|
+
modified: null
|
|
73
|
+
graph:
|
|
74
|
+
roots: ["/"]
|
|
75
|
+
routes:
|
|
76
|
+
directory_index: index.html
|
|
77
|
+
external_paths: []
|
|
78
|
+
aliases: {}
|
|
79
|
+
rules: {}
|
|
80
|
+
suppressions: []
|
|
81
|
+
limits:
|
|
82
|
+
max_html_bytes: 5242880
|
|
83
|
+
max_jsonld_bytes: 1048576
|
|
84
|
+
max_documents: 50000
|
|
85
|
+
max_edges: 1000000
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Unknown options, rules, invalid CSS selectors, alias cycles, and malformed limits are rejected. Disable a rule with `rules: {structure.heading_jump: {enabled: false}}`. `--only` intersects enabled rules and cannot re-enable one.
|
|
89
|
+
|
|
90
|
+
Include/exclude patterns match source-relative paths using Ruby `File.fnmatch?` pathname/glob semantics; exclusion wins. Excluded pages still supply links and targets to the graph. Generated HTML is included with a stable generated identity and a null source path when no source mapping is known.
|
|
91
|
+
|
|
92
|
+
Graph roots are site-relative: `/` becomes `/project/` when `baseurl: /project`. Roots must exist. Route aliases and `external_paths` use full public paths, including baseurl. For example:
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
agent_audit:
|
|
96
|
+
routes:
|
|
97
|
+
external_paths: ["/project/api/**"]
|
|
98
|
+
aliases:
|
|
99
|
+
/project/old-guide/: /project/guide/
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
These declarations describe hosting assumptions; they do not create or verify redirects. Assets are valid local targets. Directory-index aliases are proven by the emitted index file; `/guide` is not automatically equivalent to `/guide/`. Query strings stay in observations while target existence uses the path.
|
|
103
|
+
|
|
104
|
+
Content selection uses page `agent_audit.content.selector`, site selector, unique `main`, unique main-role landmark, then unique `article`. Body fallback supports whole-document checks and skips content-sensitive headings. Ambiguous selectors produce coverage diagnostics. Metadata date selectors read machine `datetime` attributes, never free-form prose.
|
|
105
|
+
|
|
106
|
+
## Suppressions
|
|
107
|
+
|
|
108
|
+
Suppressions retain findings in JSON and require a reason. Site suppressions require source path scope and may specify a fingerprint. `until` is inclusive in the report's UTC reference date.
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
agent_audit:
|
|
112
|
+
suppressions:
|
|
113
|
+
- rule: architecture.orphan
|
|
114
|
+
paths: ["landing/private-preview.md"]
|
|
115
|
+
reason: "Linked only from a customer email."
|
|
116
|
+
until: "2026-12-31"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Page front matter can use:
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
agent_audit:
|
|
123
|
+
suppress:
|
|
124
|
+
- rule: structure.h1_absent
|
|
125
|
+
reason: "The layout renders the title outside main."
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Expired suppressions do not hide findings. Unused suppressions generate notices. Collisions require a site suppression with primary-owner scope and a fingerprint. Disabling a rule appears as disabled coverage, never a clean result.
|
|
129
|
+
|
|
130
|
+
## Reports and interpretation
|
|
131
|
+
|
|
132
|
+
Console and JSON share one report. The [JSON schema](schema/report-1.0.json) is versioned `1.0`; consumers should tolerate additive fields and use rule IDs instead of parsing message text. Findings preserve evidence level, observation, rendered location, related locations, remediation, fingerprint, and suppression. Source lines are null unless an actual source mapping exists; rendered HTML lines are not Markdown source lines.
|
|
133
|
+
|
|
134
|
+
The [example JSON report](docs/example-report.json) was generated by a fixture with a broken local link, no H1, and an explicit modification date preceding publication.
|
|
135
|
+
|
|
136
|
+
Fingerprints exclude line numbers, temporary paths, message wording, and timestamps. Findings and coverage are deterministically ordered; run clocks and timings are volatile. Reports contain bounded observations, not article bodies. They can still reveal unpublished paths, so choose artifact access and retention accordingly.
|
|
137
|
+
|
|
138
|
+
For every rule, `candidate = evaluated + not_applicable + skipped`. Evaluated includes clean and finding-producing applications. Suppressing a finding does not change coverage. Counts describe local observations; there is no quality percentage.
|
|
139
|
+
|
|
140
|
+
## Development and release status
|
|
141
|
+
|
|
142
|
+
```sh
|
|
143
|
+
bundle install
|
|
144
|
+
bundle exec rake test
|
|
145
|
+
bundle exec rake lint
|
|
146
|
+
gem build jekyll-agent-audit.gemspec
|
|
147
|
+
ruby script/benchmark.rb
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Generated documentation
|
|
152
|
+
|
|
153
|
+
Generate Markdown API documentation and the LLM index from the Ruby source:
|
|
154
|
+
|
|
155
|
+
```sh
|
|
156
|
+
bundle exec rake docs
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
This replaces `doc/` with fresh YARD Markdown, updates the documentation index in
|
|
160
|
+
`doc/Jekyll/AgentAudit.md`, and writes `llms.txt` with links relative to the gem
|
|
161
|
+
root. Both namespaces are indexed: the library under `Jekyll::AgentAudit` and the
|
|
162
|
+
Jekyll subcommand under `Jekyll::Commands::AgentAudit`. The generated files are
|
|
163
|
+
checked in and shipped with the gem; `yard` and `yard-markdown` stay development
|
|
164
|
+
dependencies. Authored guides belong in `docs/`, not the generated `doc/`.
|
|
165
|
+
|
|
166
|
+
For the individual steps, run `bundle exec rake yard`, then
|
|
167
|
+
`ruby bin/generate_llm.rb`.
|
|
168
|
+
|
|
169
|
+
To verify everything, regenerate documentation, and build the versioned gem and
|
|
170
|
+
SHA-256 checksum in `pkg/`, run:
|
|
171
|
+
|
|
172
|
+
```sh
|
|
173
|
+
bin/prepare_release
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
It stops at the first failure and never commits, tags, pushes, or publishes.
|
|
177
|
+
|
|
178
|
+
The implementation targets Jekyll 4.4.x. See [verification and compatibility](docs/verification.md) for combinations actually tested and benchmark measurements. Do not infer native GitHub Pages compatibility. The runtime HTML parser is explicitly declared as Nokogiri; no optional SEO, sitemap, or Markdown plugin is required.
|
|
179
|
+
|
|
180
|
+
See [limitations and evidence](docs/limitations.md) before interpreting findings. The design specification in the parent workspace is the normative MVP catalog; deferred editorial and duplication analyses are not enabled.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "fileutils"
|
|
4
|
+
require "bundler/gem_tasks"
|
|
5
|
+
require "rake/testtask"
|
|
6
|
+
require "rbconfig"
|
|
7
|
+
require "open3"
|
|
8
|
+
require "yard"
|
|
9
|
+
|
|
10
|
+
ROOT = File.expand_path(__dir__)
|
|
11
|
+
|
|
12
|
+
Rake::TestTask.new do |task|
|
|
13
|
+
task.libs << "lib" << "test"
|
|
14
|
+
task.pattern = "test/**/*_test.rb"
|
|
15
|
+
task.warning = true
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
desc "Check Ruby syntax and compiler warnings in gem code, tests, and scripts"
|
|
19
|
+
task :lint do
|
|
20
|
+
files = Dir["{lib,test,script}/**/*.rb", "bin/*", "*.gemspec", "Gemfile", "Rakefile"].select { |file| File.file?(file) }.sort
|
|
21
|
+
problems = files.filter_map do |file|
|
|
22
|
+
stdout, stderr, status = Open3.capture3(RbConfig.ruby, "-cw", file)
|
|
23
|
+
"#{file}:\n#{stdout}#{stderr}" unless status.success? && stderr.empty?
|
|
24
|
+
end
|
|
25
|
+
abort problems.join("\n") unless problems.empty?
|
|
26
|
+
puts "Syntax and compiler warnings: #{files.length} Ruby files checked."
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
YARD::Rake::YardocTask.new do |task|
|
|
30
|
+
task.before = -> { FileUtils.rm_rf(File.join(ROOT, "doc")) }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
desc "Generate Markdown API documentation and the LLM index"
|
|
34
|
+
task docs: :yard do
|
|
35
|
+
sh RbConfig.ruby, File.join(ROOT, "bin/generate_llm.rb")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
task default: %i[test lint]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Class Jekyll::AgentAudit::BuildInventory <a id="class-Jekyll-AgentAudit-BuildInventory"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Inherits** | Object |
|
|
6
|
+
| **Defined in** | lib/jekyll/agent_audit/build_inventory.rb |
|
|
7
|
+
|
|
8
|
+
## Attributes
|
|
9
|
+
### `collisions` [R] <a id="attribute-i-collisions"></a> <a id="collisions-instance_method"></a>
|
|
10
|
+
Returns the value of attribute collisions.
|
|
11
|
+
|
|
12
|
+
### `diagnostics` [R] <a id="attribute-i-diagnostics"></a> <a id="diagnostics-instance_method"></a>
|
|
13
|
+
Returns the value of attribute diagnostics.
|
|
14
|
+
|
|
15
|
+
### `entries` [R] <a id="attribute-i-entries"></a> <a id="entries-instance_method"></a>
|
|
16
|
+
Returns the value of attribute entries.
|
|
17
|
+
|
|
18
|
+
## Public Instance Methods
|
|
19
|
+
### `capture!()` <a id="method-i-capture-21"></a> <a id="capture!-instance_method"></a>
|
|
20
|
+
Not documented.
|
|
21
|
+
|
|
22
|
+
### `complete?()` <a id="method-i-complete-3F"></a> <a id="complete?-instance_method"></a>
|
|
23
|
+
- **@return** [Boolean]
|
|
24
|
+
|
|
25
|
+
### `finalize!()` <a id="method-i-finalize-21"></a> <a id="finalize!-instance_method"></a>
|
|
26
|
+
Not documented.
|
|
27
|
+
|
|
28
|
+
### `initialize(site, configuration)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
|
|
29
|
+
- **@return** [BuildInventory] a new instance of BuildInventory
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Class Jekyll::AgentAudit::Configuration <a id="class-Jekyll-AgentAudit-Configuration"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Inherits** | Object |
|
|
6
|
+
| **Defined in** | lib/jekyll/agent_audit/configuration.rb |
|
|
7
|
+
|
|
8
|
+
## Constants
|
|
9
|
+
### `DEFAULTS` <a id="constant-DEFAULTS"></a> <a id="DEFAULTS-constant"></a>
|
|
10
|
+
Not documented.
|
|
11
|
+
|
|
12
|
+
### `LIMITS` <a id="constant-LIMITS"></a> <a id="LIMITS-constant"></a>
|
|
13
|
+
Not documented.
|
|
14
|
+
|
|
15
|
+
### `TOP_KEYS` <a id="constant-TOP_KEYS"></a> <a id="TOP_KEYS-constant"></a>
|
|
16
|
+
Not documented.
|
|
17
|
+
|
|
18
|
+
## Attributes
|
|
19
|
+
### `raw` [R] <a id="attribute-i-raw"></a> <a id="raw-instance_method"></a>
|
|
20
|
+
Returns the value of attribute raw.
|
|
21
|
+
|
|
22
|
+
## Public Instance Methods
|
|
23
|
+
### `[] (key)` <a id="method-i--5B-5D"></a> <a id="[]-instance_method"></a>
|
|
24
|
+
Not documented.
|
|
25
|
+
|
|
26
|
+
### `enabled_rules()` <a id="method-i-enabled_rules"></a> <a id="enabled_rules-instance_method"></a>
|
|
27
|
+
Not documented.
|
|
28
|
+
|
|
29
|
+
### `expired_suppressions(now: = Date.today)` <a id="method-i-expired_suppressions"></a> <a id="expired_suppressions-instance_method"></a>
|
|
30
|
+
Not documented.
|
|
31
|
+
|
|
32
|
+
### `initialize(raw_namespace = {}, overrides = {})` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
|
|
33
|
+
- **@return** [Configuration] a new instance of Configuration
|
|
34
|
+
|
|
35
|
+
### `selected?(source_path)` <a id="method-i-selected-3F"></a> <a id="selected?-instance_method"></a>
|
|
36
|
+
- **@return** [Boolean]
|
|
37
|
+
|
|
38
|
+
### `suppression_for(rule_id, source_path: = nil, fingerprint: = nil, now: = Date.today)` <a id="method-i-suppression_for"></a> <a id="suppression_for-instance_method"></a>
|
|
39
|
+
Not documented.
|
|
40
|
+
|
|
41
|
+
### `to_h()` <a id="method-i-to_h"></a> <a id="to_h-instance_method"></a>
|
|
42
|
+
Not documented.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Class Jekyll::AgentAudit::Extractor <a id="class-Jekyll-AgentAudit-Extractor"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Inherits** | Object |
|
|
6
|
+
| **Defined in** | lib/jekyll/agent_audit/extractor.rb |
|
|
7
|
+
|
|
8
|
+
## Constants
|
|
9
|
+
### `MAX_EXCERPT_BYTES` <a id="constant-MAX_EXCERPT_BYTES"></a> <a id="MAX_EXCERPT_BYTES-constant"></a>
|
|
10
|
+
Not documented.
|
|
11
|
+
|
|
12
|
+
### `MAX_NAME_BYTES` <a id="constant-MAX_NAME_BYTES"></a> <a id="MAX_NAME_BYTES-constant"></a>
|
|
13
|
+
Not documented.
|
|
14
|
+
|
|
15
|
+
## Public Instance Methods
|
|
16
|
+
### `extract(entry)` <a id="method-i-extract"></a> <a id="extract-instance_method"></a>
|
|
17
|
+
Not documented.
|
|
18
|
+
|
|
19
|
+
### `initialize(configuration)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
|
|
20
|
+
- **@return** [Extractor] a new instance of Extractor
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Class Jekyll::AgentAudit::Finding <a id="class-Jekyll-AgentAudit-Finding"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Inherits** | Object |
|
|
6
|
+
| **Defined in** | lib/jekyll/agent_audit/finding.rb |
|
|
7
|
+
|
|
8
|
+
## Constants
|
|
9
|
+
### `SEVERITY_ORDER` <a id="constant-SEVERITY_ORDER"></a> <a id="SEVERITY_ORDER-constant"></a>
|
|
10
|
+
Not documented.
|
|
11
|
+
|
|
12
|
+
## Attributes
|
|
13
|
+
### `data` [R] <a id="attribute-i-data"></a> <a id="data-instance_method"></a>
|
|
14
|
+
Returns the value of attribute data.
|
|
15
|
+
|
|
16
|
+
## Public Instance Methods
|
|
17
|
+
### `[] (key)` <a id="method-i--5B-5D"></a> <a id="[]-instance_method"></a>
|
|
18
|
+
Not documented.
|
|
19
|
+
|
|
20
|
+
### `initialize(draft = nil, registry: = Registry, **attributes)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
|
|
21
|
+
- **@return** [Finding] a new instance of Finding
|
|
22
|
+
|
|
23
|
+
### `severity_rank()` <a id="method-i-severity_rank"></a> <a id="severity_rank-instance_method"></a>
|
|
24
|
+
Not documented.
|
|
25
|
+
|
|
26
|
+
### `suppressed?()` <a id="method-i-suppressed-3F"></a> <a id="suppressed?-instance_method"></a>
|
|
27
|
+
- **@return** [Boolean]
|
|
28
|
+
|
|
29
|
+
### `to_h()` <a id="method-i-to_h"></a> <a id="to_h-instance_method"></a>
|
|
30
|
+
Not documented.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Class Jekyll::AgentAudit::LinkGraph <a id="class-Jekyll-AgentAudit-LinkGraph"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Inherits** | Object |
|
|
6
|
+
| **Defined in** | lib/jekyll/agent_audit/link_graph.rb |
|
|
7
|
+
|
|
8
|
+
## Attributes
|
|
9
|
+
### `diagnostics` [R] <a id="attribute-i-diagnostics"></a> <a id="diagnostics-instance_method"></a>
|
|
10
|
+
Returns the value of attribute diagnostics.
|
|
11
|
+
|
|
12
|
+
## Public Instance Methods
|
|
13
|
+
### `edges()` <a id="method-i-edges"></a> <a id="edges-instance_method"></a>
|
|
14
|
+
Not documented.
|
|
15
|
+
|
|
16
|
+
### `edges_for(document)` <a id="method-i-edges_for"></a> <a id="edges_for-instance_method"></a>
|
|
17
|
+
Not documented.
|
|
18
|
+
|
|
19
|
+
### `incoming(document)` <a id="method-i-incoming"></a> <a id="incoming-instance_method"></a>
|
|
20
|
+
Not documented.
|
|
21
|
+
|
|
22
|
+
### `initialize(documents, resolver, configuration, site_config = {})` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
|
|
23
|
+
- **@return** [LinkGraph] a new instance of LinkGraph
|
|
24
|
+
|
|
25
|
+
### `reachable()` <a id="method-i-reachable"></a> <a id="reachable-instance_method"></a>
|
|
26
|
+
Not documented.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Module Jekyll::AgentAudit::Registry <a id="module-Jekyll-AgentAudit-Registry"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Defined in** | lib/jekyll/agent_audit/registry.rb |
|
|
6
|
+
|
|
7
|
+
## Constants
|
|
8
|
+
### `DEFERRED_RULES` <a id="constant-DEFERRED_RULES"></a> <a id="DEFERRED_RULES-constant"></a>
|
|
9
|
+
Not documented.
|
|
10
|
+
|
|
11
|
+
### `DETAILS` <a id="constant-DETAILS"></a> <a id="DETAILS-constant"></a>
|
|
12
|
+
category, evidence, severity, source keys, applicability, required inputs, limitations, remediation
|
|
13
|
+
:
|
|
14
|
+
|
|
15
|
+
### `MVP_RULES` <a id="constant-MVP_RULES"></a> <a id="MVP_RULES-constant"></a>
|
|
16
|
+
Not documented.
|
|
17
|
+
|
|
18
|
+
### `SEVERITIES` <a id="constant-SEVERITIES"></a> <a id="SEVERITIES-constant"></a>
|
|
19
|
+
Not documented.
|
|
20
|
+
|
|
21
|
+
### `SOURCE_URLS` <a id="constant-SOURCE_URLS"></a> <a id="SOURCE_URLS-constant"></a>
|
|
22
|
+
Not documented.
|
|
23
|
+
|
|
24
|
+
## Public Class Methods
|
|
25
|
+
### `[] (id)` <a id="method-c--5B-5D"></a> <a id="[]-class_method"></a>
|
|
26
|
+
Not documented.
|
|
27
|
+
|
|
28
|
+
### `all()` <a id="method-c-all"></a> <a id="all-class_method"></a>
|
|
29
|
+
Not documented.
|
|
30
|
+
|
|
31
|
+
### `deferred?(id)` <a id="method-c-deferred-3F"></a> <a id="deferred?-class_method"></a>
|
|
32
|
+
- **@return** [Boolean]
|
|
33
|
+
|
|
34
|
+
### `known?(id)` <a id="method-c-known-3F"></a> <a id="known?-class_method"></a>
|
|
35
|
+
- **@return** [Boolean]
|
|
36
|
+
|
|
37
|
+
### `mvp_ids()` <a id="method-c-mvp_ids"></a> <a id="mvp_ids-class_method"></a>
|
|
38
|
+
Not documented.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Class Jekyll::AgentAudit::Report <a id="class-Jekyll-AgentAudit-Report"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Inherits** | Object |
|
|
6
|
+
| **Defined in** | lib/jekyll/agent_audit/report.rb |
|
|
7
|
+
|
|
8
|
+
## Constants
|
|
9
|
+
### `SCHEMA_VERSION` <a id="constant-SCHEMA_VERSION"></a> <a id="SCHEMA_VERSION-constant"></a>
|
|
10
|
+
Not documented.
|
|
11
|
+
|
|
12
|
+
## Attributes
|
|
13
|
+
### `data` [R] <a id="attribute-i-data"></a> <a id="data-instance_method"></a>
|
|
14
|
+
Returns the value of attribute data.
|
|
15
|
+
|
|
16
|
+
## Public Instance Methods
|
|
17
|
+
### `exit_code()` <a id="method-i-exit_code"></a> <a id="exit_code-instance_method"></a>
|
|
18
|
+
Not documented.
|
|
19
|
+
|
|
20
|
+
### `findings()` <a id="method-i-findings"></a> <a id="findings-instance_method"></a>
|
|
21
|
+
Not documented.
|
|
22
|
+
|
|
23
|
+
### `initialize(findings: = [], coverage: = {}, diagnostics: = [], documents_inspected: = 0, options: = {}, site_config: = {}, complete: = true, reference_time: = Time.now.utc, operational_error: = false, effective_configuration: = nil, build: = nil)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
|
|
24
|
+
- **@return** [Report] a new instance of Report
|
|
25
|
+
|
|
26
|
+
### `to_h()` <a id="method-i-to_h"></a> <a id="to_h-instance_method"></a>
|
|
27
|
+
Not documented.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Module Jekyll::AgentAudit::Reporters::Console <a id="module-Jekyll-AgentAudit-Reporters-Console"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Defined in** | lib/jekyll/agent_audit/reporters/console.rb |
|
|
6
|
+
|
|
7
|
+
## Constants
|
|
8
|
+
### `MAX_VALUE_LENGTH` <a id="constant-MAX_VALUE_LENGTH"></a> <a id="MAX_VALUE_LENGTH-constant"></a>
|
|
9
|
+
Not documented.
|
|
10
|
+
|
|
11
|
+
### `SEVERITIES` <a id="constant-SEVERITIES"></a> <a id="SEVERITIES-constant"></a>
|
|
12
|
+
Not documented.
|
|
13
|
+
|
|
14
|
+
## Public Class Methods
|
|
15
|
+
### `render(report, verbose: = false)` <a id="method-c-render"></a> <a id="render-class_method"></a>
|
|
16
|
+
Not documented.
|
|
17
|
+
|
|
18
|
+
### `result_line(report, data)` <a id="method-c-result_line"></a> <a id="result_line-class_method"></a>
|
|
19
|
+
Not documented.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Module Jekyll::AgentAudit::Reporters::JSON <a id="module-Jekyll-AgentAudit-Reporters-JSON"></a>
|
|
2
|
+
|
|
3
|
+
| | |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **Defined in** | lib/jekyll/agent_audit/reporters/json.rb |
|
|
6
|
+
|
|
7
|
+
## Public Class Methods
|
|
8
|
+
### `render(report)` <a id="method-c-render"></a> <a id="render-class_method"></a>
|
|
9
|
+
Not documented.
|