@spotify/backstage-plugin-soundcheck-backend-module-github 0.5.9 → 0.6.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @spotify/backstage-plugin-soundcheck-backend-module-github
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Upgraded Backstage to `v1.30.3`.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependency `git-url-parse` to `^15.0.0`.
12
+ - Fact Collectors can now return Collection Errors that will be visible on UI.
13
+ - Add support for check templates.
14
+ - Minor naming updates for GitHub Fact Collector's No Code UI.
15
+ - Updated dependencies
16
+ - @spotify/backstage-plugin-soundcheck-common@0.14.0
17
+ - @spotify/backstage-plugin-soundcheck-node@0.8.0
18
+
3
19
  ## 0.5.9
4
20
 
5
21
  ### Patch Changes
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var A=require("@backstage/catalog-model"),k=require("@backstage/integration"),j=require("@octokit/rest"),p=require("@spotify/backstage-plugin-soundcheck-common"),w=require("@spotify/backstage-plugin-soundcheck-node"),B=require("git-url-parse"),L=require("zod-to-json-schema"),S=require("@octokit/request-error"),g=require("zod"),P=require("@backstage/errors"),M=require("@backstage/backend-common"),y=require("@backstage/backend-plugin-api");function I(s){return s&&typeof s=="object"&&"default"in s?s:{default:s}}var D=I(B),C=I(L);function d(s){return s instanceof S.RequestError?s.response?`${s.name} ${s.response.status}: ${JSON.stringify(s.response.data)}`:`${s.name} ${s.status}: ${s.message}`:JSON.stringify(s)}function N(s){return s instanceof S.RequestError&&(s.status===429||s.status===403&&(s.response?.headers["retry-after"]!==void 0||s.response?.headers["x-ratelimit-remaining"]==="0"))}function T(s){return"status"in s&&s.status===304}function W(s){return"status"in s&&s.status===404}function b(s,e){if(N(s)){const r=s.response?.headers["retry-after"];throw new w.RateLimitError(e,s,r?parseInt(r.toString(),10)*1e3:60*1e3)}}var Y="Branch Protection",K="Branch Protection",U="object",Z={url:{type:"string"},enabled:{type:"boolean"},required_status_checks:{title:"Protected Branch Required Status Check",description:"Protected Branch Required Status Check",type:"object",properties:{url:{type:"string"},enforcement_level:{type:"string"},contexts:{type:"array",items:{type:"string"}},checks:{type:"array",items:{type:"object",properties:{context:{type:"string"},app_id:{type:["integer","null"]}},required:["context","app_id"]}},contexts_url:{type:"string"},strict:{type:"boolean"}},required:["contexts","checks"]},enforce_admins:{title:"Protected Branch Admin Enforced",description:"Protected Branch Admin Enforced",type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins"]},enabled:{type:"boolean",examples:[!0]}},required:["url","enabled"]},required_pull_request_reviews:{title:"Protected Branch Pull Request Review",description:"Protected Branch Pull Request Review",type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions"]},dismissal_restrictions:{type:"object",properties:{users:{description:"The list of users with review dismissal access.",type:"array",items:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}},teams:{description:"The list of teams with review dismissal access.",type:"array",items:{title:"Team",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},slug:{type:"string"},description:{type:["string","null"]},privacy:{type:"string"},notification_setting:{type:"string"},permission:{type:"string"},permissions:{type:"object",properties:{pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"},admin:{type:"boolean"}},required:["pull","triage","push","maintain","admin"]},url:{type:"string",format:"uri"},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},members_url:{type:"string"},repositories_url:{type:"string",format:"uri"},parent:{anyOf:[{type:"null"},{title:"Team Simple",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{description:"Unique identifier of the team",type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VGVhbTE="]},url:{description:"URL for the team",type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1"]},members_url:{type:"string",examples:["https://api.github.com/organizations/1/team/1/members{/member}"]},name:{description:"Name of the team",type:"string",examples:["Justice League"]},description:{description:"Description of the team",type:["string","null"],examples:["A great team."]},permission:{description:"Permission that the team will have for its repositories",type:"string",examples:["admin"]},privacy:{description:"The level of privacy this team should have",type:"string",examples:["closed"]},notification_setting:{description:"The notification setting the team has set",type:"string",examples:["notifications_enabled"]},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},repositories_url:{type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1/repos"]},slug:{type:"string",examples:["justice-league"]},ldap_dn:{description:"Distinguished Name (DN) that team maps to within LDAP environment",type:"string",examples:["uid=example,ou=users,dc=github,dc=com"]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug"]}]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug","parent"]}},apps:{description:"The list of apps with review dismissal access.",type:"array",items:{title:"GitHub app",description:"GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.",type:"object",properties:{id:{description:"Unique identifier of the GitHub app",type:"integer",examples:[37]},slug:{description:"The slug name of the GitHub app",type:"string",examples:["probot-owners"]},node_id:{type:"string",examples:["MDExOkludGVncmF0aW9uMQ=="]},owner:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},name:{description:"The name of the GitHub app",type:"string",examples:["Probot Owners"]},description:{type:["string","null"],examples:["The description of the app."]},external_url:{type:"string",format:"uri",examples:["https://example.com"]},html_url:{type:"string",format:"uri",examples:["https://github.com/apps/super-ci"]},created_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},updated_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},permissions:{description:"The set of permissions for the GitHub app",type:"object",properties:{issues:{type:"string"},checks:{type:"string"},metadata:{type:"string"},contents:{type:"string"},deployments:{type:"string"}},additionalProperties:{type:"string"},example:{issues:"read",deployments:"write"}},events:{description:"The list of events for the GitHub app",type:"array",items:{type:"string"},examples:["label","deployment"]},installations_count:{description:"The number of installations associated with the GitHub app",type:"integer",examples:[5]},client_id:{type:"string",examples:['"Iv1.25b5d1e65ffc4022"']},client_secret:{type:"string",examples:['"1d4b2097ac622ba702d19de498f005747a8b21d3"']},webhook_secret:{type:["string","null"],examples:['"6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b"']},pem:{type:"string",examples:['"-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\\n-----END RSA PRIVATE KEY-----\\n"']}},required:["id","node_id","owner","name","description","external_url","html_url","created_at","updated_at","permissions","events"]}},url:{type:"string",examples:['"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions"']},users_url:{type:"string",examples:['"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users"']},teams_url:{type:"string",examples:['"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams"']}}},bypass_pull_request_allowances:{type:"object",description:"Allow specific users, teams, or apps to bypass pull request requirements.",properties:{users:{description:"The list of users allowed to bypass pull request requirements.",type:"array",items:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}},teams:{description:"The list of teams allowed to bypass pull request requirements.",type:"array",items:{title:"Team",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},slug:{type:"string"},description:{type:["string","null"]},privacy:{type:"string"},notification_setting:{type:"string"},permission:{type:"string"},permissions:{type:"object",properties:{pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"},admin:{type:"boolean"}},required:["pull","triage","push","maintain","admin"]},url:{type:"string",format:"uri"},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},members_url:{type:"string"},repositories_url:{type:"string",format:"uri"},parent:{anyOf:[{type:"null"},{title:"Team Simple",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{description:"Unique identifier of the team",type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VGVhbTE="]},url:{description:"URL for the team",type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1"]},members_url:{type:"string",examples:["https://api.github.com/organizations/1/team/1/members{/member}"]},name:{description:"Name of the team",type:"string",examples:["Justice League"]},description:{description:"Description of the team",type:["string","null"],examples:["A great team."]},permission:{description:"Permission that the team will have for its repositories",type:"string",examples:["admin"]},privacy:{description:"The level of privacy this team should have",type:"string",examples:["closed"]},notification_setting:{description:"The notification setting the team has set",type:"string",examples:["notifications_enabled"]},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},repositories_url:{type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1/repos"]},slug:{type:"string",examples:["justice-league"]},ldap_dn:{description:"Distinguished Name (DN) that team maps to within LDAP environment",type:"string",examples:["uid=example,ou=users,dc=github,dc=com"]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug"]}]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug","parent"]}},apps:{description:"The list of apps allowed to bypass pull request requirements.",type:"array",items:{title:"GitHub app",description:"GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.",type:"object",properties:{id:{description:"Unique identifier of the GitHub app",type:"integer",examples:[37]},slug:{description:"The slug name of the GitHub app",type:"string",examples:["probot-owners"]},node_id:{type:"string",examples:["MDExOkludGVncmF0aW9uMQ=="]},owner:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},name:{description:"The name of the GitHub app",type:"string",examples:["Probot Owners"]},description:{type:["string","null"],examples:["The description of the app."]},external_url:{type:"string",format:"uri",examples:["https://example.com"]},html_url:{type:"string",format:"uri",examples:["https://github.com/apps/super-ci"]},created_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},updated_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},permissions:{description:"The set of permissions for the GitHub app",type:"object",properties:{issues:{type:"string"},checks:{type:"string"},metadata:{type:"string"},contents:{type:"string"},deployments:{type:"string"}},additionalProperties:{type:"string"},example:{issues:"read",deployments:"write"}},events:{description:"The list of events for the GitHub app",type:"array",items:{type:"string"},examples:["label","deployment"]},installations_count:{description:"The number of installations associated with the GitHub app",type:"integer",examples:[5]},client_id:{type:"string",examples:['"Iv1.25b5d1e65ffc4022"']},client_secret:{type:"string",examples:['"1d4b2097ac622ba702d19de498f005747a8b21d3"']},webhook_secret:{type:["string","null"],examples:['"6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b"']},pem:{type:"string",examples:['"-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\\n-----END RSA PRIVATE KEY-----\\n"']}},required:["id","node_id","owner","name","description","external_url","html_url","created_at","updated_at","permissions","events"]}}}},dismiss_stale_reviews:{type:"boolean",examples:[!0]},require_code_owner_reviews:{type:"boolean",examples:[!0]},required_approving_review_count:{type:"integer",minimum:0,maximum:6,examples:[2]},require_last_push_approval:{description:"Whether the most recent push must be approved by someone other than the person who pushed it.",type:"boolean",default:!1,examples:[!0]}},required:["dismiss_stale_reviews","require_code_owner_reviews"]},restrictions:{title:"Branch Restriction Policy",description:"Branch Restriction Policy",type:"object",properties:{url:{type:"string",format:"uri"},users_url:{type:"string",format:"uri"},teams_url:{type:"string",format:"uri"},apps_url:{type:"string",format:"uri"},users:{type:"array",items:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}}},teams:{type:"array",items:{type:"object",properties:{id:{type:"integer"},node_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},name:{type:"string"},slug:{type:"string"},description:{type:["string","null"]},privacy:{type:"string"},notification_setting:{type:"string"},permission:{type:"string"},members_url:{type:"string"},repositories_url:{type:"string"},parent:{type:["string","null"]}}}},apps:{type:"array",items:{type:"object",properties:{id:{type:"integer"},slug:{type:"string"},node_id:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},hooks_url:{type:"string"},issues_url:{type:"string"},members_url:{type:"string"},public_members_url:{type:"string"},avatar_url:{type:"string"},description:{type:"string"},gravatar_id:{type:"string",examples:['""']},html_url:{type:"string",examples:['"https://github.com/testorg-ea8ec76d71c3af4b"']},followers_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers"']},following_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}"']},gists_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}"']},starred_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}"']},subscriptions_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions"']},organizations_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs"']},received_events_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events"']},type:{type:"string",examples:['"Organization"']},site_admin:{type:"boolean",examples:[!1]}}},name:{type:"string"},description:{type:"string"},external_url:{type:"string"},html_url:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{metadata:{type:"string"},contents:{type:"string"},issues:{type:"string"},single_file:{type:"string"}}},events:{type:"array",items:{type:"string"}}}}}},required:["url","users_url","teams_url","apps_url","users","teams","apps"]},required_linear_history:{type:"object",properties:{enabled:{type:"boolean"}}},allow_force_pushes:{type:"object",properties:{enabled:{type:"boolean"}}},allow_deletions:{type:"object",properties:{enabled:{type:"boolean"}}},block_creations:{type:"object",properties:{enabled:{type:"boolean"}}},required_conversation_resolution:{type:"object",properties:{enabled:{type:"boolean"}}},name:{type:"string",examples:['"branch/with/protection"']},protection_url:{type:"string",examples:['"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection"']},required_signatures:{type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures"]},enabled:{type:"boolean",examples:[!0]}},required:["url","enabled"]},lock_branch:{type:"object",description:"Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.",properties:{enabled:{default:!1,type:"boolean"}}},allow_fork_syncing:{type:"object",description:"Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing.",properties:{enabled:{default:!1,type:"boolean"}}}},J={title:Y,description:K,type:U,properties:Z};const E=async(s,e)=>{let r;const t=await s.get(e);return t&&(r={"If-None-Match":t.etag,"If-Modified-Since":t.lastModified}),r};class f{static TYPE="BranchProtections";#e;#t;#r;type=f.TYPE;static factory=({logger:e,cache:r,branchHelper:t})=>{const i=new f(e,r,t);return{predicate:a=>a.type===i.type,extractor:i}};constructor(e,r,t){this.#e=e,this.#t=r,this.#r=t}async extract(e,r,t,i,a){const l=`github:branch_protections:${t.owner}:${t.name}:${r}`,c=a?void 0:await E(this.#t,l),n={owner:t.owner,repo:t.name,branch:await this.#s(r,t,i),headers:c};try{const o=await i.rest.repos.getBranchProtection(n);return await this.#t.set(l,{etag:o.headers?.etag,lastModified:o.headers?.date,data:o.data}),o.data}catch(o){if(T(o)){const u=await this.#t.get(l);return!u||!("data"in u)?void 0:u.data}if(W(o))return{};const m=`[BranchProtections] fact extraction failed with: ${d(o)}. Request parameters: ${JSON.stringify(n)}`;b(o,m),this.#e.error(m);return}}async#s(e,r,t){return e!==p.DEFAULT_SCOPE?e:this.#r.getDefaultBranch(r,t)}getDataSchema(e){return JSON.stringify(J)}}const Q=p.BaseFactExtractorSchema.merge(g.z.strictObject({type:g.z.literal("BranchProtections"),branch:g.z.string().min(1).optional()})).strict(),V=p.BaseFactExtractorSchema.merge(g.z.strictObject({type:g.z.literal("RepositoryDetails")})).strict(),F=p.BaseFactExtractorSchema.merge(g.z.strictObject({type:g.z.literal("RepositoryLanguages")})).strict(),X=g.z.union([Q,V,F]),G=p.buildFactCollectorSchema(X);function O(s){return`Extractor with type '${s}' is not allowed. You may need to update collectors configuration at 'soundcheck.collectors.github'`}class ${#e=[];register(e){this.#e.push(e)}type="mux";async extract(e,r,t,i,a){for(const{predicate:l,extractor:c}of this.#e)if(l(e))return c.extract(e,r,t,i,a);throw new Error(O(e.type))}getDataSchema(e){for(const{predicate:r,extractor:t}of this.#e)if(r(e))return t.getDataSchema(e);throw new Error(O(e.type))}listFactTypes(){return this.#e.map(({extractor:e})=>e.type)}toString(){return`predicateMux{extractors=${this.#e.map(e=>e.extractor).join(",")}`}}class ee{static create(e){const{logger:r,cache:t,branchHelper:i,factories:a}=e,l=new $;for(const c of a??[]){const n=c({logger:r,cache:t,branchHelper:i});l.register(n)}return l}}class H{#e;#t;static create(e,r){return new H(e,r)}constructor(e,r){this.#e=e,this.#t=r}async getDefaultBranch(e,r){let t=await this.#t.get(e.full_name);if(t!==void 0)return t;const i={owner:e.owner,repo:e.name};try{t=(await r.rest.repos.get(i)).data.default_branch,await this.#t.set(e.full_name,t)}catch(a){e.ref?t=e.ref:t="main";const l=`Failed to get default branch name with: ${d(a)}. Request parameters: ${JSON.stringify(i)}. Falling back to using [${t}] as default branch`;b(a,l),this.#e.error(l)}return t}}var te="Full Repository",re="Full Repository",se="object",ie={id:{type:"integer",examples:[1296269]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{type:"string",examples:["Hello-World"]},full_name:{type:"string",examples:["octocat/Hello-World"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"},examples:["octocat","atom","electron","API"]},has_issues:{type:"boolean",examples:[!0]},has_projects:{type:"boolean",examples:[!0]},has_wiki:{type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{type:"boolean",examples:[!0]},has_discussions:{type:"boolean",examples:[!0]},archived:{type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",type:"string",examples:["public"]},pushed_at:{type:"string",format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:"string",format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:"string",format:"date-time",examples:["2011-01-26T19:14:43Z"]},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}},required:["admin","pull","push"]},allow_rebase_merge:{type:"boolean",examples:[!0]},template_repository:{anyOf:[{type:"null"},{title:"Repository",description:"A repository on GitHub.",type:"object",properties:{id:{description:"Unique identifier of the repository",type:"integer",examples:[42]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{description:"The name of the repository.",type:"string",examples:["Team Environment"]},full_name:{type:"string",examples:["octocat/Hello-World"]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},forks:{type:"integer"},permissions:{type:"object",properties:{admin:{type:"boolean"},pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"}},required:["admin","pull","push"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{description:"Whether the repository is private or public.",default:!1,type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{description:"The default branch of the repository.",type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{description:"Whether this repository acts as a template that can be used to generate new repositories.",default:!1,type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"}},has_issues:{description:"Whether issues are enabled.",default:!0,type:"boolean",examples:[!0]},has_projects:{description:"Whether projects are enabled.",default:!0,type:"boolean",examples:[!0]},has_wiki:{description:"Whether the wiki is enabled.",default:!0,type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{description:"Whether downloads are enabled.",default:!0,type:"boolean",examples:[!0]},has_discussions:{description:"Whether discussions are enabled.",default:!1,type:"boolean",examples:[!0]},archived:{description:"Whether the repository is archived.",default:!1,type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",default:"public",type:"string"},pushed_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:14:43Z"]},allow_rebase_merge:{description:"Whether to allow rebase merges for pull requests.",default:!0,type:"boolean",examples:[!0]},template_repository:{type:["object","null"],properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},full_name:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}},private:{type:"boolean"},html_url:{type:"string"},description:{type:"string"},fork:{type:"boolean"},url:{type:"string"},archive_url:{type:"string"},assignees_url:{type:"string"},blobs_url:{type:"string"},branches_url:{type:"string"},collaborators_url:{type:"string"},comments_url:{type:"string"},commits_url:{type:"string"},compare_url:{type:"string"},contents_url:{type:"string"},contributors_url:{type:"string"},deployments_url:{type:"string"},downloads_url:{type:"string"},events_url:{type:"string"},forks_url:{type:"string"},git_commits_url:{type:"string"},git_refs_url:{type:"string"},git_tags_url:{type:"string"},git_url:{type:"string"},issue_comment_url:{type:"string"},issue_events_url:{type:"string"},issues_url:{type:"string"},keys_url:{type:"string"},labels_url:{type:"string"},languages_url:{type:"string"},merges_url:{type:"string"},milestones_url:{type:"string"},notifications_url:{type:"string"},pulls_url:{type:"string"},releases_url:{type:"string"},ssh_url:{type:"string"},stargazers_url:{type:"string"},statuses_url:{type:"string"},subscribers_url:{type:"string"},subscription_url:{type:"string"},tags_url:{type:"string"},teams_url:{type:"string"},trees_url:{type:"string"},clone_url:{type:"string"},mirror_url:{type:"string"},hooks_url:{type:"string"},svn_url:{type:"string"},homepage:{type:"string"},language:{type:"string"},forks_count:{type:"integer"},stargazers_count:{type:"integer"},watchers_count:{type:"integer"},size:{type:"integer"},default_branch:{type:"string"},open_issues_count:{type:"integer"},is_template:{type:"boolean"},topics:{type:"array",items:{type:"string"}},has_issues:{type:"boolean"},has_projects:{type:"boolean"},has_wiki:{type:"boolean"},has_pages:{type:"boolean"},has_downloads:{type:"boolean"},archived:{type:"boolean"},disabled:{type:"boolean"},visibility:{type:"string"},pushed_at:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}}},allow_rebase_merge:{type:"boolean"},temp_clone_token:{type:"string"},allow_squash_merge:{type:"boolean"},allow_auto_merge:{type:"boolean"},delete_branch_on_merge:{type:"boolean"},allow_update_branch:{type:"boolean"},use_squash_pr_title_as_default:{type:"boolean"},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"}}},temp_clone_token:{type:"string"},allow_squash_merge:{description:"Whether to allow squash merges for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_auto_merge:{description:"Whether to allow Auto-merge to be used on pull requests.",default:!1,type:"boolean",examples:[!1]},delete_branch_on_merge:{description:"Whether to delete head branches when pull requests are merged",default:!1,type:"boolean",examples:[!1]},allow_update_branch:{description:"Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",default:!1,type:"boolean",examples:[!1]},use_squash_pr_title_as_default:{type:"boolean",description:"Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.",default:!1,deprecated:!0},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{description:"Whether to allow merge commits for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_forking:{description:"Whether to allow forking this repo",type:"boolean"},web_commit_signoff_required:{description:"Whether to require contributors to sign off on web-based commits",default:!1,type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"},open_issues:{type:"integer"},watchers:{type:"integer"},master_branch:{type:"string"},starred_at:{type:"string",examples:['"2020-07-09T00:17:42Z"']},anonymous_access_enabled:{type:"boolean",description:"Whether anonymous git access is enabled for this repository"}},required:["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at"]}]},temp_clone_token:{type:["string","null"]},allow_squash_merge:{type:"boolean",examples:[!0]},allow_auto_merge:{type:"boolean",examples:[!1]},delete_branch_on_merge:{type:"boolean",examples:[!1]},allow_merge_commit:{type:"boolean",examples:[!0]},allow_update_branch:{type:"boolean",examples:[!0]},use_squash_pr_title_as_default:{type:"boolean",examples:[!1]},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).",examples:["PR_TITLE"]},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.",examples:["PR_BODY"]},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n - `PR_TITLE` - default to the pull request's title.\n - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).",examples:["PR_TITLE"]},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.",examples:["PR_BODY"]},allow_forking:{type:"boolean",examples:[!0]},web_commit_signoff_required:{type:"boolean",examples:[!1]},subscribers_count:{type:"integer",examples:[42]},network_count:{type:"integer",examples:[0]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},parent:{title:"Repository",description:"A repository on GitHub.",type:"object",properties:{id:{description:"Unique identifier of the repository",type:"integer",examples:[42]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{description:"The name of the repository.",type:"string",examples:["Team Environment"]},full_name:{type:"string",examples:["octocat/Hello-World"]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},forks:{type:"integer"},permissions:{type:"object",properties:{admin:{type:"boolean"},pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"}},required:["admin","pull","push"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{description:"Whether the repository is private or public.",default:!1,type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{description:"The default branch of the repository.",type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{description:"Whether this repository acts as a template that can be used to generate new repositories.",default:!1,type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"}},has_issues:{description:"Whether issues are enabled.",default:!0,type:"boolean",examples:[!0]},has_projects:{description:"Whether projects are enabled.",default:!0,type:"boolean",examples:[!0]},has_wiki:{description:"Whether the wiki is enabled.",default:!0,type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{description:"Whether downloads are enabled.",default:!0,type:"boolean",examples:[!0]},has_discussions:{description:"Whether discussions are enabled.",default:!1,type:"boolean",examples:[!0]},archived:{description:"Whether the repository is archived.",default:!1,type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",default:"public",type:"string"},pushed_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:14:43Z"]},allow_rebase_merge:{description:"Whether to allow rebase merges for pull requests.",default:!0,type:"boolean",examples:[!0]},template_repository:{type:["object","null"],properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},full_name:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}},private:{type:"boolean"},html_url:{type:"string"},description:{type:"string"},fork:{type:"boolean"},url:{type:"string"},archive_url:{type:"string"},assignees_url:{type:"string"},blobs_url:{type:"string"},branches_url:{type:"string"},collaborators_url:{type:"string"},comments_url:{type:"string"},commits_url:{type:"string"},compare_url:{type:"string"},contents_url:{type:"string"},contributors_url:{type:"string"},deployments_url:{type:"string"},downloads_url:{type:"string"},events_url:{type:"string"},forks_url:{type:"string"},git_commits_url:{type:"string"},git_refs_url:{type:"string"},git_tags_url:{type:"string"},git_url:{type:"string"},issue_comment_url:{type:"string"},issue_events_url:{type:"string"},issues_url:{type:"string"},keys_url:{type:"string"},labels_url:{type:"string"},languages_url:{type:"string"},merges_url:{type:"string"},milestones_url:{type:"string"},notifications_url:{type:"string"},pulls_url:{type:"string"},releases_url:{type:"string"},ssh_url:{type:"string"},stargazers_url:{type:"string"},statuses_url:{type:"string"},subscribers_url:{type:"string"},subscription_url:{type:"string"},tags_url:{type:"string"},teams_url:{type:"string"},trees_url:{type:"string"},clone_url:{type:"string"},mirror_url:{type:"string"},hooks_url:{type:"string"},svn_url:{type:"string"},homepage:{type:"string"},language:{type:"string"},forks_count:{type:"integer"},stargazers_count:{type:"integer"},watchers_count:{type:"integer"},size:{type:"integer"},default_branch:{type:"string"},open_issues_count:{type:"integer"},is_template:{type:"boolean"},topics:{type:"array",items:{type:"string"}},has_issues:{type:"boolean"},has_projects:{type:"boolean"},has_wiki:{type:"boolean"},has_pages:{type:"boolean"},has_downloads:{type:"boolean"},archived:{type:"boolean"},disabled:{type:"boolean"},visibility:{type:"string"},pushed_at:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}}},allow_rebase_merge:{type:"boolean"},temp_clone_token:{type:"string"},allow_squash_merge:{type:"boolean"},allow_auto_merge:{type:"boolean"},delete_branch_on_merge:{type:"boolean"},allow_update_branch:{type:"boolean"},use_squash_pr_title_as_default:{type:"boolean"},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"}}},temp_clone_token:{type:"string"},allow_squash_merge:{description:"Whether to allow squash merges for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_auto_merge:{description:"Whether to allow Auto-merge to be used on pull requests.",default:!1,type:"boolean",examples:[!1]},delete_branch_on_merge:{description:"Whether to delete head branches when pull requests are merged",default:!1,type:"boolean",examples:[!1]},allow_update_branch:{description:"Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",default:!1,type:"boolean",examples:[!1]},use_squash_pr_title_as_default:{type:"boolean",description:"Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.",default:!1,deprecated:!0},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{description:"Whether to allow merge commits for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_forking:{description:"Whether to allow forking this repo",type:"boolean"},web_commit_signoff_required:{description:"Whether to require contributors to sign off on web-based commits",default:!1,type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"},open_issues:{type:"integer"},watchers:{type:"integer"},master_branch:{type:"string"},starred_at:{type:"string",examples:['"2020-07-09T00:17:42Z"']},anonymous_access_enabled:{type:"boolean",description:"Whether anonymous git access is enabled for this repository"}},required:["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at"]},source:{title:"Repository",description:"A repository on GitHub.",type:"object",properties:{id:{description:"Unique identifier of the repository",type:"integer",examples:[42]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{description:"The name of the repository.",type:"string",examples:["Team Environment"]},full_name:{type:"string",examples:["octocat/Hello-World"]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},forks:{type:"integer"},permissions:{type:"object",properties:{admin:{type:"boolean"},pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"}},required:["admin","pull","push"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{description:"Whether the repository is private or public.",default:!1,type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{description:"The default branch of the repository.",type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{description:"Whether this repository acts as a template that can be used to generate new repositories.",default:!1,type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"}},has_issues:{description:"Whether issues are enabled.",default:!0,type:"boolean",examples:[!0]},has_projects:{description:"Whether projects are enabled.",default:!0,type:"boolean",examples:[!0]},has_wiki:{description:"Whether the wiki is enabled.",default:!0,type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{description:"Whether downloads are enabled.",default:!0,type:"boolean",examples:[!0]},has_discussions:{description:"Whether discussions are enabled.",default:!1,type:"boolean",examples:[!0]},archived:{description:"Whether the repository is archived.",default:!1,type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",default:"public",type:"string"},pushed_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:14:43Z"]},allow_rebase_merge:{description:"Whether to allow rebase merges for pull requests.",default:!0,type:"boolean",examples:[!0]},template_repository:{type:["object","null"],properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},full_name:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}},private:{type:"boolean"},html_url:{type:"string"},description:{type:"string"},fork:{type:"boolean"},url:{type:"string"},archive_url:{type:"string"},assignees_url:{type:"string"},blobs_url:{type:"string"},branches_url:{type:"string"},collaborators_url:{type:"string"},comments_url:{type:"string"},commits_url:{type:"string"},compare_url:{type:"string"},contents_url:{type:"string"},contributors_url:{type:"string"},deployments_url:{type:"string"},downloads_url:{type:"string"},events_url:{type:"string"},forks_url:{type:"string"},git_commits_url:{type:"string"},git_refs_url:{type:"string"},git_tags_url:{type:"string"},git_url:{type:"string"},issue_comment_url:{type:"string"},issue_events_url:{type:"string"},issues_url:{type:"string"},keys_url:{type:"string"},labels_url:{type:"string"},languages_url:{type:"string"},merges_url:{type:"string"},milestones_url:{type:"string"},notifications_url:{type:"string"},pulls_url:{type:"string"},releases_url:{type:"string"},ssh_url:{type:"string"},stargazers_url:{type:"string"},statuses_url:{type:"string"},subscribers_url:{type:"string"},subscription_url:{type:"string"},tags_url:{type:"string"},teams_url:{type:"string"},trees_url:{type:"string"},clone_url:{type:"string"},mirror_url:{type:"string"},hooks_url:{type:"string"},svn_url:{type:"string"},homepage:{type:"string"},language:{type:"string"},forks_count:{type:"integer"},stargazers_count:{type:"integer"},watchers_count:{type:"integer"},size:{type:"integer"},default_branch:{type:"string"},open_issues_count:{type:"integer"},is_template:{type:"boolean"},topics:{type:"array",items:{type:"string"}},has_issues:{type:"boolean"},has_projects:{type:"boolean"},has_wiki:{type:"boolean"},has_pages:{type:"boolean"},has_downloads:{type:"boolean"},archived:{type:"boolean"},disabled:{type:"boolean"},visibility:{type:"string"},pushed_at:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}}},allow_rebase_merge:{type:"boolean"},temp_clone_token:{type:"string"},allow_squash_merge:{type:"boolean"},allow_auto_merge:{type:"boolean"},delete_branch_on_merge:{type:"boolean"},allow_update_branch:{type:"boolean"},use_squash_pr_title_as_default:{type:"boolean"},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"}}},temp_clone_token:{type:"string"},allow_squash_merge:{description:"Whether to allow squash merges for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_auto_merge:{description:"Whether to allow Auto-merge to be used on pull requests.",default:!1,type:"boolean",examples:[!1]},delete_branch_on_merge:{description:"Whether to delete head branches when pull requests are merged",default:!1,type:"boolean",examples:[!1]},allow_update_branch:{description:"Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",default:!1,type:"boolean",examples:[!1]},use_squash_pr_title_as_default:{type:"boolean",description:"Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.",default:!1,deprecated:!0},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{description:"Whether to allow merge commits for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_forking:{description:"Whether to allow forking this repo",type:"boolean"},web_commit_signoff_required:{description:"Whether to require contributors to sign off on web-based commits",default:!1,type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"},open_issues:{type:"integer"},watchers:{type:"integer"},master_branch:{type:"string"},starred_at:{type:"string",examples:['"2020-07-09T00:17:42Z"']},anonymous_access_enabled:{type:"boolean",description:"Whether anonymous git access is enabled for this repository"}},required:["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at"]},forks:{type:"integer"},master_branch:{type:"string"},open_issues:{type:"integer"},watchers:{type:"integer"},anonymous_access_enabled:{description:"Whether anonymous git access is allowed.",default:!0,type:"boolean"},code_of_conduct:{title:"Code Of Conduct Simple",description:"Code of Conduct Simple",type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/github/docs/community/code_of_conduct"]},key:{type:"string",examples:["citizen_code_of_conduct"]},name:{type:"string",examples:["Citizen Code of Conduct"]},html_url:{type:["string","null"],format:"uri",examples:["https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md"]}},required:["url","key","name","html_url"]},security_and_analysis:{type:["object","null"],properties:{advanced_security:{type:"object",properties:{status:{type:"string",enum:["enabled","disabled"]}}},secret_scanning:{type:"object",properties:{status:{type:"string",enum:["enabled","disabled"]}}},secret_scanning_push_protection:{type:"object",properties:{status:{type:"string",enum:["enabled","disabled"]}}}}}},oe=["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","has_discussions","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at","network_count","subscribers_count"],ae={title:te,description:re,type:se,properties:ie,required:oe};class x{static TYPE="RepositoryDetails";#e;#t;type=x.TYPE;static factory=({logger:e,cache:r})=>{const t=new x(e,r);return{predicate:i=>i.type===t.type,extractor:t}};constructor(e,r){this.#e=e,this.#t=r}async extract(e,r,t,i,a){const l=`github:repository_details:${t.owner}:${t.name}`,c=a?void 0:await E(this.#t,l),n={owner:t.owner,repo:t.name,headers:c};try{const o=await i.rest.repos.get(n);return await this.#t.set(l,{etag:o.headers?.etag,lastModified:o.headers?.date,data:o.data}),o.data}catch(o){if(T(o)){const u=await this.#t.get(l);return!u||!("data"in u)?void 0:u.data}if(W(o))return{};const m=`[RepositoryDetails] fact extraction failed with: ${d(o)}. Request parameters: ${JSON.stringify(n)}`;b(o,m),this.#e.error(m);return}}getDataSchema(e){return JSON.stringify(ae)}}var le="Language",pe="Language",ne="object",ue={type:"integer"},ce={title:le,description:pe,type:ne,additionalProperties:ue};class v{static TYPE="RepositoryLanguages";#e;#t;type=v.TYPE;static factory=({logger:e,cache:r})=>{const t=new v(e,r);return{predicate:i=>i.type===t.type,extractor:t}};constructor(e,r){this.#e=e,this.#t=r}async extract(e,r,t,i,a){const l=`github:repository_languages:${t.owner}:${t.name}`,c=a?void 0:await E(this.#t,l),n={owner:t.owner,repo:t.name,headers:c};try{const o=await i.rest.repos.listLanguages(n);return await this.#t.set(l,{etag:o.headers?.etag,lastModified:o.headers?.date,data:o.data}),o.data}catch(o){if(T(o)){const u=await this.#t.get(l);return!u||!("data"in u)?void 0:u.data}if(W(o))return{};const m=`[RepositoryLanguages] fact extraction failed with: ${d(o)}. Request parameters: ${JSON.stringify(n)}`;b(o,m),this.#e.error(m);return}}getDataSchema(e){return JSON.stringify(ce)}}class q{static create(e){return new q(e)}#e;#t={};#r;constructor(e){this.#r=e}getConfig(){return this.#e}setConfig(e){this.#e=e,this.#t=this.#s(e)}#s(e){const r=G.safeParse(e);if(!r.success)throw this.#r.error("Invalid GithubFactCollector config."),new P.InputError(r.error.message);if(r.data.hasOwnProperty("url"))throw this.#r.error("Invalid GithubFactCollector config, the GitHub collector does not yet support URL references."),new P.InputError("Invalid GithubFactCollector config, the GitHub collector does not yet support URL references.");return p.buildExtractorConfigMap(r.data)}getExtractorConfig(e){return this.#t[e]}getExtractorConfigs(){return Object.values(this.#t)}}class h{static ID="github";#e;#t;#r;#s;#i;static create(e,r,t){return new h(e,r,t)}id=h.ID;name="Github";description="Collects facts about your Github repositories.";constructor(e,r,t){this.#e=r.child({target:this.id}),this.#t=k.ScmIntegrations.fromConfig(e),this.#r=k.DefaultGithubCredentialsProvider.fromIntegrations(this.#t),this.#s=ee.create({logger:this.#e,cache:t.getClient(),branchHelper:H.create(this.#e,t.getClient({defaultTtl:60*60*1e3})),factories:[f.factory,x.factory,v.factory]}),this.#i=q.create(this.#e)}async collect(e,r){const t=r?.factRefs??this.#i.getExtractorConfigs().map(i=>p.getFactRef(this.id,i));return Promise.all(e.filter(i=>p.isScmEntity(i)).map(async i=>{const a=A.stringifyEntityRef(i),l=p.getEntityScmUrl(i),c=D.default(l),n=await this.getOctokit(l);return n?Promise.all(t.map(async o=>{const m=p.parseFactRef(o,{defaultSource:this.id,defaultScope:p.DEFAULT_SCOPE}),u=this.#i.getExtractorConfig(m.name),z=!!r?.refresh?.map(_=>p.stringifyFactRef(_))?.includes(p.stringifyFactRef(o)),R=await this.#s.extract(u,m.scope,c,n,z).catch(_=>{if(_ instanceof w.RateLimitError)throw _;this.#e.error(`Failed to collect ${p.stringifyFactRef(o)} fact data for ${a} entity: ${_}`)});if(R!==void 0)return p.buildFact(a,o,R)})):Promise.resolve()})).then(i=>i.flat().filter(a=>!!a))}async getOctokit(e){try{const{token:r}=await this.#r.getCredentials({url:e}),t=this.#t.github.byUrl(e);return new j.Octokit({auth:r,baseUrl:t?.config.apiBaseUrl})}catch(r){this.#e.warn(`Skipping Github fact collection for url ${e}: ${r}`);return}}async getCollectionConfigs(){return p.buildCollectionConfigs(this.id,this.#i.getExtractorConfigs())}async getFactNames(){const e=this.#s.listFactTypes(),r=this.#i.getExtractorConfigs();return e.flatMap(t=>r.filter(i=>i.type===t).map(i=>i.factName??i.type)??t)}async getDataSchema(e){const r=p.parseFactRef(e,{defaultSource:this.id,defaultScope:p.DEFAULT_SCOPE}),t=this.#i.getExtractorConfigs().find(i=>{const a=p.parseFactRef(p.getFactRef(this.id,i));return r.source===a.source&&r.name===a.name});if(t)return this.#s.getDataSchema(t)}async getConfig(){return this.#i.getConfig()}async setConfig(e){this.#i.setConfig(e)}async getConfigSchema(){return JSON.stringify(C.default(G))}}const me=y.createBackendModule({pluginId:"soundcheck",moduleId:"github",register(s){s.registerInit({deps:{cache:y.coreServices.cache,config:y.coreServices.rootConfig,logger:y.coreServices.logger,soundcheck:w.factCollectionExtensionPoint},async init({cache:e,config:r,logger:t,soundcheck:i}){i.addFactCollector(h.create(r,M.loggerToWinstonLogger(t),M.cacheToPluginCacheManager(e)))}})}});exports.GithubFactCollector=h,exports.default=me;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var z=require("@backstage/catalog-model"),k=require("@backstage/integration"),B=require("@octokit/rest"),p=require("@spotify/backstage-plugin-soundcheck-common"),d=require("@spotify/backstage-plugin-soundcheck-node"),C=require("git-url-parse"),j=require("zod-to-json-schema"),R=require("@octokit/request-error"),h=require("zod"),P=require("@backstage/errors"),M=require("@backstage/backend-common"),y=require("@backstage/backend-plugin-api");function S(s){return s&&typeof s=="object"&&"default"in s?s:{default:s}}var L=S(C),D=S(j);function b(s){return s instanceof R.RequestError?s.response?`${s.name} ${s.response.status}: ${JSON.stringify(s.response.data)}`:`${s.name} ${s.status}: ${s.message}`:JSON.stringify(s)}function N(s){return s instanceof R.RequestError&&(s.status===429||s.status===403&&(s.response?.headers["retry-after"]!==void 0||s.response?.headers["x-ratelimit-remaining"]==="0"))}function T(s){return"status"in s&&s.status===304}function W(s){return"status"in s&&s.status===404}function f(s,e){if(N(s)){const r=s.response?.headers["retry-after"];throw new d.RateLimitError(e,s,r?parseInt(r.toString(),10)*1e3:60*1e3)}}var U="Branch Protection",Y="Branch Protection",K="object",Z={url:{type:"string"},enabled:{type:"boolean"},required_status_checks:{title:"Protected Branch Required Status Check",description:"Protected Branch Required Status Check",type:"object",properties:{url:{type:"string"},enforcement_level:{type:"string"},contexts:{type:"array",items:{type:"string"}},checks:{type:"array",items:{type:"object",properties:{context:{type:"string"},app_id:{type:["integer","null"]}},required:["context","app_id"]}},contexts_url:{type:"string"},strict:{type:"boolean"}},required:["contexts","checks"]},enforce_admins:{title:"Protected Branch Admin Enforced",description:"Protected Branch Admin Enforced",type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins"]},enabled:{type:"boolean",examples:[!0]}},required:["url","enabled"]},required_pull_request_reviews:{title:"Protected Branch Pull Request Review",description:"Protected Branch Pull Request Review",type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions"]},dismissal_restrictions:{type:"object",properties:{users:{description:"The list of users with review dismissal access.",type:"array",items:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}},teams:{description:"The list of teams with review dismissal access.",type:"array",items:{title:"Team",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},slug:{type:"string"},description:{type:["string","null"]},privacy:{type:"string"},notification_setting:{type:"string"},permission:{type:"string"},permissions:{type:"object",properties:{pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"},admin:{type:"boolean"}},required:["pull","triage","push","maintain","admin"]},url:{type:"string",format:"uri"},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},members_url:{type:"string"},repositories_url:{type:"string",format:"uri"},parent:{anyOf:[{type:"null"},{title:"Team Simple",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{description:"Unique identifier of the team",type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VGVhbTE="]},url:{description:"URL for the team",type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1"]},members_url:{type:"string",examples:["https://api.github.com/organizations/1/team/1/members{/member}"]},name:{description:"Name of the team",type:"string",examples:["Justice League"]},description:{description:"Description of the team",type:["string","null"],examples:["A great team."]},permission:{description:"Permission that the team will have for its repositories",type:"string",examples:["admin"]},privacy:{description:"The level of privacy this team should have",type:"string",examples:["closed"]},notification_setting:{description:"The notification setting the team has set",type:"string",examples:["notifications_enabled"]},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},repositories_url:{type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1/repos"]},slug:{type:"string",examples:["justice-league"]},ldap_dn:{description:"Distinguished Name (DN) that team maps to within LDAP environment",type:"string",examples:["uid=example,ou=users,dc=github,dc=com"]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug"]}]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug","parent"]}},apps:{description:"The list of apps with review dismissal access.",type:"array",items:{title:"GitHub app",description:"GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.",type:"object",properties:{id:{description:"Unique identifier of the GitHub app",type:"integer",examples:[37]},slug:{description:"The slug name of the GitHub app",type:"string",examples:["probot-owners"]},node_id:{type:"string",examples:["MDExOkludGVncmF0aW9uMQ=="]},owner:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},name:{description:"The name of the GitHub app",type:"string",examples:["Probot Owners"]},description:{type:["string","null"],examples:["The description of the app."]},external_url:{type:"string",format:"uri",examples:["https://example.com"]},html_url:{type:"string",format:"uri",examples:["https://github.com/apps/super-ci"]},created_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},updated_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},permissions:{description:"The set of permissions for the GitHub app",type:"object",properties:{issues:{type:"string"},checks:{type:"string"},metadata:{type:"string"},contents:{type:"string"},deployments:{type:"string"}},additionalProperties:{type:"string"},example:{issues:"read",deployments:"write"}},events:{description:"The list of events for the GitHub app",type:"array",items:{type:"string"},examples:["label","deployment"]},installations_count:{description:"The number of installations associated with the GitHub app",type:"integer",examples:[5]},client_id:{type:"string",examples:['"Iv1.25b5d1e65ffc4022"']},client_secret:{type:"string",examples:['"1d4b2097ac622ba702d19de498f005747a8b21d3"']},webhook_secret:{type:["string","null"],examples:['"6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b"']},pem:{type:"string",examples:['"-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\\n-----END RSA PRIVATE KEY-----\\n"']}},required:["id","node_id","owner","name","description","external_url","html_url","created_at","updated_at","permissions","events"]}},url:{type:"string",examples:['"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions"']},users_url:{type:"string",examples:['"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users"']},teams_url:{type:"string",examples:['"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams"']}}},bypass_pull_request_allowances:{type:"object",description:"Allow specific users, teams, or apps to bypass pull request requirements.",properties:{users:{description:"The list of users allowed to bypass pull request requirements.",type:"array",items:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}},teams:{description:"The list of teams allowed to bypass pull request requirements.",type:"array",items:{title:"Team",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},slug:{type:"string"},description:{type:["string","null"]},privacy:{type:"string"},notification_setting:{type:"string"},permission:{type:"string"},permissions:{type:"object",properties:{pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"},admin:{type:"boolean"}},required:["pull","triage","push","maintain","admin"]},url:{type:"string",format:"uri"},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},members_url:{type:"string"},repositories_url:{type:"string",format:"uri"},parent:{anyOf:[{type:"null"},{title:"Team Simple",description:"Groups of organization members that gives permissions on specified repositories.",type:"object",properties:{id:{description:"Unique identifier of the team",type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VGVhbTE="]},url:{description:"URL for the team",type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1"]},members_url:{type:"string",examples:["https://api.github.com/organizations/1/team/1/members{/member}"]},name:{description:"Name of the team",type:"string",examples:["Justice League"]},description:{description:"Description of the team",type:["string","null"],examples:["A great team."]},permission:{description:"Permission that the team will have for its repositories",type:"string",examples:["admin"]},privacy:{description:"The level of privacy this team should have",type:"string",examples:["closed"]},notification_setting:{description:"The notification setting the team has set",type:"string",examples:["notifications_enabled"]},html_url:{type:"string",format:"uri",examples:["https://github.com/orgs/rails/teams/core"]},repositories_url:{type:"string",format:"uri",examples:["https://api.github.com/organizations/1/team/1/repos"]},slug:{type:"string",examples:["justice-league"]},ldap_dn:{description:"Distinguished Name (DN) that team maps to within LDAP environment",type:"string",examples:["uid=example,ou=users,dc=github,dc=com"]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug"]}]}},required:["id","node_id","url","members_url","name","description","permission","html_url","repositories_url","slug","parent"]}},apps:{description:"The list of apps allowed to bypass pull request requirements.",type:"array",items:{title:"GitHub app",description:"GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.",type:"object",properties:{id:{description:"Unique identifier of the GitHub app",type:"integer",examples:[37]},slug:{description:"The slug name of the GitHub app",type:"string",examples:["probot-owners"]},node_id:{type:"string",examples:["MDExOkludGVncmF0aW9uMQ=="]},owner:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},name:{description:"The name of the GitHub app",type:"string",examples:["Probot Owners"]},description:{type:["string","null"],examples:["The description of the app."]},external_url:{type:"string",format:"uri",examples:["https://example.com"]},html_url:{type:"string",format:"uri",examples:["https://github.com/apps/super-ci"]},created_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},updated_at:{type:"string",format:"date-time",examples:["2017-07-08T16:18:44-04:00"]},permissions:{description:"The set of permissions for the GitHub app",type:"object",properties:{issues:{type:"string"},checks:{type:"string"},metadata:{type:"string"},contents:{type:"string"},deployments:{type:"string"}},additionalProperties:{type:"string"},example:{issues:"read",deployments:"write"}},events:{description:"The list of events for the GitHub app",type:"array",items:{type:"string"},examples:["label","deployment"]},installations_count:{description:"The number of installations associated with the GitHub app",type:"integer",examples:[5]},client_id:{type:"string",examples:['"Iv1.25b5d1e65ffc4022"']},client_secret:{type:"string",examples:['"1d4b2097ac622ba702d19de498f005747a8b21d3"']},webhook_secret:{type:["string","null"],examples:['"6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b"']},pem:{type:"string",examples:['"-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\\n-----END RSA PRIVATE KEY-----\\n"']}},required:["id","node_id","owner","name","description","external_url","html_url","created_at","updated_at","permissions","events"]}}}},dismiss_stale_reviews:{type:"boolean",examples:[!0]},require_code_owner_reviews:{type:"boolean",examples:[!0]},required_approving_review_count:{type:"integer",minimum:0,maximum:6,examples:[2]},require_last_push_approval:{description:"Whether the most recent push must be approved by someone other than the person who pushed it.",type:"boolean",default:!1,examples:[!0]}},required:["dismiss_stale_reviews","require_code_owner_reviews"]},restrictions:{title:"Branch Restriction Policy",description:"Branch Restriction Policy",type:"object",properties:{url:{type:"string",format:"uri"},users_url:{type:"string",format:"uri"},teams_url:{type:"string",format:"uri"},apps_url:{type:"string",format:"uri"},users:{type:"array",items:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}}},teams:{type:"array",items:{type:"object",properties:{id:{type:"integer"},node_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},name:{type:"string"},slug:{type:"string"},description:{type:["string","null"]},privacy:{type:"string"},notification_setting:{type:"string"},permission:{type:"string"},members_url:{type:"string"},repositories_url:{type:"string"},parent:{type:["string","null"]}}}},apps:{type:"array",items:{type:"object",properties:{id:{type:"integer"},slug:{type:"string"},node_id:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},hooks_url:{type:"string"},issues_url:{type:"string"},members_url:{type:"string"},public_members_url:{type:"string"},avatar_url:{type:"string"},description:{type:"string"},gravatar_id:{type:"string",examples:['""']},html_url:{type:"string",examples:['"https://github.com/testorg-ea8ec76d71c3af4b"']},followers_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers"']},following_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}"']},gists_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}"']},starred_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}"']},subscriptions_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions"']},organizations_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs"']},received_events_url:{type:"string",examples:['"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events"']},type:{type:"string",examples:['"Organization"']},site_admin:{type:"boolean",examples:[!1]}}},name:{type:"string"},description:{type:"string"},external_url:{type:"string"},html_url:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{metadata:{type:"string"},contents:{type:"string"},issues:{type:"string"},single_file:{type:"string"}}},events:{type:"array",items:{type:"string"}}}}}},required:["url","users_url","teams_url","apps_url","users","teams","apps"]},required_linear_history:{type:"object",properties:{enabled:{type:"boolean"}}},allow_force_pushes:{type:"object",properties:{enabled:{type:"boolean"}}},allow_deletions:{type:"object",properties:{enabled:{type:"boolean"}}},block_creations:{type:"object",properties:{enabled:{type:"boolean"}}},required_conversation_resolution:{type:"object",properties:{enabled:{type:"boolean"}}},name:{type:"string",examples:['"branch/with/protection"']},protection_url:{type:"string",examples:['"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection"']},required_signatures:{type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures"]},enabled:{type:"boolean",examples:[!0]}},required:["url","enabled"]},lock_branch:{type:"object",description:"Whether to set the branch as read-only. If this is true, users will not be able to push to the branch.",properties:{enabled:{default:!1,type:"boolean"}}},allow_fork_syncing:{type:"object",description:"Whether users can pull changes from upstream when the branch is locked. Set to `true` to allow fork syncing. Set to `false` to prevent fork syncing.",properties:{enabled:{default:!1,type:"boolean"}}}},V={title:U,description:Y,type:K,properties:Z};const E=async(s,e)=>{let r;const t=await s.get(e);return t&&(r={"If-None-Match":t.etag,"If-Modified-Since":t.lastModified}),r};class x{static TYPE="BranchProtections";#e;#t;#r;type=x.TYPE;static factory=({logger:e,cache:r,branchHelper:t})=>{const i=new x(e,r,t);return{predicate:a=>a.type===i.type,extractor:i}};constructor(e,r,t){this.#e=e,this.#t=r,this.#r=t}async extract(e,r,t,i,a){const l=`github:branch_protections:${t.owner}:${t.name}:${r}`,m=a?void 0:await E(this.#t,l),u={owner:t.owner,repo:t.name,branch:await this.#s(r,t,i),headers:m};try{const o=await i.rest.repos.getBranchProtection(u);return await this.#t.set(l,{etag:o.headers?.etag,lastModified:o.headers?.date,data:o.data}),o.data}catch(o){if(T(o)){const c=await this.#t.get(l);return!c||!("data"in c)?void 0:c.data}if(W(o))return{};const n=`[BranchProtections] fact extraction failed with: ${b(o)}. Request parameters: ${JSON.stringify(u)}`;throw f(o,n),this.#e.error(n),new Error(n)}}async#s(e,r,t){return e!==p.DEFAULT_SCOPE?e:this.#r.getDefaultBranch(r,t)}getDataSchema(e){return JSON.stringify(V)}}const J=p.BaseFactExtractorSchema.merge(h.z.strictObject({type:h.z.literal("BranchProtections"),branch:h.z.string().min(1).optional()})).strict(),Q=p.BaseFactExtractorSchema.merge(h.z.strictObject({type:h.z.literal("RepositoryDetails")})).strict(),F=p.BaseFactExtractorSchema.merge(h.z.strictObject({type:h.z.literal("RepositoryLanguages")})).strict(),$=h.z.union([J,Q,F]),I=p.buildFactCollectorSchema($);function G(s){return`GitHub Fact Collector '${s}' is not configured. You may need to update collectors configuration at 'soundcheck.collectors.github'`}class X{#e=[];register(e){this.#e.push(e)}type="mux";async extract(e,r,t,i,a){for(const{predicate:l,extractor:m}of this.#e)if(l(e))return m.extract(e,r,t,i,a);throw new Error(G(e.type))}getDataSchema(e){for(const{predicate:r,extractor:t}of this.#e)if(r(e))return t.getDataSchema(e);throw new Error(G(e.type))}listFactTypes(){return this.#e.map(({extractor:e})=>e.type)}toString(){return`predicateMux{extractors=${this.#e.map(e=>e.extractor).join(",")}`}}class ee{static create(e){const{logger:r,cache:t,branchHelper:i,factories:a}=e,l=new X;for(const m of a??[]){const u=m({logger:r,cache:t,branchHelper:i});l.register(u)}return l}}class q{#e;#t;static create(e,r){return new q(e,r)}constructor(e,r){this.#e=e,this.#t=r}async getDefaultBranch(e,r){let t=await this.#t.get(e.full_name);if(t!==void 0)return t;const i={owner:e.owner,repo:e.name};try{t=(await r.rest.repos.get(i)).data.default_branch,await this.#t.set(e.full_name,t)}catch(a){e.ref?t=e.ref:t="main";const l=`Failed to get default branch name with: ${b(a)}. Request parameters: ${JSON.stringify(i)}. Falling back to using [${t}] as default branch`;f(a,l),this.#e.error(l)}return t}}var te="Full Repository",re="Full Repository",se="object",ie={id:{type:"integer",examples:[1296269]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{type:"string",examples:["Hello-World"]},full_name:{type:"string",examples:["octocat/Hello-World"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"},examples:["octocat","atom","electron","API"]},has_issues:{type:"boolean",examples:[!0]},has_projects:{type:"boolean",examples:[!0]},has_wiki:{type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{type:"boolean",examples:[!0]},has_discussions:{type:"boolean",examples:[!0]},archived:{type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",type:"string",examples:["public"]},pushed_at:{type:"string",format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:"string",format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:"string",format:"date-time",examples:["2011-01-26T19:14:43Z"]},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}},required:["admin","pull","push"]},allow_rebase_merge:{type:"boolean",examples:[!0]},template_repository:{anyOf:[{type:"null"},{title:"Repository",description:"A repository on GitHub.",type:"object",properties:{id:{description:"Unique identifier of the repository",type:"integer",examples:[42]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{description:"The name of the repository.",type:"string",examples:["Team Environment"]},full_name:{type:"string",examples:["octocat/Hello-World"]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},forks:{type:"integer"},permissions:{type:"object",properties:{admin:{type:"boolean"},pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"}},required:["admin","pull","push"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{description:"Whether the repository is private or public.",default:!1,type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{description:"The default branch of the repository.",type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{description:"Whether this repository acts as a template that can be used to generate new repositories.",default:!1,type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"}},has_issues:{description:"Whether issues are enabled.",default:!0,type:"boolean",examples:[!0]},has_projects:{description:"Whether projects are enabled.",default:!0,type:"boolean",examples:[!0]},has_wiki:{description:"Whether the wiki is enabled.",default:!0,type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{description:"Whether downloads are enabled.",default:!0,type:"boolean",examples:[!0]},has_discussions:{description:"Whether discussions are enabled.",default:!1,type:"boolean",examples:[!0]},archived:{description:"Whether the repository is archived.",default:!1,type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",default:"public",type:"string"},pushed_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:14:43Z"]},allow_rebase_merge:{description:"Whether to allow rebase merges for pull requests.",default:!0,type:"boolean",examples:[!0]},template_repository:{type:["object","null"],properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},full_name:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}},private:{type:"boolean"},html_url:{type:"string"},description:{type:"string"},fork:{type:"boolean"},url:{type:"string"},archive_url:{type:"string"},assignees_url:{type:"string"},blobs_url:{type:"string"},branches_url:{type:"string"},collaborators_url:{type:"string"},comments_url:{type:"string"},commits_url:{type:"string"},compare_url:{type:"string"},contents_url:{type:"string"},contributors_url:{type:"string"},deployments_url:{type:"string"},downloads_url:{type:"string"},events_url:{type:"string"},forks_url:{type:"string"},git_commits_url:{type:"string"},git_refs_url:{type:"string"},git_tags_url:{type:"string"},git_url:{type:"string"},issue_comment_url:{type:"string"},issue_events_url:{type:"string"},issues_url:{type:"string"},keys_url:{type:"string"},labels_url:{type:"string"},languages_url:{type:"string"},merges_url:{type:"string"},milestones_url:{type:"string"},notifications_url:{type:"string"},pulls_url:{type:"string"},releases_url:{type:"string"},ssh_url:{type:"string"},stargazers_url:{type:"string"},statuses_url:{type:"string"},subscribers_url:{type:"string"},subscription_url:{type:"string"},tags_url:{type:"string"},teams_url:{type:"string"},trees_url:{type:"string"},clone_url:{type:"string"},mirror_url:{type:"string"},hooks_url:{type:"string"},svn_url:{type:"string"},homepage:{type:"string"},language:{type:"string"},forks_count:{type:"integer"},stargazers_count:{type:"integer"},watchers_count:{type:"integer"},size:{type:"integer"},default_branch:{type:"string"},open_issues_count:{type:"integer"},is_template:{type:"boolean"},topics:{type:"array",items:{type:"string"}},has_issues:{type:"boolean"},has_projects:{type:"boolean"},has_wiki:{type:"boolean"},has_pages:{type:"boolean"},has_downloads:{type:"boolean"},archived:{type:"boolean"},disabled:{type:"boolean"},visibility:{type:"string"},pushed_at:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}}},allow_rebase_merge:{type:"boolean"},temp_clone_token:{type:"string"},allow_squash_merge:{type:"boolean"},allow_auto_merge:{type:"boolean"},delete_branch_on_merge:{type:"boolean"},allow_update_branch:{type:"boolean"},use_squash_pr_title_as_default:{type:"boolean"},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"}}},temp_clone_token:{type:"string"},allow_squash_merge:{description:"Whether to allow squash merges for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_auto_merge:{description:"Whether to allow Auto-merge to be used on pull requests.",default:!1,type:"boolean",examples:[!1]},delete_branch_on_merge:{description:"Whether to delete head branches when pull requests are merged",default:!1,type:"boolean",examples:[!1]},allow_update_branch:{description:"Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",default:!1,type:"boolean",examples:[!1]},use_squash_pr_title_as_default:{type:"boolean",description:"Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.",default:!1,deprecated:!0},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{description:"Whether to allow merge commits for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_forking:{description:"Whether to allow forking this repo",type:"boolean"},web_commit_signoff_required:{description:"Whether to require contributors to sign off on web-based commits",default:!1,type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"},open_issues:{type:"integer"},watchers:{type:"integer"},master_branch:{type:"string"},starred_at:{type:"string",examples:['"2020-07-09T00:17:42Z"']},anonymous_access_enabled:{type:"boolean",description:"Whether anonymous git access is enabled for this repository"}},required:["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at"]}]},temp_clone_token:{type:["string","null"]},allow_squash_merge:{type:"boolean",examples:[!0]},allow_auto_merge:{type:"boolean",examples:[!1]},delete_branch_on_merge:{type:"boolean",examples:[!1]},allow_merge_commit:{type:"boolean",examples:[!0]},allow_update_branch:{type:"boolean",examples:[!0]},use_squash_pr_title_as_default:{type:"boolean",examples:[!1]},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).",examples:["PR_TITLE"]},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message.",examples:["PR_BODY"]},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n - `PR_TITLE` - default to the pull request's title.\n - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).",examples:["PR_TITLE"]},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message.",examples:["PR_BODY"]},allow_forking:{type:"boolean",examples:[!0]},web_commit_signoff_required:{type:"boolean",examples:[!1]},subscribers_count:{type:"integer",examples:[42]},network_count:{type:"integer",examples:[0]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},parent:{title:"Repository",description:"A repository on GitHub.",type:"object",properties:{id:{description:"Unique identifier of the repository",type:"integer",examples:[42]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{description:"The name of the repository.",type:"string",examples:["Team Environment"]},full_name:{type:"string",examples:["octocat/Hello-World"]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},forks:{type:"integer"},permissions:{type:"object",properties:{admin:{type:"boolean"},pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"}},required:["admin","pull","push"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{description:"Whether the repository is private or public.",default:!1,type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{description:"The default branch of the repository.",type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{description:"Whether this repository acts as a template that can be used to generate new repositories.",default:!1,type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"}},has_issues:{description:"Whether issues are enabled.",default:!0,type:"boolean",examples:[!0]},has_projects:{description:"Whether projects are enabled.",default:!0,type:"boolean",examples:[!0]},has_wiki:{description:"Whether the wiki is enabled.",default:!0,type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{description:"Whether downloads are enabled.",default:!0,type:"boolean",examples:[!0]},has_discussions:{description:"Whether discussions are enabled.",default:!1,type:"boolean",examples:[!0]},archived:{description:"Whether the repository is archived.",default:!1,type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",default:"public",type:"string"},pushed_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:14:43Z"]},allow_rebase_merge:{description:"Whether to allow rebase merges for pull requests.",default:!0,type:"boolean",examples:[!0]},template_repository:{type:["object","null"],properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},full_name:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}},private:{type:"boolean"},html_url:{type:"string"},description:{type:"string"},fork:{type:"boolean"},url:{type:"string"},archive_url:{type:"string"},assignees_url:{type:"string"},blobs_url:{type:"string"},branches_url:{type:"string"},collaborators_url:{type:"string"},comments_url:{type:"string"},commits_url:{type:"string"},compare_url:{type:"string"},contents_url:{type:"string"},contributors_url:{type:"string"},deployments_url:{type:"string"},downloads_url:{type:"string"},events_url:{type:"string"},forks_url:{type:"string"},git_commits_url:{type:"string"},git_refs_url:{type:"string"},git_tags_url:{type:"string"},git_url:{type:"string"},issue_comment_url:{type:"string"},issue_events_url:{type:"string"},issues_url:{type:"string"},keys_url:{type:"string"},labels_url:{type:"string"},languages_url:{type:"string"},merges_url:{type:"string"},milestones_url:{type:"string"},notifications_url:{type:"string"},pulls_url:{type:"string"},releases_url:{type:"string"},ssh_url:{type:"string"},stargazers_url:{type:"string"},statuses_url:{type:"string"},subscribers_url:{type:"string"},subscription_url:{type:"string"},tags_url:{type:"string"},teams_url:{type:"string"},trees_url:{type:"string"},clone_url:{type:"string"},mirror_url:{type:"string"},hooks_url:{type:"string"},svn_url:{type:"string"},homepage:{type:"string"},language:{type:"string"},forks_count:{type:"integer"},stargazers_count:{type:"integer"},watchers_count:{type:"integer"},size:{type:"integer"},default_branch:{type:"string"},open_issues_count:{type:"integer"},is_template:{type:"boolean"},topics:{type:"array",items:{type:"string"}},has_issues:{type:"boolean"},has_projects:{type:"boolean"},has_wiki:{type:"boolean"},has_pages:{type:"boolean"},has_downloads:{type:"boolean"},archived:{type:"boolean"},disabled:{type:"boolean"},visibility:{type:"string"},pushed_at:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}}},allow_rebase_merge:{type:"boolean"},temp_clone_token:{type:"string"},allow_squash_merge:{type:"boolean"},allow_auto_merge:{type:"boolean"},delete_branch_on_merge:{type:"boolean"},allow_update_branch:{type:"boolean"},use_squash_pr_title_as_default:{type:"boolean"},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"}}},temp_clone_token:{type:"string"},allow_squash_merge:{description:"Whether to allow squash merges for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_auto_merge:{description:"Whether to allow Auto-merge to be used on pull requests.",default:!1,type:"boolean",examples:[!1]},delete_branch_on_merge:{description:"Whether to delete head branches when pull requests are merged",default:!1,type:"boolean",examples:[!1]},allow_update_branch:{description:"Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",default:!1,type:"boolean",examples:[!1]},use_squash_pr_title_as_default:{type:"boolean",description:"Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.",default:!1,deprecated:!0},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{description:"Whether to allow merge commits for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_forking:{description:"Whether to allow forking this repo",type:"boolean"},web_commit_signoff_required:{description:"Whether to require contributors to sign off on web-based commits",default:!1,type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"},open_issues:{type:"integer"},watchers:{type:"integer"},master_branch:{type:"string"},starred_at:{type:"string",examples:['"2020-07-09T00:17:42Z"']},anonymous_access_enabled:{type:"boolean",description:"Whether anonymous git access is enabled for this repository"}},required:["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at"]},source:{title:"Repository",description:"A repository on GitHub.",type:"object",properties:{id:{description:"Unique identifier of the repository",type:"integer",examples:[42]},node_id:{type:"string",examples:["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"]},name:{description:"The name of the repository.",type:"string",examples:["Team Environment"]},full_name:{type:"string",examples:["octocat/Hello-World"]},license:{anyOf:[{type:"null"},{title:"License Simple",description:"License Simple",type:"object",properties:{key:{type:"string",examples:["mit"]},name:{type:"string",examples:["MIT License"]},url:{type:["string","null"],format:"uri",examples:["https://api.github.com/licenses/mit"]},spdx_id:{type:["string","null"],examples:["MIT"]},node_id:{type:"string",examples:["MDc6TGljZW5zZW1pdA=="]},html_url:{type:"string",format:"uri"}},required:["key","name","url","spdx_id","node_id"]}]},organization:{anyOf:[{type:"null"},{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]}]},forks:{type:"integer"},permissions:{type:"object",properties:{admin:{type:"boolean"},pull:{type:"boolean"},triage:{type:"boolean"},push:{type:"boolean"},maintain:{type:"boolean"}},required:["admin","pull","push"]},owner:{title:"Simple User",description:"A GitHub user.",type:"object",properties:{name:{type:["string","null"]},email:{type:["string","null"]},login:{type:"string",examples:["octocat"]},id:{type:"integer",examples:[1]},node_id:{type:"string",examples:["MDQ6VXNlcjE="]},avatar_url:{type:"string",format:"uri",examples:["https://github.com/images/error/octocat_happy.gif"]},gravatar_id:{type:["string","null"],examples:["41d064eb2195891e12d0413f63227ea7"]},url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat"]},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat"]},followers_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/followers"]},following_url:{type:"string",examples:["https://api.github.com/users/octocat/following{/other_user}"]},gists_url:{type:"string",examples:["https://api.github.com/users/octocat/gists{/gist_id}"]},starred_url:{type:"string",examples:["https://api.github.com/users/octocat/starred{/owner}{/repo}"]},subscriptions_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/subscriptions"]},organizations_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/orgs"]},repos_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/repos"]},events_url:{type:"string",examples:["https://api.github.com/users/octocat/events{/privacy}"]},received_events_url:{type:"string",format:"uri",examples:["https://api.github.com/users/octocat/received_events"]},type:{type:"string",examples:["User"]},site_admin:{type:"boolean"},starred_at:{type:"string",examples:['"2020-07-09T00:17:55Z"']}},required:["avatar_url","events_url","followers_url","following_url","gists_url","gravatar_id","html_url","id","node_id","login","organizations_url","received_events_url","repos_url","site_admin","starred_url","subscriptions_url","type","url"]},private:{description:"Whether the repository is private or public.",default:!1,type:"boolean"},html_url:{type:"string",format:"uri",examples:["https://github.com/octocat/Hello-World"]},description:{type:["string","null"],examples:["This your first repo!"]},fork:{type:"boolean"},url:{type:"string",format:"uri",examples:["https://api.github.com/repos/octocat/Hello-World"]},archive_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"]},assignees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"]},blobs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"]},branches_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"]},collaborators_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]},comments_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/comments{/number}"]},commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"]},compare_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"]},contents_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"]},contributors_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/contributors"]},deployments_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/deployments"]},downloads_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/downloads"]},events_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/events"]},forks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/forks"]},git_commits_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"]},git_refs_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"]},git_tags_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"]},git_url:{type:"string",examples:["git:github.com/octocat/Hello-World.git"]},issue_comment_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]},issue_events_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]},issues_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/issues{/number}"]},keys_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"]},labels_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/labels{/name}"]},languages_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/languages"]},merges_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/merges"]},milestones_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"]},notifications_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]},pulls_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"]},releases_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/releases{/id}"]},ssh_url:{type:"string",examples:["git@github.com:octocat/Hello-World.git"]},stargazers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/stargazers"]},statuses_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"]},subscribers_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscribers"]},subscription_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/subscription"]},tags_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/tags"]},teams_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/teams"]},trees_url:{type:"string",examples:["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"]},clone_url:{type:"string",examples:["https://github.com/octocat/Hello-World.git"]},mirror_url:{type:["string","null"],format:"uri",examples:["git:git.example.com/octocat/Hello-World"]},hooks_url:{type:"string",format:"uri",examples:["http://api.github.com/repos/octocat/Hello-World/hooks"]},svn_url:{type:"string",format:"uri",examples:["https://svn.github.com/octocat/Hello-World"]},homepage:{type:["string","null"],format:"uri",examples:["https://github.com"]},language:{type:["string","null"]},forks_count:{type:"integer",examples:[9]},stargazers_count:{type:"integer",examples:[80]},watchers_count:{type:"integer",examples:[80]},size:{description:"The size of the repository. Size is calculated hourly. When a repository is initially created, the size is 0.",type:"integer",examples:[108]},default_branch:{description:"The default branch of the repository.",type:"string",examples:["master"]},open_issues_count:{type:"integer",examples:[0]},is_template:{description:"Whether this repository acts as a template that can be used to generate new repositories.",default:!1,type:"boolean",examples:[!0]},topics:{type:"array",items:{type:"string"}},has_issues:{description:"Whether issues are enabled.",default:!0,type:"boolean",examples:[!0]},has_projects:{description:"Whether projects are enabled.",default:!0,type:"boolean",examples:[!0]},has_wiki:{description:"Whether the wiki is enabled.",default:!0,type:"boolean",examples:[!0]},has_pages:{type:"boolean"},has_downloads:{description:"Whether downloads are enabled.",default:!0,type:"boolean",examples:[!0]},has_discussions:{description:"Whether discussions are enabled.",default:!1,type:"boolean",examples:[!0]},archived:{description:"Whether the repository is archived.",default:!1,type:"boolean"},disabled:{type:"boolean",description:"Returns whether or not this repository disabled."},visibility:{description:"The repository visibility: public, private, or internal.",default:"public",type:"string"},pushed_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:06:43Z"]},created_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:01:12Z"]},updated_at:{type:["string","null"],format:"date-time",examples:["2011-01-26T19:14:43Z"]},allow_rebase_merge:{description:"Whether to allow rebase merges for pull requests.",default:!0,type:"boolean",examples:[!0]},template_repository:{type:["object","null"],properties:{id:{type:"integer"},node_id:{type:"string"},name:{type:"string"},full_name:{type:"string"},owner:{type:"object",properties:{login:{type:"string"},id:{type:"integer"},node_id:{type:"string"},avatar_url:{type:"string"},gravatar_id:{type:"string"},url:{type:"string"},html_url:{type:"string"},followers_url:{type:"string"},following_url:{type:"string"},gists_url:{type:"string"},starred_url:{type:"string"},subscriptions_url:{type:"string"},organizations_url:{type:"string"},repos_url:{type:"string"},events_url:{type:"string"},received_events_url:{type:"string"},type:{type:"string"},site_admin:{type:"boolean"}}},private:{type:"boolean"},html_url:{type:"string"},description:{type:"string"},fork:{type:"boolean"},url:{type:"string"},archive_url:{type:"string"},assignees_url:{type:"string"},blobs_url:{type:"string"},branches_url:{type:"string"},collaborators_url:{type:"string"},comments_url:{type:"string"},commits_url:{type:"string"},compare_url:{type:"string"},contents_url:{type:"string"},contributors_url:{type:"string"},deployments_url:{type:"string"},downloads_url:{type:"string"},events_url:{type:"string"},forks_url:{type:"string"},git_commits_url:{type:"string"},git_refs_url:{type:"string"},git_tags_url:{type:"string"},git_url:{type:"string"},issue_comment_url:{type:"string"},issue_events_url:{type:"string"},issues_url:{type:"string"},keys_url:{type:"string"},labels_url:{type:"string"},languages_url:{type:"string"},merges_url:{type:"string"},milestones_url:{type:"string"},notifications_url:{type:"string"},pulls_url:{type:"string"},releases_url:{type:"string"},ssh_url:{type:"string"},stargazers_url:{type:"string"},statuses_url:{type:"string"},subscribers_url:{type:"string"},subscription_url:{type:"string"},tags_url:{type:"string"},teams_url:{type:"string"},trees_url:{type:"string"},clone_url:{type:"string"},mirror_url:{type:"string"},hooks_url:{type:"string"},svn_url:{type:"string"},homepage:{type:"string"},language:{type:"string"},forks_count:{type:"integer"},stargazers_count:{type:"integer"},watchers_count:{type:"integer"},size:{type:"integer"},default_branch:{type:"string"},open_issues_count:{type:"integer"},is_template:{type:"boolean"},topics:{type:"array",items:{type:"string"}},has_issues:{type:"boolean"},has_projects:{type:"boolean"},has_wiki:{type:"boolean"},has_pages:{type:"boolean"},has_downloads:{type:"boolean"},archived:{type:"boolean"},disabled:{type:"boolean"},visibility:{type:"string"},pushed_at:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},permissions:{type:"object",properties:{admin:{type:"boolean"},maintain:{type:"boolean"},push:{type:"boolean"},triage:{type:"boolean"},pull:{type:"boolean"}}},allow_rebase_merge:{type:"boolean"},temp_clone_token:{type:"string"},allow_squash_merge:{type:"boolean"},allow_auto_merge:{type:"boolean"},delete_branch_on_merge:{type:"boolean"},allow_update_branch:{type:"boolean"},use_squash_pr_title_as_default:{type:"boolean"},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"}}},temp_clone_token:{type:"string"},allow_squash_merge:{description:"Whether to allow squash merges for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_auto_merge:{description:"Whether to allow Auto-merge to be used on pull requests.",default:!1,type:"boolean",examples:[!1]},delete_branch_on_merge:{description:"Whether to delete head branches when pull requests are merged",default:!1,type:"boolean",examples:[!1]},allow_update_branch:{description:"Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",default:!1,type:"boolean",examples:[!1]},use_squash_pr_title_as_default:{type:"boolean",description:"Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.",default:!1,deprecated:!0},squash_merge_commit_title:{type:"string",enum:["PR_TITLE","COMMIT_OR_PR_TITLE"],description:"The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."},squash_merge_commit_message:{type:"string",enum:["PR_BODY","COMMIT_MESSAGES","BLANK"],description:"The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."},merge_commit_title:{type:"string",enum:["PR_TITLE","MERGE_MESSAGE"],description:"The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."},merge_commit_message:{type:"string",enum:["PR_BODY","PR_TITLE","BLANK"],description:"The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."},allow_merge_commit:{description:"Whether to allow merge commits for pull requests.",default:!0,type:"boolean",examples:[!0]},allow_forking:{description:"Whether to allow forking this repo",type:"boolean"},web_commit_signoff_required:{description:"Whether to require contributors to sign off on web-based commits",default:!1,type:"boolean"},subscribers_count:{type:"integer"},network_count:{type:"integer"},open_issues:{type:"integer"},watchers:{type:"integer"},master_branch:{type:"string"},starred_at:{type:"string",examples:['"2020-07-09T00:17:42Z"']},anonymous_access_enabled:{type:"boolean",description:"Whether anonymous git access is enabled for this repository"}},required:["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at"]},forks:{type:"integer"},master_branch:{type:"string"},open_issues:{type:"integer"},watchers:{type:"integer"},anonymous_access_enabled:{description:"Whether anonymous git access is allowed.",default:!0,type:"boolean"},code_of_conduct:{title:"Code Of Conduct Simple",description:"Code of Conduct Simple",type:"object",properties:{url:{type:"string",format:"uri",examples:["https://api.github.com/repos/github/docs/community/code_of_conduct"]},key:{type:"string",examples:["citizen_code_of_conduct"]},name:{type:"string",examples:["Citizen Code of Conduct"]},html_url:{type:["string","null"],format:"uri",examples:["https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md"]}},required:["url","key","name","html_url"]},security_and_analysis:{type:["object","null"],properties:{advanced_security:{type:"object",properties:{status:{type:"string",enum:["enabled","disabled"]}}},secret_scanning:{type:"object",properties:{status:{type:"string",enum:["enabled","disabled"]}}},secret_scanning_push_protection:{type:"object",properties:{status:{type:"string",enum:["enabled","disabled"]}}}}}},oe=["archive_url","assignees_url","blobs_url","branches_url","collaborators_url","comments_url","commits_url","compare_url","contents_url","contributors_url","deployments_url","description","downloads_url","events_url","fork","forks_url","full_name","git_commits_url","git_refs_url","git_tags_url","hooks_url","html_url","id","node_id","issue_comment_url","issue_events_url","issues_url","keys_url","labels_url","languages_url","merges_url","milestones_url","name","notifications_url","owner","private","pulls_url","releases_url","stargazers_url","statuses_url","subscribers_url","subscription_url","tags_url","teams_url","trees_url","url","clone_url","default_branch","forks","forks_count","git_url","has_downloads","has_issues","has_projects","has_wiki","has_pages","has_discussions","homepage","language","archived","disabled","mirror_url","open_issues","open_issues_count","license","pushed_at","size","ssh_url","stargazers_count","svn_url","watchers","watchers_count","created_at","updated_at","network_count","subscribers_count"],ae={title:te,description:re,type:se,properties:ie,required:oe};class v{static TYPE="RepositoryDetails";#e;#t;type=v.TYPE;static factory=({logger:e,cache:r})=>{const t=new v(e,r);return{predicate:i=>i.type===t.type,extractor:t}};constructor(e,r){this.#e=e,this.#t=r}async extract(e,r,t,i,a){const l=`github:repository_details:${t.owner}:${t.name}`,m=a?void 0:await E(this.#t,l),u={owner:t.owner,repo:t.name,headers:m};try{const o=await i.rest.repos.get(u);return await this.#t.set(l,{etag:o.headers?.etag,lastModified:o.headers?.date,data:o.data}),o.data}catch(o){if(T(o)){const c=await this.#t.get(l);return!c||!("data"in c)?void 0:c.data}if(W(o))return{};const n=`[RepositoryDetails] fact extraction failed with: ${b(o)}. Request parameters: ${JSON.stringify(u)}`;throw f(o,n),this.#e.error(n),new Error(n)}}getDataSchema(e){return JSON.stringify(ae)}}var le="Language",pe="Language",ne="object",ue={type:"integer"},ce={title:le,description:pe,type:ne,additionalProperties:ue};class w{static TYPE="RepositoryLanguages";#e;#t;type=w.TYPE;static factory=({logger:e,cache:r})=>{const t=new w(e,r);return{predicate:i=>i.type===t.type,extractor:t}};constructor(e,r){this.#e=e,this.#t=r}async extract(e,r,t,i,a){const l=`github:repository_languages:${t.owner}:${t.name}`,m=a?void 0:await E(this.#t,l),u={owner:t.owner,repo:t.name,headers:m};try{const o=await i.rest.repos.listLanguages(u);return await this.#t.set(l,{etag:o.headers?.etag,lastModified:o.headers?.date,data:o.data}),o.data}catch(o){if(T(o)){const c=await this.#t.get(l);return!c||!("data"in c)?void 0:c.data}if(W(o))return{};const n=`[RepositoryLanguages] fact extraction failed with: ${b(o)}. Request parameters: ${JSON.stringify(u)}`;throw f(o,n),this.#e.error(n),new Error(n)}}getDataSchema(e){return JSON.stringify(ce)}}class H{static create(e){return new H(e)}#e;#t={};#r;constructor(e){this.#r=e}getConfig(){return this.#e}setConfig(e){this.#e=e,this.#t=this.#s(e)}#s(e){const r=I.safeParse(e);if(!r.success)throw this.#r.error("Invalid GithubFactCollector config."),new P.InputError(r.error.message);if(r.data.hasOwnProperty("url"))throw this.#r.error("Invalid GithubFactCollector config, the GitHub collector does not yet support URL references."),new P.InputError("Invalid GithubFactCollector config, the GitHub collector does not yet support URL references.");return p.buildExtractorConfigMap(r.data)}getExtractorConfig(e){return this.#t[e]??{type:e}}getExtractorConfigs(){return Object.values(this.#t)}}class _{static ID="github";#e;#t;#r;#s;#i;static create(e,r,t){return new _(e,r,t)}id=_.ID;name="GitHub";description="Collects facts about your GitHub repositories.";constructor(e,r,t){this.#e=r.child({target:this.id}),this.#t=k.ScmIntegrations.fromConfig(e),this.#r=k.DefaultGithubCredentialsProvider.fromIntegrations(this.#t),this.#s=ee.create({logger:this.#e,cache:t.getClient(),branchHelper:q.create(this.#e,t.getClient({defaultTtl:60*60*1e3})),factories:[x.factory,v.factory,w.factory]}),this.#i=H.create(this.#e)}async collect(e,r){const t=r?.factRefs??this.#i.getExtractorConfigs().map(i=>p.getFactRef(this.id,i));return Promise.all(e.filter(i=>p.isScmEntity(i)).map(async i=>{const a=z.stringifyEntityRef(i),l=p.getEntityScmUrl(i),m=L.default(l),u=await this.getOctokit(l);return u?Promise.all(t.map(async o=>{const n=p.parseFactRef(o,{defaultSource:this.id,defaultScope:p.DEFAULT_SCOPE}),c=this.#i.getExtractorConfig(n.name),O=!!r?.refresh?.map(g=>p.stringifyFactRef(g))?.includes(p.stringifyFactRef(o));return this.#s.extract(c,n.scope,m,u,O).then(g=>{if(g!==void 0)return p.buildFact(a,o,g)}).catch(g=>{if(g instanceof d.RateLimitError)throw g;return this.#e.error(`Failed to collect ${p.stringifyFactRef(o)} fact data for ${a} entity: ${g}`),p.buildCollectionError(a,o,g)})})):Promise.resolve()})).then(i=>i.flat().filter(a=>!!a))}async getOctokit(e){try{const{token:r}=await this.#r.getCredentials({url:e}),t=this.#t.github.byUrl(e);return new B.Octokit({auth:r,baseUrl:t?.config.apiBaseUrl})}catch(r){this.#e.warn(`Skipping Github fact collection for url ${e}: ${r}`);return}}async getCollectionConfigs(){return p.buildCollectionConfigs(this.id,this.#i.getExtractorConfigs())}async getFactNames(){const e=this.#s.listFactTypes(),r=this.#i.getExtractorConfigs();return e.flatMap(t=>r.filter(i=>i.type===t).map(i=>i.factName??i.type)??t)}async getDataSchema(e){const r=p.parseFactRef(e,{defaultSource:this.id,defaultScope:p.DEFAULT_SCOPE}),t=this.#i.getExtractorConfigs().find(i=>{const a=p.parseFactRef(p.getFactRef(this.id,i));return r.source===a.source&&r.name===a.name});if(t)return this.#s.getDataSchema(t)}async getConfig(){return this.#i.getConfig()}async setConfig(e){this.#i.setConfig(e)}async getConfigSchema(){return JSON.stringify(D.default(I))}}const me={id:"github-branch-protections",category:"Code & Configurations",title:"Branch Protections",summary:"Verify that branch protection rules are defined.",name:"Default branch is protected",description:"Verifies that branch protection rules are defined on the default branch.",rule:{factRef:"github:default/branch_protections",path:"$.required_pull_request_reviews",operator:"exists",value:!0},passedMessage:"Branch protection rules are defined.",failedMessage:"Branch protection rules are not defined. Please update your branch protection rules.",filter:{catalog:{kind:"Component"}}},ge={id:"github-approving-reviews",category:"Code & Configurations",title:"Approving Reviews",summary:"Verify pull request reviews are required before merging.",name:"Default branch is protected",description:"Verifies that pull request reviews are required before merging.",rule:{factRef:"github:default/branch_protections",path:"$.required_pull_request_reviews.required_approving_review_count",operator:"greaterThanInclusive",value:1},passedMessage:"Pull request reviews are required to merge.",failedMessage:"Pull request reviews are not required to merge. Please update your branch protection rules.",filter:{catalog:{kind:"Component"}}},he={id:"github-dismiss-stale-reviews",category:"Code & Configurations",title:"Stale Reviews",summary:"Verify that stale PR approvals are dismissed.",name:"Dismisses stale PR approvals",description:"Verifies that new reviewable commits dismiss pull request review approvals.",rule:{factRef:"github:default/branch_protections",path:"$.required_pull_request_reviews.dismiss_stale_reviews",operator:"equal",value:!0},passedMessage:"Stale PR approvals are dismissed.",failedMessage:"Stale PR approvals are not dismissed.",filter:{catalog:{kind:"Component"}}},_e={id:"github-branch-protections-enforce-admins",category:"Code & Configurations",title:"Admin Enforcement",summary:"Verify that branch protections are applicable to admins.",name:"Branch protections apply to admins",description:"Verifies that branch protections on the default branch are also enforced for admins.",rule:{factRef:"github:default/branch_protections",path:"$.enforce_admins.enabled",operator:"equal",value:!0},passedMessage:"Branch protections are enforced for admins.",failedMessage:"Branch protections are not enforced for admins. Please update your branch protection rules.",filter:{catalog:{kind:"Component"}}},de={id:"github-requires-status-checks",category:"Code & Configurations",title:"Status Checks",summary:"Verify that required status checks are defined.",name:"Status Checks Required",description:"Verifies that status checks are required to ensure that all required CI tests are either passing or skipped before collaborators can make changes to a protected branch.",rule:{all:[{factRef:"github:default/branch_protections",path:"$.required_status_checks.checks[*].context",operator:"contains"}]},passedMessage:"Status checks are required to merge.",failedMessage:"Required status checks are not required to merge. Please update your branch protection rules.",filter:{catalog:{kind:"Component"}}};function A(){return[me,ge,he,_e,de]}const ye=y.createBackendModule({pluginId:"soundcheck",moduleId:"github",register(s){s.registerInit({deps:{cache:y.coreServices.cache,config:y.coreServices.rootConfig,logger:y.coreServices.logger,collectorsExtension:d.factCollectionExtensionPoint,templatesExtension:d.checkTemplateExtensionPoint},async init({cache:e,config:r,logger:t,collectorsExtension:i,templatesExtension:a}){i.addFactCollector(_.create(r,M.loggerToWinstonLogger(t),M.cacheToPluginCacheManager(e))),a.addCheckTemplates(...A())}})}});exports.GithubFactCollector=_,exports.default=ye,exports.githubCheckTemplates=A;
2
2
  //# sourceMappingURL=index.cjs.js.map
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import { PluginCacheManager } from '@backstage/backend-common';
2
2
  import { Entity } from '@backstage/catalog-model';
3
3
  import { Config } from '@backstage/config';
4
4
  import { JsonValue } from '@backstage/types';
5
- import { FactRef, Fact, CollectionConfig } from '@spotify/backstage-plugin-soundcheck-common';
6
- import { ConfigurableFactCollector } from '@spotify/backstage-plugin-soundcheck-node';
5
+ import { FactRef, Fact, CollectionError, CollectionConfig } from '@spotify/backstage-plugin-soundcheck-common';
6
+ import { ConfigurableFactCollector, CheckTemplate } from '@spotify/backstage-plugin-soundcheck-node';
7
7
  import { Logger } from 'winston';
8
8
  import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
9
9
 
@@ -28,7 +28,7 @@ declare class GithubFactCollector implements ConfigurableFactCollector {
28
28
  collect(entities: Entity[], params?: {
29
29
  factRefs?: FactRef[];
30
30
  refresh?: FactRef[];
31
- }): Promise<Fact[]>;
31
+ }): Promise<(Fact | CollectionError)[]>;
32
32
  /** {@inheritDoc @spotify/backstage-plugin-soundcheck-node#FactCollector.getCollectionConfigs} */
33
33
  getCollectionConfigs(): Promise<CollectionConfig[]>;
34
34
  /** {@inheritDoc @spotify/backstage-plugin-soundcheck-node#FactCollector.getFactNames} */
@@ -43,4 +43,11 @@ declare class GithubFactCollector implements ConfigurableFactCollector {
43
43
  /** @alpha */
44
44
  declare const githubSoundcheckModule: _backstage_backend_plugin_api.BackendFeatureCompat;
45
45
 
46
- export { GithubFactCollector, githubSoundcheckModule as default };
46
+ /**
47
+ * Returns the check templates for the GitHub integration.
48
+ *
49
+ * @public
50
+ */
51
+ declare function githubCheckTemplates(): CheckTemplate[];
52
+
53
+ export { GithubFactCollector, githubSoundcheckModule as default, githubCheckTemplates };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spotify/backstage-plugin-soundcheck-backend-module-github",
3
3
  "description": "Soundcheck 3rd party integration with Github",
4
- "version": "0.5.9",
4
+ "version": "0.6.0",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://backstage.spotify.com",
7
7
  "main": "dist/index.cjs.js",
@@ -24,26 +24,26 @@
24
24
  "postpack": "backstage-cli package postpack"
25
25
  },
26
26
  "devDependencies": {
27
- "@backstage/backend-test-utils": "^0.4.4",
28
- "@backstage/cli": "^0.26.11",
29
- "@spotify/backstage-plugin-soundcheck-backend": "^0.16.9",
27
+ "@backstage/backend-test-utils": "^0.5.0",
28
+ "@backstage/cli": "^0.27.0",
29
+ "@spotify/backstage-plugin-soundcheck-backend": "^0.17.0",
30
30
  "@types/git-url-parse": "^9.0.0",
31
31
  "@types/luxon": "^3.0.1",
32
32
  "supertest": "^7.0.0"
33
33
  },
34
34
  "dependencies": {
35
- "@backstage/backend-common": "^0.23.3",
36
- "@backstage/backend-plugin-api": "^0.7.0",
37
- "@backstage/catalog-model": "^1.5.0",
35
+ "@backstage/backend-common": "^0.24.0",
36
+ "@backstage/backend-plugin-api": "^0.8.0",
37
+ "@backstage/catalog-model": "^1.6.0",
38
38
  "@backstage/config": "^1.2.0",
39
39
  "@backstage/errors": "^1.2.4",
40
- "@backstage/integration": "^1.13.0",
40
+ "@backstage/integration": "^1.14.0",
41
41
  "@backstage/types": "^1.1.1",
42
42
  "@octokit/request-error": "^5.0.0",
43
43
  "@octokit/rest": "^20.0.0",
44
- "@spotify/backstage-plugin-soundcheck-common": "^0.13.4",
45
- "@spotify/backstage-plugin-soundcheck-node": "^0.7.4",
46
- "git-url-parse": "^14.0.0",
44
+ "@spotify/backstage-plugin-soundcheck-common": "^0.14.0",
45
+ "@spotify/backstage-plugin-soundcheck-node": "^0.8.0",
46
+ "git-url-parse": "^15.0.0",
47
47
  "lodash": "^4.17.21",
48
48
  "luxon": "^3.1.1",
49
49
  "winston": "^3.2.1",