graph LR
Core_Client_API_Infrastructure["Core Client & API Infrastructure"]
Authentication_Authorization["Authentication & Authorization"]
User_Organization_Management["User & Organization Management"]
Repository_Content_Management["Repository & Content Management"]
Git_Data_Version_Control["Git Data & Version Control"]
Issue_Pull_Request_Management["Issue & Pull Request Management"]
Project_Release_Management["Project & Release Management"]
Security_Automation["Security & Automation"]
Gist_Discussion_Management["Gist & Discussion Management"]
Search_Traffic_Notifications["Search, Traffic & Notifications"]
Core_Client_API_Infrastructure -- "orchestrates" --> Authentication_Authorization
Core_Client_API_Infrastructure -- "provides access to" --> User_Organization_Management
Core_Client_API_Infrastructure -- "provides access to" --> Repository_Content_Management
Core_Client_API_Infrastructure -- "provides access to" --> Gist_Discussion_Management
Core_Client_API_Infrastructure -- "provides access to" --> Search_Traffic_Notifications
Authentication_Authorization -- "provides authentication to" --> Core_Client_API_Infrastructure
User_Organization_Management -- "managed by" --> Core_Client_API_Infrastructure
User_Organization_Management -- "referenced by" --> Repository_Content_Management
User_Organization_Management -- "referenced by" --> Issue_Pull_Request_Management
User_Organization_Management -- "referenced by" --> Security_Automation
User_Organization_Management -- "referenced by" --> Gist_Discussion_Management
User_Organization_Management -- "referenced by" --> Search_Traffic_Notifications
Repository_Content_Management -- "managed by" --> Core_Client_API_Infrastructure
Repository_Content_Management -- "manages" --> Git_Data_Version_Control
Repository_Content_Management -- "manages" --> Issue_Pull_Request_Management
Repository_Content_Management -- "manages" --> Project_Release_Management
Repository_Content_Management -- "manages" --> Security_Automation
Repository_Content_Management -- "manages" --> Gist_Discussion_Management
Repository_Content_Management -- "provides data for" --> Search_Traffic_Notifications
Git_Data_Version_Control -- "managed by" --> Repository_Content_Management
Git_Data_Version_Control -- "relies on" --> Core_Client_API_Infrastructure
Issue_Pull_Request_Management -- "managed by" --> Repository_Content_Management
Issue_Pull_Request_Management -- "relies on" --> Core_Client_API_Infrastructure
Issue_Pull_Request_Management -- "references" --> User_Organization_Management
Project_Release_Management -- "managed by" --> Repository_Content_Management
Project_Release_Management -- "relies on" --> Core_Client_API_Infrastructure
Security_Automation -- "managed by" --> Repository_Content_Management
Security_Automation -- "relies on" --> Core_Client_API_Infrastructure
Security_Automation -- "references" --> User_Organization_Management
Gist_Discussion_Management -- "managed by" --> Core_Client_API_Infrastructure
Gist_Discussion_Management -- "managed by" --> Repository_Content_Management
Gist_Discussion_Management -- "relies on" --> Core_Client_API_Infrastructure
Gist_Discussion_Management -- "references" --> User_Organization_Management
Search_Traffic_Notifications -- "managed by" --> Core_Client_API_Infrastructure
Search_Traffic_Notifications -- "receives data from" --> Repository_Content_Management
Search_Traffic_Notifications -- "relies on" --> Core_Client_API_Infrastructure
Search_Traffic_Notifications -- "references" --> User_Organization_Management
click Core_Client_API_Infrastructure href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Core Client & API Infrastructure.md" "Details"
click Authentication_Authorization href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Authentication & Authorization.md" "Details"
click User_Organization_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/User & Organization Management.md" "Details"
click Repository_Content_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Repository & Content Management.md" "Details"
click Git_Data_Version_Control href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Git Data & Version Control.md" "Details"
click Issue_Pull_Request_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Issue & Pull Request Management.md" "Details"
click Project_Release_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Project & Release Management.md" "Details"
click Security_Automation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Security & Automation.md" "Details"
click Gist_Discussion_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Gist & Discussion Management.md" "Details"
click Search_Traffic_Notifications href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/PyGithub/Search, Traffic & Notifications.md" "Details"
The PyGithub library provides a comprehensive interface for interacting with the GitHub API. Its core functionality revolves around the Github object, which orchestrates API requests through a dedicated communication layer, handling authentication, rate limiting, and error management. Various components manage specific GitHub entities like users, repositories, issues, and projects, with clear relationships defining how these entities interact and are managed within the system.
This component provides the foundational elements for interacting with the GitHub API. It includes the main Github object, responsible for orchestrating API calls, and the Requester which handles the low-level HTTP communication, rate limiting, and error handling. It also includes base classes for all GitHub objects and pagination utilities.
Related Classes/Methods:
PyGithub.github.MainClass.Github(157:1060)PyGithub.github.Requester.Requester(287:1290)PyGithub.github.Requester.HTTPSRequestsConnectionClass(150:220)PyGithub.github.Requester.HTTPRequestsConnectionClass(223:284)PyGithub.github.GithubObject.GithubObject(226:457)PyGithub.github.GithubObject.CompletableGithubObject(476:594)PyGithub.github.GithubObject.NonCompletableGithubObject(466:473)PyGithub.github.GithubException.GithubException(45:105)PyGithub.github.PaginatedList.PaginatedList(128:450)PyGithub.github.Rate.Rate(49:100)PyGithub.github.RateLimit.RateLimit(53:166)PyGithub.github.RateLimitOverview.RateLimitOverview(35:66)
This component is responsible for managing various authentication methods (e.g., username/password, tokens, GitHub Apps, JWT) to secure access to the GitHub API and obtain necessary authorization tokens. It provides classes for different authentication flows and handles the masking of sensitive information for logging.
Related Classes/Methods:
PyGithub.github.Auth.Login(127:151)PyGithub.github.Auth.Token(154:174)PyGithub.github.Auth.AppAuthToken(293:308)PyGithub.github.Auth.AppAuth(203:290)PyGithub.github.Auth.AppInstallationAuth(311:392)PyGithub.github.Auth.AppUserAuth(395:514)PyGithub.github.Auth.NetrcAuth(517:552)PyGithub.github.Auth.JwtSigner(190:200)PyGithub.github.Authorization.Authorization(53:191)PyGithub.github.AuthorizationApplication.AuthorizationApplication(44:70)PyGithub.github.AccessToken.AccessToken(49:158)PyGithub.github.GithubApp.GithubApp(56:218)PyGithub.github.GithubIntegration.GithubIntegration(54:342)PyGithub.github.Installation.Installation(76:280)PyGithub.github.InstallationAuthorization.InstallationAuthorization(57:136)PyGithub.github.ApplicationOAuth.ApplicationOAuth(48:198)
This component provides functionalities for managing GitHub users, organizations, teams, and their associated memberships, invitations, and enterprise-level user details.
Related Classes/Methods:
PyGithub.github.NamedUser.NamedUser(86:686)PyGithub.github.AuthenticatedUser.AuthenticatedUser(146:1178)PyGithub.github.Organization.Organization(150:2014)PyGithub.github.Team.Team(92:538)PyGithub.github.Membership.Membership(58:131)PyGithub.github.Invitation.Invitation(58:156)PyGithub.github.NamedEnterpriseUser.NamedEnterpriseUser(33:205)PyGithub.github.OrganizationInvitation.OrganizationInvitation(full file reference)PyGithub.github.UserKey.UserKey(50:130)PyGithub.github.Permissions.Permissions(46:109)PyGithub.github.Enterprise.Enterprise(50:97)PyGithub.github.EnterpriseConsumedLicenses.EnterpriseConsumedLicenses(49:110)PyGithub.github.Copilot.Copilot(37:96)PyGithub.github.CopilotSeat.CopilotSeat(38:118)
This component focuses on managing GitHub repositories, including their creation, modification, deletion, and access to their general content like files, licenses, and autolinks. It also handles source imports and repository-level keys.
Related Classes/Methods:
PyGithub.github.Repository.Repository(328:4656)PyGithub.github.ContentFile.ContentFile(63:271)PyGithub.github.File.File(48:139)PyGithub.github.RepositoryKey.RepositoryKey(56:152)PyGithub.github.RepositoryPreferences.RepositoryPreferences(52:80)PyGithub.github.SourceImport.SourceImport(43:255)PyGithub.github.Autolink.Autolink(48:93)PyGithub.github.License.License(52:167)PyGithub.github.GitignoreTemplate.GitignoreTemplate(46:77)PyGithub.github.Download.Download(47:249)
This component manages Git-specific objects within a repository, such as commits, branches, tags, trees, and blobs, along with their associated statistics and statuses. It also includes functionalities for branch protection rules.
Related Classes/Methods:
PyGithub.github.Commit.Commit(82:361)PyGithub.github.GitCommit.GitCommit(58:206)PyGithub.github.GitBlob.GitBlob(47:104)PyGithub.github.GitTree.GitTree(52:109)PyGithub.github.GitRef.GitRef(54:119)PyGithub.github.Branch.Branch(83:659)PyGithub.github.Tag.Tag(54:106)PyGithub.github.GitAuthor.GitAuthor(46:91)PyGithub.github.GitCommitVerification.GitCommitVerification(50:101)PyGithub.github.GitTreeElement.GitTreeElement(45:101)PyGithub.github.InputGitTreeElement.InputGitTreeElement(43:78)PyGithub.github.InputGitAuthor.InputGitAuthor(45:70)PyGithub.github.CommitStats.CommitStats(42:75)PyGithub.github.CommitCombinedStatus.CommitCombinedStatus(51:114)PyGithub.github.CommitStatus.CommitStatus(52:149)PyGithub.github.MergedUpstream.MergedUpstream(33:68)PyGithub.github.BranchProtection.BranchProtection(53:219)PyGithub.github.RequiredStatusChecks.RequiredStatusChecks(84:150)PyGithub.github.RequiredStatusChecks.Check(49:81)PyGithub.github.RequiredPullRequestReviews.RequiredPullRequestReviews(167:264)PyGithub.github.RequiredPullRequestReviews.BypassPullRequestAllowances(62:101)PyGithub.github.RequiredPullRequestReviews.DismissalRestrictions(104:164)
This component provides comprehensive functionalities for interacting with GitHub issues and pull requests, including creating, editing, commenting, and managing their lifecycle, labels, milestones, and associated events.
Related Classes/Methods:
PyGithub.github.Issue.Issue(107:665)PyGithub.github.IssueComment.IssueComment(67:290)PyGithub.github.IssueEvent.IssueEvent(67:267)PyGithub.github.PullRequest.PullRequest(137:1142)PyGithub.github.PullRequestComment.PullRequestComment(62:379)PyGithub.github.PullRequestReview.PullRequestReview(56:160)PyGithub.github.PullRequestMergeStatus.PullRequestMergeStatus(47:82)PyGithub.github.PullRequestPart.PullRequestPart(53:107)PyGithub.github.IssuePullRequest.IssuePullRequest(47:95)PyGithub.github.Label.Label(53:158)PyGithub.github.Milestone.Milestone(56:243)
This component handles the creation, retrieval, and management of GitHub projects (including columns and cards) and releases (including assets).
Related Classes/Methods:
PyGithub.github.Project.Project(62:266)PyGithub.github.ProjectColumn.ProjectColumn(64:221)PyGithub.github.ProjectCard.ProjectCard(67:244)PyGithub.github.GitRelease.GitRelease(73:431)PyGithub.github.GitReleaseAsset.GitReleaseAsset(54:203)
This component provides tools for managing webhooks, deployment environments, secrets, variables, and various security features like Dependabot alerts and code scanning. It also covers GitHub Actions workflows and deployments.
Related Classes/Methods:
PyGithub.github.Hook.Hook(53:226)PyGithub.github.HookDelivery.HookDelivery(207:237)PyGithub.github.HookDelivery.HookDeliverySummary(37:142)PyGithub.github.HookDelivery.HookDeliveryRequest(145:173)PyGithub.github.HookDelivery.HookDeliveryResponse(176:204)PyGithub.github.HookDescription.HookDescription(46:84)PyGithub.github.HookResponse.HookResponse(45:80)PyGithub.github.Environment.Environment(61:299)PyGithub.github.Secret.Secret(48:125)PyGithub.github.Variable.Variable(36:143)PyGithub.github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicy(35:63)PyGithub.github.EnvironmentProtectionRule.EnvironmentProtectionRule(54:108)PyGithub.github.EnvironmentProtectionRuleReviewer.EnvironmentProtectionRuleReviewer(51:83)PyGithub.github.OrganizationSecret.OrganizationSecret(38:139)PyGithub.github.OrganizationVariable.OrganizationVariable(37:135)PyGithub.github.PublicKey.PublicKey(63:136)PyGithub.github.CodeSecurityConfig.CodeSecurityConfig(32:238)PyGithub.github.DependabotAlert.DependabotAlert(46:174)PyGithub.github.CodeScanAlert.CodeScanAlert(43:174)PyGithub.github.RepositoryAdvisory.RepositoryAdvisory(54:424)PyGithub.github.GlobalAdvisory.GlobalAdvisory(44:139)PyGithub.github.AdvisoryBase.AdvisoryBase(37:157)PyGithub.github.AdvisoryCredit.AdvisoryCredit(52:126)PyGithub.github.AdvisoryCreditDetailed.AdvisoryCreditDetailed(51:104)PyGithub.github.AdvisoryVulnerability.AdvisoryVulnerability(66:190)PyGithub.github.AdvisoryVulnerabilityPackage.AdvisoryVulnerabilityPackage(52:91)PyGithub.github.DependabotAlertAdvisory.DependabotAlertAdvisory(38:73)PyGithub.github.DependabotAlertDependency.DependabotAlertDependency(34:80)PyGithub.github.DependabotAlertVulnerability.DependabotAlertVulnerability(36:83)PyGithub.github.CodeScanAlertInstance.CodeScanAlertInstance(40:115)PyGithub.github.CodeScanAlertInstanceLocation.CodeScanAlertInstanceLocation(36:96)PyGithub.github.CodeScanRule.CodeScanRule(49:98)PyGithub.github.CodeScanTool.CodeScanTool(47:88)PyGithub.github.RepoCodeSecurityConfig.RepoCodeSecurityConfig(53:90)PyGithub.github.SecurityAndAnalysis.SecurityAndAnalysis(51:141)PyGithub.github.SecurityAndAnalysisFeature.SecurityAndAnalysisFeature(46:71)PyGithub.github.CWE.CWE(47:72)PyGithub.github.CVSS.CVSS(49:81)PyGithub.github.DefaultCodeSecurityConfig.DefaultCodeSecurityConfig(50:87)PyGithub.github.Workflow.Workflow(61:257)PyGithub.github.WorkflowRun.WorkflowRun(75:459)PyGithub.github.WorkflowJob.WorkflowJob(41:243)PyGithub.github.WorkflowStep.WorkflowStep(48:110)PyGithub.github.Artifact.Artifact(58:172)PyGithub.github.SelfHostedActionsRunner.SelfHostedActionsRunner(47:113)PyGithub.github.Deployment.Deployment(64:299)PyGithub.github.DeploymentStatus.DeploymentStatus(60:199)
This component provides functionalities for creating, retrieving, and managing GitHub Gists and their comments and historical states, as well as discussions within repositories and teams, including their categories and comments.
Related Classes/Methods:
PyGithub.github.Gist.Gist(67:336)PyGithub.github.GistComment.GistComment(53:151)PyGithub.github.GistFile.GistFile(45:103)PyGithub.github.GistHistoryState.GistHistoryState(53:232)PyGithub.github.InputFileContent.InputFileContent(44:62)PyGithub.github.RepositoryDiscussion.RepositoryDiscussion(54:213)PyGithub.github.RepositoryDiscussionCategory.RepositoryDiscussionCategory(54:142)PyGithub.github.RepositoryDiscussionComment.RepositoryDiscussionComment(46:149)PyGithub.github.TeamDiscussion.TeamDiscussion(53:130)PyGithub.github.DiscussionBase.DiscussionBase(51:135)PyGithub.github.DiscussionCommentBase.DiscussionCommentBase(51:135)
This component provides functionalities for searching various GitHub entities (repositories, users, issues, code, commits, topics), retrieving repository traffic data (views, clones, referrers, paths), and managing user notifications and general GitHub events.
Related Classes/Methods:
PyGithub.github.Commit.CommitSearchResult(364:391)PyGithub.github.Issue.IssueSearchResult(668:697)PyGithub.github.ContentFile.ContentFileSearchResult(274:301)PyGithub.github.Repository.RepositorySearchResult(4659:4694)PyGithub.github.NamedUser.NamedUserSearchResult(689:715)PyGithub.github.Traffic.Traffic(49:93)PyGithub.github.View.View(52:95)PyGithub.github.Clones.Clones(52:95)PyGithub.github.Referrer.Referrer(47:91)PyGithub.github.Path.Path(47:99)PyGithub.github.StatsCodeFrequency.StatsCodeFrequency(47:79)PyGithub.github.StatsCommitActivity.StatsCommitActivity(48:83)PyGithub.github.StatsContributor.StatsContributor(49:125)PyGithub.github.StatsParticipation.StatsParticipation(48:76)PyGithub.github.StatsPunchCard.StatsPunchCard(48:73)PyGithub.github.Notification.Notification(58:175)PyGithub.github.NotificationSubject.NotificationSubject(48:93)PyGithub.github.Event.Event(53:126)PyGithub.github.TimelineEvent.TimelineEvent(56:154)PyGithub.github.TimelineEventSource.TimelineEventSource(52:80)