bitwarden_workflow_linter 1.3.2__tar.gz → 1.3.4__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.
Files changed (94) hide show
  1. bitwarden_workflow_linter-1.3.4/.github/copilot-instructions.md +142 -0
  2. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/bwwl_operations.yml +22 -9
  3. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/cd.yml +4 -4
  4. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/ci.yml +1 -1
  5. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/PKG-INFO +1 -1
  6. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/__about__.py +1 -1
  7. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.editorconfig +0 -0
  8. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.gitattributes +0 -0
  9. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/CODEOWNERS +0 -0
  10. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  11. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  12. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/actionlint.yml +0 -0
  13. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/renovate.json +0 -0
  14. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/_version_type.yml +0 -0
  15. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/enforce-labels.yml +0 -0
  16. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/ci.yaml +0 -0
  17. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/example-references/_build.yml +0 -0
  18. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/example-references/_docker.yml +0 -0
  19. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/example-references/_test.yml +0 -0
  20. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/example-references/_version.yml +0 -0
  21. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/example.yaml +0 -0
  22. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/pull_request_target.yml +0 -0
  23. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/examples/scan.yaml +0 -0
  24. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.github/workflows/scan.yml +0 -0
  25. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.gitignore +0 -0
  26. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.husky/pre-commit +0 -0
  27. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/.python-version +0 -0
  28. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/CONTRIBUTING.md +0 -0
  29. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/LICENSE.txt +0 -0
  30. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/Pipfile +0 -0
  31. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/Pipfile.lock +0 -0
  32. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/README.md +0 -0
  33. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/RULE_ROLLOUT.md +0 -0
  34. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/SECURITY.md +0 -0
  35. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/Taskfile.yml +0 -0
  36. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/package-lock.json +0 -0
  37. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/package.json +0 -0
  38. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/pylintrc +0 -0
  39. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/pyproject.toml +0 -0
  40. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/pyproject.toml.tpl +0 -0
  41. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/settings.yaml +0 -0
  42. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/__init__.py +0 -0
  43. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/actionlint_version.yaml +0 -0
  44. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/actions.py +0 -0
  45. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/cli.py +0 -0
  46. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/default_actions.json +0 -0
  47. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/default_settings.yaml +0 -0
  48. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/lint.py +0 -0
  49. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/load.py +0 -0
  50. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/models/__init__.py +0 -0
  51. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/models/job.py +0 -0
  52. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/models/step.py +0 -0
  53. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/models/workflow.py +0 -0
  54. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rule.py +0 -0
  55. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/__init__.py +0 -0
  56. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/check_pr_target.py +0 -0
  57. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/job_environment_prefix.py +0 -0
  58. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/name_capitalized.py +0 -0
  59. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/name_exists.py +0 -0
  60. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/permissions_exist.py +0 -0
  61. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/pinned_job_runner.py +0 -0
  62. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/run_actionlint.py +0 -0
  63. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/step_approved.py +0 -0
  64. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/step_pinned.py +0 -0
  65. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/rules/underscore_outputs.py +0 -0
  66. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/src/bitwarden_workflow_linter/utils.py +0 -0
  67. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/__init__.py +0 -0
  68. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/conftest.py +0 -0
  69. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test-alt.yml +0 -0
  70. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test-min-incorrect.yaml +0 -0
  71. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test-min.yaml +0 -0
  72. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test-outputs-incorrect.yml +0 -0
  73. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test.yml +0 -0
  74. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test_a.yaml +0 -0
  75. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test_workflow.yaml +0 -0
  76. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/fixtures/test_workflow_incorrect.yaml +0 -0
  77. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/__init__.py +0 -0
  78. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_check_pr_target.py +0 -0
  79. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_job_environment_prefix.py +0 -0
  80. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_name_capitalized.py +0 -0
  81. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_name_exists.py +0 -0
  82. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_permissions_exist.py +0 -0
  83. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_pinned_job_runner.py +0 -0
  84. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_run_actionlint.py +0 -0
  85. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_step_approved.py +0 -0
  86. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_step_pinned.py +0 -0
  87. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/rules/test_underscore_output.py +0 -0
  88. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_job.py +0 -0
  89. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_lint.py +0 -0
  90. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_load.py +0 -0
  91. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_rule.py +0 -0
  92. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_step.py +0 -0
  93. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_utils.py +0 -0
  94. {bitwarden_workflow_linter-1.3.2 → bitwarden_workflow_linter-1.3.4}/tests/test_workflow.py +0 -0
