Skip to content

Test issue - please ignore #35

Test issue - please ignore

Test issue - please ignore #35

Workflow file for this run

name: Add bugs to bugs project
"on":
issues:
types: [opened, labeled]
issue_comment:
types: [created, edited]
jobs:
add-to-project:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.4.0
with:
project-url: https://github.com/orgs/timescale/projects/55
github-token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
labeled: bug
waiting-for-author:
name: Waiting for Author
runs-on: ubuntu-latest
if: github.event_name == 'issues' && github.event.action == 'labeled'
&& github.event.label.name == 'waiting-for-author'
steps:
- uses: leonsteinhaeuser/project-beta-automations@v2.0.0
with:
gh_token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
organization: timescale
project_id: 55
resource_node_id: ${{ github.event.issue.node_id }}
status_value: 'Waiting for Author'
waiting-for-engineering:
name: Waiting for Engineering
runs-on: ubuntu-latest
if: github.event_name == 'issue_comment' && !github.event.issue.pull_request
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install jq
- name: Get board column of issue
id: extract_board_column
continue-on-error: true
run: |
# Request all issues from project (server-side filtering is not supported bit GitHub yet)
gh api graphql --paginate -F issue=$ISSUE -F project=$PROJECT -F owner=$OWNER -F repo=$REPO -f query='
query board_column($issue: Int!, $project: Int!, $owner: String!, $repo: String!, $endCursor: String) {
repository(owner: $owner, name: $repo) {
issue(number: $issue) {
projectV2(number: $project) {
items(first: 100, after: $endCursor) {
nodes {
fieldValueByName(name: "Status") {
... on ProjectV2ItemFieldSingleSelectValue {
name
}
}
content {
... on Issue {
id
title
number
repository {
name
owner {
login
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
}
}
' > api_result
# Get board column for issue
board_column=$(cat api_result | jq -r ".data.repository.issue.projectV2.items.nodes[] |
select (.content.number == $ISSUE and .content.repository.name == \"$REPO\" and .content.repository.owner.login == \"$OWNER\") |
.fieldValueByName.name")
echo "Issue is in column: $board_column"
echo "issue_board_column=$board_column" >> "$GITHUB_OUTPUT"
env:
OWNER: timescale
REPO: ${{ github.event.repository.name }}
PROJECT: 55
ISSUE: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Check if organization member
uses: tspascoal/get-user-teams-membership@v2
id: checkUserMember
with:
username: ${{ github.actor }}
organization: timescale
team: 'database-eng'
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Remove waiting-for-author label
if: ${{ steps.checkUserMember.outputs.isTeamMember == 'false'
&& steps.extract_board_column.outputs.issue_board_column == 'Waiting for Author' }}
uses: andymckay/labeler@3a4296e9dcdf9576b0456050db78cfd34853f260
with:
remove-labels: 'waiting-for-author, no-activity'
repo-token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Move to waiting for engineering column
if: ${{ steps.checkUserMember.outputs.isTeamMember == 'false'
&& steps.extract_board_column.outputs.issue_board_column == 'Waiting for Author' }}
uses: leonsteinhaeuser/project-beta-automations@v2.0.0
with:
gh_token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
organization: timescale
project_id: 55
resource_node_id: ${{ github.event.issue.node_id }}
status_value: 'Waiting for Engineering'