Skip to content
Closed
19 changes: 19 additions & 0 deletions .github/workflows/ci-require-labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Require labels to be added to a PR before merging
# This is configured as a branch protection setting
name: CI Require Labels
on:
pull_request:
types: [opened, labeled, unlabeled, synchronize]
merge_group:
run-name: CI Require Labels ${{ github.sha }} by @${{ github.actor }}
jobs:
require-labels:
if: ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
outputs:
status: ${{ steps.require-labels.outputs.status }}
steps:
- uses: actions/checkout@v3
- name: Require Labels
id: require-labels
uses: nullify-platform/github-actions/actions/require-labels@main
50 changes: 50 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Create Release
on:
workflow_dispatch:
inputs:
releaseType:
description: Create a draft release
required: true
type: boolean
default: true
push:
branches:
- main
concurrency:
group: release
cancel-in-progress: false
run-name: Release ${{ github.sha }} by @${{ github.actor }}
permissions:
contents: write
id-token: write
pull-requests: read
jobs:
get-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get-version.outputs.version }}
steps:
- uses: actions/checkout@v3
- name: Get Release Version
id: get-version
uses: nullify-platform/github-actions/actions/release-version@main
- run: |
echo "config-file-parser @ ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "VERSION: ${{ steps.get-version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
echo "SHORT_SHA: $(git rev-parse --short HEAD)" >> $GITHUB_STEP_SUMMARY
release:
if: ${{ needs.get-version.outputs.version != 'undefined' || (github.event_name == 'workflow_dispatch' && needs.get-version.outputs.version != 'undefined') }}
runs-on: ubuntu-latest
needs: [ get-version ]
steps:
- uses: actions/checkout@v3
- name: Generate Release Tag
run: echo "RELEASE_TAG=v${{ needs.get-version.outputs.version }}" >> $GITHUB_ENV
- name: Generate Release
uses: softprops/action-gh-release@v1
with:
draft: false
generate_release_notes: true
append_body: true
tag_name: ${{ env.RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }}
5 changes: 5 additions & 0 deletions azuredevops/azuredevops.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const (
GitPullRequestUpdatedEventType Event = "git.pullrequest.updated"
GitPullRequestMergedEventType Event = "git.pullrequest.merged"
GitPushEventType Event = "git.push"
GitPullRequestCommentEventType Event = "ms.vss-code.git-pullrequest-comment-event"
)

// Option is a configuration option for the webhook
Expand Down Expand Up @@ -104,6 +105,10 @@ func (hook Webhook) Parse(r *http.Request, events ...Event) (interface{}, error)
var fpl BuildCompleteEvent
err = json.Unmarshal([]byte(payload), &fpl)
return fpl, err
case GitPullRequestCommentEventType:
var fpl GitPullRequestCommentEvent
err = json.Unmarshal([]byte(payload), &fpl)
return fpl, err
default:
return nil, fmt.Errorf("unknown event %s", pl.EventType)
}
Expand Down
27 changes: 27 additions & 0 deletions azuredevops/payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,17 @@ type GitPushEvent struct {
Scope string `json:"scope"`
}

// "ms.vss-code.git-pullrequest-comment-event"

type GitPullRequestCommentEvent struct {
ID string `json:"id"`
EventType Event `json:"eventType"`
PublisherID string `json:"publisherId"`
Scope string `json:"scope"`
Message Message `json:"message"`
Resource PullRequestComment `json:"resource"`
}

// build.complete

type BuildCompleteEvent struct {
Expand Down Expand Up @@ -100,6 +111,22 @@ type PullRequest struct {
URL string `json:"url"`
}

type PullRequestComment struct {
PullRequest PullRequest `json:"pullRequest"`
Comment Comment `json:"comment"`
}

type Comment struct {
ID int `json:"id"`
ParentCommentID int `json:"parentCommentId"`
Content string `json:"content"`
Author User `json:"author"`
PublishedDate Date `json:"publishedDate"`
LastUpdatedDate Date `json:"lastUpdatedDate"`
LastContentUpdatedDate Date `json:"lastContentUpdatedDate"`
CommentType string `json:"commentType"`
}

type Repository struct {
ID string `json:"id"`
Name string `json:"name"`
Expand Down
68 changes: 47 additions & 21 deletions github/payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,17 +216,39 @@ type CheckRunPayload struct {
type CheckSuitePayload struct {
Action string `json:"action"`
CheckSuite struct {
ID int64 `json:"id"`
NodeID string `json:"node_id"`
HeadBranch string `json:"head_branch"`
HeadSHA string `json:"head_sha"`
Status string `json:"status"`
Conclusion string `json:"conclusion"`
URL string `json:"url"`
Before string `json:"before"`
After string `json:"after"`
PullRequests []PullRequestPayload `json:"pull_requests"`
App struct {
ID int64 `json:"id"`
NodeID string `json:"node_id"`
HeadBranch string `json:"head_branch"`
HeadSHA string `json:"head_sha"`
Status string `json:"status"`
Conclusion string `json:"conclusion"`
URL string `json:"url"`
Before string `json:"before"`
After string `json:"after"`
PullRequests []struct {
URL string `json:"url"`
ID int64 `json:"id"`
Number int64 `json:"number"`
Head struct {
Ref string `json:"ref"`
SHA string `json:"sha"`
Repo struct {
ID int64 `json:"id"`
URL string `json:"url"`
Name string `json:"name"`
} `json:"repo"`
} `json:"head"`
Base struct {
Ref string `json:"ref"`
SHA string `json:"sha"`
Repo struct {
ID int64 `json:"id"`
URL string `json:"url"`
Name string `json:"name"`
} `json:"repo"`
} `json:"base"`
} `json:"pull_requests"`
App struct {
ID int64 `json:"id"`
NodeID string `json:"node_id"`
Owner struct {
Expand Down Expand Up @@ -4852,16 +4874,20 @@ type PullRequestReviewPayload struct {
type PullRequestReviewCommentPayload struct {
Action string `json:"action"`
Comment struct {
URL string `json:"url"`
ID int64 `json:"id"`
NodeID string `json:"node_id"`
DiffHunk string `json:"diff_hunk"`
Path string `json:"path"`
Position int64 `json:"position"`
OriginalPosition int64 `json:"original_position"`
CommitID string `json:"commit_id"`
OriginalCommitID string `json:"original_commit_id"`
User struct {
URL string `json:"url"`
ID int64 `json:"id"`
NodeID string `json:"node_id"`
DiffHunk string `json:"diff_hunk"`
Path string `json:"path"`
Line int64 `json:"line"`
OriginalLine int64 `json:"original_line"`
StartLine int64 `json:"start_line"`
OriginalStartLine int64 `json:"original_start_line"`
Position int64 `json:"position"`
OriginalPosition int64 `json:"original_position"`
CommitID string `json:"commit_id"`
OriginalCommitID string `json:"original_commit_id"`
User struct {
Login string `json:"login"`
ID int64 `json:"id"`
NodeID string `json:"node_id"`
Expand Down
1 change: 1 addition & 0 deletions gitlab/payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -730,6 +730,7 @@ type ObjectAttributes struct {
Target Target `json:"target"`
LastCommit LastCommit `json:"last_commit"`
Assignee Assignee `json:"assignee"`
DiscussionID string `json:"discussion_id"` // thread id
}

// PipelineObjectAttributes contains pipeline specific GitLab object attributes information
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/go-playground/webhooks/v6
module github.com/nullify-platform/webhooks

go 1.17

Expand Down
Loading