@@ -0,0 +1,142 @@
1
+ # Bitwarden Workflow Linter - Copilot Instructions
2
+
3
+ ## Repository Overview
4
+
5
+ **Bitwarden Workflow Linter** is an extensible Python CLI tool that enforces opinionated organization-specific GitHub Action standards.
6
+
7
+ **CRITICAL UNDERSTANDING**: This tool generates and publishes **rules that are consumed across ALL Bitwarden repositories**. Changes to rules affect the entire Bitwarden organization's CI/CD pipelines, not just this repository. Rules are distributed via PyPI and consumed by repositories through the [composite Action](https://github.com/bitwarden/gh-actions/tree/main/lint-workflow).
8
+
9
+ ### High-Level Details
10
+
11
+ - **Type**: Python CLI application and library (~86 Python files)
12
+ - **Language**: Python 3.13.5 (minimum 3.11 supported)
13
+ - **Package Manager**: pipenv for dependencies, hatch for building/publishing
14
+ - **Distribution**: Published to PyPI as `bitwarden_workflow_linter`
15
+ - **CLI Command**: `bwwl`
16
+ - **Organizational Impact**: Rules affect CI/CD across entire Bitwarden codebase
17
+
18
+ ## Build & Development Setup
19
+
20
+ ### Essential Commands (Always run in this order)
21
+
22
+ ```bash
23
+ # Setup (REQUIRED before any development work)
24
+ pipenv install --dev
25
+ pipenv shell
26
+ pip install -e .
27
+
28
+ # Testing (ALWAYS run before submitting changes)
29
+ pytest tests --cov=src
30
+
31
+ # Code quality (REQUIRED before merging to main)
32
+ black .
33
+ pylint --rcfile pylintrc src/ tests/
34
+
35
+ # Type checking (Linux only)
36
+ pytype src
37
+ ```
38
+
39
+ ### Task Runner Shortcuts
40
+
41
+ - `task test:cov` - Run tests with coverage
42
+ - `task fmt` - Format code with black
43
+ - `task lint` - Run pylint
44
+
45
+ ## Key Project Structure
46
+
47
+ **Rules Location**: `src/bitwarden_workflow_linter/rules/` - All linting rules
48
+ **Rule Base Class**: `src/bitwarden_workflow_linter/rule.py` - Extend this for new rules
49
+ **CLI Entry**: `src/bitwarden_workflow_linter/cli.py:main()`
50
+ **Configuration**:
51
+
52
+ - `settings.yaml` (local overrides)
53
+ - `src/bitwarden_workflow_linter/default_settings.yaml` (defaults)
54
+
55
+ ## Rule Development - Organization-Wide Impact
56
+
57
+ **CRITICAL**: Rules developed here are distributed to and enforced across ALL Bitwarden repositories. Every rule change has organization-wide impact.
58
+
59
+ ### Rule Distribution Flow
60
+
61
+ 1. Rules developed/tested in this repository
62
+ 2. Published to PyPI as `bitwarden_workflow_linter`
63
+ 3. Consumed by all Bitwarden repositories via gh-actions/lint-workflow
64
+ 4. Enforced in CI/CD pipelines organization-wide
65
+ 5. Rule failures can block deployments across hundreds of repositories
66
+
67
+ ### Rule Rollout Process (MANDATORY)
68
+
69
+ **Before making ANY rule changes, read `RULE_ROLLOUT.md`** - documents the careful process for organization-wide deployment.
70
+
71
+ **Key principles:**
72
+
73
+ - **Gradual Rollout**: New rules start as `warning`, then upgrade to `error`
74
+ - **Impact Assessment**: Test against representative workflows before activation
75
+ - **Communication**: Coordinate with teams before deploying breaking changes
76
+
77
+ ### Adding New Rules
78
+
79
+ 1. **CRITICAL**: Rules must be implemented, tested, and merged to main BEFORE activation
80
+ 2. **CRITICAL**: Follow `RULE_ROLLOUT.md` process to avoid breaking organization CI
81
+ 3. Extend `Rule` base class in `src/bitwarden_workflow_linter/rule.py`
82
+ 4. Place in `src/bitwarden_workflow_linter/rules/`
83
+ 5. Must define: `message`, `on_fail`, `compatibility`, `settings`, and `fn()` method
84
+ 6. Add comprehensive tests with 100% coverage
85
+ 7. Start with `warning` level, upgrade to `error` after validation period
86
+ 8. After release, activate by adding to `settings.yaml` and `default_settings.yaml`
87
+
88
+ ### Rule Impact Levels
89
+
90
+ - **ERROR Level**: Block CI/CD across all Bitwarden repositories - handle with extreme care
91
+ - **WARNING Level**: Generate notifications but don't block - safer for initial rollout
92
+
93
+ ## Security Considerations
94
+
95
+ ### Critical Security Rules (Organization-Wide)
96
+
97
+ - **Action Pinning**: `step_pinned.py` enforces SHA pinning (not tags) at ERROR level across all repos
98
+ - Example: `uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2`
99
+ - **Approved Actions**: `step_approved.py` enforces use of pre-approved actions only
100
+ - **Permissions**: `permissions_exist.py` enforces explicit permissions in workflows
101
+ - **PR Target Protection**: `check_pr_target.py` prevents dangerous `pull_request_target` usage
102
+
103
+ **Security rule changes affect organization-wide security posture - always coordinate with security team.**
104
+
105
+ ## Critical Issues & Solutions
106
+
107
+ ### Rule Activation Order
108
+
109
+ - **ERROR**: Activating rules before release causes import errors across all Bitwarden repositories
110
+ - **SOLUTION**: Always merge rule implementation first, then activate after PyPI release
111
+
112
+ ### Organization-Wide Impact
113
+
114
+ - **ERROR**: Deploying ERROR-level rules without testing breaks CI across hundreds of repositories
115
+ - **SOLUTION**: Start with WARNING level, test extensively, coordinate rollout via `RULE_ROLLOUT.md`
116
+
117
+ ### Testing Best Practices
118
+
119
+ - Tests change directories to avoid repo-specific paths
120
+ - Use `default_settings.yaml` instead of repo `settings.yaml` in tests
121
+ - Run with `--strict` flag to catch warnings as errors
122
+ - Test rules against diverse workflow patterns from different Bitwarden repositories
123
+
124
+ ## Agent Instructions
125
+
126
+ **Trust these instructions first** - only search for additional information if incomplete or incorrect.
127
+
128
+ **CRITICAL AWARENESS**: This repository's rules are consumed across ALL Bitwarden repositories. Every change has organization-wide impact.
129
+
130
+ **Required sequence for changes:**
131
+
132
+ 1. **Read `RULE_ROLLOUT.md` if working with rules** - understand organization-wide impact
133
+ 2. `pipenv shell && pip install -e .`
134
+ 3. `pytest tests --cov=src`
135
+ 4. `black . && pylint --rcfile pylintrc src/ tests/`
136
+ 5. Test CLI: `bwwl lint --files tests/fixtures`
137
+
138
+ **For rule development:**
139
+
140
+ - Rules affect hundreds of other Bitwarden repositories
141
+ - Start with WARNING level, coordinate rollout, upgrade to ERROR only after validation
142
+ - **Never deploy ERROR-level rules without extensive testing and coordination**
@@ -4,15 +4,19 @@ on:
4
4
  workflow_dispatch:
