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

[enhancement]Customize Slack Notification message #32

Closed
daisuke-fukuda opened this issue Jul 7, 2020 · 19 comments
Closed

[enhancement]Customize Slack Notification message #32

daisuke-fukuda opened this issue Jul 7, 2020 · 19 comments
Labels
enhancement New feature or request

Comments

@daisuke-fukuda
Copy link

I want custom notification message.

Now it is very simple message, I can't specify which trigger was pushed when using multiple CloudBuild settings.

If there are these option , It will be very useful.

  • CloudBuild trigger name
  • linked repository, branch, commit hash
  • trigger event
@victuos
Copy link

victuos commented Jul 8, 2020

I vouch for this feature! It would be very useful because the message that are displayed now are very generic.

@davejacobs davejacobs removed their assignment Jul 8, 2020
@akomarovsky
Copy link

I agree. Having more details will be useful in slack notifications. We have multiple triggers and today in slack we don't know which one triggered the build.

@LOZORD
Copy link
Contributor

LOZORD commented Aug 10, 2020

Hi all, we on the Cloud Build team are definitely aware of this FR and are working on short-term and long-term plans! Please stay tuned...

@mn7z
Copy link

mn7z commented Aug 10, 2020

hi @LOZORD so maybe I should close the #63?

@LOZORD
Copy link
Contributor

LOZORD commented Aug 10, 2020

Sure, but I really do appreciate for your contribution 😄 Would using Golang templates satisfy your use case? Do you have any preference between that templating language and Mustache for example? We are considering a few different options for templating.

@mn7z
Copy link

mn7z commented Aug 11, 2020

Personally I don't have preference as the goal is pretty simple. The PR used go templates because it was convenient and in stdlib ;)

@daisuke-fukuda
Copy link
Author

Hi all, we on the Cloud Build team are definitely aware of this FR and are working on short-term and long-term plans! Please stay tuned...

@LOZORD Hi, I've been waiting for this feature for quite some time, any progress?

@mikesoule
Copy link

If the GCP version of this will not be available soon, I propose just merging #91. It's a simple enough PR that it probably wouldn't be difficult for the GCP team to make their implementation compatible or at least make it fail gracefully if the implementation changes.

@NotNoah
Copy link

NotNoah commented Mar 22, 2021

Any updates on something like this?

@LOZORD
Copy link
Contributor

LOZORD commented Mar 22, 2021

Hi (Not) Noah,
We are working on a public requirements doc for templating and bindings in #95 . If there's anything that you'd like beyond what's suggested there, please feel free to comment. I can't comment on the timeline of this yet.
Thanks,
Leo

@NotNoah
Copy link

NotNoah commented Mar 23, 2021

Hi (Not) Noah,
We are working on a public requirements doc for templating and bindings in #95 . If there's anything that you'd like beyond what's suggested there, please feel free to comment. I can't comment on the timeline of this yet.
Thanks,
Leo

Thanks for the update! 😃 this will be very useful once released!

@fragoulis
Copy link
Contributor

It seems that the request is indeed fulfilled.
However, the latest code changes are not yet deployed, as you can see here the last image was uploaded in March.

However, you can checkout the latest code and build your own image and push that in your repository or whatever.

From the code, the configuration looks like it should be this:

apiVersion: cloud-build-notifiers/v1
kind: SlackNotifier
metadata:
  name: cloud-build-slack-notifier
spec:
  notification:
    template:
      type: golang
      uri: gs://foo/bar
    filter: ...
    delivery:
      webhookUrl:
        secretRef: webhook-url
  secrets:
  - name: webhook-url
    value: ....

The template.type is required and the only allowed value is golang.
The template.uri is the object uri.
There is also the template.content which takes raw template.

@weiztech
Copy link

Hi @jfragoulis ,

Could you let me know the example value for template.uri ?

@fragoulis
Copy link
Contributor

@weiztech

gs://bucketname/message-template.json

@bascheibler
Copy link

However, you can checkout the latest code and build your own image and push that in your repository or whatever.

Building an updated image solved my problem. Thank you for pointing it out.

@wyardley
Copy link

wyardley commented Aug 9, 2022

@wyardley
Copy link

wyardley commented Aug 10, 2022

Even though it got built today, the Slack color issue mentioned in #139 and #137 caused it to not work 100%.

@jfragoulis: we were able to use our own build of a fork of the upstream repo along with your changes from #139, and it works perfectly; it would be great to see this fix incorporated and built so that we don't have to, so hopefully someone from the team that manages this project will review it soon.

I'll let @deriegle comment with an example of a working template, as there were some bits of getting it to work that were a little non-obvious.

Other question: is source: an empty data structure in the pub/sub message because we're using GH? we seem to have to use the substitutions instead to get the repo name.

@deriegle
Copy link

As @wyardley mentioned, we were able to get this working with the changes from PR #139. This is our template file. Make sure to change {orgName} to your org name. We just have it static inside the JSON. You want this JSON file to return an array of blocks to send to Slack. The color bar attachment gets handled from within the Go code.

[
  {
    "type": "section",
    "text": {
      "type": "mrkdwn",
      "text": "*Status:* {{.Build.Status}}\n*Repo:* <https://github.com/{orgName}/{{.Build.Substitutions.REPO_NAME}}|{{.Build.Substitutions.REPO_NAME}}>\n*Commit:* <https://github.com/{orgName}/{{.Build.Substitutions.REPO_NAME}}/commit/{{.Build.Substitutions.COMMIT_SHA}}|{{.Build.Substitutions.SHORT_SHA}}>"
    },
    "accessory": {
      "type": "button",
      "text": {
        "type": "plain_text",
        "text": "View Job"
      },
      "value": "click_me_123",
      "url": "{{.Build.LogUrl}}",
      "action_id": "button-action"
    }
  }
]

Example configuration:

spec:
  notification:
    template:
      type: golang
      uri: gs://my-bucket/my-slack-template.json

image
image
image

@wyardley
Copy link

The updates have now also been published / built. Thinking maybe this request can be closed now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.