Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions config/edit-page-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,41 @@
{
"value": "community/styleguide",
"href": "https://github.com/asyncapi/community/tree/master/docs/styleguide"
},
{
"value": "community/000-onboarding",
"href": "https://github.com/asyncapi/community/tree/master/docs/000-onboarding"
},
{
"value": "community/010-contribution-guidelines",
"href": "https://github.com/asyncapi/community/tree/master/docs/010-contribution-guidelines"
},
{
"value": "community/011-styleguide",
"href": "https://github.com/asyncapi/community/tree/master/docs/011-styleguide"
},
{
"value": "community/020-governance-and-policies",
"href": "https://github.com/asyncapi/community/tree/master/docs/020-governance-and-policies"
},
{
"value": "community/030-project-vision-strategy-goals",
"href": "https://github.com/asyncapi/community/tree/master/docs/030-project-vision-strategy-goals"
},
{
"value": "community/040-guides",
"href": "https://github.com/asyncapi/community/tree/master/docs/040-guides"
},
{
"value": "community/050-mentorship-program",
"href": "https://github.com/asyncapi/community/tree/master/docs/050-mentorship-program"
},
{
"value": "community/060-meetings-and-communication",
"href": "https://github.com/asyncapi/community/tree/master/docs/060-meetings-and-communication"
},
{
"value": "community/070-marketing",
"href": "https://github.com/asyncapi/community/tree/master/docs/070-marketing"
}
]
4 changes: 4 additions & 0 deletions markdown/docs/community/000-onboarding/_section.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: Onboarding
weight: 10
---
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Onboarding Guide for AsyncAPI Ambassadors
weight: 110
weight: 50
---


Expand Down Expand Up @@ -38,4 +38,4 @@ Examples:
- Our sincere gratitude and respect for your contributions!