5
5
  inputs:
6
6
  operation:
7
- description: 'Operation to perform. ex: update, add'
7
+ description: "Operation to perform. ex: update, add"
8
8
  required: true
9
9
  type: string
10
10
  action:
11
- description: 'Single action to add. ex: actions/checkout'
11
+ description: "Single action to add. ex: actions/checkout"
12
+ required: false
13
+ type: string
14
+ artifact:
15
+ description: "Artifact reference (JIRA ticket, business reason, etc) for the new action."
12
16
  required: false
13
17
  type: string
14
18
  schedule:
15
- - cron: '0 0 * * 1'
19
+ - cron: "0 0 * * 1"
16
20
 
17
21
  jobs:
18
22
  actions-operation:
@@ -24,10 +28,15 @@ jobs:
24
28
  pull-requests: write
25
29
  env:
26
30
  _ACTION: ${{ inputs.action }}
31
+ _ARTIFACT: ${{ inputs.artifact }}
27
32
  steps:
28
- - name: Check for action input
29
- if: ${{ inputs.operation == 'add' && !env._ACTION }}
30
- run: echo "Action input is required for operation 'add'" && exit 1
33
+ - name: Check for action input
34
+ if: ${{ inputs.operation == 'add' && !env._ACTION }}
35
+ run: echo "Action input is required for operation 'add'" && exit 1
36
+
37
+ - name: Check for artifact reference
38
+ if: ${{ inputs.operation == 'add' && !env._ARTIFACT }}
39
+ run: echo "Artifact reference is required for operation 'add'" && exit 1
31
40
 
