Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure for Codecov #548

Merged
merged 1 commit into from
Jul 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ jobs:
SLACK_SIGNING_SECRET: ${{ secrets.SLACK_SIGNING_SECRET }}
SLACK_BOT_APP_ID: ${{ secrets.SLACK_BOT_APP_ID }}
GH_APP_PRIVATE_KEY_FOR_GETSENTRY: ${{ secrets.GH_APP_PRIVATE_KEY_FOR_GETSENTRY}}
GH_APP_PRIVATE_KEY_FOR_CODECOV: ${{ secrets.GH_APP_PRIVATE_KEY_FOR_CODECOV}}
GH_APP_IDENTIFIER: ${{ secrets.GH_APP_IDENTIFIER }}
GH_WEBHOOK_SECRET: ${{ secrets.GH_WEBHOOK_SECRET }}
SENTRY_WEBPACK_WEBHOOK_SECRET: ${{ secrets.SENTRY_WEBPACK_WEBHOOK_SECRET }}
Expand Down
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The events sent by the bot are defined under "Subscribe to bot events" in the "E
- [A message was posted in a direct message channel](https://api.slack.com/events/message.im)
- [A member's data has changed](https://api.slack.com/events/user_change).

### Github Sentry Webhooks
### GitHub Sentry Webhooks

Under Sentry's [webhooks](https://github.com/organizations/getsentry/settings/hooks) there's webhooks to the production backend with the route "webhooks/github".

Expand Down Expand Up @@ -167,11 +167,9 @@ You'll also need to create a private key for the service account (it should down
- Leave the `privateKey` as-is, it's the name of an environment variable to pull from (the main `github-orgs.yml` holds public config and is checked into version control).
- In a terminal, log into the Github CLI using `gh auth login`.
- In a terminal, log into the GitHub CLI using `gh auth login`.
- Use [this](https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects#finding-the-node-id-of-an-organization-project) GraphQL query to identify the node ID of the project you made earlier; set `project.nodeId` to match.
- Use [this](https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects#finding-the-node-id-of-a-field) GraphQL query to identify the IDs of the project fields you set up, and use those to populate `project.fieldIds`.
- Use the script at `bin/get-project-ids.sh $orgSlug $projectNumber` to determine the ids to set in `github-orgs.yml` for your project.
1. Follow the steps of the "Development & tests" section below to get the server running.
Expand Down Expand Up @@ -248,7 +246,7 @@ yarn test
This section only matters if you want to gather metrics from other projects than the ones we currently do.
Install [the Github application](https://github.com/organizations/getsentry/settings/apps/getsantry/installations) to relevant repos (you will need to contact IT for access to this app). This app is used for GitHub API access to the repos it is installed on.
Install [the GitHub application](https://github.com/organizations/getsentry/settings/apps/getsantry/installations) to relevant repos (you will need to contact IT for access to this app). This app is used for GitHub API access to the repos it is installed on.
### Deploying
Expand Down
1 change: 1 addition & 0 deletions bin/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ IMAGE=gcr.io/${PROJECT}/product-eng-webhooks

env_vars="ENV=production,"
env_vars="${env_vars}GH_APP_PRIVATE_KEY_FOR_GETSENTRY=${GH_APP_PRIVATE_KEY_FOR_GETSENTRY},"
env_vars="${env_vars}GH_APP_PRIVATE_KEY_FOR_CODECOV=${GH_APP_PRIVATE_KEY_FOR_CODECOV},"
env_vars="${env_vars}GH_WEBHOOK_SECRET=${GH_WEBHOOK_SECRET},"
env_vars="${env_vars}SLACK_SIGNING_SECRET=${SLACK_SIGNING_SECRET},"
env_vars="${env_vars}SLACK_BOT_USER_ACCESS_TOKEN=${SLACK_BOT_USER_ACCESS_TOKEN},"
Expand Down
41 changes: 41 additions & 0 deletions bin/get-project-ids.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env zsh

nodeId=$(
gh api graphql -f query='
query{
organization(login: "'$1'"){
projectV2(number: '$2') {
id
}
}
}' \
| jq -r '.data.organization.projectV2.id'
)

fields=$(
gh api graphql -f query='
query{
node(id: "'$nodeId'") {
... on ProjectV2 {
fields(first: 20) {
nodes {
... on ProjectV2FieldCommon {
id
name
}
}
}
}
}
}' \
)

function id () {
echo "$fields" | jq -r '.data.node.fields.nodes[] | select(.name=="'"$1"'").id'
}

echo " nodeId: '$nodeId'"
echo " fieldIds:"
echo " productArea: '"$(id 'Product Area')"'"
echo " status: '"$(id 'Status')"'"
echo " responseDue: '"$(id 'Response Due')"'"
14 changes: 14 additions & 0 deletions github-orgs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,17 @@ getsentry:
- 'sentry-android-gradle-plugin'
- 'sentry-dotnet'
- 'sentry-dart-plugin'
codecov:
appAuth:
appId: 343171
privateKey: 'GH_APP_PRIVATE_KEY_FOR_CODECOV'
installationId: 40036835
project:
nodeId: 'PVT_kwDOAH2Fnc4ARzsq'
fieldIds:
productArea: 'PVTSSF_lADOAH2Fnc4ARzsqzgLXyZg'
status: 'PVTSSF_lADOAH2Fnc4ARzsqzgLXyI4'
responseDue: 'PVTF_lADOAH2Fnc4ARzsqzgLXyhE'
repos:
withoutRouting:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: once there are repos with routing there may be some issues

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Say more?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! Maybe this isn't what you mean, but we need to figure out Slack channel routing for notifications. 🤔

Back to #482 for that ...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, that's what I meant here. We will need to configure a channel to send notifications for support, unless we want to also use the #discuss-support-open-source for codecov too.

- 'feedback'
Loading