@@ -32,6 +32,8 @@ import (
3232 "cloud.google.com/go/internal/postprocessor/librarian/librariangen/module"
3333)
3434
35+ var now = time .Now
36+
3537// Config holds the configuration for the release-init command.
3638type Config struct {
3739 LibrarianDir string
@@ -66,7 +68,7 @@ func Init(ctx context.Context, cfg *Config) error {
6668
6769 moduleDir := filepath .Join (cfg .OutputDir , lib .ID )
6870 slog .Info ("librariangen: processing library for release" , "id" , lib .ID , "version" , lib .Version )
69- if err := updateChangelog (cfg , lib , time . Now ().UTC ()); err != nil {
71+ if err := updateChangelog (cfg , lib , now ().UTC ()); err != nil {
7072 return writeErrorResponse (cfg .LibrarianDir , fmt .Errorf ("librariangen: failed to update changelog for %s: %w" , lib .ID , err ))
7173 }
7274 if err := module .GenerateInternalVersionFile (moduleDir , lib .Version ); err != nil {
@@ -101,16 +103,19 @@ func updateChangelog(cfg *Config, lib *Library, t time.Time) error {
101103 return fmt .Errorf ("librariangen: reading changelog: %w" , err )
102104 }
103105
104- versionString := fmt .Sprintf ("### %s " , lib .Version )
106+ versionString := fmt .Sprintf ("## [%s] " , lib .Version )
105107 if bytes .Contains (oldContent , []byte (versionString )) {
106108 slog .Info ("librariangen: changelog already up-to-date" , "path" , relativeChangelogPath , "version" , lib .Version )
107109 return nil
108110 }
109111
110112 var newEntry bytes.Buffer
111113
114+ tag := fmt .Sprintf ("%s/v%s" , lib .ID , lib .Version )
115+ encodedTag := strings .ReplaceAll (tag , "/" , "%2F" )
116+ releaseURL := "https://github.com/googleapis/google-cloud-go/releases/tag/" + encodedTag
112117 date := t .Format ("2006-01-02" )
113- fmt .Fprintf (& newEntry , "%s (%s)\n \n " , versionString , date )
118+ fmt .Fprintf (& newEntry , "## [%s](%s) (%s)\n \n " , lib . Version , releaseURL , date )
114119
115120 changesByType := make (map [string ]map [string ]bool )
116121 for _ , change := range lib .Changes {
@@ -125,7 +130,7 @@ func updateChangelog(cfg *Config, lib *Library, t time.Time) error {
125130 if len (subjects ) == 0 {
126131 continue
127132 }
128- fmt .Fprintf (& newEntry , "#### %s\n \n " , section .Section )
133+ fmt .Fprintf (& newEntry , "### %s\n \n " , section .Section )
129134 for subj := range subjects {
130135 fmt .Fprintf (& newEntry , "* %s\n " , subj )
131136 }
0 commit comments