code_ownership 1.32.19 → 1.33.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b47612a8dd5a036e2e0f12d5706a0f014884ca977ca0a3db9ee433b580330761
|
4
|
+
data.tar.gz: 769f104467ccfe6cf73f4eddf491064adbcafe09b9666136d1e3df79e26eb525
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f048953162a4d95d7c44df6fff4138f38b645d042db15bce56cb945eefa722cef616a92e2f9aeb7e1ab4fd76a6e335b6d8f67cc2ff013e076ddc16deb6e40d6
|
7
|
+
data.tar.gz: c0f981c11675470220d58e06b37c737c873482e9d4c83a19bdb3995e8ffd05a45a07528892acf405a324efc8e6687f5d2404740aa9c23de1ca6930115cbda238
|
data/README.md
CHANGED
@@ -21,6 +21,15 @@ metadata:
|
|
21
21
|
owner: Team
|
22
22
|
```
|
23
23
|
|
24
|
+
You can also define `owner` as a top-level key, e.g.
|
25
|
+
```yml
|
26
|
+
enforce_dependency: true
|
27
|
+
enforce_privacy: true
|
28
|
+
owner: Team
|
29
|
+
```
|
30
|
+
|
31
|
+
To do this, add `code_ownership` to the `require` key of your `packwerk.yml`. See https://github.com/Shopify/packwerk/blob/main/USAGE.md#loading-extensions for more information.
|
32
|
+
|
24
33
|
### Glob-Based Ownership
|
25
34
|
In your team's configured YML (see [`code_teams`](https://github.com/rubyatscale/code_teams)), you can set `owned_globs` to be a glob of files your team owns. For example, in `my_team.yml`:
|
26
35
|
```yml
|
@@ -56,7 +56,7 @@ module CodeOwnership
|
|
56
56
|
|
57
57
|
sig { params(package: Packs::Pack).returns(T.nilable(CodeTeams::Team)) }
|
58
58
|
def owner_for_package(package)
|
59
|
-
raw_owner_value = package.metadata['owner']
|
59
|
+
raw_owner_value = package.raw_hash['owner'] || package.metadata['owner']
|
60
60
|
return nil if !raw_owner_value
|
61
61
|
|
62
62
|
Private.find_team!(
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
# typed: strict
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
require 'packwerk'
|
6
|
+
|
7
|
+
module CodeOwnership
|
8
|
+
module Private
|
9
|
+
class PackOwnershipValidator
|
10
|
+
extend T::Sig
|
11
|
+
include Packwerk::Validator
|
12
|
+
|
13
|
+
sig { override.params(package_set: Packwerk::PackageSet, configuration: Packwerk::Configuration).returns(Result) }
|
14
|
+
def call(package_set, configuration)
|
15
|
+
Result.new(ok: true)
|
16
|
+
end
|
17
|
+
|
18
|
+
sig { override.returns(T::Array[String]) }
|
19
|
+
def permitted_keys
|
20
|
+
%w[owner]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/code_ownership.rb
CHANGED
@@ -13,6 +13,10 @@ require 'code_ownership/private'
|
|
13
13
|
require 'code_ownership/cli'
|
14
14
|
require 'code_ownership/configuration'
|
15
15
|
|
16
|
+
if defined?(Packwerk)
|
17
|
+
require 'code_ownership/private/permit_pack_owner_top_level_key'
|
18
|
+
end
|
19
|
+
|
16
20
|
module CodeOwnership
|
17
21
|
extend self
|
18
22
|
extend T::Sig
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code_ownership
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gusto Engineers
|
@@ -122,6 +122,34 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: packwerk
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: railties
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
125
153
|
description: A gem to help engineering teams declare ownership of code
|
126
154
|
email:
|
127
155
|
- dev@gusto.com
|
@@ -146,6 +174,7 @@ files:
|
|
146
174
|
- lib/code_ownership/private/ownership_mappers/team_globs.rb
|
147
175
|
- lib/code_ownership/private/ownership_mappers/team_yml_ownership.rb
|
148
176
|
- lib/code_ownership/private/parse_js_packages.rb
|
177
|
+
- lib/code_ownership/private/permit_pack_owner_top_level_key.rb
|
149
178
|
- lib/code_ownership/private/team_plugins/github.rb
|
150
179
|
- lib/code_ownership/private/team_plugins/ownership.rb
|
151
180
|
- lib/code_ownership/private/validations/files_have_owners.rb
|