Merge a4768a3001 into 088e2a3a90
				
					
				
			This commit is contained in:
		
						commit
						f187bf3f6a
					
				|  | @ -217,7 +217,8 @@ func (autoscaler *HorizontalRunnerAutoscalerGitHubWebhook) Handle(w http.Respons | ||||||
| 				// But canceled events have runner_id == 0 and GetRunnerID() returns 0 when RunnerID == nil,
 | 				// But canceled events have runner_id == 0 and GetRunnerID() returns 0 when RunnerID == nil,
 | ||||||
| 				// so we need to be more specific in filtering out the check runs.
 | 				// so we need to be more specific in filtering out the check runs.
 | ||||||
| 				// See example check run completion at https://gist.github.com/nathanklick/268fea6496a4d7b14cecb2999747ef84
 | 				// See example check run completion at https://gist.github.com/nathanklick/268fea6496a4d7b14cecb2999747ef84
 | ||||||
| 				if e.GetWorkflowJob().GetConclusion() == "success" && e.GetWorkflowJob().RunnerID == nil { | 				// Check runs appear to have no labels set, so use that in conjuction with the nil RunnerID to filter the event:
 | ||||||
|  | 				if len(e.GetWorkflowJob().Labels) == 0 && e.GetWorkflowJob().RunnerID == nil { | ||||||
| 					log.V(1).Info("Ignoring workflow_job event because it does not relate to a self-hosted runner") | 					log.V(1).Info("Ignoring workflow_job event because it does not relate to a self-hosted runner") | ||||||
| 				} else { | 				} else { | ||||||
| 					// A negative amount is processed in the tryScale func as a scale-down request,
 | 					// A negative amount is processed in the tryScale func as a scale-down request,
 | ||||||
|  |  | ||||||
|  | @ -361,6 +361,127 @@ func TestWebhookWorkflowJobWithSelfHostedLabel(t *testing.T) { | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func TestWebhookWorkflowJobWithCompletedCheckRun(t *testing.T) { | ||||||
|  | 	setupTestSucceeded := func() github.WorkflowJobEvent { | ||||||
|  | 		f, err := os.Open("testdata/webhook_workflow_job_with_completed_success_check_run.json") | ||||||
|  | 		if err != nil { | ||||||
|  | 			t.Fatalf("could not open the fixture: %s", err) | ||||||
|  | 		} | ||||||
|  | 		defer f.Close() | ||||||
|  | 		var e github.WorkflowJobEvent | ||||||
|  | 		if err := json.NewDecoder(f).Decode(&e); err != nil { | ||||||
|  | 			t.Fatalf("invalid json: %s", err) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return e | ||||||
|  | 	} | ||||||
|  | 	setupTestFailure := func() github.WorkflowJobEvent { | ||||||
|  | 		f, err := os.Open("testdata/webhook_workflow_job_with_completed_failure_check_run.json") | ||||||
|  | 		if err != nil { | ||||||
|  | 			t.Fatalf("could not open the fixture: %s", err) | ||||||
|  | 		} | ||||||
|  | 		defer f.Close() | ||||||
|  | 		var e github.WorkflowJobEvent | ||||||
|  | 		if err := json.NewDecoder(f).Decode(&e); err != nil { | ||||||
|  | 			t.Fatalf("invalid json: %s", err) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return e | ||||||
|  | 	} | ||||||
|  | 	t.Run("Success", func(t *testing.T) { | ||||||
|  | 		e := setupTestSucceeded() | ||||||
|  | 		hra := &actionsv1alpha1.HorizontalRunnerAutoscaler{ | ||||||
|  | 			ObjectMeta: metav1.ObjectMeta{ | ||||||
|  | 				Name: "test-name", | ||||||
|  | 			}, | ||||||
|  | 			Spec: actionsv1alpha1.HorizontalRunnerAutoscalerSpec{ | ||||||
|  | 				ScaleTargetRef: actionsv1alpha1.ScaleTargetRef{ | ||||||
|  | 					Name: "test-name", | ||||||
|  | 				}, | ||||||
|  | 				ScaleUpTriggers: []actionsv1alpha1.ScaleUpTrigger{ | ||||||
|  | 					{ | ||||||
|  | 						GitHubEvent: &actionsv1alpha1.GitHubEventScaleUpTriggerSpec{ | ||||||
|  | 							WorkflowJob: &actionsv1alpha1.WorkflowJobSpec{}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		rd := &actionsv1alpha1.RunnerDeployment{ | ||||||
|  | 			ObjectMeta: metav1.ObjectMeta{ | ||||||
|  | 				Name: "test-name", | ||||||
|  | 			}, | ||||||
|  | 			Spec: actionsv1alpha1.RunnerDeploymentSpec{ | ||||||
|  | 				Template: actionsv1alpha1.RunnerTemplate{ | ||||||
|  | 					Spec: actionsv1alpha1.RunnerSpec{ | ||||||
|  | 						RunnerConfig: actionsv1alpha1.RunnerConfig{ | ||||||
|  | 							Organization: "MYORG", | ||||||
|  | 							Labels:       []string{"label1"}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		initObjs := []runtime.Object{hra, rd} | ||||||
|  | 
 | ||||||
|  | 		testServerWithInitObjs(t, | ||||||
|  | 			"workflow_job", | ||||||
|  | 			&e, | ||||||
|  | 			200, | ||||||
|  | 			"", | ||||||
|  | 			initObjs, | ||||||
|  | 		) | ||||||
|  | 	}) | ||||||
|  | 	t.Run("Failure", func(t *testing.T) { | ||||||
|  | 		e := setupTestFailure() | ||||||
|  | 		hra := &actionsv1alpha1.HorizontalRunnerAutoscaler{ | ||||||
|  | 			ObjectMeta: metav1.ObjectMeta{ | ||||||
|  | 				Name: "test-name", | ||||||
|  | 			}, | ||||||
|  | 			Spec: actionsv1alpha1.HorizontalRunnerAutoscalerSpec{ | ||||||
|  | 				ScaleTargetRef: actionsv1alpha1.ScaleTargetRef{ | ||||||
|  | 					Name: "test-name", | ||||||
|  | 				}, | ||||||
|  | 				ScaleUpTriggers: []actionsv1alpha1.ScaleUpTrigger{ | ||||||
|  | 					{ | ||||||
|  | 						GitHubEvent: &actionsv1alpha1.GitHubEventScaleUpTriggerSpec{ | ||||||
|  | 							WorkflowJob: &actionsv1alpha1.WorkflowJobSpec{}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		rd := &actionsv1alpha1.RunnerDeployment{ | ||||||
|  | 			ObjectMeta: metav1.ObjectMeta{ | ||||||
|  | 				Name: "test-name", | ||||||
|  | 			}, | ||||||
|  | 			Spec: actionsv1alpha1.RunnerDeploymentSpec{ | ||||||
|  | 				Template: actionsv1alpha1.RunnerTemplate{ | ||||||
|  | 					Spec: actionsv1alpha1.RunnerSpec{ | ||||||
|  | 						RunnerConfig: actionsv1alpha1.RunnerConfig{ | ||||||
|  | 							Organization: "MYORG", | ||||||
|  | 							Labels:       []string{"label1"}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		initObjs := []runtime.Object{hra, rd} | ||||||
|  | 
 | ||||||
|  | 		testServerWithInitObjs(t, | ||||||
|  | 			"workflow_job", | ||||||
|  | 			&e, | ||||||
|  | 			200, | ||||||
|  | 			"", | ||||||
|  | 			initObjs, | ||||||
|  | 		) | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func TestGetRequest(t *testing.T) { | func TestGetRequest(t *testing.T) { | ||||||
| 	hra := HorizontalRunnerAutoscalerGitHubWebhook{} | 	hra := HorizontalRunnerAutoscalerGitHubWebhook{} | ||||||
| 	request, _ := http.NewRequest(http.MethodGet, "/", nil) | 	request, _ := http.NewRequest(http.MethodGet, "/", nil) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,167 @@ | ||||||
|  | { | ||||||
|  |   "action": "completed", | ||||||
|  |   "workflow_job": { | ||||||
|  |     "id": 10472913772, | ||||||
|  |     "run_id": 3850387510, | ||||||
|  |     "workflow_name": "Build Platform", | ||||||
|  |     "head_branch": "develop", | ||||||
|  |     "run_url": "https://api.github.com/repos/MYORG/MYREPO/actions/runs/3850387510", | ||||||
|  |     "run_attempt": 1, | ||||||
|  |     "node_id": "CR_kwDOA9pFCc8AAAACcDv7bA", | ||||||
|  |     "head_sha": "c72f1c0a1b847a39a0414d408bd8aeb3f5e4945c", | ||||||
|  |     "url": "https://api.github.com/repos/MYORG/MYREPO/actions/jobs/10472913772", | ||||||
|  |     "html_url": "https://github.com/MYORG/MYREPO/runs/10472913772", | ||||||
|  |     "status": "completed", | ||||||
|  |     "conclusion": "failure", | ||||||
|  |     "started_at": "2023-01-06T00:46:59Z", | ||||||
|  |     "completed_at": "2023-01-06T00:46:59Z", | ||||||
|  |     "name": "JUnit Test Report", | ||||||
|  |     "steps": [], | ||||||
|  |     "check_run_url": "https://api.github.com/repos/MYORG/MYREPO/check-runs/10472913772", | ||||||
|  |     "labels": [], | ||||||
|  |     "runner_id": null, | ||||||
|  |     "runner_name": null, | ||||||
|  |     "runner_group_id": null, | ||||||
|  |     "runner_group_name": null | ||||||
|  |   }, | ||||||
|  |   "repository": { | ||||||
|  |     "id": 64636169, | ||||||
|  |     "node_id": "MDEwOlJlcG9zaXRvcnk2NDYzNjE2OQ==", | ||||||
|  |     "name": "MYREPO", | ||||||
|  |     "full_name": "MYORG/MYREPO", | ||||||
|  |     "private": true, | ||||||
|  |     "owner": { | ||||||
|  |       "login": "MYORG", | ||||||
|  |       "id": 29604235, | ||||||
|  |       "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NjA0MjM1", | ||||||
|  |       "avatar_url": "https://avatars.githubusercontent.com/u/29604235?v=4", | ||||||
|  |       "gravatar_id": "", | ||||||
|  |       "url": "https://api.github.com/users/MYORG", | ||||||
|  |       "html_url": "https://github.com/MYORG", | ||||||
|  |       "followers_url": "https://api.github.com/users/MYORG/followers", | ||||||
|  |       "following_url": "https://api.github.com/users/MYORG/following{/other_user}", | ||||||
|  |       "gists_url": "https://api.github.com/users/MYORG/gists{/gist_id}", | ||||||
|  |       "starred_url": "https://api.github.com/users/MYORG/starred{/owner}{/repo}", | ||||||
|  |       "subscriptions_url": "https://api.github.com/users/MYORG/subscriptions", | ||||||
|  |       "organizations_url": "https://api.github.com/users/MYORG/orgs", | ||||||
|  |       "repos_url": "https://api.github.com/users/MYORG/repos", | ||||||
|  |       "events_url": "https://api.github.com/users/MYORG/events{/privacy}", | ||||||
|  |       "received_events_url": "https://api.github.com/users/MYORG/received_events", | ||||||
|  |       "type": "Organization", | ||||||
|  |       "site_admin": false | ||||||
|  |     }, | ||||||
|  |     "html_url": "https://github.com/MYORG/MYREPO", | ||||||
|  |     "description": "Proprietary source code for the MYORG Platform. Please do not redistribute.", | ||||||
|  |     "fork": false, | ||||||
|  |     "url": "https://api.github.com/repos/MYORG/MYREPO", | ||||||
|  |     "forks_url": "https://api.github.com/repos/MYORG/MYREPO/forks", | ||||||
|  |     "keys_url": "https://api.github.com/repos/MYORG/MYREPO/keys{/key_id}", | ||||||
|  |     "collaborators_url": "https://api.github.com/repos/MYORG/MYREPO/collaborators{/collaborator}", | ||||||
|  |     "teams_url": "https://api.github.com/repos/MYORG/MYREPO/teams", | ||||||
|  |     "hooks_url": "https://api.github.com/repos/MYORG/MYREPO/hooks", | ||||||
|  |     "issue_events_url": "https://api.github.com/repos/MYORG/MYREPO/issues/events{/number}", | ||||||
|  |     "events_url": "https://api.github.com/repos/MYORG/MYREPO/events", | ||||||
|  |     "assignees_url": "https://api.github.com/repos/MYORG/MYREPO/assignees{/user}", | ||||||
|  |     "branches_url": "https://api.github.com/repos/MYORG/MYREPO/branches{/branch}", | ||||||
|  |     "tags_url": "https://api.github.com/repos/MYORG/MYREPO/tags", | ||||||
|  |     "blobs_url": "https://api.github.com/repos/MYORG/MYREPO/git/blobs{/sha}", | ||||||
|  |     "git_tags_url": "https://api.github.com/repos/MYORG/MYREPO/git/tags{/sha}", | ||||||
|  |     "git_refs_url": "https://api.github.com/repos/MYORG/MYREPO/git/refs{/sha}", | ||||||
|  |     "trees_url": "https://api.github.com/repos/MYORG/MYREPO/git/trees{/sha}", | ||||||
|  |     "statuses_url": "https://api.github.com/repos/MYORG/MYREPO/statuses/{sha}", | ||||||
|  |     "languages_url": "https://api.github.com/repos/MYORG/MYREPO/languages", | ||||||
|  |     "stargazers_url": "https://api.github.com/repos/MYORG/MYREPO/stargazers", | ||||||
|  |     "contributors_url": "https://api.github.com/repos/MYORG/MYREPO/contributors", | ||||||
|  |     "subscribers_url": "https://api.github.com/repos/MYORG/MYREPO/subscribers", | ||||||
|  |     "subscription_url": "https://api.github.com/repos/MYORG/MYREPO/subscription", | ||||||
|  |     "commits_url": "https://api.github.com/repos/MYORG/MYREPO/commits{/sha}", | ||||||
|  |     "git_commits_url": "https://api.github.com/repos/MYORG/MYREPO/git/commits{/sha}", | ||||||
|  |     "comments_url": "https://api.github.com/repos/MYORG/MYREPO/comments{/number}", | ||||||
|  |     "issue_comment_url": "https://api.github.com/repos/MYORG/MYREPO/issues/comments{/number}", | ||||||
|  |     "contents_url": "https://api.github.com/repos/MYORG/MYREPO/contents/{+path}", | ||||||
|  |     "compare_url": "https://api.github.com/repos/MYORG/MYREPO/compare/{base}...{head}", | ||||||
|  |     "merges_url": "https://api.github.com/repos/MYORG/MYREPO/merges", | ||||||
|  |     "archive_url": "https://api.github.com/repos/MYORG/MYREPO/{archive_format}{/ref}", | ||||||
|  |     "downloads_url": "https://api.github.com/repos/MYORG/MYREPO/downloads", | ||||||
|  |     "issues_url": "https://api.github.com/repos/MYORG/MYREPO/issues{/number}", | ||||||
|  |     "pulls_url": "https://api.github.com/repos/MYORG/MYREPO/pulls{/number}", | ||||||
|  |     "milestones_url": "https://api.github.com/repos/MYORG/MYREPO/milestones{/number}", | ||||||
|  |     "notifications_url": "https://api.github.com/repos/MYORG/MYREPO/notifications{?since,all,participating}", | ||||||
|  |     "labels_url": "https://api.github.com/repos/MYORG/MYREPO/labels{/name}", | ||||||
|  |     "releases_url": "https://api.github.com/repos/MYORG/MYREPO/releases{/id}", | ||||||
|  |     "deployments_url": "https://api.github.com/repos/MYORG/MYREPO/deployments", | ||||||
|  |     "created_at": "2016-08-01T04:36:52Z", | ||||||
|  |     "updated_at": "2023-01-05T17:44:13Z", | ||||||
|  |     "pushed_at": "2023-01-05T23:10:46Z", | ||||||
|  |     "git_url": "git://github.com/MYORG/MYREPO.git", | ||||||
|  |     "ssh_url": "git@github.com:MYORG/MYREPO.git", | ||||||
|  |     "clone_url": "https://github.com/MYORG/MYREPO.git", | ||||||
|  |     "svn_url": "https://github.com/MYORG/MYREPO", | ||||||
|  |     "homepage": "", | ||||||
|  |     "size": 724221, | ||||||
|  |     "stargazers_count": 4, | ||||||
|  |     "watchers_count": 4, | ||||||
|  |     "language": "Java", | ||||||
|  |     "has_issues": true, | ||||||
|  |     "has_projects": true, | ||||||
|  |     "has_downloads": true, | ||||||
|  |     "has_wiki": false, | ||||||
|  |     "has_pages": false, | ||||||
|  |     "has_discussions": false, | ||||||
|  |     "forks_count": 0, | ||||||
|  |     "mirror_url": null, | ||||||
|  |     "archived": false, | ||||||
|  |     "disabled": false, | ||||||
|  |     "open_issues_count": 532, | ||||||
|  |     "license": { | ||||||
|  |       "key": "apache-2.0", | ||||||
|  |       "name": "Apache License 2.0", | ||||||
|  |       "spdx_id": "Apache-2.0", | ||||||
|  |       "url": "https://api.github.com/licenses/apache-2.0", | ||||||
|  |       "node_id": "MDc6TGljZW5zZTI=" | ||||||
|  |     }, | ||||||
|  |     "allow_forking": true, | ||||||
|  |     "is_template": false, | ||||||
|  |     "web_commit_signoff_required": true, | ||||||
|  |     "topics": [], | ||||||
|  |     "visibility": "private", | ||||||
|  |     "forks": 0, | ||||||
|  |     "open_issues": 532, | ||||||
|  |     "watchers": 4, | ||||||
|  |     "default_branch": "develop" | ||||||
|  |   }, | ||||||
|  |   "organization": { | ||||||
|  |     "login": "MYORG", | ||||||
|  |     "id": 29604235, | ||||||
|  |     "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NjA0MjM1", | ||||||
|  |     "url": "https://api.github.com/orgs/MYORG", | ||||||
|  |     "repos_url": "https://api.github.com/orgs/MYORG/repos", | ||||||
|  |     "events_url": "https://api.github.com/orgs/MYORG/events", | ||||||
|  |     "hooks_url": "https://api.github.com/orgs/MYORG/hooks", | ||||||
|  |     "issues_url": "https://api.github.com/orgs/MYORG/issues", | ||||||
|  |     "members_url": "https://api.github.com/orgs/MYORG/members{/member}", | ||||||
|  |     "public_members_url": "https://api.github.com/orgs/MYORG/public_members{/member}", | ||||||
|  |     "avatar_url": "https://avatars.githubusercontent.com/u/29604235?v=4", | ||||||
|  |     "description": "" | ||||||
|  |   }, | ||||||
|  |   "sender": { | ||||||
|  |     "login": "poulok", | ||||||
|  |     "id": 82919061, | ||||||
|  |     "node_id": "MDQ6VXNlcjgyOTE5MDYx", | ||||||
|  |     "avatar_url": "https://avatars.githubusercontent.com/u/82919061?v=4", | ||||||
|  |     "gravatar_id": "", | ||||||
|  |     "url": "https://api.github.com/users/poulok", | ||||||
|  |     "html_url": "https://github.com/poulok", | ||||||
|  |     "followers_url": "https://api.github.com/users/poulok/followers", | ||||||
|  |     "following_url": "https://api.github.com/users/poulok/following{/other_user}", | ||||||
|  |     "gists_url": "https://api.github.com/users/poulok/gists{/gist_id}", | ||||||
|  |     "starred_url": "https://api.github.com/users/poulok/starred{/owner}{/repo}", | ||||||
|  |     "subscriptions_url": "https://api.github.com/users/poulok/subscriptions", | ||||||
|  |     "organizations_url": "https://api.github.com/users/poulok/orgs", | ||||||
|  |     "repos_url": "https://api.github.com/users/poulok/repos", | ||||||
|  |     "events_url": "https://api.github.com/users/poulok/events{/privacy}", | ||||||
|  |     "received_events_url": "https://api.github.com/users/poulok/received_events", | ||||||
|  |     "type": "User", | ||||||
|  |     "site_admin": false | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,167 @@ | ||||||
|  | { | ||||||
|  |   "action": "completed", | ||||||
|  |   "workflow_job": { | ||||||
|  |     "id": 10472913772, | ||||||
|  |     "run_id": 3850387510, | ||||||
|  |     "workflow_name": "Build Platform", | ||||||
|  |     "head_branch": "develop", | ||||||
|  |     "run_url": "https://api.github.com/repos/MYORG/MYREPO/actions/runs/3850387510", | ||||||
|  |     "run_attempt": 1, | ||||||
|  |     "node_id": "CR_kwDOA9pFCc8AAAACcDv7bA", | ||||||
|  |     "head_sha": "c72f1c0a1b847a39a0414d408bd8aeb3f5e4945c", | ||||||
|  |     "url": "https://api.github.com/repos/MYORG/MYREPO/actions/jobs/10472913772", | ||||||
|  |     "html_url": "https://github.com/MYORG/MYREPO/runs/10472913772", | ||||||
|  |     "status": "completed", | ||||||
|  |     "conclusion": "success", | ||||||
|  |     "started_at": "2023-01-06T00:46:59Z", | ||||||
|  |     "completed_at": "2023-01-06T00:46:59Z", | ||||||
|  |     "name": "JUnit Test Report", | ||||||
|  |     "steps": [], | ||||||
|  |     "check_run_url": "https://api.github.com/repos/MYORG/MYREPO/check-runs/10472913772", | ||||||
|  |     "labels": [], | ||||||
|  |     "runner_id": null, | ||||||
|  |     "runner_name": null, | ||||||
|  |     "runner_group_id": null, | ||||||
|  |     "runner_group_name": null | ||||||
|  |   }, | ||||||
|  |   "repository": { | ||||||
|  |     "id": 64636169, | ||||||
|  |     "node_id": "MDEwOlJlcG9zaXRvcnk2NDYzNjE2OQ==", | ||||||
|  |     "name": "MYREPO", | ||||||
|  |     "full_name": "MYORG/MYREPO", | ||||||
|  |     "private": true, | ||||||
|  |     "owner": { | ||||||
|  |       "login": "MYORG", | ||||||
|  |       "id": 29604235, | ||||||
|  |       "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NjA0MjM1", | ||||||
|  |       "avatar_url": "https://avatars.githubusercontent.com/u/29604235?v=4", | ||||||
|  |       "gravatar_id": "", | ||||||
|  |       "url": "https://api.github.com/users/MYORG", | ||||||
|  |       "html_url": "https://github.com/MYORG", | ||||||
|  |       "followers_url": "https://api.github.com/users/MYORG/followers", | ||||||
|  |       "following_url": "https://api.github.com/users/MYORG/following{/other_user}", | ||||||
|  |       "gists_url": "https://api.github.com/users/MYORG/gists{/gist_id}", | ||||||
|  |       "starred_url": "https://api.github.com/users/MYORG/starred{/owner}{/repo}", | ||||||
|  |       "subscriptions_url": "https://api.github.com/users/MYORG/subscriptions", | ||||||
|  |       "organizations_url": "https://api.github.com/users/MYORG/orgs", | ||||||
|  |       "repos_url": "https://api.github.com/users/MYORG/repos", | ||||||
|  |       "events_url": "https://api.github.com/users/MYORG/events{/privacy}", | ||||||
|  |       "received_events_url": "https://api.github.com/users/MYORG/received_events", | ||||||
|  |       "type": "Organization", | ||||||
|  |       "site_admin": false | ||||||
|  |     }, | ||||||
|  |     "html_url": "https://github.com/MYORG/MYREPO", | ||||||
|  |     "description": "Proprietary source code for the MYORG Platform. Please do not redistribute.", | ||||||
|  |     "fork": false, | ||||||
|  |     "url": "https://api.github.com/repos/MYORG/MYREPO", | ||||||
|  |     "forks_url": "https://api.github.com/repos/MYORG/MYREPO/forks", | ||||||
|  |     "keys_url": "https://api.github.com/repos/MYORG/MYREPO/keys{/key_id}", | ||||||
|  |     "collaborators_url": "https://api.github.com/repos/MYORG/MYREPO/collaborators{/collaborator}", | ||||||
|  |     "teams_url": "https://api.github.com/repos/MYORG/MYREPO/teams", | ||||||
|  |     "hooks_url": "https://api.github.com/repos/MYORG/MYREPO/hooks", | ||||||
|  |     "issue_events_url": "https://api.github.com/repos/MYORG/MYREPO/issues/events{/number}", | ||||||
|  |     "events_url": "https://api.github.com/repos/MYORG/MYREPO/events", | ||||||
|  |     "assignees_url": "https://api.github.com/repos/MYORG/MYREPO/assignees{/user}", | ||||||
|  |     "branches_url": "https://api.github.com/repos/MYORG/MYREPO/branches{/branch}", | ||||||
|  |     "tags_url": "https://api.github.com/repos/MYORG/MYREPO/tags", | ||||||
|  |     "blobs_url": "https://api.github.com/repos/MYORG/MYREPO/git/blobs{/sha}", | ||||||
|  |     "git_tags_url": "https://api.github.com/repos/MYORG/MYREPO/git/tags{/sha}", | ||||||
|  |     "git_refs_url": "https://api.github.com/repos/MYORG/MYREPO/git/refs{/sha}", | ||||||
|  |     "trees_url": "https://api.github.com/repos/MYORG/MYREPO/git/trees{/sha}", | ||||||
|  |     "statuses_url": "https://api.github.com/repos/MYORG/MYREPO/statuses/{sha}", | ||||||
|  |     "languages_url": "https://api.github.com/repos/MYORG/MYREPO/languages", | ||||||
|  |     "stargazers_url": "https://api.github.com/repos/MYORG/MYREPO/stargazers", | ||||||
|  |     "contributors_url": "https://api.github.com/repos/MYORG/MYREPO/contributors", | ||||||
|  |     "subscribers_url": "https://api.github.com/repos/MYORG/MYREPO/subscribers", | ||||||
|  |     "subscription_url": "https://api.github.com/repos/MYORG/MYREPO/subscription", | ||||||
|  |     "commits_url": "https://api.github.com/repos/MYORG/MYREPO/commits{/sha}", | ||||||
|  |     "git_commits_url": "https://api.github.com/repos/MYORG/MYREPO/git/commits{/sha}", | ||||||
|  |     "comments_url": "https://api.github.com/repos/MYORG/MYREPO/comments{/number}", | ||||||
|  |     "issue_comment_url": "https://api.github.com/repos/MYORG/MYREPO/issues/comments{/number}", | ||||||
|  |     "contents_url": "https://api.github.com/repos/MYORG/MYREPO/contents/{+path}", | ||||||
|  |     "compare_url": "https://api.github.com/repos/MYORG/MYREPO/compare/{base}...{head}", | ||||||
|  |     "merges_url": "https://api.github.com/repos/MYORG/MYREPO/merges", | ||||||
|  |     "archive_url": "https://api.github.com/repos/MYORG/MYREPO/{archive_format}{/ref}", | ||||||
|  |     "downloads_url": "https://api.github.com/repos/MYORG/MYREPO/downloads", | ||||||
|  |     "issues_url": "https://api.github.com/repos/MYORG/MYREPO/issues{/number}", | ||||||
|  |     "pulls_url": "https://api.github.com/repos/MYORG/MYREPO/pulls{/number}", | ||||||
|  |     "milestones_url": "https://api.github.com/repos/MYORG/MYREPO/milestones{/number}", | ||||||
|  |     "notifications_url": "https://api.github.com/repos/MYORG/MYREPO/notifications{?since,all,participating}", | ||||||
|  |     "labels_url": "https://api.github.com/repos/MYORG/MYREPO/labels{/name}", | ||||||
|  |     "releases_url": "https://api.github.com/repos/MYORG/MYREPO/releases{/id}", | ||||||
|  |     "deployments_url": "https://api.github.com/repos/MYORG/MYREPO/deployments", | ||||||
|  |     "created_at": "2016-08-01T04:36:52Z", | ||||||
|  |     "updated_at": "2023-01-05T17:44:13Z", | ||||||
|  |     "pushed_at": "2023-01-05T23:10:46Z", | ||||||
|  |     "git_url": "git://github.com/MYORG/MYREPO.git", | ||||||
|  |     "ssh_url": "git@github.com:MYORG/MYREPO.git", | ||||||
|  |     "clone_url": "https://github.com/MYORG/MYREPO.git", | ||||||
|  |     "svn_url": "https://github.com/MYORG/MYREPO", | ||||||
|  |     "homepage": "", | ||||||
|  |     "size": 724221, | ||||||
|  |     "stargazers_count": 4, | ||||||
|  |     "watchers_count": 4, | ||||||
|  |     "language": "Java", | ||||||
|  |     "has_issues": true, | ||||||
|  |     "has_projects": true, | ||||||
|  |     "has_downloads": true, | ||||||
|  |     "has_wiki": false, | ||||||
|  |     "has_pages": false, | ||||||
|  |     "has_discussions": false, | ||||||
|  |     "forks_count": 0, | ||||||
|  |     "mirror_url": null, | ||||||
|  |     "archived": false, | ||||||
|  |     "disabled": false, | ||||||
|  |     "open_issues_count": 532, | ||||||
|  |     "license": { | ||||||
|  |       "key": "apache-2.0", | ||||||
|  |       "name": "Apache License 2.0", | ||||||
|  |       "spdx_id": "Apache-2.0", | ||||||
|  |       "url": "https://api.github.com/licenses/apache-2.0", | ||||||
|  |       "node_id": "MDc6TGljZW5zZTI=" | ||||||
|  |     }, | ||||||
|  |     "allow_forking": true, | ||||||
|  |     "is_template": false, | ||||||
|  |     "web_commit_signoff_required": true, | ||||||
|  |     "topics": [], | ||||||
|  |     "visibility": "private", | ||||||
|  |     "forks": 0, | ||||||
|  |     "open_issues": 532, | ||||||
|  |     "watchers": 4, | ||||||
|  |     "default_branch": "develop" | ||||||
|  |   }, | ||||||
|  |   "organization": { | ||||||
|  |     "login": "MYORG", | ||||||
|  |     "id": 29604235, | ||||||
|  |     "node_id": "MDEyOk9yZ2FuaXphdGlvbjI5NjA0MjM1", | ||||||
|  |     "url": "https://api.github.com/orgs/MYORG", | ||||||
|  |     "repos_url": "https://api.github.com/orgs/MYORG/repos", | ||||||
|  |     "events_url": "https://api.github.com/orgs/MYORG/events", | ||||||
|  |     "hooks_url": "https://api.github.com/orgs/MYORG/hooks", | ||||||
|  |     "issues_url": "https://api.github.com/orgs/MYORG/issues", | ||||||
|  |     "members_url": "https://api.github.com/orgs/MYORG/members{/member}", | ||||||
|  |     "public_members_url": "https://api.github.com/orgs/MYORG/public_members{/member}", | ||||||
|  |     "avatar_url": "https://avatars.githubusercontent.com/u/29604235?v=4", | ||||||
|  |     "description": "" | ||||||
|  |   }, | ||||||
|  |   "sender": { | ||||||
|  |     "login": "poulok", | ||||||
|  |     "id": 82919061, | ||||||
|  |     "node_id": "MDQ6VXNlcjgyOTE5MDYx", | ||||||
|  |     "avatar_url": "https://avatars.githubusercontent.com/u/82919061?v=4", | ||||||
|  |     "gravatar_id": "", | ||||||
|  |     "url": "https://api.github.com/users/poulok", | ||||||
|  |     "html_url": "https://github.com/poulok", | ||||||
|  |     "followers_url": "https://api.github.com/users/poulok/followers", | ||||||
|  |     "following_url": "https://api.github.com/users/poulok/following{/other_user}", | ||||||
|  |     "gists_url": "https://api.github.com/users/poulok/gists{/gist_id}", | ||||||
|  |     "starred_url": "https://api.github.com/users/poulok/starred{/owner}{/repo}", | ||||||
|  |     "subscriptions_url": "https://api.github.com/users/poulok/subscriptions", | ||||||
|  |     "organizations_url": "https://api.github.com/users/poulok/orgs", | ||||||
|  |     "repos_url": "https://api.github.com/users/poulok/repos", | ||||||
|  |     "events_url": "https://api.github.com/users/poulok/events{/privacy}", | ||||||
|  |     "received_events_url": "https://api.github.com/users/poulok/received_events", | ||||||
|  |     "type": "User", | ||||||
|  |     "site_admin": false | ||||||
|  |   } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue