An open API service indexing awesome lists of open source software.

https://github.com/atomicgo/ghissue

📦 Go library that enables your users to submit error reports to GitHub
https://github.com/atomicgo/ghissue

atomicgo feedback github go golang golang-library issues

Last synced: 9 months ago
JSON representation

📦 Go library that enables your users to submit error reports to GitHub

Awesome Lists containing this project

README

          

AtomicGo | ghissue


Downloads


Latest Release


Tests


Coverage


Unit test count


License: MIT



Go report

---


Documentation
|
Contributing
|
Code of Conduct

---


AtomicGo


go get atomicgo.dev/ghissue



# ghissue

```go
import "atomicgo.dev/ghissue"
```

Package ghissue enables your users to submit issues to GitHub directly.

\!\[Demo Video\]\(https://raw.githubusercontent.com/atomicgo/ghissue/main/demo.gif\)

Example:

```
repo := ghissue.NewRepository("atomicgo", "ghissue")
// [...]
err := errors.New("This is an error")
repo.CreateErrorReport(err) // Only creates an error report if the error is not nil
```

## Index

- [Variables](<#variables>)
- [type Issue](<#Issue>)
- [func NewIssue\(repo Repository, title, body string\) Issue](<#NewIssue>)
- [func \(issue Issue\) GetCreateURL\(\) string](<#Issue.GetCreateURL>)
- [func \(issue Issue\) Open\(\) error](<#Issue.Open>)
- [type Repository](<#Repository>)
- [func NewRepository\(owner, name string\) Repository](<#NewRepository>)
- [func \(repo Repository\) CreateErrorReport\(err error\) error](<#Repository.CreateErrorReport>)
- [func \(repo Repository\) NewIssue\(title, body string\) Issue](<#Repository.NewIssue>)
- [func \(repo Repository\) String\(\) string](<#Repository.String>)

## Variables

ErrOpenBrowser is the error returned when opening the browser fails.

```go
var ErrOpenBrowser = errors.New("failed to open browser")
```


## type [Issue]()

Issue is a GitHub issue.

```go
type Issue struct {
Repository Repository
Title string
Body string
}
```


### func [NewIssue]()

```go
func NewIssue(repo Repository, title, body string) Issue
```

NewIssue creates a new issue.


### func \(Issue\) [GetCreateURL]()

```go
func (issue Issue) GetCreateURL() string
```

GetCreateURL returns the URL to create an issue.


### func \(Issue\) [Open]()

```go
func (issue Issue) Open() error
```

Open opens the "create issue" menu on GitHub in the browser.


## type [Repository]()

Repository is a GitHub repository.

```go
type Repository struct {
Owner string
Name string
}
```


### func [NewRepository]()

```go
func NewRepository(owner, name string) Repository
```

NewRepository creates a new Repository from an owner and repository name.


### func \(Repository\) [CreateErrorReport]()

```go
func (repo Repository) CreateErrorReport(err error) error
```

CreateErrorReport creates a new issue on GitHub with a detailed error report including the stack trace.

Example:

```
repo := ghissue.NewRepository("atomicgo", "ghissue")
// [...]
err := errors.New("This is an error")
repo.CreateErrorReport(err)
```


### func \(Repository\) [NewIssue]()

```go
func (repo Repository) NewIssue(title, body string) Issue
```

NewIssue creates a new issue with a title and body.


### func \(Repository\) [String]()

```go
func (repo Repository) String() string
```

String returns the string representation of the repository.

Generated by [gomarkdoc]()

---

> [AtomicGo.dev](https://atomicgo.dev)  · 
> with ❤️ by [@MarvinJWendt](https://github.com/MarvinJWendt) |
> [MarvinJWendt.com](https://marvinjwendt.com)