bitwarden_workflow_linter 0.4.3__tar.gz → 0.4.5__tar.gz
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.
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/cd.yml +1 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/enforce-labels.yml +1 -1
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/PKG-INFO +1 -1
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/__about__.py +1 -1
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/models/step.py +6 -3
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_step_approved.py +9 -0
- bitwarden_workflow_linter-0.4.5/tests/test_step.py +144 -0
- bitwarden_workflow_linter-0.4.3/tests/test_step.py +0 -78
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.editorconfig +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.gitattributes +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/CODEOWNERS +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/renovate.json +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/_version_type.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/ci.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/scan.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/update_actions.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.gitignore +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.husky/pre-commit +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.python-version +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/CONTRIBUTING.md +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/LICENSE.txt +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/Pipfile +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/Pipfile.lock +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/README.md +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/SECURITY.md +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/Taskfile.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/package-lock.json +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/package.json +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/pylintrc +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/pyproject.toml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/pyproject.toml.tpl +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/settings.yaml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/__init__.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/actions.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/cli.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/default_actions.json +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/default_settings.yaml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/lint.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/load.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/models/__init__.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/models/job.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/models/workflow.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rule.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/__init__.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/job_environment_prefix.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/name_capitalized.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/name_exists.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/pinned_job_runner.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/step_approved.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/step_pinned.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/rules/underscore_outputs.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/src/bitwarden_workflow_linter/utils.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/__init__.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/conftest.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test-alt.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test-min-incorrect.yaml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test-min.yaml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test-outputs-incorrect.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test.yml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test_a.yaml +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/__init__.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_job_environment_prefix.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_name_capitalized.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_name_exists.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_pinned_job_runner.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_step_pinned.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_underscore_output.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/test_job.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/test_lint.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/test_load.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/test_rule.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/test_utils.py +0 -0
- {bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/test_workflow.py +0 -0
@@ -9,7 +9,7 @@ jobs:
|
|
9
9
|
uses: bitwarden/gh-actions/.github/workflows/_enforce-labels.yml@main
|
10
10
|
|
11
11
|
enforce-version-label:
|
12
|
-
if: "!(contains(github.event.pull_request.labels.*.name, 'version:major') || contains(github.event.pull_request.labels.*.name, 'version:minor') || contains(github.event.pull_request.labels.*.name, 'version:patch'))"
|
12
|
+
if: "!(contains(github.event.pull_request.labels.*.name, 'version:major') || contains(github.event.pull_request.labels.*.name, 'version:minor') || contains(github.event.pull_request.labels.*.name, 'version:patch')) || contains(github.event.pull_request.labels.*.name, 'version:skip')"
|
13
13
|
name: Enforce version label
|
14
14
|
runs-on: ubuntu-22.04
|
15
15
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: bitwarden_workflow_linter
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.5
|
4
4
|
Summary: Custom GitHub Action Workflow Linter
|
5
5
|
Project-URL: Homepage, https://github.com/bitwarden/workflow-linter
|
6
6
|
Project-URL: Issues, https://github.com/bitwarden/workflow-linter/issues
|
@@ -39,10 +39,13 @@ class Step:
|
|
39
39
|
new_step.key = idx
|
40
40
|
new_step.job = job
|
41
41
|
|
42
|
-
if
|
43
|
-
|
42
|
+
if new_step.uses:
|
43
|
+
if "uses" in data.ca.items and data.ca.items["uses"][2]:
|
44
|
+
new_step.uses_comment = data.ca.items["uses"][2].value.replace("\n", "")
|
45
|
+
new_step.uses_version = new_step.uses_comment.split(" ")[-1]
|
44
46
|
if "@" in new_step.uses:
|
45
47
|
new_step.uses_path, new_step.uses_ref = new_step.uses.split("@")
|
46
|
-
|
48
|
+
else:
|
49
|
+
new_step.uses_path = new_step.uses
|
47
50
|
|
48
51
|
return new_step
|
@@ -70,6 +70,11 @@ jobs:
|
|
70
70
|
- name: Checkout Branch
|
71
71
|
uses: joseph-flinn/action-DNE@main
|
72
72
|
|
73
|
+
- name: Checkout Branch with Ref
|
74
|
+
uses: notbitwarden/subfolder/action-DNE@main
|
75
|
+
with:
|
76
|
+
ref: main
|
77
|
+
|
73
78
|
"""
|
74
79
|
return WorkflowBuilder.build(workflow=yaml.load(workflow), from_file=False)
|
75
80
|
|
@@ -98,6 +103,10 @@ def test_rule_on_incorrect_workflow(rule, incorrect_workflow):
|
|
98
103
|
assert result is False
|
99
104
|
assert "New Action detected" in message
|
100
105
|
|
106
|
+
result, message = rule.fn(incorrect_workflow.jobs["job-key"].steps[1])
|
107
|
+
assert result is False
|
108
|
+
assert "New Action detected" in message
|
109
|
+
|
101
110
|
|
102
111
|
def test_fail_compatibility(rule, correct_workflow):
|
103
112
|
finding = rule.execute(correct_workflow)
|
@@ -0,0 +1,144 @@
|
|
1
|
+
"""Test src/bitwarden_workflow_linter/models/step.py."""
|
2
|
+
|
3
|
+
import json
|
4
|
+
import pytest
|
5
|
+
|
6
|
+
from ruamel.yaml import YAML
|
7
|
+
|
8
|
+
from src.bitwarden_workflow_linter.models.step import Step
|
9
|
+
|
10
|
+
|
11
|
+
@pytest.fixture(name="default_step")
|
12
|
+
def fixture_default_step():
|
13
|
+
step_str = """\
|
14
|
+
name: Default Step
|
15
|
+
run: echo "test"
|
16
|
+
"""
|
17
|
+
yaml = YAML()
|
18
|
+
step_yaml = yaml.load(step_str)
|
19
|
+
return Step.init(0, "default", step_yaml)
|
20
|
+
|
21
|
+
|
22
|
+
@pytest.fixture(name="uses_step")
|
23
|
+
def fixture_uses_step():
|
24
|
+
step_str = """\
|
25
|
+
name: Download Artifacts
|
26
|
+
uses: bitwarden/download-artifacts@main # v1.0.0
|
27
|
+
with:
|
28
|
+
workflow: upload-test-artifacts.yml
|
29
|
+
artifacts: artifact
|
30
|
+
path: artifact
|
31
|
+
branch: main
|
32
|
+
|
33
|
+
"""
|
34
|
+
yaml = YAML()
|
35
|
+
step_yaml = yaml.load(step_str)
|
36
|
+
return Step.init(0, "default", step_yaml)
|
37
|
+
|
38
|
+
|
39
|
+
@pytest.fixture(name="uses_step_no_comments")
|
40
|
+
def fixture_uses_step_no_comments():
|
41
|
+
step_str = """\
|
42
|
+
name: Download Artifacts
|
43
|
+
uses: bitwarden/download-artifacts@main
|
44
|
+
with:
|
45
|
+
workflow: upload-test-artifacts.yml
|
46
|
+
artifacts: artifact
|
47
|
+
path: artifact
|
48
|
+
branch: main
|
49
|
+
|
50
|
+
"""
|
51
|
+
yaml = YAML()
|
52
|
+
step_yaml = yaml.load(step_str)
|
53
|
+
return Step.init(0, "default", step_yaml)
|
54
|
+
|
55
|
+
|
56
|
+
@pytest.fixture(name="uses_step_no_ref")
|
57
|
+
def fixture_uses_step_no_ref():
|
58
|
+
step_str = """\
|
59
|
+
name: Run Local Workflow
|
60
|
+
uses: ./.github/workflows/_local.yml
|
61
|
+
"""
|
62
|
+
yaml = YAML()
|
63
|
+
step_yaml = yaml.load(step_str)
|
64
|
+
return Step.init(0, "default", step_yaml)
|
65
|
+
|
66
|
+
|
67
|
+
@pytest.fixture(name="uses_step_no_ref_with_comments")
|
68
|
+
def fixture_uses_step_no_ref_with_comments():
|
69
|
+
step_str = """\
|
70
|
+
name: Run Local Workflow
|
71
|
+
uses: ./.github/workflows/_local.yml # A comment
|
72
|
+
"""
|
73
|
+
yaml = YAML()
|
74
|
+
step_yaml = yaml.load(step_str)
|
75
|
+
return Step.init(0, "default", step_yaml)
|
76
|
+
|
77
|
+
|
78
|
+
def test_step_default(default_step):
|
79
|
+
assert default_step.key == 0
|
80
|
+
assert default_step.job == "default"
|
81
|
+
assert default_step.name == "Default Step"
|
82
|
+
assert default_step.env is None
|
83
|
+
assert default_step.uses is None
|
84
|
+
assert default_step.uses_with is None
|
85
|
+
assert default_step.run == 'echo "test"'
|
86
|
+
|
87
|
+
|
88
|
+
def test_step_no_keyword_field(default_step):
|
89
|
+
assert default_step.uses_with is None
|
90
|
+
assert "uses_with" not in default_step.to_json()
|
91
|
+
|
92
|
+
|
93
|
+
def test_step_extra_kwargs(default_step):
|
94
|
+
with pytest.raises(Exception):
|
95
|
+
assert default_step.extra == "test"
|
96
|
+
|
97
|
+
|
98
|
+
def test_step_keyword_field(uses_step):
|
99
|
+
expected_response = {
|
100
|
+
"workflow": "upload-test-artifacts.yml",
|
101
|
+
"artifacts": "artifact",
|
102
|
+
"path": "artifact",
|
103
|
+
"branch": "main",
|
104
|
+
}
|
105
|
+
|
106
|
+
step_json = uses_step.to_json()
|
107
|
+
assert uses_step.key == 0
|
108
|
+
assert "uses_with" not in step_json
|
109
|
+
assert "with" in step_json
|
110
|
+
assert json.loads(uses_step.to_json())["with"] == expected_response
|
111
|
+
|
112
|
+
|
113
|
+
def test_step_comment(uses_step):
|
114
|
+
assert uses_step.key == 0
|
115
|
+
assert uses_step.job == "default"
|
116
|
+
assert uses_step.uses_ref == "main"
|
117
|
+
assert uses_step.uses_version == "v1.0.0"
|
118
|
+
assert uses_step.uses_comment == "# v1.0.0"
|
119
|
+
|
120
|
+
|
121
|
+
def test_step_no_comments(uses_step_no_comments):
|
122
|
+
assert uses_step_no_comments.key == 0
|
123
|
+
assert uses_step_no_comments.job == "default"
|
124
|
+
assert uses_step_no_comments.uses_ref == "main"
|
125
|
+
assert uses_step_no_comments.uses_version is None
|
126
|
+
assert uses_step_no_comments.uses_comment is None
|
127
|
+
|
128
|
+
|
129
|
+
def test_step_no_ref(uses_step_no_ref):
|
130
|
+
assert uses_step_no_ref.key == 0
|
131
|
+
assert uses_step_no_ref.job == "default"
|
132
|
+
assert uses_step_no_ref.uses_ref is None
|
133
|
+
assert uses_step_no_ref.uses_version is None
|
134
|
+
assert uses_step_no_ref.uses_comment is None
|
135
|
+
|
136
|
+
|
137
|
+
def test_step_no_ref_with_comments(uses_step_no_ref_with_comments):
|
138
|
+
assert uses_step_no_ref_with_comments.key == 0
|
139
|
+
assert uses_step_no_ref_with_comments.job == "default"
|
140
|
+
assert uses_step_no_ref_with_comments.uses_ref is None
|
141
|
+
assert (
|
142
|
+
uses_step_no_ref_with_comments.uses_version == "comment"
|
143
|
+
) # We are not currently validating the version matches a specific format
|
144
|
+
assert uses_step_no_ref_with_comments.uses_comment == "# A comment"
|
@@ -1,78 +0,0 @@
|
|
1
|
-
"""Test src/bitwarden_workflow_linter/models/step.py."""
|
2
|
-
|
3
|
-
import json
|
4
|
-
import pytest
|
5
|
-
|
6
|
-
from ruamel.yaml import YAML
|
7
|
-
|
8
|
-
from src.bitwarden_workflow_linter.models.step import Step
|
9
|
-
|
10
|
-
|
11
|
-
@pytest.fixture(name="default_step")
|
12
|
-
def fixture_default_step():
|
13
|
-
step_str = """\
|
14
|
-
name: Default Step
|
15
|
-
run: echo "test"
|
16
|
-
"""
|
17
|
-
yaml = YAML()
|
18
|
-
step_yaml = yaml.load(step_str)
|
19
|
-
return Step.init(0, "default", step_yaml)
|
20
|
-
|
21
|
-
|
22
|
-
@pytest.fixture(name="uses_step")
|
23
|
-
def fixture_uses_step():
|
24
|
-
step_str = """\
|
25
|
-
name: Download Artifacts
|
26
|
-
uses: bitwarden/download-artifacts@main # v1.0.0
|
27
|
-
with:
|
28
|
-
workflow: upload-test-artifacts.yml
|
29
|
-
artifacts: artifact
|
30
|
-
path: artifact
|
31
|
-
branch: main
|
32
|
-
|
33
|
-
"""
|
34
|
-
yaml = YAML()
|
35
|
-
step_yaml = yaml.load(step_str)
|
36
|
-
return Step.init(0, "default", step_yaml)
|
37
|
-
|
38
|
-
|
39
|
-
def test_step_default(default_step):
|
40
|
-
assert default_step.key == 0
|
41
|
-
assert default_step.job == "default"
|
42
|
-
assert default_step.name == "Default Step"
|
43
|
-
assert default_step.env is None
|
44
|
-
assert default_step.uses is None
|
45
|
-
assert default_step.uses_with is None
|
46
|
-
assert default_step.run == 'echo "test"'
|
47
|
-
|
48
|
-
|
49
|
-
def test_step_no_keyword_field(default_step):
|
50
|
-
assert default_step.uses_with is None
|
51
|
-
assert "uses_with" not in default_step.to_json()
|
52
|
-
|
53
|
-
|
54
|
-
def test_step_extra_kwargs(default_step):
|
55
|
-
with pytest.raises(Exception):
|
56
|
-
assert default_step.extra == "test"
|
57
|
-
|
58
|
-
|
59
|
-
def test_step_keyword_field(uses_step):
|
60
|
-
expected_response = {
|
61
|
-
"workflow": "upload-test-artifacts.yml",
|
62
|
-
"artifacts": "artifact",
|
63
|
-
"path": "artifact",
|
64
|
-
"branch": "main",
|
65
|
-
}
|
66
|
-
|
67
|
-
step_json = uses_step.to_json()
|
68
|
-
assert uses_step.key == 0
|
69
|
-
assert "uses_with" not in step_json
|
70
|
-
assert "with" in step_json
|
71
|
-
assert json.loads(uses_step.to_json())["with"] == expected_response
|
72
|
-
|
73
|
-
|
74
|
-
def test_step_comment(uses_step):
|
75
|
-
assert uses_step.key == 0
|
76
|
-
assert uses_step.job == "default"
|
77
|
-
assert uses_step.uses_comment is not None
|
78
|
-
assert uses_step.uses_comment == "# v1.0.0"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/PULL_REQUEST_TEMPLATE.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/ci.yml
RENAMED
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/.github/workflows/scan.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test-alt.yml
RENAMED
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test-min.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/fixtures/test_a.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_name_exists.py
RENAMED
File without changes
|
File without changes
|
{bitwarden_workflow_linter-0.4.3 → bitwarden_workflow_linter-0.4.5}/tests/rules/test_step_pinned.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|