{"id":16474259,"url":"https://github.com/cpanato/mattermost-gitops","last_synced_at":"2025-06-16T09:12:29.300Z","repository":{"id":77044762,"uuid":"340377454","full_name":"cpanato/mattermost-gitops","owner":"cpanato","description":"Bring the GitOps approach to your Mattermost Server","archived":false,"fork":false,"pushed_at":"2021-02-19T14:03:02.000Z","size":64,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-11T04:11:33.825Z","etag":null,"topics":["gitops","mattermost"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cpanato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-19T13:29:12.000Z","updated_at":"2021-02-19T14:28:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"00188428-ddf9-4b80-8313-3d600b84d410","html_url":"https://github.com/cpanato/mattermost-gitops","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpanato%2Fmattermost-gitops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpanato%2Fmattermost-gitops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpanato%2Fmattermost-gitops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpanato%2Fmattermost-gitops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cpanato","download_url":"https://codeload.github.com/cpanato/mattermost-gitops/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241126342,"owners_count":19913990,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gitops","mattermost"],"created_at":"2024-10-11T12:30:22.129Z","updated_at":"2025-02-28T08:49:20.760Z","avatar_url":"https://github.com/cpanato.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mattermost-GitOps\n\nThis tool is heavily inspired on [tempelis](https://github.com/kubernetes-sigs/slack-infra/tree/master/tempelis)\n\nIt syncronizes the configuration described in a YAML file against your Mattermost installation.\nCombined with a CI system, it can be used to implement GitOps for Mattermost.\n\nAt this stage, it can:\n\n### Channels\n  - Create new channels\n  - Update a Channel (Header, Purpose, Channel Display name and Channel name)\n  - Update Channel Privacy (Open Channel / Private Channel)\n  - Archive/UnArchive Channel\n\n\n## Config\n\n### Authentication\n\nIt expects a config file in the location given by `--auth` that looks like this:\n\n```\n{\n    \"authToken\": \"ic3hu6ydebbsib1yd7x5wn1nro\",\n    \"instanceUrl\": \"http://localhost:8065/\"\n}\n```\n\n`authToken` is a value provided by your Mattermost installation, see how to\ncreate a [Personal Token](https://docs.mattermost.com/developer/personal-access-tokens.html?#personal-access-tokens)\n\n`instanceUrl` is your Mattermost URL\n\n\n#### Channels\n\nIt expects a complete list of public channels to be provided. If a public channel exists on\nMattermost that is not in the yaml channel list, it will error out.\n\nA channel list with a single fully-specified channel looks like this:\n\n\n```yaml\nchannels:\n- team_id: utaq935c5j8z5x3gwske8bep7c # The team ID where you want to create the channel, a Mattermost installation can have multiple teams\n  private: false # If a channel is public or private\n  display_name: My honk channel # Diplay name in the UI\n  name: honk # Channel name\n  header: honk the planet # The header for the channel. Optional\n  purpose: just to honk # Purpose of the channel. Optional\n  archive: false # if want to archive the channel, if it is already archived can restore\n```\n\n\n## Future Work\n\nAdd support:\n\n- Configuration\n- Users\n- Webhooks?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpanato%2Fmattermost-gitops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcpanato%2Fmattermost-gitops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpanato%2Fmattermost-gitops/lists"}