All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Please open an issue for any deviations that you spot; I'm still learning!.
The following types of changes will be recorded in this file:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.
- placeholder
v2.8.0 - 2023-06-09
Adaptive Card
format- (GH-205) Ability to create a Table in AdaptiveCard
- Dependencies
stretchr/testify
v1.8.2
tov1.8.4
- CI
- (GH-226) Add
quick
Makefile recipe (alias) - (GH-225) Update vuln analysis GHAW to remove on.push hook
- (GH-226) Add
v2.7.1 - 2023-06-09
- Dependencies
github.com/stretchr/testify
v1.8.1
tov1.8.2
- CI
- (GH-198) Add Go Module Validation, Dependency Updates jobs
- (GH-200) Drop
Push Validation
workflow - (GH-201) Rework workflow scheduling
- (GH-203) Remove
Push Validation
workflow status badge - (GH-207) Update vuln analysis GHAW to use on.push hook
Adaptive Card
format- (GH-206) Update
AdaptiveCardMaxVersion
to 1.5 - (GH-216) Refactor
TopLevelCard.Validate
- (GH-206) Update
- Other
- (GH-212) Update
InList
,InListIfFieldValNotEmpty
validators
- (GH-212) Update
- (GH-208) Validation of
(adaptivecard.Attachment).Content
is missing
v2.7.0 - 2022-12-12
- (GH-134) Allow setting user agent, fallback to project-specific default value
- (GH-135) Allow overriding default
http.Client
- (GH-157) Add
Adaptive Card
message format support- see also discussion from GH-127, including feedback from @ghokun
- (GH-169) Added YAML en(de)coding support to
MessageCard
- credit: @pcanilho
- Dependencies
github.com/stretchr/testify
v1.7.0
tov1.8.1
- (GH-154) Deprecate API interface, expose underlying "Teams" client
- (GH-183) Update Makefile and GitHub Actions Workflows
- (GH-190) Refactor GitHub Actions workflows to import logic
- (GH-166) Update
lintinstall
Makefile recipe - (GH-184) Apply Go 1.19 specific doc comments linting fixes
- (GH-176)
./send_test.go:238:8: second argument to errors.As should not be *error
- (GH-179) Wrong json key name for URL (uses uri instead)
- credit: @janfonas
v2.6.1 - 2022-02-25
-
Dependencies
actions/setup-node
v2.2.0
tov3
-
Linting
- (GH-131) Expand linting GitHub Actions Workflow to include
oldstable
,unstable
container images - (GH-132) Switch Docker image source from Docker Hub to GitHub Container Registry (GHCR)
- (GH-131) Expand linting GitHub Actions Workflow to include
- (GH-137) Missing doc comment for
teamsClient.AddWebhookURLValidationPatterns()
- (GH-138) Missing doc comment for
teamsClient.ValidateWebhook()
- (GH-141) send.go:306:15: nilness: tautological condition: non-nil != nil (govet)
- (GH-144) Incorrect field referenced in error message for
MessageCardSection.AddFact()
v2.6.0 - 2021-07-09
-
Features
- Add support for PotentialActions (aka, "Actions")
- credit: @nmaupu
- Add support for PotentialActions (aka, "Actions")
-
Documentation
- Add separate
examples
directory containing standalone example code for most common use cases
- Add separate
-
Dependencies
actions/setup-node
v2.1.5
tov2.2.0
- update
node-version
value to always use latest LTS version instead of hard-coded version
-
Linting
- replace
golint
,scopelint
linters, cleanup config- note: this specifically applies to linting performed via Makefile recipe, not (at present) the bulk of the CI linting checks
- replace
-
Documentation
- move examples from README to separate
examples
directory - Remove example from doc.go file, direct reader to main README
- Update project status
- remove history as it is likely no longer relevant (original project is discontinued at this point)
- remove future (for the same reason)
- Add explicit "Supported Releases" section to help make clear that the v1 series is no longer maintained
- Remove explicit "used by" details, rely on dynamic listing provided by pkg.go.dev instead
- Minor polish
- move examples from README to separate
v2.5.0 - 2021-04-08
-
Features
-
Documentation
- Add list of projects using this library
- Update features list to include functionality added to this fork
- Configurable validation of webhook URLs
- Configurable validation of
MessageCard
type - Configurable timeouts
- Configurable retry support
- Dependencies
actions/setup-node
v2.1.4
tov2.1.5
- Documentation
- Misc typos
- Grammatical tweaks
- Attempt to clarify project status
- i.e., not mothballed, just slow cadence
v2.4.2 - 2021-01-28
- Apply regex pattern match for webhook URL validation instead of fixed strings in order to support matching private org webhook URL subdomains
- Updating an exiting webhook connector in Microsoft Teams switches the URL to
unsupported
https://*.webhook.office.com/webhookb2/
format SendWithRetry
method does not honor setting to disable webhook URL prefix validation- Support for disabling webhook URL validation limited to just disabling validation of prefixes
v2.4.1 - 2021-01-28
- (GH-59) Webhook URL API endpoint response validation now requires a
1
text string as the response body
- (GH-59) Microsoft Teams Webhook Connector "200 OK" status insufficient indication of success
v2.4.0 - 2021-01-28
- Add (optional) support for disabling webhook URL prefix validation
- credit: @odise
-
Documentation
- Refresh "basic" example
- Add example for disabling webhook URL prefix validation
- Update "about this project" coverage
- Swap GoDoc badge for pkg.go.dev badge
-
Tests
- Extend test coverage
- Verbose test output by default (Makefile, GitHub Actions Workflow)
-
Dependencies
actions/setup-node
v2.1.1
tov2.1.4
actions/checkout
v2.3.2
tov2.3.4
stretchr/testify
v1.6.1
tov1.7.0
- minor linting error for commented code
- Tests fail to assert that any errors which occur are expected, only the types
v2.3.0 - 2020-08-29
-
Add package-level logging for formatting functions
- as with other package-level logging, this is disabled by default
-
API
- add
SendWithRetry
method based on theteams.SendMessage
function from theatc0005/send2teams
project- actively working to move relevant content from that project to this one
- add
- YYYY-MM-DD date formatting of changelog version entries
v2.2.0 - 2020-08-28
- Add package-level logger
- Extend API to allow request cancellation via context
- Add formatting functions useful for text conversion
- Convert Windows/Mac/Linux EOL to Markdown break statements
- used to provide equivalent Teams-compatible formatting
- Format text as code snippet
- this inserts leading and trailing ` character to provide Markdown string formatting
- Format text as code block
- this inserts three leading and trailing ` characters to provide Markdown code block formatting
Try
variants of code formatting functions- return formatted string if no errors, otherwise return the original string
- Convert Windows/Mac/Linux EOL to Markdown break statements
- Expose API response strings containing potential error messages
- README
- Explicitly note that this fork is now standalone until such time that the upstream project resumes development/maintenance efforts
- CHANGELOG section link in previous release
- Invalid
RoundTripper
implementation used inTestTeamsClientSend
test function- see
GH-46
andGH-47
; thank you@davecheney
for the fix!
- see
v2.1.1 - 2020-08-25
- README
- Add badges for GitHub Actions Workflows
- Add release badge for latest project release
- Add CHANGELOG file
- Add GoDoc package-level documentation
- Extend webhook validation error handling
- Add Docker-based GitHub Actions Workflows
- Enable Dependabot updates
- Add Markdownlint config file
- README
- Replace badge for latest tag with latest release
- Update GoDoc badge to reference this fork
- Update license badge to reference this fork
- Add new sections common to other projects that I maintain
- table of contents
- overview
- changelog
- references
- features
- Vendor dependencies
- Update license to add @atc0005 (new) in addition to @dasrick (existing)
- Update go.mod to replace upstream with this fork
- Rename golangci-lint config file to match officially supported name
- Remove files no longer used by this fork
- Travis CI configuration
- editorconfig file (and settings)
- Add license header to source files
- combined copyright statement for existing files
- single copyright statement for new files
- Add missing Facts assignment in MessageCardSection
- scopelint: Fix improper range loop var reference
- Fix misc linting issues with README
- Test failure from previous upstream pull request submissions
Object expected to be of type *url.Error, but was *errors.errorString
- Misc linting issues with primary and test files
v2.1.0 - 2020-04-08
-
MessageCard
type includes additional fieldsType
andContext
fields provide required JSON payload fields- preset to required static values via updated
NewMessageCard()
constructor
- preset to required static values via updated
Summary
- required if
Text
field is not set, optional otherwise
- required if
Sections
sliceMessageCardSection
type
-
Additional nested types
MessageCardSection
MessageCardSectionFact
MessageCardSectionImage
-
Additional methods for
MessageCard
and nested typesMessageCard.AddSection()
MessageCardSection.AddFact()
MessageCardSection.AddFactFromKeyValue()
MessageCardSection.AddImage()
MessageCardSection.AddHeroImageStr()
MessageCardSection.AddHeroImage()
-
Additional factory functions
NewMessageCardSection()
NewMessageCardSectionFact()
NewMessageCardSectionImage()
-
IsValidMessageCard()
added to check for minimum required field values.- This function has the potential to be extended later with additional validation steps.
-
Wrapper
IsValidInput()
added to handle all validation needs from one location.- the intent was to both solve a CI error and provide a location to easily extend validation checks in the future (if needed)
-
MessageCard
type includes additional fields -
NewMessageCard
factory function sets fields needed for required JSON payload fieldsType
Context
-
teamsClient.Send()
method updated to applyMessageCard
struct validation alongside existing webhook URL validation -
isValidWebhookURL()
exported asIsValidWebhookURL()
so that client code can use the validation functionality instead of repeating the code- e.g., flag value validation for "fail early" behavior
- No support in this set of changes for
potentialAction
typesViewAction
OpenUri
HttpPOST
ActionCard
InvokeAddInCommand
- Outlook specific based on what I read; likely not included in a future release due to non-Teams specific usage
v2.0.0 - 2020-03-29
NewClient()
will NOT return multiple values- remove provided mock
- switch dependency/package management tool to from
dep
togo mod
- switch from
golint
togolangci-lint
- add more golang versions to pass via travis-ci
v1.3.1 - 2020-03-29
- fix redundant error logging
- fix redundant comment
v1.3.0 - 2020-03-26
- feature: allow multiple valid webhook URL FQDNs (thx @atc0005)
v1.2.0 - 2019-11-08
- add mock
- update deps
gosimple
(shorten two conditions)
v1.1.1 - 2019-05-02
- rename client interface into API
- update deps
- fix typo in README
v1.1.0 - 2019-04-30
- add missing tests
- append documentation
- add/change to client/interface
v1.0.0 - 2019-04-29
- add initial functionality of sending messages to MS Teams channel