Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/rulesets/Immutable-Tags.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "Immutable-Tags",
"target": "tag",
"enforcement": "active",
"conditions": {
"ref_name": {
"include": ["~ALL"],
"exclude": []
}
},
"bypass_actors": [],
"rules": [
{"type": "creation"},
{"type": "deletion"},
{"type": "non_fast_forward"},
{"type": "update"},
{"type": "required_signatures"}
]
}
44 changes: 44 additions & 0 deletions .github/rulesets/Optimus-Branch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"name": "Optimus-Branch",
"target": "branch",
"enforcement": "active",
"conditions": {
"ref_name": {
"include": ["~DEFAULT_BRANCH"],
"exclude": []
}
},
"bypass_actors": [],
"rules": [
{
"type": "deletion"
},
{
"type": "non_fast_forward"
},
{
"type": "required_signatures"
},
{
"type": "pull_request",
"parameters": {
"required_approving_review_count": 2,
"dismiss_stale_reviews_on_push": true,
"require_code_owner_review": true,
"require_last_push_approval": true,
"required_review_thread_resolution": true,
"require_extra_approval_for_unattributed_changes": true,
"required_reviewers": [],
"allowed_merge_methods": []
}
},
{
"type": "required_status_checks",
"parameters": {
"strict_required_status_checks_policy": true,
"do_not_enforce_on_create": false,
"required_status_checks": []
}
}
]
}
17 changes: 0 additions & 17 deletions .github/settings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,3 @@ labels:

# ─── Branch Protection ─────────────────────────────────────────────────────────

branches:
- name: "main"
protection:
required_pull_request_reviews:
required_approving_review_count: 1
dismiss_stale_reviews: true
require_code_owner_reviews: true
required_status_checks:
strict: true
contexts:
- "hypatia-scan"
- "codeql"
enforce_admins: true
required_signatures: true
restrictions: null
allow_force_pushes: false
allow_deletions: false
1 change: 1 addition & 0 deletions src/Proven/FFI/SafeProbability.idr
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ module Proven.FFI.SafeProbability
import Proven.SafeProbability
import Proven.Core
import Data.String
import Data.Maybe

%default total

Expand Down
2 changes: 1 addition & 1 deletion src/Proven/SafeAPIKey/Proofs.idr
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ fullMaskStructure _ = Refl
||| Discharge once a `DecEq KeyFormat` instance is exposed alongside a
||| Bool-Prop reflection lemma for `==`, or once `mkAPIKeyWithFormat`
||| is refactored to case-split on `decEq key.format expected`.
postulate 0 formatMismatchRejected : (expected : KeyFormat) -> (s : String) ->
0 formatMismatchRejected : (expected : KeyFormat) -> (s : String) ->
(key : APIKey) ->
mkAPIKey s = Just key ->
Not (key.format = expected) ->
Expand Down
8 changes: 4 additions & 4 deletions src/Proven/SafeArchive/Proofs.idr
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,13 @@ zeroCompressedNonZeroUncompressedIsZipBomb = Refl
||| OWED: A reasonably-compressed entry (ratio 100, well under 1000)
||| is NOT a zip bomb. Blocked on Nat-literal opacity (standards#128).
public export
postulate 0 modestRatioNotZipBomb :
0 modestRatioNotZipBomb :
isZipBomb (MkArchiveEntry "x" RegularFile 1 100 Nothing) = False

||| OWED: An entry with compression ratio > 1000 IS a zip bomb. Same
||| blocker.
public export
postulate 0 extremeRatioIsZipBomb :
0 extremeRatioIsZipBomb :
isZipBomb (MkArchiveEntry "x" RegularFile 1 1001 Nothing) = True

--------------------------------------------------------------------------------
Expand Down Expand Up @@ -201,10 +201,10 @@ symlinkNoTargetNotDangerous = Refl
||| OWED: A path with no special characters has no traversal. Blocked
||| on the String FFI family (`isInfixOf` / `isPrefixOf`).
public export
postulate 0 plainPathHasNoTraversal :
0 plainPathHasNoTraversal :
hasPathTraversal "normal.txt" = False

||| OWED: A path with ".." has traversal. Same blocker.
public export
postulate 0 dotDotPathHasTraversal :
0 dotDotPathHasTraversal :
hasPathTraversal "../etc/passwd" = True
1 change: 1 addition & 0 deletions src/Proven/SafeArgs.idr
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import public Proven.SafeArgs.Proofs

import Data.List
import Data.String
import Data.Maybe

%default total

Expand Down
Loading
Loading