Skip to content

Commit f8788d8

Browse files
committed
fix(rulesets): filter organization rulesets from the list compared for the repository
for #732
1 parent c4ae24b commit f8788d8

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

lib/plugins/rulesets.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Diffable from './diffable.js'
44

55
export default class Rulesets extends Diffable {
66
async find () {
7-
const { data: rulesets } = await this.github.repos.getRepoRulesets(this.repo)
7+
const { data: rulesets } = await this.github.repos.getRepoRulesets({ ...this.repo, includes_parents: false })
88

99
const expandedRulesetsData = await Promise.all(
1010
rulesets.map(({ id }) => this.github.repos.getRepoRuleset({ ...this.repo, ruleset_id: id }))

test/integration/features/step_definitions/rulesets-steps.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,19 @@ Given('no rulesets are defined for the repository', async function () {
2323

2424
Given('a ruleset exists for the repository', async function () {
2525
const rulesetSubset = { name: rulesetName }
26+
const existingRulesets = [{ id: rulesetId, ...rulesetSubset }]
2627

2728
this.server.use(
28-
http.get(`https://api.github.com/repos/${repository.owner.name}/${repository.name}/rulesets`, ({ request }) =>
29-
HttpResponse.json([{ id: rulesetId, ...rulesetSubset }])
30-
),
29+
http.get(`https://api.github.com/repos/${repository.owner.name}/${repository.name}/rulesets`, ({ request }) => {
30+
const url = new URL(request.url)
31+
32+
if (url.searchParams.get('includes_parents') === 'false') return HttpResponse.json(existingRulesets)
33+
34+
return HttpResponse.json([
35+
...existingRulesets,
36+
...any.listOf(() => ({ id: any.integer(), ...any.simpleObject() }))
37+
])
38+
}),
3139
http.get(
3240
`https://api.github.com/repos/${repository.owner.name}/${repository.name}/rulesets/${rulesetId}`,
3341
({ request }) => HttpResponse.json({ id: rulesetId, ...rulesetSubset, rules: existingRules })

test/unit/lib/plugins/rulesets.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ describe('rulesets', () => {
4444
{ id: removedRulesetId, name: any.word() }
4545
]
4646
when(github.repos.getRepoRulesets)
47-
.calledWith({ owner, repo })
47+
.calledWith({ owner, repo, includes_parents: false })
4848
.mockResolvedValue({
4949
data: existingRulesets.map(
5050
({ rules, conditions, bypass_actors: bypassActors, ...rulesetListProperties }) => rulesetListProperties

0 commit comments

Comments
 (0)