No Princess, Mario

    skypager-plugin-integrations

    2.52.0 • Public • Published

    Integrations Plugin

    The Integrations plugin provides a unified interface for Skypager Projects which wish to include data and functionality from popular third party APIs and services, including:

    • Github
    • NPM
    • Dropbox
    • Google Drive
    • Amazon Web Services
    • Segment
    • Slack
    • Travis

    Usage

    A Project can use the integrations plugin by including the plugin in the package.json's skypager configuration.

    {
      "name": "my-project",
        "skypager":{
        "main": "skypager.js",
        "plugins": ["integrations"]
      }
    }

    This will enable actions in the project to generate the necessary settings and options a project will need to make use of the services it wishes to integrate with.

    Examples

    Referencing Github Issues and Milestones

    1. Run the skypager use:integration github command.

    2. Edit project/settings/integrations/github.yml

    development:
      application:
        client_id: 'whatever'
        client_secret: 'whatever_else'
    
    production:
      application:
        client_id: 'env.GITHUB_CLIENT_ID'
        client_secret: 'env.GITHUB_CLIENT_SECRET'

    This will make the github client available to the project, which will let you incorporate the functionality in various helper scripts such as actions or exporters, and in your data sources. Making github data available via a datasource will let you use it in your react apps if you wanted to.

    Example of a data source:

    1. Add a data source file in project/data/github/issues.js
    module.exports = function(params = {}, context = {}) {
      let project = context.project
      let client = project.clients.github
      
      switch(params.source) {
       case issues:
        return client.issues.promise(params)
       case milestones:
        return client.milestones.promise(params)
      }
    }
    1. Use the github issues data in your react views
    import React, { Component, PropTypes as type } from 'react'
    import { stateful } from 'ui/applications'
    
    export class IssuesBrowser extends Component {
      static displayName = 'IssuesBrowser';
    
      static propTypes = {
        settings: types.shape({
          github: types.object({
            clientId: types.string.isRequired
          })
        }),
    
        content: types.shape({
          data: types.shape({
            github: types.shape({
              issues: types.arrayOf(
                types.shape({
                  urls: types.object,
                  body: types.string,
                  number: types.number,
                  labels: types.array
                })
              )
            })
          })
        })
      };
    
      render() {
        let { content } = this.props
        let issues = content.data.github.issues
    
        return (
          <GithubIssuesLister issues={issues} />
        )
      }
    }
    1. Use the github data in your actions
    action('update issues')
    
    execute(function(params = {}, context = {}) {
      let { project } = context
      
      // do whatever
    })

    Keywords

    none

    Install

    npm i skypager-plugin-integrations

    Homepage

    skypager.io

    DownloadsWeekly Downloads

    10

    Version

    2.52.0

    License

    SEE LICENSE IN License.md

    Last publish

    Collaborators

    • soederpop