32
41
  - name: Log in to Azure
33
42
  uses: bitwarden/gh-actions/azure-login@main
@@ -55,7 +64,7 @@ jobs:
55
64
  uses: bitwarden/gh-actions/azure-logout@main
56
65
 
57
66
  - name: Checkout Branch
58
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
67
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
59
68
 
60
69
  - name: Import GPG key
61
70
  uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0
@@ -73,7 +82,7 @@ jobs:
73
82
  - name: Set up Python 3.12
74
83
  uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
75
84
  with:
76
- python-version: "3.12"
85
+ python-version: "3.13"
77
86
 
78
87
  - name: Install bwwl binary
79
88
  run: python -m pip install --upgrade bitwarden_workflow_linter
@@ -134,6 +143,7 @@ jobs:
134
143
  env:
135
144
  GH_TOKEN: ${{ steps.app-token.outputs.token }}
136
145
  TITLE: "Update/Add bwwl approved actions${{ inputs.operation == 'add' && env._ACTION != '' && format(' for {0}', env._ACTION) || '' }}"
146
+ ARTIFACT: "${{ inputs.operation == 'add' && format('\n ## Artifact Reference\n {0}\n', env._ARTIFACT) || '' }}"
137
147
  run: |
138
148
  PR_URL=$(gh pr create --title "$TITLE" \
139
149
  --base "main" \
@@ -148,6 +158,9 @@ jobs:
148
158
  - [ ] Build/deploy pipeline (DevOps)
149
159
  - [ ] Other
150
160
 
161
+ ## Initiated by
162
+ ${{ github.actor }}
163
+ $ARTIFACT
151
164
  ## Description
152
165
  - This PR updates the approved actions for the Bitwarden Workflow Linter.")
153
- echo "pr_number=${PR_URL##*/}" >> $GITHUB_OUTPUT
166
+ echo "### PR created: $PR_URL" >> $GITHUB_STEP_SUMMARY
@@ -64,7 +64,7 @@ jobs:
64
64
  private-key: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-KEY }}
65
65
 
66
66
  - name: Check out repo
67
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
67
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
68
68
  with:
69
69
  fetch-depth: 0
70
70
  token: ${{ steps.app-token.outputs.token }}
@@ -125,10 +125,10 @@ jobs:
125
125
  contents: write
126
126
  steps:
127
127
  - name: Check out repo
128
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
128
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
129
129
 
130
130
  - name: Create GitHub release
131
- uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 # v1.16.0
131
+ uses: ncipollo/release-action@bcfe5470707e8832e12347755757cec0eb3c22af # v1.18.0
132
132
  with:
133
133
  commit: ${{ github.sha }}
134
134
  tag: v${{ needs.version-bump.outputs.version }}
@@ -145,7 +145,7 @@ jobs:
145
145
  id-token: write
146
146
  steps:
147
147
  - name: Check out repo
148
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
148
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
149
149
  with:
150
150
  fetch-depth: 0
151
151
  ref: ${{ needs.version-bump.outputs.commit_hash }}
@@ -18,7 +18,7 @@ jobs:
18
18
  runs-on: ${{ matrix.os }}
19
19
  steps:
20
20
  - name: Check out repo
21
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21
+ uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
22
22
 
23
23
  - name: Set up Python
24
24
  uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bitwarden_workflow_linter
3
- Version: 1.3.2
3
+ Version: 1.3.4
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
@@ -1,3 +1,3 @@
1
1
  """Metadata for Workflow Linter."""
2
2
 
3
- __version__ = "1.3.2"
3
+ __version__ = "1.3.4"