-
Notifications
You must be signed in to change notification settings - Fork 795
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update logic and copy for closed/approved applications to include pat…
…h to application file
- Loading branch information
1 parent
21e4bd0
commit 1044d63
Showing
2 changed files
with
89 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,8 +8,7 @@ import ( | |
type Status int | ||
|
||
const ( | ||
Closed Status = iota | ||
Approved | ||
Approved Status = iota | ||
Reviewing | ||
Invalid | ||
New | ||
|
@@ -31,14 +30,14 @@ func (r *Reviewer) Review() { | |
r.application.Parse(r.gitHub.Issue) | ||
|
||
status := r.getStatus() | ||
r.updateLabels(status) | ||
r.createComment(status) | ||
isClosed := *r.gitHub.Issue.State == "closed" | ||
|
||
r.updateLabels(status, isClosed) | ||
r.createComment(status, isClosed) | ||
} | ||
|
||
func (r *Reviewer) getStatus() Status { | ||
if *r.gitHub.Issue.State == "closed" { | ||
return Closed | ||
} else if r.gitHub.IssueHasLabel(LabelStatusApproved) { | ||
if r.gitHub.IssueHasLabel(LabelStatusApproved) { | ||
return Approved | ||
} else if r.gitHub.IssueHasLabel(LabelStatusReviewing) { | ||
return Reviewing | ||
|
@@ -49,35 +48,46 @@ func (r *Reviewer) getStatus() Status { | |
} | ||
} | ||
|
||
func (r *Reviewer) createComment(status Status) { | ||
func (r *Reviewer) createComment(status Status, isClosed bool) { | ||
title := "" | ||
body := "" | ||
details := fmt.Sprintf("<details>\n<summary>Application data...</summary>\n\n```json\n%s\n```\n</details>", r.application.GetData()) | ||
// TODO: replace FILE_NAME with Application.FileName once available | ||
dataPath := fmt.Sprintf("https://github.com/1Password/1password-teams-open-source/blob/main/data/%s", "FILE_NAME") | ||
|
||
if status == Closed { | ||
body = "This application is closed and changes will not be reviewed. If you have any questions, contact us at [[email protected]](mailto:[email protected])." | ||
applicationData := fmt.Sprintf("<details>\n<summary>Application data...</summary>\n\n```json\n%s\n```\n</details>", r.application.GetData()) | ||
applicationFilePath := fmt.Sprintf("https://github.com/1Password/1password-teams-open-source/blob/main/data/%s", r.application.FileName()) | ||
approvedBody := fmt.Sprintf("This application has already been approved and changes will not be reviewed. If you would like to modify the details of your application, submit a pull request against the stored [application data](%s). If you have any questions, contact us at [[email protected]](mailto:[email protected]).", applicationFilePath) | ||
closedBody := "This application is closed and changes will not be reviewed. If you have any questions, contact us at [[email protected]](mailto:[email protected])." | ||
|
||
// If the issue is closed, let the user know that they can't make changes. | ||
// If the issue was closed because it got approved, let them know how they can | ||
// modify their application details after the fact. | ||
if isClosed { | ||
if status == Approved { | ||
body = approvedBody | ||
} else { | ||
body = closedBody | ||
} | ||
// This scanerio should never occur, as an approved issue should | ||
// immediately be closed, but let's cover all bases. | ||
} else if status == Approved { | ||
body = fmt.Sprintf("This application has already been approved and changes will not be reviewed. If you would like to modify the details of your application, submit a pull request against the stored [application data](%s). If you have any questions, contact us at [[email protected]](mailto:[email protected]).", dataPath) | ||
body = approvedBody | ||
} else if r.application.IsValid() { | ||
if status == Reviewing { | ||
title = "### 👍 Application still valid" | ||
body = fmt.Sprintf("\n\n%s\n\nWe’ve run our automated pre-checks and your updated application is still valid.", details) | ||
body = fmt.Sprintf("\n\n%s\n\nWe’ve run our automated pre-checks and your updated application is still valid.", applicationData) | ||
} else { | ||
title = "### ✅ Your application is valid" | ||
body = fmt.Sprintf("\n\n%s\n\nThanks for applying! Our automated pre-checks have determined your application is valid. Next step: our team will review your application and may have follow-up questions. You can still make changes to your application and it’ll be re-evaluated.", details) | ||
body = fmt.Sprintf("\n\n%s\n\nThanks for applying! Our automated pre-checks have determined your application is valid. Next step: our team will review your application and may have follow-up questions. You can still make changes to your application and it’ll be re-evaluated.", applicationData) | ||
} | ||
} else { | ||
title = "### ❌ Your application is invalid" | ||
body = fmt.Sprintf("\n\n%s\n\nOur automated pre-checks have detected the following problems:\n\n%s\n\nUpdate this issue to correct these problems and we’ll automatically re-evaluate your application.", details, r.application.RenderProblems()) | ||
body = fmt.Sprintf("\n\n%s\n\nOur automated pre-checks have detected the following problems:\n\n%s\n\nUpdate this issue to correct these problems and we’ll automatically re-evaluate your application.", applicationData, r.application.RenderProblems()) | ||
} | ||
|
||
r.gitHub.CreateIssueComment(fmt.Sprintf("%s%s", title, body)) | ||
} | ||
|
||
func (r *Reviewer) updateLabels(status Status) { | ||
if status == Approved || status == Closed { | ||
func (r *Reviewer) updateLabels(status Status, isClosed bool) { | ||
if status == Approved || isClosed { | ||
return | ||
} | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
{ | ||
"id": 1801650328, | ||
"number": 6, | ||
"state": "closed", | ||
"locked": false, | ||
"title": "Application for TestDB", | ||
"body": "### Account URL\n\ntestdb.1password.com\n\n### Non-commercial confirmation\n\n- [X] No, this account won't be used for commercial activity\n\n### Team application\n\n- [ ] Yes, this application is for a team\n\n### Event application\n\n- [ ] Yes, this application is for an event\n\n### Project name\n\nTestDB\n\n### Short description\n\nTestDB is a free and open source, community-based forum software project.\n\n### Number of team members/core contributors\n\n1\n\n### Homepage URL\n\nhttps://github.com/wendyappleed/test-db\n\n### Repository URL\n\nhttps://github.com/wendyappleed/test-db\n\n### License type\n\nMIT\n\n### License URL\n\nhttps://github.com/wendyappleed/test-db/blob/main/LICENSE.md\n\n### Age confirmation\n\n- [X] Yes, this project is at least 30 days old\n\n### Name\n\nWendy Appleseed\n\n### Email\n\[email protected]\n\n### Project role\n\nCore Maintainer\n\n### Profile or website\n\nhttps://github.com/wendyappleseed/\n\n### Can we contact you?\n\n- [X] Yes, you may contact me\n\n### Additional comments\n\nThank you!", | ||
"user": { | ||
"login": "wendyappleseed", | ||
"id": 38230737, | ||
"node_id": "MDQ6VXNlcjYzOTIwNDk=", | ||
"avatar_url": "https://avatars.githubusercontent.com/u/38230737?v=4", | ||
"html_url": "https://github.com/wendyappleseed", | ||
"gravatar_id": "", | ||
"type": "User", | ||
"site_admin": false, | ||
"url": "https://api.github.com/users/wendyappleseed", | ||
"events_url": "https://api.github.com/users/wendyappleseed/events{/privacy}", | ||
"following_url": "https://api.github.com/users/wendyappleseed/following{/other_user}", | ||
"followers_url": "https://api.github.com/users/wendyappleseed/followers", | ||
"gists_url": "https://api.github.com/users/wendyappleseed/gists{/gist_id}", | ||
"organizations_url": "https://api.github.com/users/wendyappleseed/orgs", | ||
"received_events_url": "https://api.github.com/users/wendyappleseed/received_events", | ||
"repos_url": "https://api.github.com/users/wendyappleseed/repos", | ||
"starred_url": "https://api.github.com/users/wendyappleseed/starred{/owner}{/repo}", | ||
"subscriptions_url": "https://api.github.com/users/wendyappleseed/subscriptions" | ||
}, | ||
"labels": [ | ||
{ | ||
"id": 5728067083, | ||
"url": "https://api.github.com/repos/1Password/1password-teams-open-source/labels/status:%20approved", | ||
"name": "status: approved", | ||
"color": "0052CC", | ||
"description": "The application has been approved", | ||
"default": false, | ||
"node_id": "LA_kwDOJ6JE6M8AAAABVWteCw" | ||
} | ||
], | ||
"comments": 11, | ||
"closed_at": "2023-07-13T05:03:51Z", | ||
"created_at": "2023-07-12T19:49:35Z", | ||
"updated_at": "2023-07-13T05:03:51Z", | ||
"url": "https://api.github.com/repos/1Password/1password-teams-open-source/issues/6", | ||
"html_url": "https://github.com/wendyappleseed/1password-teams-open-source/issues/6", | ||
"comments_url": "https://api.github.com/repos/1Password/1password-teams-open-source/issues/6/comments", | ||
"events_url": "https://api.github.com/repos/1Password/1password-teams-open-source/issues/6/events", | ||
"labels_url": "https://api.github.com/repos/1Password/1password-teams-open-source/issues/6/labels{/name}", | ||
"repository_url": "https://api.github.com/repos/1Password/1password-teams-open-source", | ||
"reactions": { | ||
"total_count": 0, | ||
"+1": 0, | ||
"-1": 0, | ||
"laugh": 0, | ||
"confused": 0, | ||
"heart": 0, | ||
"hooray": 0, | ||
"url": "https://api.github.com/repos/1Password/1password-teams-open-source/issues/6/reactions" | ||
}, | ||
"node_id": "I_kwDOJ6JE6M5rYwCY" | ||
} |