Skip to content

A collection of epic level Github Actions. The masterminds behind our advanced Github project management.

Notifications You must be signed in to change notification settings

Resnovas/smartcloud

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

All Contributors

Smartcloud

The most advanced github action, with functionality overflowing and declaritive configuration to streamline your entire github workflow!

ProjectsV2 API -- Experimental

Projects Classic is still supported

I have began to work on the new ProjectsV2 api, which has required us to deploy an app which uses OAuth to interact with the new Projects API. This has not effected the functionality of the rest of the tools and is not required for most of the tools to function.

Index

Features

  • Create, Update, Delete Labels declaratively from Config
  • Apply Labels based on conditions
  • Enforce Conventions - Ensure the repository follows conventions setout by your team. Configured using Conditions
  • Automatically assign to projects - Ensure your projects have all open issues and pull requests assigned to the correct locations.
  • Automatically assign to milestones - Keep milestones upto date by automatically assigning issues and pull requests
  • Automatically create Branches - Open branches based on project column, or when an issue is opened.
  • Automatically approve - Setup automatic pull request approval based on conditions.
  • Automatically bump version - Automatically increase the version of your project - Optionally use tags.
  • Automatically package and release - Specify commands to run when new release should be created.
  • Create Changelogs - Automatically create changelogs for your project.
  • Create milestones automatically - Automatically create milestones when a new release is published.

How to get support πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦

For Features Requests, Q&A, Show & Tell and Discussions please use our discussions page πŸš‘.

We have a FAQ category in our discussions page where you can get quick answers, help with debugging weird issues, and general help.

Our extensive documentation can be found at here.

Why not GitHub Issues?

GitHub is our office, it's the place where our development and contributor teams do their work. We use the issue list to keep track of bugs and the features that we are working on. We do this openly for transparency, to reduce replication by contributors and increase productivity.

With the discussion page, you can leverage the knowledge of our wider community to get help with any problems you are having. Please keep in mind that this project is open-source, support is provided by the goodwill of our wonderful community members.

Backlog & Contributing

For more information on how to contribute, please read the contributing guidelines.

Our backlog can be found on Github

Running Locally & Developing

Setting up local running is simple, however we MUST warn that building / packaging while using local scripts can cause your GITHUB_TOKEN to be included within the package. To avoid this happening. you MUST follow the steps correctly. We will not be held responsible for any leeked personal tokens.

Prerequisities

  1. Setup a secret on your repository named: ACTIONS_STEP_DEBUG value: true
  2. Ensure the action has run once after you created this secret

Developing

  1. Fork & Clone the development repository
  2. Continue from step 4 of Running Locally then return to step 5 & 6.
  3. Make changes, then rebuild using npm run dev:run or yarn dev:run
  4. If uploading changes to Github
    • Delete ./context.json, ./config, ./lib, ./dist.
    • Run yarn dev:all.
    • Commit & push.

Running locally

  1. Fork & Clone this repository
  2. Run yarn install or npm install
  3. From the action logs find Context for local running copy the output into a file named ./context.json at the root of the project.
  4. Modify the ./config.sample.json to contain your GITHUB_TOKEN and rename to ./config.json
  5. Run the script using yarn dev:run or npm run dev:run

Getting Started

Important

It is Extremely important to understand while using this template, most of the code within .github/ will automatically update within a new pull request whenever the template repository is updated.

Automatic setup via CLI

[coming soon]

Manual setup

Create a new Github Actions workflow at .github/workflows/main.yml:

Note: actions/checkout must be run first so that the release action can find your config file.

main.yml
# @format

name: Project Management
on:
  issues:
    types: [opened, edited, closed, reopened]
  pull_request:
    types: [opened, edited, closed, reopened, synchronize]
  project_card:
    types: [created, moved, deleted]
  schedule: [cron: "0 * * * *"]

jobs:
  release-mastermind:
    name: Release Mastermind
    runs-on: ubuntu-latest
    steps:
      - uses: actions/[email protected]
      - uses: ./
        with:
          GITHUB_TOKEN: "${{ secrets.BOT_TOKEN }}"
          config: .github/allconfigs.json

Now create the config file at .github/config.json.

Final Note

Thank you for taking the time to look through this repository. If you have liked what you have found, please would you favourite & share. Ideally I would like to get a community behind this project which can ensure that it is maintained, updated and improved as GitActions get more suffisticated.

This project took heavy infulence from IvanFon/super-labeler-action which we were maintaining on our fork here: resnovas/label-mastermind. We invite any of the team who worked on his project to come onboard.

Thanks goes to these wonderful people (emoji key):

Ivan
Ivan

πŸ› πŸ’» πŸ€” πŸ“– πŸš‡ 🚧 πŸ“† ⚠️ πŸ”§
Jonathan S
Jonathan S

πŸ’¬ πŸ› πŸ’» 🎨 πŸ“– πŸ’‘ πŸ€” πŸš‡ 🚧 πŸ“† πŸ›‘οΈ ⚠️ πŸ”§
jbinda
jbinda

πŸ’» 🚧
Videndum Studios Github Actions
Videndum Studios Github Actions

πŸ“† πŸ”§

This project follows the all-contributors specification. Contributions of any kind welcome!