### Additional resources
[AsyncAPI Ambassador Program](https://github.com/asyncapi/community/blob/master/AMBASSADOR_ORGANIZATION.md)
[AsyncAPI Ambassador Program](../050-mentorship-program/ambassador-program/AMBASSADOR_PROGRAM.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Potential broken link – path looks off

../050-mentorship-program/ambassador-program/AMBASSADOR_PROGRAM.md navigates:

  1. up to community/
  2. into 050-mentorship-program/…

The Ambassador Program file described in the PR summary is under 020-governance-and-policies/ambassador-program/.
Please verify the actual location or adjust the link accordingly to avoid a 404.


I’ll locate the actual AMBASSADOR_PROGRAM.md files to verify the correct path:


🏁 Script executed:

#!/bin/bash
# Find all occurrences of the Ambassador Program markdown
fd AMBASSADOR_PROGRAM.md

Length of output: 119


Fix broken link – update path to Ambassador Program doc

The link currently points to the non-existent 050-mentorship-program folder. The correct file location is under 020-governance-and-policies.

• File: markdown/docs/community/000-onboarding/ambassador-guide.md
• Line: 41

Diff:

-[AsyncAPI Ambassador Program](../050-mentorship-program/ambassador-program/AMBASSADOR_PROGRAM.md)
+[AsyncAPI Ambassador Program](../020-governance-and-policies/ambassador-program/AMBASSADOR_PROGRAM.md)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[AsyncAPI Ambassador Program](../050-mentorship-program/ambassador-program/AMBASSADOR_PROGRAM.md)
[AsyncAPI Ambassador Program](../020-governance-and-policies/ambassador-program/AMBASSADOR_PROGRAM.md)
🤖 Prompt for AI Agents
In markdown/docs/community/000-onboarding/ambassador-guide.md at line 41, the
link to the Ambassador Program document points to a non-existent folder
050-mentorship-program. Update the link path to point to the correct location
under 020-governance-and-policies to fix the broken link.

Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
---
title: 'Docs onboarding checklist'
weight: 30
title: Docs Onboarding Checklist
weight: 60
---
## AsyncAPI docs onboarding checklist

As an open-source initiative with a global community, technical writer contributors should learn about our governance documents, documentation processes, and communication channels.

Complete in order the following onboarding tasks:

- [ ] Read the [AsyncAPI Code of Conduct](https://github.com/asyncapi/community/blob/master/CODE_OF_CONDUCT.md).
- [ ] Read the [AsyncAPI Slack etiquette](https://github.com/asyncapi/community/blob/master/slack-etiquette.md).
- [ ] Read the [AsyncAPI Code of Conduct](https://github.com/asyncapi/.github/blob/master/CODE_OF_CONDUCT.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Default branch is main, not master

The Code of Conduct URL still targets .../blob/master/.... AsyncAPI switched to main quite a while ago. Update to avoid a 404 if/when master is removed.

🤖 Prompt for AI Agents
In markdown/docs/community/000-onboarding/docs-onboarding-checklist.md at line
11, the URL for the AsyncAPI Code of Conduct references the default branch as
'master', which is outdated. Update the URL to replace 'master' with 'main' to
reflect the current default branch and prevent potential 404 errors.

- [ ] Read the [AsyncAPI Slack etiquette](../060-meetings-and-communication/slack-etiquette.md).
- [ ] Join [the AsyncAPI Slack workspace](https://asyncapi.com/slack-invite).
- [ ] Add the AsyncAPI calendar found in [the AsyncAPI events page](https://www.asyncapi.com/community/events).
- [ ] Read the list of [technical writer contributor responsibilities](technical-writer-contributor-responsibilities).
- [ ] Read and familiarize yourself with the [prerequisite knowledge topics](prerequisite-knowledge).
- [ ] Read the list of [technical writer contributor responsibilities](../010-contribution-guidelines/technical-writer-contributor-responsibilities.md).
- [ ] Read and familiarize yourself with the [prerequisite knowledge topics](../010-contribution-guidelines/prerequisite-knowledge.md).
- [ ] Familiarize yourself with the _work-in-progress_ [AsyncAPI Style Guide](https://github.com/asyncapi/community/pulls?q=is%3Apr+is%3Aopen+style+guide).
- [ ] Read all docs under the following content buckets: `Concepts`, `Tutorials`, `Reference`. (Take the time to go through each tutorial.)
- [ ] Set up your local environment following our instructions for the [AsyncAPI git workflow](https://github.com/asyncapi/community/blob/master/git-workflow.md).
- [ ] Set up your local environment following our instructions for the [AsyncAPI git workflow](../010-contribution-guidelines/git-workflow.md).
- [ ] Introduce yourself in AsyncAPI Slack in the `#01_introductions` channel and the `#13_docs` channel. Ask docs-related questions in #13_docs.
- [ ] Request a good first docs issue in the [`#13_docs` Slack channel](https://asyncapi.com/slack-invite).
- [ ] Attend [OPEN docs meetings](https://www.asyncapi.com/community/events) to chat with other maintainers, ask docs questions, and request help on docs blockers.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Documentarian Onboarding Guide
weight: 30
---

🚧 This document is under construction.

Please be patient as we work on it. Thank you. 🫶
103 changes: 103 additions & 0 deletions markdown/docs/community/000-onboarding/github-actions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
title: Utilizing GitHub Actions
weight: 80
---

## Overview

[GitHub Actions](https://docs.github.com/actions) is a continuous integration and continuous delivery (CI/CD) platform that automates software development workflows directly within a GitHub repository.

At AsyncAPI, GitHub Actions is crucial for maintaining consistency, efficiency, and quality across our projects by handling repetitive tasks automatically.

This document outlines how AsyncAPI utilizes GitHub Actions to automate and optimize workflows. It provides a comprehensive guide for maintainers and contributors, explaining global and local workflows, common commands, repository setup, and best practices.

## Types of GitHub Actions workflows

At AsyncAPI, there are two types of workflows: [local](#local-workflows) and [global](#global-workflows).

### Local workflows

Local workflows are specific to a repository. They are stored in the `.github/workflows` directory and typically handle:

- Running tests on pull requests (PRs).
- Linting code.
- Building and deploying applications.

A few key points about local workflows in AsyncAPI:

- Multiple workflows can be triggered for a single PR.
- Not all workflows are required to pass for a PR to be merged.
- Some workflows are marked as required; if these fail, the PR will be blocked.
- External workflows can sometimes affect local checks.

You can view these workflows under the **Actions** tab or at the bottom of each PR page.

### Global workflows

Global workflows are shared across multiple repositories and maintained centrally in the [AsyncAPI `.github` repository](https://github.com/asyncapi/.github).

They help:

- Enforce consistent configurations.
- Automate releases.
- Synchronize files across repositories.

Changes made to global workflows can automatically propagate to opted-in repositories.

#### How to understand global workflows

AsyncAPI maintains a set of global GitHub Actions workflows inside the [`.github`](https://github.com/asyncapi/.github/tree/master/.github/workflows) repository. These workflows are shared across many repositories and automate common tasks such as issue labeling, automerging, Slack notifications, and more.

Each workflow is self-documented with comments inside its `.yml` file, so the best way to learn what a workflow does is to read it directly.

For example, say you want to understand what the `PTAL Command` workflow does. Here's how you can explore it:

1. Go to the [`please-take-a-look-command.yml`](https://github.com/asyncapi/.github/blob/master/.github/workflows/please-take-a-look-command.yml) file in the `.github/workflows` directory.
2. Read the top comments to learn:

* When the workflow is triggered (e.g., on `/ptal` or `/please-take-a-look` comments),
* What problem it solves (e.g., reminding unresponsive reviewers),
* Any conditions or repository limitations.

This structure makes workflows easier to maintain and allows contributors to understand them directly from their local copies without jumping to external docs.

#### Global replicator workflow

The [global replicator workflow](https://github.com/asyncapi/.github/blob/master/.github/workflows/global-replicator.yml) is a central GitHub Actions workflow that helps keep essential files and workflows consistent across all AsyncAPI repositories.

This workflow automatically replicates things like:

* Community health files (e.g., `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`)
* Language-specific test and release workflows (e.g., for Go, Node.js, Docker)
* Common automation scripts and workflows (e.g., auto-merge, stale issue handling, update notifications)

Each job in the YAML file is scoped to specific topics, paths, or files, and often uses GitHub Topics (like `golang`, `nodejs`, or `docker`) to decide which repositories should receive what.

Rather than duplicating the logic here in the docs (which can get outdated quickly), we recommend reviewing the comments and job names directly in the [global-replicator.yml file](https://github.com/asyncapi/.github/blob/master/.github/workflows/global-replicator.yml). Each job is clearly labeled and annotated to explain what it does and why.

> If you're unsure why a certain workflow or file exists in your repository, check if it's managed globally through this replicator and look for its corresponding job in the YAML file.

#### Basic requirements to use global workflows

Before a repository can start using the global workflows managed through the `.github` repository, a few setup steps are required. This ensures that bots can properly push and merge workflow files. Without these steps, the automation will not work as expected.

The basic requirements are:

- **Add the `@asyncapi/bots` team as maintainers**: In the repository settings, under *Collaborators and Teams*, add the `@asyncapi/bots` team with maintainer permissions.
- **Add `@asyncapi-bot-eve` to CODEOWNERS**: In the `.github/CODEOWNERS` file, include `@asyncapi-bot-eve` to make the Eve bot a code owner. This allows automatic approval of pull requests it generates, as GitHub treats code owners as authorized reviewers.
- **Trigger initial setup**: Reach out to the maintainers of the `.github` repository and ask them to manually run the "Global Workflow to Rule Them All" action, providing your repository name.
- **Manually approve initial PRs**: The first set of workflow-related pull requests must be manually merged, as the automation for merging only becomes available after the necessary workflows are installed.

Once these steps are complete, the repository will start automatically receiving and merging global workflow updates as expected.

#### How to opt in or out of global workflows

**Opt-in**

To opt in to a global workflow managed in the AsyncAPI `.github` repository, you can either add a specific topic to your repository (via GitHub settings or the GitHub CLI) or ask a maintainer to trigger it manually for you.

To do this, reach out on Slack or open an issue, and a maintainer can run the “Global workflow to rule them all” from the **Actions** tab, optionally targeting your repo by name.

**Opt-out**

Some workflows are applied automatically to all repositories. If you’d like to opt out of one of those, your repository must be added to the `repos_to_ignore` list in the relevant job. This change has to be made in the global workflow by a maintainer, so just ask in Slack or open an issue if you'd like to be excluded.
8 changes: 8 additions & 0 deletions markdown/docs/community/000-onboarding/how-to-contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: How to Contribute
weight: 20
---

🚧 This document is under construction.

Please be patient as we work on it. Thank you. 🫶
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
title: 'Introduction'
weight: 10
title: Introduction
weight: 5
---
## Technical writer onboarding guide

The AsyncAPI technical writer onboarding guide teaches new community members how to contribute to our documentation effectively.

> For a comprehensive understanding of the various ways you can contribute to the AsyncAPI Initiative, please consult the [AsyncAPI contributing guidelines](https://github.com/asyncapi/community/blob/master/CONTRIBUTING.md).
> For a comprehensive understanding of the various ways you can contribute to the AsyncAPI Initiative, please consult the [AsyncAPI contributing guidelines](../../CONTRIBUTING.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🛠️ Refactor suggestion

🧩 Analysis chain

Relative link may resolve to a non-existent path
../../CONTRIBUTING.md from markdown/docs/community/000-onboarding/ points to markdown/docs/CONTRIBUTING.md. The actual contributing guide in this repo is at the repo root (/CONTRIBUTING.md). Consider using ../../../CONTRIBUTING.md or an absolute site URL to avoid a broken link.


🏁 Script executed:

#!/bin/bash
set -e

echo "=== All CONTRIBUTING.md files in repository ==="
rg --files | grep -i "contributing.md" || echo "No CONTRIBUTING.md found"

echo
echo "=== CONTRIBUTING.md under markdown/docs ==="
rg --files markdown/docs | grep -i "contributing.md" || echo "None under markdown/docs"

Length of output: 385


Fix broken CONTRIBUTING.md link
The relative link ../../CONTRIBUTING.md in markdown/docs/community/000-onboarding/index.md:9 resolves to markdown/docs/CONTRIBUTING.md, which doesn’t exist. To point to the repo-root CONTRIBUTING.md, either:

  • Change the path to four levels up: ../../../../CONTRIBUTING.md
  • Use an absolute URL (e.g. https://github.com/asyncapi/website/blob/main/CONTRIBUTING.md)
🤖 Prompt for AI Agents
In markdown/docs/community/000-onboarding/index.md at line 9, the relative link
to CONTRIBUTING.md is incorrect and resolves to a non-existent path. Fix this by
updating the link to either go four levels up using ../../../../CONTRIBUTING.md
or replace it with the absolute URL to the CONTRIBUTING.md file in the
repository root.

The goal is providing docs contributors with the necessary tools and knowledge to:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Onboarding Guide for AsyncAPI Maintainers
weight: 100
weight: 40
---


Expand Down Expand Up @@ -46,7 +46,7 @@ Before you can become a **maintainer**, you need to start as a **contributor**.

### 2. Open a PR

For a comprehensive guide on how to create a fork and start contributing, refer to the [AsyncAPI Git Workflow Guide](https://github.com/asyncapi/community/blob/master/git-workflow.md).
For a comprehensive guide on how to create a fork and start contributing, refer to the [AsyncAPI Git Workflow Guide](../010-contribution-guidelines/git-workflow.md).

- **Fork the repository**: Fork the repository you want to contribute to and create a new branch for your changes.

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: Upholding the Code of Conduct
description: This onboarding guide outlines how to uphold the Code of Conduct document for new contributors
weight: 70
---

# Contributor Guide to Upholding the Code of Conduct

Welcome to the AsyncAPI community! As a contributor, you are an essential part of building a safe, inclusive, and respectful environment for everyone. This guide will help you understand how to follow and uphold our [Code of Conduct](https://github.com/asyncapi/.github/blob/master/CODE_OF_CONDUCT.md).



## Why This Matters

The Code of Conduct (CoC) sets expectations for behavior in all AsyncAPI spaces, including repositories, GitHub discussions, communication platforms (such as Slack), and online and physical events.

Following it helps:

- Foster inclusion and belonging
- Prevent and resolve conflicts
- Protect the well-being of all contributors



## Your Responsibilities as a Contributor

- **Be Respectful:** Treat others with kindness and professionalism.
- **Be Inclusive:** Welcome diverse perspectives and backgrounds.
- **Be community-oriented:** Encourage collaboration, help others when you can, and gracefully accept constructive criticism.
- **Speak Up:** If you witness inappropriate behavior, report it.

You are expected to read and understand the full [CoC](https://github.com/asyncapi/.github/blob/master/CODE_OF_CONDUCT.md) before contributing.


## What to Do If You Experience or Witness a Violation

If you experience or observe discrimination, harassment, or any behavior that violates the CoC:

### 1. Document What Happened
- Note what was said or done
- Include context (e.g., link to a GitHub issue, Slack conversation)
- If possible, take a screenshot

### 2. Report the Incident
You can report a CoC violation by:

- Emailing **[email protected]** – this forwards directly to the [Code of Conduct Committee](../CODE_OF_CONDUCT_COMMITTEE.md)
- Reaching out to a specific CoC Committee member if the issue involves someone on the committee

All reports are handled with confidentiality, respect, and prompt action.


## Conflict Resolution

Not all disagreements are violations. When conflicts happen:

- First, try a respectful discussion or ask a neutral contributor to help mediate.
- If the situation escalates or becomes hostile, report the issue to the CoC Committee.

The Code of Conduct Committee is trained to resolve conflicts fairly and ensure everyone feels safe.


## Additional Resources
- [Incident Resolution Procedures](../COC-incident-resolution-procedures.md)
- [Slack Etiquette Guidelines](../060-meetings-and-communication/slack-etiquette.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Where to Contribute
weight: 10
---

🚧 This document is under construction.

Please be patient as we work on it. Thank you. 🫶
Loading
Loading