code: func (h Secretservice) Add(creds *credentials.Credentials) error {
  	if creds == nil {
  		return errors.New("missing credentials")
  	}
  	credsLabel := C.CString(credentials.CredsLabel)
  	defer C.free(unsafe.Pointer(credsLabel))
  	server := C.CString(creds.ServerURL)
  	defer C.free(unsafe.Pointer(server))
  	username := C.CString(creds.Username)
  	defer C.free(unsafe.Pointer(username))
  	secret := C.CString(creds.Secret)
  	defer C.free(unsafe.Pointer(secret))
  
  	if err := C.add(credsLabel, server, username, secret); err != nil {
  		defer C.g_error_free(err)
  		errMsg := (*C.char)(unsafe.Pointer(err.message))
  		return errors.New(C.GoString(errMsg))
  	}
  	return nil
  }
docs: // Add adds new credentials to the keychain.