mirror of https://github.com/nektos/act
41 lines
651 B
Go
41 lines
651 B
Go
package gh
|
|
|
|
import (
|
|
"bufio"
|
|
"bytes"
|
|
"context"
|
|
"os/exec"
|
|
)
|
|
|
|
func GetToken(ctx context.Context, workingDirectory string) (string, error) {
|
|
var token string
|
|
|
|
// Locate the 'gh' executable
|
|
path, err := exec.LookPath("gh")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
// Command setup
|
|
cmd := exec.CommandContext(ctx, path, "auth", "token")
|
|
cmd.Dir = workingDirectory
|
|
|
|
// Capture the output
|
|
var out bytes.Buffer
|
|
cmd.Stdout = &out
|
|
|
|
// Run the command
|
|
err = cmd.Run()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
// Read the first line of the output
|
|
scanner := bufio.NewScanner(&out)
|
|
if scanner.Scan() {
|
|
token = scanner.Text()
|
|
}
|
|
|
|
return token, nil
|
|
}
|