ably / repository-audit

Oversight for our estate of repositories, in particular those in the public domain. Audit. Monitor. Conform.
Apache License 2.0
11 stars 2 forks source link

Check baseline boolean options #11

Open QuintinWillison opened 3 years ago

QuintinWillison commented 3 years ago

The things that should:

Taking a quick look using GitHub's GraphQL API Explorer, this query represents a good starting set:

{
  organization(login: "ably") {
    repositories(first: 10, privacy: PUBLIC) {
      nodes {
        name
        deleteBranchOnMerge
        hasIssuesEnabled
        hasProjectsEnabled
        hasWikiEnabled
        rebaseMergeAllowed
        squashMergeAllowed
        mergeCommitAllowed
        isArchived
        isDisabled
        isLocked
        isBlankIssuesEnabled
        forkingAllowed
      }
    }
  }
}

In the example above I've intentionally set first to 10 and privacy to PUBLIC, for illustrative purposes, so I can feel free to share the result:

{
  "data": {
    "organization": {
      "repositories": {
        "nodes": [
          {
            "name": "ably-js",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-common",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "docs",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-php",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-ruby",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-ruby-rest",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-java",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-dotnet",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-go",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          },
          {
            "name": "ably-cocoa",
            "deleteBranchOnMerge": true,
            "hasIssuesEnabled": true,
            "hasProjectsEnabled": false,
            "hasWikiEnabled": false,
            "rebaseMergeAllowed": false,
            "squashMergeAllowed": false,
            "mergeCommitAllowed": true,
            "isArchived": false,
            "isDisabled": false,
            "isLocked": false,
            "isBlankIssuesEnabled": true,
            "forkingAllowed": true
          }
        ]
      }
    }
  }
}
QuintinWillison commented 3 years ago

Looking at the starting set in my opening comment, I think there are probably a few logical groupings of checks here:

Regarding isBlankIssuesEnabled, see this GitHub blog post. This doesn't quite mean what it's easy to assume it means. Needs more thought as, thus far - at least for open source repositories - we've remained pretty unopinionated about issue templates.