mirror of
https://codeberg.org/davrot/forgejo.git
synced 2025-05-29 06:00:03 +02:00
New UI merge in progress
This commit is contained in:
parent
0a739cf9ac
commit
8dd07c0ddd
199 changed files with 15030 additions and 9325 deletions
40
modules/git/signature.go
Normal file
40
modules/git/signature.go
Normal file
|
@ -0,0 +1,40 @@
|
|||
// Copyright 2014 The Gogs Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package git
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Author and Committer information
|
||||
type Signature struct {
|
||||
Email string
|
||||
Name string
|
||||
When time.Time
|
||||
}
|
||||
|
||||
// Helper to get a signature from the commit line, which looks like this:
|
||||
// author Patrick Gundlach <gundlach@speedata.de> 1378823654 +0200
|
||||
// but without the "author " at the beginning (this method should)
|
||||
// be used for author and committer.
|
||||
//
|
||||
// FIXME: include timezone!
|
||||
func newSignatureFromCommitline(line []byte) (*Signature, error) {
|
||||
sig := new(Signature)
|
||||
emailstart := bytes.IndexByte(line, '<')
|
||||
sig.Name = string(line[:emailstart-1])
|
||||
emailstop := bytes.IndexByte(line, '>')
|
||||
sig.Email = string(line[emailstart+1 : emailstop])
|
||||
timestop := bytes.IndexByte(line[emailstop+2:], ' ')
|
||||
timestring := string(line[emailstop+2 : emailstop+2+timestop])
|
||||
seconds, err := strconv.ParseInt(timestring, 10, 64)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sig.When = time.Unix(seconds, 0)
|
||||
return sig, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue