Communicate with the Atlassian API's quickly and easily with the go-atlassian module.

Communicate with the Atlassian API's quickly and easily with the go-atlassian module. With the go-atlassian client, you can retrieve and manipulate the extensive Atlassian Cloud API's like Jira, Confluence, Jira Agile, Jira Service Management, Atlassian Admin and much more!.

If you find an endpoint not supported, please submit a pull request or raise a feature issue - it's always greatly appreciated.

Installation

If you do not have Go installed yet, you can find installation instructions here. Please note that the package requires Go version 1.13 or later for module support.

To pull the most recent version of go-atlassian, use go get.

go get github.com/ctreminiom/go-atlassian

Then import the package into your project as you normally would. You can import the following packages

Package import path
Jira v2 github.com/ctreminiom/go-atlassian/jira/v2
Jira v3 github.com/ctreminiom/go-atlassian/jira/v3
Jira Agile github.com/ctreminiom/go-atlassian/jira/agile
Jira ITSM github.com/ctreminiom/go-atlassian/jira/sm
Confluence github.com/ctreminiom/go-atlassian/confluence
Cloud Admin github.com/ctreminiom/go-atlassian/admin

Now you're ready to Go.

🧳 Creating A Client

Before using the go-atlassian package, you need to have an Atlassian API key. If you do not have a key yet, you can sign up here.

Create a client with your instance host and access token to start communicating with the Atlassian API's.

instance, err := confluence.New(nil, "INSTANCE_HOST")
if err != nil {
    log.Fatal(err)
}

instance.Auth.SetBasicAuth("YOUR_CLIENT_MAIL", "YOUR_APP_ACCESS_TOKEN")

If you need to use a preconfigured HTTP client, simply pass its address to the New function.

transport := http.Transport{
	Proxy: http.ProxyFromEnvironment,
	Dial: (&net.Dialer{
		// Modify the time to wait for a connection to establish
		Timeout:   1 * time.Second,
		KeepAlive: 30 * time.Second,
	}).Dial,
	TLSHandshakeTimeout: 10 * time.Second,
}

client := http.Client{
	Transport: &transport,
	Timeout:   4 * time.Second,
}

instance, err := confluence.New(&client, "INSTANCE_HOST")
if err != nil {
	log.Fatal(err)
}

instance.Auth.SetBasicAuth("YOUR_CLIENT_MAIL", "YOUR_APP_ACCESS_TOKEN")

🗺️ Services

The client contains a distinct service for working with each of the Atlassian API's endpoints. Each service has a set of service functions that make specific API calls to their respective endpoint.

To start communicating with the go-atlassian, choose a service and call its service function. Take the Jira service for example.

To get the issue with the transitions, use the Issue service function.

ctx := context.Background()
issueKey := "KP-2"
expand := []string{"transitions"}

issue, response, err := atlassian.Issue.Get(ctx,issueKey, nil, expand)
if err != nil {
	log.Fatal(err)
}

log.Println(issue.Key)

for _, transition := range issue.Transitions {
	log.Println(transition.Name, transition.ID, transition.To.ID, transition.HasScreen)
}

To search issues using a JQL query, use the Issue.Search service function.

var (
	jql    = "order by created DESC"
	fields = []string{"status"}
	expand = []string{"changelog", "renderedFields", "names", "schema", "transitions", "operations", "editmeta"}
)

issues, response, err := atlassian.Issue.Search.Post(context.Background(), jql, fields, expand, 0, 50, "")
if err != nil {
	log.Fatal(err)
}

log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println(issues.Total)

The rest of the service functions work much the same way; they are concise and behave as you would expect. The documentation contains several examples on how to use each service function.

✍️ Contributions

If you would like to contribute to this project, please adhere to the following guidelines.

  • Submit an issue describing the problem.
  • Fork the repo and add your contribution.
  • Add appropriate tests.
  • Run go fmt, go vet, and golint.
  • Prefer idiomatic Go over non-idiomatic code.
  • Follow the basic Go conventions found here.
  • If in doubt, try to match your code to the current codebase.
  • Create a pull request with a description of your changes.

Again, contributions are greatly appreciated!

💡 Inspiration

The project was created with the purpose to provide a unique point to provide an interface for interacting with Atlassian products. This module is highly inspired by the Go library https://github.com/andygrunwald/go-jira but focused on Cloud solutions.

📝 License

Copyright © 2021 Carlos Treminio. This project is MIT licensed.

FOSSA Status

🤝 Special Thanks

In addition to all the contributors we would like to thanks to these companies:

  • Atlassian for providing us Atlassian Admin/Jira/Confluence Standard licenses.
  • JetBrains for providing us with free licenses of GoLand
  • GitBook for providing us non-profit / open-source plan so hence I would like to express my thanks here.

Owner
Carlos Treminio
Building stuff, solving problems, having fun doing it.
Carlos Treminio
Comments
  • IssueTypeScreenSchemeService: add `description` field when creating issue type screen schemes

    IssueTypeScreenSchemeService: add `description` field when creating issue type screen schemes

    Is your feature request related to a problem? Please describe. The issueTypeScreenSchemeService's CREATE method does not currently support creating an issue type screen scheme with a description.

    The method's payload model IssueTypeScreenSchemePayloadScheme is missing a description field.

    Describe the solution you'd like Add a description field to model IssueTypeScreenSchemePayloadScheme .

    For example:

    type IssueTypeScreenSchemePayloadScheme struct {
    	Name              string                                       `json:"name,omitempty"`
            Description       string                                       `json:"description,omitempty"` 
    	IssueTypeMappings []*IssueTypeScreenSchemeMappingPayloadScheme `json:"issueTypeMappings,omitempty"`
    }
    

    API Reference: Jira Cloud Platform v3 - Issue Type Screen Schemes

    Describe alternatives you've considered NA

    Additional context NA

  • ⬆️ Bump github.com/tidwall/gjson from 1.14.3 to 1.14.4

    ⬆️ Bump github.com/tidwall/gjson from 1.14.3 to 1.14.4

    Bumps github.com/tidwall/gjson from 1.14.3 to 1.14.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • :sparkles: Implemented the Workflow Status service.

    :sparkles: Implemented the Workflow Status service.

    1. Created the interface called WorkflowStatusConnector which contains the service contract.

    2. Created the WorkflowStatusService struct with the service implementation under workflow_status_impl.go

    3. Created the dedicated structs under jira_workflow_status.go

    4. Injected the service implementation under the WorkflowService struct (Workflow.Status.*)

    5. Created the Unit Test Cases with a 92.5% of coverage

    6. Fixes #140

  • Add endpoints to manage Jira statuses

    Add endpoints to manage Jira statuses

    Is your feature request related to a problem? Please describe. No

    Describe the solution you'd like Add full CRUD endpoints to manage Jira statuses.

    Docs: https://support.atlassian.com/jira-cloud-administration/docs/what-are-issue-statuses-priorities-and-resolutions/#Issue-statuses API Reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-status/#api-group-status

    Describe alternatives you've considered Currently, the library does not provide support for creating/reading/updating/deleting Jira statuses.

    Additional context Add any other context or screenshots about the feature request here.

  • ⬆️ Bump github.com/tidwall/gjson from 1.14.0 to 1.14.2

    ⬆️ Bump github.com/tidwall/gjson from 1.14.0 to 1.14.2

    Bumps github.com/tidwall/gjson from 1.14.0 to 1.14.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • ⬆️ Bump github.com/stretchr/testify from 1.7.2 to 1.7.4

    ⬆️ Bump github.com/stretchr/testify from 1.7.2 to 1.7.4

    Bumps github.com/stretchr/testify from 1.7.2 to 1.7.4.

    Commits
    • 48391ba Fix panic in AssertExpectations for mocks without expectations (#1207)
    • 840cb80 arrays value types in a zero-initialized state are considered empty (#1126)
    • 07dc7ee Bump actions/setup-go from 3.1.0 to 3.2.0 (#1191)
    • c33fc8d Bump actions/checkout from 2 to 3 (#1163)
    • 3c33e07 Added Go 1.18.1 as a build/supported version (#1182)
    • e2b56b3 Bump github.com/stretchr/objx from 0.1.0 to 0.4.0
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • ⬆️ Bump github.com/tidwall/gjson from 1.14.0 to 1.14.1

    ⬆️ Bump github.com/tidwall/gjson from 1.14.0 to 1.14.1

    Bumps github.com/tidwall/gjson from 1.14.0 to 1.14.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Content.Search() results incomplete

    Content.Search() results incomplete

    go-atlassian version v1.4.2

    go-atlassian component

    • [ ] Jira Software Cloud
    • [ ] Jira Agile Cloud
    • [ ] Jira Service Management Cloud
    • [x] Confluence Cloud
    • [ ] Atlassian Admin Cloud

    Describe the bug :bug: Content.Search() does not return fields beyond the title of the content.

    To Reproduce :construction: Copy example code - https://docs.go-atlassian.io/confluence-cloud/content#search-contents-by-cql Update host, username, password values

    Expected behavior :white_check_mark: Return pages with values in models.ContentScheme

    Actual behavior: Meeting notes <nil> <nil> <nil> <nil> <nil> [] <nil> <nil> <nil> []}

    Additional context Using Content.Get with an ID works fine.

    Code snippet

    package main
    
    import (
    	"context"
    	"github.com/ctreminiom/go-atlassian/confluence"
    	"log"
    	"net/http"
    	"os"
    )
    
    func main()  {
    
    	var (
    		host  = os.Getenv("HOST")
    		mail  = os.Getenv("MAIL")
    		token = os.Getenv("TOKEN")
    	)
    
    	instance, err := confluence.New(nil, host)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	instance.Auth.SetBasicAuth(mail, token)
    	instance.Auth.SetUserAgent("curl/7.54.0")
    
    	var (
    		cql = "type=page"
    		cqlContext = ""
    		expand = []string{"childTypes.all", "metadata.labels"}
    		maxResults = 50
    	)
    
    	contentPage, response, err := instance.Content.Search(context.Background(), cql, cqlContext, expand, "", maxResults)
    	if err != nil {
    
    		if response.Code == http.StatusBadRequest {
    			log.Println(response.API)
    		}
    		log.Fatal(err)
    	}
    
    	log.Println("Endpoint:", response.Endpoint)
    	log.Println("Status Code:", response.Code)
    	log.Println(contentPage.Links.Next)
    
    
    	for _, content := range contentPage.Results {
    		log.Printf("%v", content)
    	}
    }
    
    
  • Add Ancestor Field when Create content in Confluence

    Add Ancestor Field when Create content in Confluence

    Is your feature request related to a problem? Please describe. I want to create new page below the parent page

    Describe the solution you'd like Add new Field for Ancestor to create content below its parent page

    Additional context Screen Shot 2021-10-23 at 13 54 14 example of the additional fields for ancestor

  • ⬆️ Bump github.com/google/uuid from 1.1.4 to 1.3.0

    ⬆️ Bump github.com/google/uuid from 1.1.4 to 1.3.0

    Bumps github.com/google/uuid from 1.1.4 to 1.3.0.

    Release notes

    Sourced from github.com/google/uuid's releases.

    Add randomness pool mode for V4 UUID and NullUUID for SQL Scanners.

    From Andrey Pechkurov:

    Adds an optional randomness pool mode for Random (Version 4) UUID generation. The pool contains random bytes read from the random number generator on demand in batches. Enabling the pool may improve the UUID generation throughput significantly.

    Since the pool is stored on the Go heap, this feature may be a bad fit for security sensitive applications. That's why it's implemented as an opt-in feature.

    From Samuel Roth:

    Added support for NullUUID

    A NullUUID can be marked not valid (i.e., null) for use with JSON and the database/sql/driver.Scanner interfaces.

    Add NewString()

    This release introduces the NewString() function which is the equivalent of uuid.New().String().

    Syntactic cleanup

    There are no code changes. A missing period was add to a godoc comment and the linter was told to not complain that the results of hash.Write() are ignored (the function cannot fail)

    Commits
    • 44b5fee Minor cleanup.
    • e28eb7b Remove TestConformance from null_test.go. It was useful to demonstrate
    • ae25fc6 feat(uuid): Added support for NullUUID (#76)
    • 655bf50 Add randomness pool mode for V4 UUID (#80)
    • 512b657 feat: add public matcher function for custom error type invalidLengthError (#78)
    • bfb86fa Add NewString Func (#73)
    • b5d0d36 hash.go hash error covered and linter error fixed (#71)
    • 9377784 Update sql.go (#72)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • ⬆️ Bump github.com/imdario/mergo from 0.3.11 to 0.3.12

    ⬆️ Bump github.com/imdario/mergo from 0.3.11 to 0.3.12

    ⚠️ Dependabot Preview has been deactivated ⚠️

    This pull request was created by Dependabot Preview, and you've upgraded to Dependabot. This means it won't respond to dependabot commands nor will it be automatically closed if a new version is found.

    If you close this pull request, Dependabot will re-create it the next time it checks for updates and everything will work as expected.


    Bumps github.com/imdario/mergo from 0.3.11 to 0.3.12.

    Release notes

    Sourced from github.com/imdario/mergo's releases.

    Some bug fixes

    Thanks to @​abicky and @​ndeloof to help to improve Mergo. They fixed issues #90 & #174.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
  • confluence: add omitempty to BodyScheme

    confluence: add omitempty to BodyScheme

    I observed that Confluence appears to have recently made a change to their "Create Content" API (POST /wiki/rest/api/content). They used to accept these fields as null, but will now return an exception if you do so.

    {
        "statusCode": 400,
        "message": "com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.atlassian.confluence.api.model.content.Content[\"body\"]->com.atlassian.confluence.rest.serialization.EnrichedMapDeserializer$NullIgnoringMap[\"view\"])"
    }
    

    Example

    This is a minimal example showing a request that fails and a request that suceeds. The only difference being including a null field

    Including the view field as null

    This request fails image

    Omitting the any null fields

    This request succeeds image

  • Enable `/wiki/rest/api/analytics/` endpoints

    Enable `/wiki/rest/api/analytics/` endpoints

    Is your feature request related to a problem? Please describe. Right now, the library doesn't support the ability to manipulate the Confluence page analytics

    Describe the solution you'd like Please implement the AnalyticsService on the Confluence module.

    Describe the tasks needed

    • Create an interface called AnalyticsConnector
    • Under the interface, create two methods (Get, Gets) with their corresponding documentation (comments).
    • Create a file called backlog_impl under the confluence/internal folder.
    • Create the dedicated go structs under the pkg/infra/models folder.
    • Create a new implementation of the interface (please use the other service as a reference).
    • Create the unit test cases with a minimum of 80% of coverage.

    image Additional context

  • Enable `/rest/agile/1.0/backlog` endpoints

    Enable `/rest/agile/1.0/backlog` endpoints

    Is your feature request related to a problem? Please describe. Right now, the library doesn't support the ability to manipulate the Jira Agile Backlogs

    Describe the solution you'd like Please implement the BacklogService on the Jira agile modules.

    Describe the tasks needed

    • Create an interface called BacklogConnector
    • Under the interface, create two methods (Move, MoveByBoard) with their corresponding documentation (comments).
    • Create a file called backlog_impl under the jira/agile/internal folder.
    • Create the dedicated go structs under the pkg/infra/models folder.
    • Create a new implementation of the interface (please use the other service as a reference).
    • Create the unit test cases with a minimum of 80% of coverage.

    image

    Additional context

  • Parse the `DELETE /rest/api/3/mypreferences` endpoint

    Parse the `DELETE /rest/api/3/mypreferences` endpoint

    Is your feature request related to a problem? Please describe. Right now, the library doesn't support the ability to manipulate the Jira Myself endpoints, please create a new implementation of it.

    Describe the solution you'd like Please implement the Delete method on the MySelfConnector interface.

    image

    Describe the tasks needed

    • Under the MySelfConnector interface, create the method Delete with the corresponding documentation (comments).
    • Edit the file jira/internal/myself_impl.go and create the Delete implementation (please use the other service as a reference).
    • Create the unit test cases with a minimum of 80% of coverage.

    Additional context

  • Parse the `PUT /rest/api/3/mypreferences` endpoint

    Parse the `PUT /rest/api/3/mypreferences` endpoint

    Is your feature request related to a problem? Please describe. Right now, the library doesn't support the ability to manipulate the Jira Myself endpoints, please create a new implementation of it.

    Describe the solution you'd like Please implement the Set method on the MySelfConnector interface.

    image

    Describe the tasks needed

    • Under the MySelfConnector interface, create the method Set with the corresponding documentation (comments).
    • Edit the file jira/internal/myself_impl.go and create the Set implementation (please use the other service as a reference).
    • Create the unit test cases with a minimum of 80% of coverage.

    Additional context

  • Parse the `GET /rest/api/3/mypreferences` endpoint

    Parse the `GET /rest/api/3/mypreferences` endpoint

    Is your feature request related to a problem? Please describe. Right now, the library doesn't support the ability to manipulate the Jira Myself endpoints, please create a new implementation of it.

    Describe the solution you'd like Please implement the Get method on the MySelfConnector interface.

    image

    Describe the tasks needed

    • Under the MySelfConnector interface, create the method Get with the corresponding documentation (comments).
    • Edit the file jira/internal/myself_impl.go and create the Get implementation (please use the other service as a reference).
    • Create the unit test cases with a minimum of 80% of coverage.

    Additional context

Elastos.ELA.Rosetta.API - How to write a Rosetta server and use either the Client package or Fetcher package to communicate

Examples This folder demonstrates how to write a Rosetta server and how to use e

Jan 17, 2022
A golang package to communicate with HipChat over XMPP

hipchat This is a abstraction in golang to Hipchat's implementation of XMPP. It communicates over TLS and requires zero knowledge of XML or the XMPP p

Jan 3, 2023
Awspowertoggle - Web UI and API for quickly starting and stopping AWS environments
Awspowertoggle - Web UI and API for quickly starting and stopping AWS environments

aws-power-toggle web UI and API for quickly starting and stopping AWS environmen

Feb 23, 2022
🚀 A command with fzf-like UI to quickly search Wikipedia articles and open it in your browser

fzwiki A command with fzf-like UI to quickly search Wikipedia articles and open it in your browser. Usage Run the command by specifying a search query

Dec 20, 2022
The wazuh-integratord is a daemon that allows Wazuh to connect to external APIs and alerting tools such as Slack, VirusTotal and PagerDuty.

The wazuh-integratord is a daemon that allows Wazuh to connect to external APIs and alerting tools such as Slack, VirusTotal and PagerDuty.

Apr 22, 2022
A Go utility to quickly authenticate a third party application with a Plex account.

Plex Authentication (in Go!) Installation As a Go library: go get github.com/BrenekH/go-plexauth As a CLI: go install github.com/BrenekH/go-plexauth/c

Jan 7, 2022
Go library to access geocoding and reverse geocoding APIs

GeoService in Go Code Coverage A geocoding service developed in Go's way, idiomatic and elegant, not just in golang. This product is designed to open

Dec 23, 2022
lambda-go-api-proxy makes it easy to port APIs written with Go frameworks such as Gin to AWS Lambda and Amazon API Gateway.

aws-lambda-go-api-proxy makes it easy to run Golang APIs written with frameworks such as Gin with AWS Lambda and Amazon API Gateway.

Jan 6, 2023
Fluent JavaScript API for SharePoint and Microsoft Graph REST APIs
Fluent JavaScript API for SharePoint and Microsoft Graph REST APIs

PnPjs is a fluent JavaScript API for consuming SharePoint and Microsoft Graph REST APIs in a type-safe way. You can use it with SharePoint Framework,

Dec 23, 2022
Tiny go package for fetching high and low value of a stock for any given period range using kite connect historical data APIs.

Tiny go package for fetching high and low value of stock for any given period range using Kite connect Historical data APIs.

Apr 27, 2022
Service that wrap up different movies-related APIs like IMDB and match it to streaming services
Service that wrap up different movies-related APIs like IMDB and match it to streaming services

Service that wrap up different movies-related APIs like IMDB and match it to streaming services. That way you can check in which platforms you can find your favorite movies.

Feb 10, 2022
Easily manage your github credentials
Easily manage your github credentials

HUB ADMIN Hub Admin is a command-line tool managing your github credentials Installation go get github.com/crewdevio/HubAdmin How to use Open he

Oct 20, 2021
An unofficial package in Golang to help developers implement ZATCA (Fatoora) QR code easily.

Zatca SDK GO An unofficial package in Golang to help developers to implement ZATCA (Fatoora) QR code easily which required for e-invoicing ✅ The hash

Jan 1, 2023
A golang client for the Twitch v3 API - public APIs only (for now)

go-twitch Test CLIENT_ID="<my client ID>" go test -v -cover Usage Example File: package main import ( "log" "os" "github.com/knspriggs/go-twi

Sep 27, 2022
Auto-generated Google APIs for Go.

Google APIs Client Library for Go Getting Started $ go get google.golang.org/api/tasks/v1 $ go get google.golang.org/api/moderator/v1 $ go get google.

Jan 8, 2023
Twilight is an unofficial Golang SDK for Twilio APIs
Twilight is an unofficial Golang SDK for Twilio APIs

Twilight is an unofficial Golang SDK for Twilio APIs. Twilight was born as a result of my inability to spell Twilio correctly. I searched for a Twillio Golang client library and couldn’t find any, I decided to build one. Halfway through building this, I realized I had spelled Twilio as Twillio when searching for a client library on Github.

Jul 2, 2021
Sync your bank transactions with google sheets using Open Banking APIs

Sync your bank transactions with google sheets using Open Banking APIs

Jul 22, 2022
Sync your bank transactions with google sheets using Open Banking APIs

this is a markdown version of the copy on the site landing page: https://youneedaspreadsheet.com You need a spreadsheet ?? Get on top of your finances

Jul 22, 2022